Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project proposal to move OID4VC-TS to OWF #49

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions projects/oid4vc-ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Project Name

OID4VC TypeScript

# Preferred Maturity Level

Labs

# Project Description

The OpenID for Verifiable Credentials set of standards provide integration of existing OpenID and OAuth2 standards with verifiable credentials.

OID4VC TypeScript is a generic, and low-level implementation of specifications. Currently it provides APIs for Issuers, Wallets, Clients, Authorization Servers and Resource Providers, covering OpenID for Verifiable Credential Issuance, and OAuth2. In addition, it supports a wide range of other OAuth2 related specifications for interoperability and security (such as Pushed Authorization Requests, Demonstrating Proof of Possesion, and PKCE).

Having experience with integration of these standards into another OWF project, Credo, we were able to create a lower-level reusable library that handles the complex parts of the specification, while still allowing full control over the full flow.

In the coming months this project will be extended with support for OpenID for Verifiable Presentations and related specifications.

The goal of this library is to stay as agnostic as possible to the credential formats being used. This allows to keep the dependencies minimal, while also making it less opiniated. Depdning libraries or frameworks (such as Credo) can provide the needed credential formats, crypto suites, and persistance.
TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved
TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved

The library was created by Animo as part of the SPRIN-D Funke wallet competition.

# Alignment with the OpenWallet Foundation Mission

The DCQL library provides a reusable library that is crucial to wallet interoperability. It is implementing the standards that are being adopted as part of the EU Digital Identity Wallet, as well as other regions in the world (such as California's drivers license project which also supports OID4VC).
Copy link

@regiseloi-idlab regiseloi-idlab Dec 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggesting changing "The DCQL library" to "OID4VC TypeScript".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doh 🤦 thanks a lot. This is what you get when writing three proposals at the same time

TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved

The library is already being used by Credo, which is part of the reason why we think it's important this library is also contributed to OWF rather than managed by Animo.

# Code of Conduct

Will adopt OWF code of conduct.

# TAC Sponsor

- TDB
TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved

# Project License

Apache 2.0

# Source Control

Project already exists on Github: https://github.com/animo/oid4vc-ts. Slug should become oid4vc-ts once transferred.

# Issue Tracker

https://github.com/animo/oid4vc-ts/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen

# External Dependencies

- [Valibot](https://github.com/fabian-hiller/valibot) - MIT
- [Buffer](https://github.com/feross/buffer) - MIT

# Release Methodology

Packages are relased on NPM, OWF will be added as owner on NPM:

- https://www.npmjs.com/package/@animo-id/oid4vci
- https://www.npmjs.com/package/@animo-id/oauth2
- https://www.npmjs.com/package/@animo-id/oauth2-utils

The scope (`@animo-id/`) should be changed. As `@oid4vc` is taken we have reserved the `@openid4vc` scope on NPM.

We use changesets to write changelog entries, and a bot will create a pull request for new releases. Once the PR is merged a new release will be created automatically. We have used this method extensively and it automates 99% of the process, and works well with keeping restrictions of bots pushing to main (you can use the normal PR approval and merge process to trigger releases). Example: https://github.com/animo/oid4vc-ts/pull/8

# Initial Maintainers

- Timo Glastra - [@TimoGlastra](https://github.com/TimoGlastra) - Creator of the library, maintainer of Credo (that leverages this project)
- Martin Auer - [@auer-martin](https://github.com/auer-martin) - maintainer of Credo, experienced with OpenID4VC standards
- Berend Sliedrecht - [@berendsliedrecht](https://github.com/berendsliedrecht) - maintainer of Credo
TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved

# Proposed Project Governance

The projects will mostly be managed by the existing Credo maintainers. Large decisions will be initially discussed as part of the Credo working group calls, but we would still like a dedicated discord channel. Later if desired by the community, the project can be more separated from the Credo project.

The design of the project is mostly led by Timo Glastra, who created this library for Animo as part of the SPRIN-D Funke wallet competition. Timo Glastra will also moslty take on general maintenance and releases of the library. Although Martin and Timo are both associated with Animo, Martin should be seen as indepdant mainainer of this library, not associated with Animo.
TimoGlastra marked this conversation as resolved.
Show resolved Hide resolved

# Financial Sponsorship

The development of this library was funded by Animo, which in turn received funding through the SPRIN-D Funke wallet competition.

# Infrastructure

- Github repo
- Discord channel
- Github actions
- NPM