A template skeleton repo for (non-Bedrock) JS libraries that run in Node.js and in the browser.
Implementations added to this package are tested against various test suites in order to demonstrate interoperability.
Please do not commit any sensitive materials such as oauth2 client secret or client secrets used for signing zcaps or HTTP Signature Headers.
- Node.js 16+ is required.
To install via NPM:
npm install w3c-ccg/vc-api-test-suite-implementations
To install locally (for development):
git clone https://github.com/w3c-ccg/vc-api-test-suite-implementations.git
cd vc-api-test-suite-implementations
npm install
Please add or correct implementations in the ./implementations dir.
Implementations are json in the following form:
{
"name": "My Company",
"implementation": "My Implementation Name",
"oauth2": {
"clientId": "bar",
"clientSecret": "CLIENT_SECRET_MY_COMPANY",
"tokenAudience": "https://my.product.net",
"tokenEndpoint": "https://my.product.auth0.net/oauth/token"
},
"issuers": [{
"id": "urn:uuid:my:implementation:issuer:id",
"endpoint": "https://my.product.net/issuers/foo/credentials/issue",
"method": "POST",
"zcap": {
"capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:4d44084c-334e-46dc-ac23-5e26f75262b6\",\"controller\":\"did:key:zFoo\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%2Fissuers%2Fz19wCeJafpsTzvA6hZksz7TYF\",\"invocationTarget\":\"https://my.implementation.net/issuers/z19wCeJafpsTzvA6hZksz7TYF/credentials/issue\",\"expires\":\"2022-05-29T17:26:30Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2022-02-28T17:26:30Z\",\"verificationMethod\":\"did:key:z6Mkk2x1J4jCmaHDyYRRW1NB7CzeKYbjo3boGfRiefPzZjLQ#z6Mkk2x1J4jCmaHDyYRRW1NB7CzeKYbjo3boGfRiefPzZjLQ\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%2Fissuers%2Fz19wCeJafpsTzvA6hZksz7TYF\"],\"proofValue\":\"zBar\"}}",
"keySeed": "KEY_SEED_DB"
},
"tags": ["VC-HTTP-API", "OAUTH2"]
}],
"verifiers": [{
"id": "https://my.product.net/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR",
"endpoint": "https://my.product.net/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR/credentials/verify",
"method": "POST",
"zcap": {
"capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:41473f9f-9e44-4ac9-9ac2-c86a6f695703\",\"controller\":\"did:key:zFoo\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%3A40443%2Fverifiers%2Fz19uokPn3b1Z4XDbQSHo7VhFR\",\"invocationTarget\":\"https://my.implementation.net/verifiers/zBar/credentials/verify\",\"expires\":\"2023-03-17T17:39:49Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2022-03-17T17:39:49Z\",\"verificationMethod\":\"did:key:zFoo#zBar\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fmy.application.net%2Fverifiers%2FzFoo\"],\"proofValue\":\"zBar\"}}",
"keySeed": "KEY_SEED_DB"
},
"tags": ["VC-HTTP-API", "OAUTH2"]
}]
}Please note: implementations may have security using oauth2 or zcaps, but not both. Implementations may also contain no security (do not add a OAUTH2 or ZCAP section in that case).
If you need to add implementations for endpoints running locally you may add a config file in the root dir of your test project:
.vcApiTestImplementationsConfig.cjs
That file must be a common js module that exports an array of implementations:
// file .vcApiTestImplementationsConfig.cjs
module.exports = [{
"name": "My Company",
"implementation": "My Implementation Name",
"issuers": [{
"id": "urn:uuid:my:implementation:issuer:id",
"endpoint": "https://localhost:40443/issuers/foo/credentials/issue",
"method": "POST",
"tags": ["VC-HTTP-API", "localhost"]
}],
"verifiers": [{
"id": "https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR",
"endpoint": "https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR/credentials/verify",
"method": "POST",
"tags": ["VC-HTTP-API", "localhost"]
}]
}];Tags tell the test suites which tests your issuer, verifiers, and status lists should be run on.
vc-api - This tag will run the vc-api-issuer tests on your issuer and the vc-api-verifier tests on your verifier.
Ed25519Signature2020 - This tag will run the Ed25519 tests on either your issuer and/or verifier.
StatusList2021 - This tag will run the Status List 2021 tests on your issuer and/or verifier.
did-key - This tag will run the DID Key Test Suite on your did resolver endpoint.
ecdsa-2019 - This tag will run the VC Data Integrity ECDSA Test Suite on your issuer and verifier endpoints.
eddsa-2022 - This tag will run the VC Data Integrity EDDSA Test Suite on your issuer and verifier endpoints.
vc2.0 - This tag will run the VC Data Model 2.0 Test Suite on your issuer and verifier endpoints.
See the contribute file!
PRs accepted.
If editing the Readme, please conform to the standard-readme specification.
Commercial support for this library is available upon request from Digital Bazaar: support@digitalbazaar.com
New BSD License (3-clause) © Digital Bazaar