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

Implement New Credential Issuance Schema in IAM Server #1540

Closed
nutrina opened this issue Aug 3, 2023 · 1 comment · Fixed by #1662
Closed

Implement New Credential Issuance Schema in IAM Server #1540

nutrina opened this issue Aug 3, 2023 · 1 comment · Fixed by #1662
Assignees

Comments

@nutrina
Copy link
Collaborator

nutrina commented Aug 3, 2023

User Story:

As a developer,
I want to create and deploy a version of the IAM server that is capable of issuing credentials in the new format and adjust the on-chain issuance accordingly,
So that I can test against this production deployment and deploy updates to the Passport application that use the new stamp schema.

Acceptance Criteria

GIVEN I am a user of the IAM service
WHEN I make a request for a challenge credential
THEN I get back a valid challenge credential using the new signature (as required in the new VC format)

AND

GIVEN I am a user of the IAM service
WHEN I make a request for verifying a user's claim
AND if I present a valid challenge signature
THEN I get back a valid credential in the new schema
AND that credential has the new proof / signature type EthereumEip712Signature2021
AND the VCs hash is created with a separate key (that will be in the old format)

Product & Design Links:

Example implementation for issuing credentials

Tech Details:

{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://w3id.org/vc/status-list/2021/v1"
  ],
  "type": [
    "VerifiableCredential"
  ],
  "credentialSubject": {
    "id": "did:pkh:eip155:1:0x12FeD9f987bc340c6bE43fD80aD641E8cD740682",
    "provider": "Twitter",
    "metaPointer": "https://github.com/gitcoinco/passport-scorer/blob/main/api/scorer/settings/gitcoin_passport_weights.py",
    "customInfo": {
      "field1": "value"
    },
    "hash": "v0.0.0:AjcRjxx7Hp3PKPSNwPeBJjR21pLyA14CVeQ1XijzxUc=",
    "@context": {
      "customInfo": "https://schema.org/Thing",
      "hash": "https://schema.org/Text",
      "metaPointer": "https://schema.org/URL",
      "provider": "https://schema.org/Text"
    }
  },
  "issuer": "did:ethr:0xd6fc34345bc8c8e5659a35bed9629d5558d48c4e",
  "issuanceDate": "2022-07-19T10:42:24.883Z",
  "proof": {
    "@context": "https://w3id.org/security/suites/eip712sig-2021/v1",
    "type": "EthereumEip712Signature2021",
    "proofPurpose": "assertionMethod",
    "proofValue": "0xe0d7dd8ff59a575df3212ecfbbea04dc3364dd5d0b00d3a09115dd6f814fb85c2ca535560ba14bd4d93ff49d20b7f7a21c887afd1403ef19b386e5f436058c071b",
    "verificationMethod": "did:ethr:0xd6fc34345bc8c8e5659a35bed9629d5558d48c4e#controller",
    "created": "2023-08-03T08:09:18.969Z"
  },
  "expirationDate": "2022-10-17T10:42:24.883Z",
  "credentialStatus": {
    "id": "https://example.edu/credentials/status/3#94567",
    "type": "StatusList2021Entry",
    "statusPurpose": "revocation",
    "statusListIndex": "94567",
    "statusListCredential": "https://example.edu/credentials/status/3"
  }
}
  • Create a new endpoint in the IAM server to issue stamps using the new schema (please also consider the challenge credential)
  • Update the issuing of stamps on-chain. Create a new endpoint that delivers the new payload required for the on-chain stamps.
  • The hash of the stamps should be created with the same key as before

Open Questions:

  • What are the specific requirements for the new endpoint in the IAM server?
  • What changes are needed for the on-chain stamp issuance?

Notes/Assumptions:

  • The functionality for the new stamp schema should co-exist with the old stamp schema but preferably hosted on different paths.
  • Worst case: we can easily roll back the Passport deployments without the need to roll-back the IAM (since the IAM offers both functionalities)
  • The cleanup should be performed 90 days after the go-live to ensure that there are no issues with the new system.
@nutrina nutrina added this to Passport Aug 3, 2023
@nutrina nutrina converted this from a draft issue Aug 3, 2023
@erichfi erichfi changed the title Update IAM to issue stamps in new format (new schema) Implement New Credential Issuance Schema in IAM Server Aug 3, 2023
@tim-schultz tim-schultz self-assigned this Aug 29, 2023
@tim-schultz tim-schultz moved this from Backlog to In Progress (WIP) in Passport Aug 29, 2023
@tim-schultz tim-schultz moved this from In Progress (WIP) to Blocked in Passport Sep 5, 2023
@nutrina
Copy link
Collaborator Author

nutrina commented Sep 5, 2023

It's on blocked just because waiting for review.

@tim-schultz tim-schultz moved this from Blocked to Product/UX Review in Passport Sep 6, 2023
@lucianHymer lucianHymer moved this from Product/UX Review to Ready to Deploy in Passport Sep 12, 2023
@erichfi erichfi moved this from Ready to Deploy to Done in Passport Sep 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants