From 9b92c82b51b30c35c56f1601c2185c5b31fec1b0 Mon Sep 17 00:00:00 2001 From: Tracy Kuhrt Date: Wed, 29 Nov 2023 13:09:44 -0700 Subject: [PATCH] New projects Signed-off-by: Tracy Kuhrt --- .../projects/afj/afj-high-level-arch.png | Bin 0 -> 44593 bytes docs/projects/agent-framework-js.md | 23 ++++++++++++++++++ docs/projects/index.md | 4 +++ docs/projects/sd-jwt-dotnet.md | 15 ++++++++++++ docs/projects/sd-jwt-rust.md | 13 ++++++++++ mkdocs.yml | 3 +++ 6 files changed, 58 insertions(+) create mode 100644 docs/assets/projects/afj/afj-high-level-arch.png create mode 100644 docs/projects/agent-framework-js.md create mode 100644 docs/projects/sd-jwt-dotnet.md create mode 100644 docs/projects/sd-jwt-rust.md diff --git a/docs/assets/projects/afj/afj-high-level-arch.png b/docs/assets/projects/afj/afj-high-level-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..3c22213219eb4974fc91a4781609e954627628d1 GIT binary patch literal 44593 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 literal 0 HcmV?d00001 diff --git a/docs/projects/agent-framework-js.md b/docs/projects/agent-framework-js.md new file mode 100644 index 00000000..3da7f593 --- /dev/null +++ b/docs/projects/agent-framework-js.md @@ -0,0 +1,23 @@ +# Agent Framework JavaScript + +## Project Description + +Agent Framework JavaScript has evolved significantly since its inception as a Hyperledger Aries project. Initially, it heavily relied on Hyperledger standards such as DIDComm, Indy, and AnonCreds. However, with advancements in verifiable credential technology and the emergence of new standards, the framework underwent multiple refactoring and modularization processes to maintain interoperability. + +This allowed for the inclusion of non-Hyperledger standards like W3C Verifiable Credentials with Data Integrity Proofs, DIF Presentation Exchange, OpenID4VC, and SD-JWT integration. As industry requirements shifted towards greater modularity, it became apparent that a unified framework may be better. + +The future direction for Agent Framework JavaScript involves adopting a compartmentalized approach consisting of single-purpose libraries designed to work together seamlessly, building on what is already out there. This transition will take considerable effort and will, therefore, be gradual. + +In order to expand the framework's support for standards beyond the Hyperledger ecosystem, a reassessment of its governance was necessary. The OpenWallet Foundation (OWF) was chosen as a steward due to its commitment to promoting interoperability without directly developing or maintaining standard protocols. + +![afj-high-level-arch.png](../assets/projects/afj/afj-high-level-arch.png) + + + +## Chat Channel +- [#agent-framework-js](https://discord.com/channels/1022962884864643214/1179453305856991263) on the [OpenWallet Foundation Discord server](https://discord.gg/openwalletfoundation) diff --git a/docs/projects/index.md b/docs/projects/index.md index 144fb226..3f167c7c 100644 --- a/docs/projects/index.md +++ b/docs/projects/index.md @@ -15,3 +15,7 @@ Projects in the OpenWallet Foundation follow the [project lifecycle](../governan | 2023-Oct-05 | [Wallet Framework .NET](./wallet-framework-dotnet.md) | Lab | | 2023-Oct-18 | [Android Identity Library](./android-identity-library.md) | Lab | | 2023-Nov-01 | [SD-JWT JavaScript](./sd-jwt-js.md) | Lab | +| 2023-Nov-15 | [SD-JWT Rust](./sd-jwt-rust.md) | Lab | +| 2023-Nov-29 | [SD-JWT .NET](./sd-jwt-dotnet.md) | Lab | +| 2023-Nov-29 | [Agent Framework JavaScript](./agent-framework-js.md) | Lab | + diff --git a/docs/projects/sd-jwt-dotnet.md b/docs/projects/sd-jwt-dotnet.md new file mode 100644 index 00000000..0ee5dec9 --- /dev/null +++ b/docs/projects/sd-jwt-dotnet.md @@ -0,0 +1,15 @@ +# SD-JWT .NET + +## Project Description + +A .NET implementation of the [Selective Disclosure for JWTs](https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-04.html) (SD-JWT) specification. + + + +## Chat Channel + +- [#sd-jwt-dotnet](https://discord.com/channels/1022962884864643214/1179453047169110056) on the [OpenWallet Foundation Discord server](https://discord.gg/openwalletfoundation) diff --git a/docs/projects/sd-jwt-rust.md b/docs/projects/sd-jwt-rust.md new file mode 100644 index 00000000..c2c6d7c6 --- /dev/null +++ b/docs/projects/sd-jwt-rust.md @@ -0,0 +1,13 @@ +# SD-JWT Rust + +## Project Description + +A Rust implementation of the [Selective Disclosure for JWTs](https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-04.html) (SD-JWT) specification. + +## Source Repositories + +- [openwallet-foundation-labs/sd-jwt-rust](https://github.com/openwallet-foundation-labs/sd-jwt-rust) + +## Chat Channel + +- [#sd-jwt-rust](https://discord.com/channels/1022962884864643214/1174382048400654457) on the [OpenWallet Foundation Discord server](https://discord.gg/openwalletfoundation) diff --git a/mkdocs.yml b/mkdocs.yml index b10f2116..5abe4aaa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -143,11 +143,14 @@ nav: - 2023-03-08: meetings/2023/2023-03-08.md - Projects: - projects/index.md + - Agent Framework JavaScript: projects/agent-framework-js.md - Android Identity Library: projects/android-identity-library.md - Farmworker Wallet OS: projects/fwos.md + - SD-JWT .NET: projects/sd-jwt-dotnet.md - SD-JWT JavaScript: projects/sd-jwt-js.md - SD-JWT Kotlin: projects/sd-jwt-kotlin.md - SD-JWT Python: projects/sd-jwt-python.md + - SD-JWT Rust: projects/sd-jwt-rust.md - VC-API: projects/vc-api.md - Wallet Framework .NET: projects/wallet-framework-dotnet.md - Special Interest Groups: