Skip to content

Commit 7b6004a

Browse files
committed
feat: update credential definition and holder registration documentation to clarify member_of mapping status
1 parent 08fd559 commit 7b6004a

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

docs/usage/dcp-api-walkthrough/06_create_credential_definition.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,14 @@ curl -X POST "${ISSUER_URL}/api/admin/v1alpha/participants/${ISSUER_CONTEXT}/cre
2929
"input": "holder_id",
3030
"output": "credentialSubject.holderIdentifier",
3131
"required": true
32-
},
33-
{
34-
"input": "member_of",
35-
"output": "credentialSubject.memberOf",
36-
"required": true
3732
}
3833
],
3934
"validity": 10000000000000
4035
}'
4136
```
4237

38+
> **⚠️ `member_of` mapping is not yet functional:** The default `holders` table schema does not include a `member_of` column, so this mapping will fail at issuance time. See [Step 7](07_register_holder.md) for details.
39+
4340
## Response
4441

4542
**201 Created**: Empty body on success.

docs/usage/dcp-api-walkthrough/07_register_holder.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,25 @@ curl -X POST "${ISSUER_URL}/api/admin/v1alpha/participants/${ISSUER_CONTEXT}/hol
3535

3636
The credential definition mappings defined in [Step 6](06_create_credential_definition.md) read directly from **columns in the `holders` database table**. The holder registration (`holderId`, `name`) populates that table, but the mapped fields (`holder_id`, `member_of`) are columns you must also populate in the database for each holder row.
3737

38-
| Mapping (`input``output`) | Source | Credential field |
39-
|---|---|---|
40-
| `did``credentialSubject.id` | Holder's DID | Subject identifier |
41-
| `holder_id``credentialSubject.holderIdentifier` | `holders.holder_id` column | Holder's BPNL |
42-
| `member_of``credentialSubject.memberOf` | `holders.member_of` column | BPN of the organization the holder is a member of |
38+
| Mapping (`input``output`) | Source | Credential field | Status |
39+
|---|---|---|---|
40+
| `did``credentialSubject.id` | Holder's DID | Subject identifier | ✅ Available |
41+
| `holder_id``credentialSubject.holderIdentifier` | `holders.holder_id` column | Holder's BPNL | ✅ Available |
42+
| `member_of``credentialSubject.memberOf` | `holders.member_of` column | BPN of the organization the holder is a member of | ⚠️ Not available — see note below |
4343

4444
For **MembershipCredentials** in the Catena-X dataspace, the `holders` table row should look like:
4545

46-
| Column | Example value | Maps to |
47-
|---|---|---|
48-
| `did` | `did:web:identity-hub.example.com` | `credentialSubject.id` |
49-
| `holder_id` | `BPNL00000003AYRE` | `credentialSubject.holderIdentifier` |
50-
| `member_of` | `Catena-X` | `credentialSubject.memberOf` |
46+
| Column | Example value | Maps to | Status |
47+
|---|---|---|---|
48+
| `did` | `did:web:identity-hub.example.com` | `credentialSubject.id` | ✅ Available |
49+
| `holder_id` | `BPNL00000003AYRE` | `credentialSubject.holderIdentifier` | ✅ Available |
50+
| `member_of` | `Catena-X` | `credentialSubject.memberOf` | ⚠️ Not available |
51+
52+
> **⚠️ `member_of` is not yet available:** The default `holders` table schema (defined in the upstream IssuerService) does not include a `member_of` column. The table only exposes: `holder_id`, `did`, `holder_name`, `anonymous`, `properties`. Adding `member_of` as a mappable field would require either:
53+
> - A custom database migration to add the column to the `holders` table, **or**
54+
> - An upstream change to the `Holder` model and its SQL schema.
55+
>
56+
> This is a known limitation. A feature request or upstream contribution would be needed to support `credentialSubject.memberOf` natively.
5157
5258
The resulting issued credential will contain:
5359

0 commit comments

Comments
 (0)