Skip to content

Commit e54cb42

Browse files
authored
docs: add ENVITED-X, EVES, and harbour context across documentation (#36)
Add missing contextual information throughout the documentation: - Create docs/specifications.md citing EVES-008 and EVES-009 with external standards table - Rewrite docs/index.md with ENVITED-X Data Space introduction, harbour-credentials architecture diagram, EVES spec references, and ASCS e.V. operator attribution - Rewrite docs/credentials/index.md with EVES-008 issuance order, harbourCredential explanation, and identity.ascs.digital deployment - Add EVES-008 section references and identity.ascs.digital links to participant, administrator, and user credential pages - Add ENVITED-X context and harbour relationship to credential-relationships.md - Add EVES-009 reference and HARBOUR_DELEGATE format to harbour integration page - Add EVES-008 citation to credential data model reference - Fix mkdocs.yml: update site name/URL to simpulse-id-credentials, add Specifications and Architecture nav sections Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
1 parent ea7b18f commit e54cb42

10 files changed

Lines changed: 145 additions & 51 deletions

File tree

docs/credential-relationships.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
This document explains how the five SimpulseID credential types relate to each other,
44
the entities they describe, and the semantic meaning of `member` vs `memberOf`.
55

6+
SimpulseID serves as the identity layer for the [ENVITED-X Data Space](https://staging.envited-x.net),
7+
operated by [ASCS e.V.](https://ascs.digital) at [identity.ascs.digital](https://identity.ascs.digital).
8+
The credential relationships are specified in [EVES-008 §2](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md).
9+
All credentials are built on [harbour-credentials](https://github.com/reachhaven/harbour-credentials),
10+
which provides the Gaia-X compliance baseline via the `harbourCredential` IRI reference pattern.
11+
612
## Entity Graph
713

814
The ENVITED ecosystem has four kinds of entities and five credential types that

docs/credentials/administrator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# AdministratorCredential
22

3-
The **AdministratorCredential** attests to a natural person with elevated permissions within the SimpulseID ecosystem. Administrators can manage organizational credentials, approve memberships, and perform privileged operations.
3+
The **AdministratorCredential** attests to a natural person with elevated permissions within the [ENVITED-X Data Space](https://staging.envited-x.net). Administrators can manage organizational credentials, approve memberships, and perform privileged operations. Issued by [ASCS e.V.](https://ascs.digital) at [identity.ascs.digital](https://identity.ascs.digital). Specified in [EVES-008 §2.2](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md).
44

55
## Overview
66

docs/credentials/index.md

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,62 @@
11
# Credential Types
22

3-
This section documents the verifiable credential types defined in this repository.
3+
SimpulseID defines five W3C Verifiable Credential types for identity and membership management in the [ENVITED-X Data Space](https://staging.envited-x.net). All credentials are issued by [ASCS e.V.](https://ascs.digital) as the trust anchor, deployed at [identity.ascs.digital](https://identity.ascs.digital).
4+
5+
Each credential type extends `HarbourCredential` from the [harbour-credentials](https://github.com/reachhaven/harbour-credentials) base schema. Credential subjects carry a mandatory `harbourCredential` IRI linking to a Harbour Gaia-X compliance credential, which provides the baseline of trust (Gaia-X `LegalPerson` or `NaturalPerson` attestation).
6+
7+
The credential types and their lifecycle are specified in [EVES-008](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md). Evidence VPs follow [EVES-009](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-009/eves-009.md).
48

59
## Available Types
610

7-
| Credential Type | Description | Schema |
8-
|-----------------|-------------|--------|
9-
| [ParticipantCredential](participant.md) | Organization/company identity | `simpulseid:ParticipantCredential` |
10-
| [UserCredential](user.md) | Individual user identity | `simpulseid:UserCredential` |
11-
| [AdministratorCredential](administrator.md) | Admin role attestation | `simpulseid:AdministratorCredential` |
12-
| [Membership Credentials](membership.md) | ASCS membership programs | `simpulseid:AscsBaseMembershipCredential`, `simpulseid:AscsEnvitedMembershipCredential` |
11+
| Credential Type | Description | Subject ID | Schema |
12+
|-----------------|-------------|------------|--------|
13+
| [ParticipantCredential](participant.md) | Organization identity (gx:LegalPerson) | `did:ethr` | `simpulseid:ParticipantCredential` |
14+
| [AdministratorCredential](administrator.md) | Elevated-permission natural person | `did:ethr` | `simpulseid:AdministratorCredential` |
15+
| [UserCredential](user.md) | Standard natural person | `did:ethr` | `simpulseid:UserCredential` |
16+
| [Base Membership](membership.md) | ASCS e.V. base membership | `urn:uuid:` | `simpulseid:AscsBaseMembershipCredential` |
17+
| [ENVITED Membership](membership.md) | ENVITED research cluster membership | `urn:uuid:` | `simpulseid:AscsEnvitedMembershipCredential` |
18+
19+
## Issuance Order (per EVES-008 §2)
20+
21+
Credentials MUST be issued in the following order:
22+
23+
1. **ParticipantCredential** --- ASCS verifies the organization's legal identity
24+
2. **AscsBaseMembershipCredential** --- requires ParticipantCredential as prerequisite
25+
3. **AscsEnvitedMembershipCredential** (optional) --- requires BaseMembership as prerequisite
26+
4. **AdministratorCredential** / **UserCredential** --- issued to natural persons under a participant
1327

1428
## Schema Structure
1529

16-
All credentials follow the W3C Verifiable Credentials Data Model v2.0:
30+
All credentials follow the W3C Verifiable Credentials Data Model v2.0 with three mandatory `@context` entries:
1731

1832
```json
1933
{
2034
"@context": [
2135
"https://www.w3.org/ns/credentials/v2",
22-
"<domain-context>"
36+
"https://w3id.org/reachhaven/harbour/core/v1/",
37+
"https://w3id.org/ascs-ev/simpulse-id/v1/"
2338
],
2439
"type": ["VerifiableCredential", "<credential-type>"],
25-
"issuer": "<did>",
40+
"issuer": "<issuer-did>",
2641
"validFrom": "<iso-datetime>",
2742
"credentialSubject": {
28-
"id": "<subject-did>",
29-
// type-specific claims
30-
}
43+
"id": "<subject-did-or-urn>",
44+
"type": "<subject-type>",
45+
"harbourCredential": "<harbour-gx-credential-urn>"
46+
},
47+
"credentialStatus": [{"type": "harbour:CRSetEntry", "statusPurpose": "revocation"}],
48+
"evidence": [{"type": ["harbour:CredentialEvidence"], "verifiablePresentation": "..."}]
3149
}
3250
```
3351

3452
## LinkML Definitions
3553

36-
Credential types are defined in LinkML YAML files under `linkml/`:
37-
38-
- `linkml/simpulseid-core.yaml` — Subject types (Participant, Administrator, User, Memberships)
39-
- `linkml/simpulseid-credentials.yaml` — Credential type definitions (is_a: HarbourCredential)
40-
- `linkml/importmap.json` — Import resolution for harbour-credentials and Gaia-X schemas
54+
Credential types are defined in a single LinkML schema:
4155

42-
## Generating Artifacts
56+
- `linkml/simpulseid-core.yaml` --- All subject types, credential types, program metadata, and enums
57+
- `linkml/importmap.json` --- Import resolution for harbour-credentials and Gaia-X schemas
4358

44-
After modifying LinkML schemas, regenerate artifacts:
59+
After modifying schemas, regenerate artifacts:
4560

4661
```bash
4762
make generate

docs/credentials/participant.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ParticipantCredential
22

3-
The **ParticipantCredential** attests to an organization's identity within the SimpulseID ecosystem. It is the foundational credential for legal entities such as companies, research institutions, or associations.
3+
The **ParticipantCredential** attests to an organization's identity within the [ENVITED-X Data Space](https://staging.envited-x.net). It is the foundational credential for legal entities such as companies, research institutions, or associations. Issued by [ASCS e.V.](https://ascs.digital) as the trust anchor, deployed at [identity.ascs.digital](https://identity.ascs.digital). Specified in [EVES-008 §2.1](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md).
44

55
## Overview
66

docs/credentials/user.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# UserCredential
22

3-
The **UserCredential** attests to a natural person's identity within the SimpulseID ecosystem. It is used for standard users such as employees, researchers, or individual participants.
3+
The **UserCredential** attests to a natural person's identity within the [ENVITED-X Data Space](https://staging.envited-x.net). It is used for standard users such as employees, researchers, or individual participants. Issued by [ASCS e.V.](https://ascs.digital) at [identity.ascs.digital](https://identity.ascs.digital). Specified in [EVES-008 §2.3](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md).
44

55
## Overview
66

docs/index.md

Lines changed: 48 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,61 @@
1-
# Credentials Documentation
1+
# SimpulseID Credentials
22

3-
Welcome to the **Credentials** repository documentation. This repository contains verifiable credential schemas and artifacts for the ENVITED-X ecosystem.
3+
SimpulseID is the credential and identity framework for the **ENVITED-X Data Space**, operated by the [Automotive Solution Center for Simulation e.V. (ASCS e.V.)](https://ascs.digital). It is deployed at [identity.ascs.digital](https://identity.ascs.digital).
44

5-
## Overview
5+
SimpulseID enables verifiable onboarding of organizations and users, program membership verification, and secure authentication across ENVITED-X services using W3C Verifiable Credentials v2 and `did:ethr` identifiers.
66

7-
This repository provides:
7+
## Architecture
88

9-
- **LinkML Schemas** — Credential type definitions in LinkML format
10-
- **Generated Artifacts** — OWL ontologies, SHACL shapes, JSON-LD contexts
11-
- **Example Credentials** — Sample verifiable credentials for testing
12-
- **Validation Tools** — SHACL validation via ontology-management-base
9+
SimpulseID is built as a **domain layer on top of [harbour-credentials](https://github.com/reachhaven/harbour-credentials)** (by [Haven](https://www.reachhaven.com)). Harbour provides the ecosystem-agnostic cryptographic infrastructure (signing, verification, SD-JWT, delegation), while SimpulseID adds ENVITED-specific credential types, membership chains, and Gaia-X Trust Framework alignment.
10+
11+
```text
12+
+------------------------------------------------------+
13+
| SimpulseID (this repo) |
14+
| - 5 credential types + subject schemas |
15+
| - Membership chains, program metadata |
16+
| - ENVITED-X governance (ASCS e.V.) |
17+
+------------------------------------------------------+
18+
| Harbour Credentials (submodule) |
19+
| - W3C VC v2 base types (HarbourCredential, CRSet) |
20+
| - Gaia-X LegalPerson / NaturalPerson composition |
21+
| - JOSE signing, SD-JWT-VC, delegation evidence |
22+
| - did:ethr key management |
23+
+------------------------------------------------------+
24+
```
25+
26+
Each SimpulseID credential subject carries a mandatory `harbourCredential` IRI linking to a Harbour Gaia-X compliance credential, which serves as the baseline of trust.
27+
28+
## Specifications
29+
30+
This repository is the reference implementation of two ENVITED-X Ecosystem Specifications (EVES):
31+
32+
- **[EVES-008](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md)** --- SimpulseID Credential and Identity Framework
33+
- **[EVES-009](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-009/eves-009.md)** --- Evidence-Based Consent Using Verifiable Presentations
34+
35+
See the [Specifications](specifications.md) page for details and external standards.
36+
37+
## Credential Types
38+
39+
All credentials are issued by ASCS e.V. as the trust anchor for the ENVITED-X Data Space.
40+
41+
| Type | Description | Issuer |
42+
|------|-------------|--------|
43+
| [ParticipantCredential](credentials/participant.md) | Organization identity (gx:LegalPerson) | ASCS e.V. |
44+
| [AdministratorCredential](credentials/administrator.md) | Elevated-permission natural person | ASCS e.V. |
45+
| [UserCredential](credentials/user.md) | Standard natural person | ASCS e.V. |
46+
| [Base Membership](credentials/membership.md) | ASCS e.V. base membership | ASCS e.V. |
47+
| [ENVITED Membership](credentials/membership.md) | ENVITED research cluster membership | ASCS e.V. |
1348

1449
## Quick Links
1550

1651
- [Installation](getting-started/installation.md)
1752
- [Quick Start](getting-started/quickstart.md)
18-
- [Credential Types](credentials/index.md)
53+
- [Credential Relationships](credential-relationships.md)
1954
- [Examples](examples/index.md)
20-
21-
## Credential Types
22-
23-
| Type | Description |
24-
|------|-------------|
25-
| [ParticipantCredential](credentials/participant.md) | Organization/company credentials |
26-
| [UserCredential](credentials/user.md) | Individual user credentials |
27-
| [AdministratorCredential](credentials/administrator.md) | Admin role credentials |
28-
| [Membership Credentials](credentials/membership.md) | ASCS base and ENVITED membership attestations |
55+
- [Specifications](specifications.md)
2956

3057
## Related Projects
3158

32-
- [harbour-credentials](https://github.com/ASCS-eV/harbour-credentials) — Cryptographic signing library
33-
- [ontology-management-base](https://github.com/ASCS-eV/ontology-management-base) — Validation pipeline
59+
- [harbour-credentials](https://github.com/reachhaven/harbour-credentials) --- Cryptographic signing library (by Haven)
60+
- [ontology-management-base](https://github.com/ASCS-eV/ontology-management-base) --- SHACL validation pipeline
61+
- [EVES](https://github.com/ASCS-eV/EVES) --- ENVITED-X Ecosystem Specifications

docs/integration/harbour.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ evidence_vp_jwt = sign_vp_jose(
6969
)
7070
```
7171

72-
The nonce is computed as a SHA-256 hash of the issuer's payload, binding the evidence to the specific credential issuance per [OID4VP §8.4](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html).
72+
The nonce uses the `HARBOUR_DELEGATE` challenge format from harbour's delegation module, binding the evidence to the specific credential issuance. The challenge is `<random> HARBOUR_DELEGATE <SHA-256(TransactionData)>` with the `credential.issue` action type. This follows [EVES-009](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-009/eves-009.md) and [OID4VP §8.4](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html).
7373

7474
## SD-JWT-VC Structured Selective Disclosure
7575

docs/reference/credential-model.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Credential Data Model
22

33
This page documents how SimpulseID credential types extend the
4-
[Harbour Credentials](https://ascs-ev.github.io/harbour-credentials/schema/credential-model/)
5-
base model. For the base class hierarchy and Gaia-X composition pattern,
4+
[Harbour Credentials](https://reachhaven.github.io/harbour-credentials/schema/credential-model/)
5+
base model, as specified in [EVES-008 §3.3](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md).
6+
For the base class hierarchy and Gaia-X composition pattern,
67
see the harbour-credentials documentation.
78

89
## Schema File Structure

docs/specifications.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Specifications
2+
3+
SimpulseID implements the following ENVITED-X Ecosystem Specifications (EVES), maintained at [github.com/ASCS-eV/EVES](https://github.com/ASCS-eV/EVES).
4+
5+
## EVES-008: SimpulseID Credential and Identity Framework
6+
7+
[EVES-008](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-008/eves-008.md) defines the identity, membership, and credential architecture for the ENVITED-X Data Space. It specifies:
8+
9+
- Five credential types (Participant, Administrator, User, Base Membership, ENVITED Membership)
10+
- `did:ethr` identifiers anchored on Base (ERC-1056) with P-256 key management
11+
- JSON-LD context ordering and `w3id.org` persistent identifier resolution
12+
- Credential subject semantics (`member` vs `memberOf`, `urn:uuid:` for memberships)
13+
- Revocation via `harbour:CRSetEntry`
14+
- Schema-first approach using LinkML as the single source of truth
15+
16+
This repository is the reference implementation of EVES-008.
17+
18+
## EVES-009: Evidence-Based Consent Using Verifiable Presentations
19+
20+
[EVES-009](https://github.com/ASCS-eV/EVES/blob/main/EVES/EVES-009/eves-009.md) defines the protocol for generating and verifying cryptographic evidence of user consent. SimpulseID credentials use this protocol for evidence VPs:
21+
22+
- Evidence VPs use the `HARBOUR_DELEGATE` challenge format with the `credential.issue` action type
23+
- The challenge binds consent to a specific credential via SHA-256 over canonical `TransactionData`
24+
- Verification follows OID4VP with KB-JWT `transaction_data_hashes` for message binding
25+
- SD-JWT VCs are the recommended format for selective disclosure
26+
27+
The evidence protocol is implemented by [harbour-credentials](https://github.com/reachhaven/harbour-credentials) (`delegation.py`, `sd_jwt_vp.py`). SimpulseID uses it via `src/sign_examples.py`.
28+
29+
## External Standards
30+
31+
| Standard | Version | Usage |
32+
|----------|---------|-------|
33+
| [W3C VC Data Model](https://www.w3.org/TR/vc-data-model-2.0/) | v2.0 | Credential envelope structure |
34+
| [W3C DID Core](https://www.w3.org/TR/did-core/) | v1.1 | Decentralized identifier resolution |
35+
| [did:ethr Method](https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md) || On-chain identity via ERC-1056 |
36+
| [Gaia-X Trust Framework](https://docs.gaia-x.eu/) | 25.11 (Loire) | LegalPerson/NaturalPerson compliance |
37+
| [OID4VP](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html) | 1.0 | Evidence VP presentation protocol |
38+
| [RFC 9901 (SD-JWT-VC)](https://www.rfc-editor.org/rfc/rfc9901) || Selective disclosure credentials |
39+
| [LinkML](https://linkml.io/) || Schema definition language |
40+
| [schema.org](https://schema.org/) || Vocabulary for program metadata |

mkdocs.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
site_name: Credentials Documentation
2-
site_description: Verifiable credential schemas and artifacts for the ENVITED-X ecosystem
3-
site_url: https://ascs-ev.github.io/credentials/
4-
repo_url: https://github.com/ASCS-eV/credentials
5-
repo_name: ASCS-eV/credentials
1+
site_name: SimpulseID Credentials
2+
site_description: Credential and identity framework for the ENVITED-X Data Space
3+
site_url: https://ascs-ev.github.io/simpulse-id-credentials/
4+
repo_url: https://github.com/ASCS-eV/simpulse-id-credentials
5+
repo_name: ASCS-eV/simpulse-id-credentials
66

77
theme:
88
name: material
@@ -53,6 +53,7 @@ markdown_extensions:
5353

5454
nav:
5555
- Home: index.md
56+
- Specifications: specifications.md
5657
- Getting Started:
5758
- Installation: getting-started/installation.md
5859
- Quick Start: getting-started/quickstart.md
@@ -62,6 +63,9 @@ nav:
6263
- User: credentials/user.md
6364
- Administrator: credentials/administrator.md
6465
- Membership: credentials/membership.md
66+
- Architecture:
67+
- Credential Relationships: credential-relationships.md
68+
- DID Methods: did-methods.md
6569
- Examples:
6670
- Gallery: examples/index.md
6771
- Integration:

0 commit comments

Comments
 (0)