@openvtc/trust-tasks 0.12.9 → 0.12.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/vtc/_shared/0.1/endorsement.d.ts +1 -1
- package/dist/vtc/ceremonies/list/0.1/payload.d.ts +22 -0
- package/dist/vtc/ceremonies/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/ceremonies/list/0.1/payload.js +8 -0
- package/dist/vtc/ceremonies/list/0.1/payload.js.map +1 -1
- package/dist/vtc/community/profile/show/0.1/payload.d.ts +81 -22
- package/dist/vtc/community/profile/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/community/profile/show/0.1/payload.js +34 -8
- package/dist/vtc/community/profile/show/0.1/payload.js.map +1 -1
- package/dist/vtc/community/profile/update/0.1/payload.d.ts +81 -22
- package/dist/vtc/community/profile/update/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/community/profile/update/0.1/payload.js +34 -8
- package/dist/vtc/community/profile/update/0.1/payload.js.map +1 -1
- package/dist/vtc/endorsements/issue/0.1/payload.d.ts +65 -65
- package/dist/vtc/endorsements/issue/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/endorsements/issue/0.1/payload.js +36 -32
- package/dist/vtc/endorsements/issue/0.1/payload.js.map +1 -1
- package/dist/vtc/endorsements/list/0.1/payload.d.ts +41 -61
- package/dist/vtc/endorsements/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/endorsements/list/0.1/payload.js +24 -30
- package/dist/vtc/endorsements/list/0.1/payload.js.map +1 -1
- package/dist/vtc/endorsements/show/0.1/payload.d.ts +41 -61
- package/dist/vtc/endorsements/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/endorsements/show/0.1/payload.js +24 -30
- package/dist/vtc/endorsements/show/0.1/payload.js.map +1 -1
- package/dist/vtc/install/claim/finish/0.2/payload.d.ts +271 -0
- package/dist/vtc/install/claim/finish/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/install/claim/finish/0.2/payload.js +152 -0
- package/dist/vtc/install/claim/finish/0.2/payload.js.map +1 -0
- package/dist/vtc/install/claim/start/0.1/payload.d.ts +18 -0
- package/dist/vtc/install/claim/start/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/install/claim/start/0.1/payload.js +5 -0
- package/dist/vtc/install/claim/start/0.1/payload.js.map +1 -1
- package/dist/vtc/install/claim/start/0.2/payload.d.ts +264 -0
- package/dist/vtc/install/claim/start/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/install/claim/start/0.2/payload.js +145 -0
- package/dist/vtc/install/claim/start/0.2/payload.js.map +1 -0
- package/dist/vtc/registry/diagnostics/0.1/payload.d.ts +491 -0
- package/dist/vtc/registry/diagnostics/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/registry/diagnostics/0.1/payload.js +260 -0
- package/dist/vtc/registry/diagnostics/0.1/payload.js.map +1 -1
- package/dist/vtc/website/files/list/0.1/payload.d.ts +24 -0
- package/dist/vtc/website/files/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/website/files/list/0.1/payload.js +10 -0
- package/dist/vtc/website/files/list/0.1/payload.js.map +1 -1
- package/dist/vtc/website/generations/list/0.1/payload.d.ts +48 -0
- package/dist/vtc/website/generations/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/website/generations/list/0.1/payload.js +20 -0
- package/dist/vtc/website/generations/list/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/vtc/_shared/0.1/endorsement.ts +1 -1
- package/src/vtc/ceremonies/list/0.1/payload.ts +14 -0
- package/src/vtc/community/profile/show/0.1/payload.ts +47 -10
- package/src/vtc/community/profile/update/0.1/payload.ts +47 -10
- package/src/vtc/endorsements/issue/0.1/payload.ts +45 -41
- package/src/vtc/endorsements/list/0.1/payload.ts +29 -39
- package/src/vtc/endorsements/show/0.1/payload.ts +29 -39
- package/src/vtc/install/claim/finish/0.2/payload.ts +193 -0
- package/src/vtc/install/claim/start/0.1/payload.ts +13 -0
- package/src/vtc/install/claim/start/0.2/payload.ts +189 -0
- package/src/vtc/registry/diagnostics/0.1/payload.ts +343 -0
- package/src/vtc/website/files/list/0.1/payload.ts +14 -0
- package/src/vtc/website/generations/list/0.1/payload.ts +28 -0
|
@@ -13,10 +13,21 @@ export interface Ext {
|
|
|
13
13
|
[k: string]: unknown | undefined;
|
|
14
14
|
}
|
|
15
15
|
export interface VTCCommunityProfileShowResponsePayload {
|
|
16
|
-
profile:
|
|
16
|
+
profile: CommunityProfileView;
|
|
17
17
|
ext?: Ext;
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* The community's profile as read, including the immutable `communityDid` an update cannot set.
|
|
21
|
+
*/
|
|
22
|
+
export interface CommunityProfileView {
|
|
23
|
+
/**
|
|
24
|
+
* The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update.
|
|
25
|
+
*/
|
|
26
|
+
communityDid: string;
|
|
27
|
+
/**
|
|
28
|
+
* When the community was created. Immutable, like `communityDid`.
|
|
29
|
+
*/
|
|
30
|
+
createdAt?: string;
|
|
20
31
|
name: string;
|
|
21
32
|
description?: string;
|
|
22
33
|
logoUrl?: string | null;
|
|
@@ -102,7 +113,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
102
113
|
],
|
|
103
114
|
"properties": {
|
|
104
115
|
"profile": {
|
|
105
|
-
"$ref": "#/$defs/
|
|
116
|
+
"$ref": "#/$defs/CommunityProfileView",
|
|
117
|
+
"description": "The community's profile as read, including the immutable `communityDid` an update cannot set."
|
|
106
118
|
},
|
|
107
119
|
"ext": {
|
|
108
120
|
"$ref": "#/$defs/Ext"
|
|
@@ -119,16 +131,28 @@ export const PAYLOAD_SCHEMA = {
|
|
|
119
131
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
120
132
|
}
|
|
121
133
|
},
|
|
122
|
-
"
|
|
123
|
-
"$anchor": "
|
|
124
|
-
"title": "
|
|
134
|
+
"CommunityProfileView": {
|
|
135
|
+
"$anchor": "communityProfileView",
|
|
136
|
+
"title": "CommunityProfileView",
|
|
125
137
|
"type": "object",
|
|
126
138
|
"additionalProperties": false,
|
|
139
|
+
"description": "A community profile **as read**: every member of CommunityProfile, plus the immutable identity a reader needs and an update must never set.\n\nCommunityProfile is the update-facing view and omits `communityDid` on purpose, so that a patch cannot re-point a community's identity. That is right for a payload and wrong for a response: a client holding a profile has no other way to learn which DID to verify that community's credentials against, and `community/profile/show` returning the update-facing view left the one member a consumer most needs undefined.\n\nSo reads get this and updates keep CommunityProfile. The split is the point — the immutability of `communityDid` is enforced by it being absent from the payload, not by prose asking implementers not to honour it.",
|
|
127
140
|
"required": [
|
|
141
|
+
"communityDid",
|
|
128
142
|
"name",
|
|
129
143
|
"language"
|
|
130
144
|
],
|
|
131
145
|
"properties": {
|
|
146
|
+
"communityDid": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"minLength": 1,
|
|
149
|
+
"description": "The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update."
|
|
150
|
+
},
|
|
151
|
+
"createdAt": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"format": "date-time",
|
|
154
|
+
"description": "When the community was created. Immutable, like `communityDid`."
|
|
155
|
+
},
|
|
132
156
|
"name": {
|
|
133
157
|
"type": "string",
|
|
134
158
|
"minLength": 1
|
|
@@ -234,7 +258,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
234
258
|
],
|
|
235
259
|
"properties": {
|
|
236
260
|
"profile": {
|
|
237
|
-
"$ref": "#/$defs/
|
|
261
|
+
"$ref": "#/$defs/CommunityProfileView",
|
|
262
|
+
"description": "The community's profile as read, including the immutable `communityDid` an update cannot set."
|
|
238
263
|
},
|
|
239
264
|
"ext": {
|
|
240
265
|
"$ref": "#/$defs/Ext"
|
|
@@ -251,16 +276,28 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
251
276
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
252
277
|
}
|
|
253
278
|
},
|
|
254
|
-
"
|
|
255
|
-
"$anchor": "
|
|
256
|
-
"title": "
|
|
279
|
+
"CommunityProfileView": {
|
|
280
|
+
"$anchor": "communityProfileView",
|
|
281
|
+
"title": "CommunityProfileView",
|
|
257
282
|
"type": "object",
|
|
258
283
|
"additionalProperties": false,
|
|
284
|
+
"description": "A community profile **as read**: every member of CommunityProfile, plus the immutable identity a reader needs and an update must never set.\n\nCommunityProfile is the update-facing view and omits `communityDid` on purpose, so that a patch cannot re-point a community's identity. That is right for a payload and wrong for a response: a client holding a profile has no other way to learn which DID to verify that community's credentials against, and `community/profile/show` returning the update-facing view left the one member a consumer most needs undefined.\n\nSo reads get this and updates keep CommunityProfile. The split is the point — the immutability of `communityDid` is enforced by it being absent from the payload, not by prose asking implementers not to honour it.",
|
|
259
285
|
"required": [
|
|
286
|
+
"communityDid",
|
|
260
287
|
"name",
|
|
261
288
|
"language"
|
|
262
289
|
],
|
|
263
290
|
"properties": {
|
|
291
|
+
"communityDid": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"minLength": 1,
|
|
294
|
+
"description": "The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update."
|
|
295
|
+
},
|
|
296
|
+
"createdAt": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"format": "date-time",
|
|
299
|
+
"description": "When the community was created. Immutable, like `communityDid`."
|
|
300
|
+
},
|
|
264
301
|
"name": {
|
|
265
302
|
"type": "string",
|
|
266
303
|
"minLength": 1
|
|
@@ -49,14 +49,25 @@ export interface Ext {
|
|
|
49
49
|
[k: string]: unknown | undefined;
|
|
50
50
|
}
|
|
51
51
|
export interface VTCCommunityProfileUpdateResponsePayload {
|
|
52
|
-
profile:
|
|
52
|
+
profile: CommunityProfileView;
|
|
53
53
|
/**
|
|
54
54
|
* Names of the profile members this update actually changed, in the wire spelling. Empty when the submitted values all matched what was already stored. Lets a caller distinguish a no-op from an applied change without diffing the returned profile against the one it sent.
|
|
55
55
|
*/
|
|
56
56
|
fieldsChanged?: string[];
|
|
57
57
|
ext?: Ext;
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
/**
|
|
60
|
+
* The community's profile as read, including the immutable `communityDid` an update cannot set.
|
|
61
|
+
*/
|
|
62
|
+
export interface CommunityProfileView {
|
|
63
|
+
/**
|
|
64
|
+
* The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update.
|
|
65
|
+
*/
|
|
66
|
+
communityDid: string;
|
|
67
|
+
/**
|
|
68
|
+
* When the community was created. Immutable, like `communityDid`.
|
|
69
|
+
*/
|
|
70
|
+
createdAt?: string;
|
|
60
71
|
name: string;
|
|
61
72
|
description?: string;
|
|
62
73
|
logoUrl?: string | null;
|
|
@@ -187,7 +198,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
187
198
|
],
|
|
188
199
|
"properties": {
|
|
189
200
|
"profile": {
|
|
190
|
-
"$ref": "#/$defs/
|
|
201
|
+
"$ref": "#/$defs/CommunityProfileView",
|
|
202
|
+
"description": "The community's profile as read, including the immutable `communityDid` an update cannot set."
|
|
191
203
|
},
|
|
192
204
|
"fieldsChanged": {
|
|
193
205
|
"type": "array",
|
|
@@ -211,16 +223,28 @@ export const PAYLOAD_SCHEMA = {
|
|
|
211
223
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
212
224
|
}
|
|
213
225
|
},
|
|
214
|
-
"
|
|
215
|
-
"$anchor": "
|
|
216
|
-
"title": "
|
|
226
|
+
"CommunityProfileView": {
|
|
227
|
+
"$anchor": "communityProfileView",
|
|
228
|
+
"title": "CommunityProfileView",
|
|
217
229
|
"type": "object",
|
|
218
230
|
"additionalProperties": false,
|
|
231
|
+
"description": "A community profile **as read**: every member of CommunityProfile, plus the immutable identity a reader needs and an update must never set.\n\nCommunityProfile is the update-facing view and omits `communityDid` on purpose, so that a patch cannot re-point a community's identity. That is right for a payload and wrong for a response: a client holding a profile has no other way to learn which DID to verify that community's credentials against, and `community/profile/show` returning the update-facing view left the one member a consumer most needs undefined.\n\nSo reads get this and updates keep CommunityProfile. The split is the point — the immutability of `communityDid` is enforced by it being absent from the payload, not by prose asking implementers not to honour it.",
|
|
219
232
|
"required": [
|
|
233
|
+
"communityDid",
|
|
220
234
|
"name",
|
|
221
235
|
"language"
|
|
222
236
|
],
|
|
223
237
|
"properties": {
|
|
238
|
+
"communityDid": {
|
|
239
|
+
"type": "string",
|
|
240
|
+
"minLength": 1,
|
|
241
|
+
"description": "The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update."
|
|
242
|
+
},
|
|
243
|
+
"createdAt": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"format": "date-time",
|
|
246
|
+
"description": "When the community was created. Immutable, like `communityDid`."
|
|
247
|
+
},
|
|
224
248
|
"name": {
|
|
225
249
|
"type": "string",
|
|
226
250
|
"minLength": 1
|
|
@@ -326,7 +350,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
326
350
|
],
|
|
327
351
|
"properties": {
|
|
328
352
|
"profile": {
|
|
329
|
-
"$ref": "#/$defs/
|
|
353
|
+
"$ref": "#/$defs/CommunityProfileView",
|
|
354
|
+
"description": "The community's profile as read, including the immutable `communityDid` an update cannot set."
|
|
330
355
|
},
|
|
331
356
|
"fieldsChanged": {
|
|
332
357
|
"type": "array",
|
|
@@ -350,16 +375,28 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
350
375
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
351
376
|
}
|
|
352
377
|
},
|
|
353
|
-
"
|
|
354
|
-
"$anchor": "
|
|
355
|
-
"title": "
|
|
378
|
+
"CommunityProfileView": {
|
|
379
|
+
"$anchor": "communityProfileView",
|
|
380
|
+
"title": "CommunityProfileView",
|
|
356
381
|
"type": "object",
|
|
357
382
|
"additionalProperties": false,
|
|
383
|
+
"description": "A community profile **as read**: every member of CommunityProfile, plus the immutable identity a reader needs and an update must never set.\n\nCommunityProfile is the update-facing view and omits `communityDid` on purpose, so that a patch cannot re-point a community's identity. That is right for a payload and wrong for a response: a client holding a profile has no other way to learn which DID to verify that community's credentials against, and `community/profile/show` returning the update-facing view left the one member a consumer most needs undefined.\n\nSo reads get this and updates keep CommunityProfile. The split is the point — the immutability of `communityDid` is enforced by it being absent from the payload, not by prose asking implementers not to honour it.",
|
|
358
384
|
"required": [
|
|
385
|
+
"communityDid",
|
|
359
386
|
"name",
|
|
360
387
|
"language"
|
|
361
388
|
],
|
|
362
389
|
"properties": {
|
|
390
|
+
"communityDid": {
|
|
391
|
+
"type": "string",
|
|
392
|
+
"minLength": 1,
|
|
393
|
+
"description": "The community's own DID — the identifier every credential it issues names as `issuer`, and the one a member's credential binds them to. Immutable: set when the community is created and not settable through an update."
|
|
394
|
+
},
|
|
395
|
+
"createdAt": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"format": "date-time",
|
|
398
|
+
"description": "When the community was created. Immutable, like `communityDid`."
|
|
399
|
+
},
|
|
363
400
|
"name": {
|
|
364
401
|
"type": "string",
|
|
365
402
|
"minLength": 1
|
|
@@ -35,6 +35,10 @@ export interface Ext {
|
|
|
35
35
|
}
|
|
36
36
|
export interface VTCEndorsementsIssueResponsePayload {
|
|
37
37
|
endorsement: Endorsement;
|
|
38
|
+
/**
|
|
39
|
+
* The signed VEC just minted. Present only here: handing back the credential is the point of an issue call, and the issuer is the only party that can. Reads carry `endorsement.issued` — the reference — instead.
|
|
40
|
+
*/
|
|
41
|
+
credential: {};
|
|
38
42
|
ext?: Ext;
|
|
39
43
|
}
|
|
40
44
|
export interface Endorsement {
|
|
@@ -54,7 +58,7 @@ export interface Endorsement {
|
|
|
54
58
|
* The attested claim body, validated against the endorsement type's claimSchema when it declares one.
|
|
55
59
|
*/
|
|
56
60
|
claim?: {};
|
|
57
|
-
issued:
|
|
61
|
+
issued: CredentialReference;
|
|
58
62
|
/**
|
|
59
63
|
* The endorsement's slot on the community's shared Revocation status list. Published, so a foreign verifier can check revocation without contacting this community.
|
|
60
64
|
*/
|
|
@@ -65,22 +69,18 @@ export interface Endorsement {
|
|
|
65
69
|
revokedAt?: string | null;
|
|
66
70
|
}
|
|
67
71
|
/**
|
|
68
|
-
*
|
|
72
|
+
* A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it.
|
|
69
73
|
*/
|
|
70
|
-
export interface
|
|
74
|
+
export interface CredentialReference {
|
|
71
75
|
credentialId: CredentialId;
|
|
72
|
-
/**
|
|
73
|
-
* The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework.
|
|
74
|
-
*/
|
|
75
|
-
credential: {};
|
|
76
76
|
/**
|
|
77
77
|
* When the credential was minted.
|
|
78
78
|
*/
|
|
79
79
|
issuedAt?: string;
|
|
80
80
|
/**
|
|
81
|
-
* When
|
|
81
|
+
* When it lapses, or null when it does not.
|
|
82
82
|
*/
|
|
83
|
-
expiresAt
|
|
83
|
+
expiresAt?: string | null;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/** Trust Task type URI. */
|
|
@@ -148,12 +148,17 @@ export const PAYLOAD_SCHEMA = {
|
|
|
148
148
|
"type": "object",
|
|
149
149
|
"additionalProperties": false,
|
|
150
150
|
"required": [
|
|
151
|
-
"endorsement"
|
|
151
|
+
"endorsement",
|
|
152
|
+
"credential"
|
|
152
153
|
],
|
|
153
154
|
"properties": {
|
|
154
155
|
"endorsement": {
|
|
155
156
|
"$ref": "#/$defs/Endorsement"
|
|
156
157
|
},
|
|
158
|
+
"credential": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"description": "The signed VEC just minted. Present only here: handing back the credential is the point of an issue call, and the issuer is the only party that can. Reads carry `endorsement.issued` — the reference — instead."
|
|
161
|
+
},
|
|
157
162
|
"ext": {
|
|
158
163
|
"$ref": "#/$defs/Ext"
|
|
159
164
|
}
|
|
@@ -203,8 +208,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
203
208
|
"description": "The attested claim body, validated against the endorsement type's claimSchema when it declares one."
|
|
204
209
|
},
|
|
205
210
|
"issued": {
|
|
206
|
-
"$ref": "#/$defs/
|
|
207
|
-
"description": "
|
|
211
|
+
"$ref": "#/$defs/CredentialReference",
|
|
212
|
+
"description": "A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it."
|
|
208
213
|
},
|
|
209
214
|
"statusListIndex": {
|
|
210
215
|
"type": "integer",
|
|
@@ -221,34 +226,31 @@ export const PAYLOAD_SCHEMA = {
|
|
|
221
226
|
}
|
|
222
227
|
}
|
|
223
228
|
},
|
|
224
|
-
"
|
|
225
|
-
"$anchor": "
|
|
226
|
-
"title": "
|
|
227
|
-
"description": "The receipt for a successfully-minted Verifiable Credential: a stable handle for revocation and audit, the signed credential itself, and when it lapses.\n\nSCOPE — this is an *issuance* receipt, returned by the party that minted the credential. It is not the shape for a *delivery* receipt, where a holder hands an already-issued credential to a party that stores it: such a task returns a receipt naming what was stored (see vtc/members/vmc and vtc/join-requests/accept) and MUST NOT echo the credential back to the party that just sent it. Reaching for this definition on a delivery task is the mistake this paragraph exists to prevent.\n\n`additionalProperties` is false, so a specification needing extra members cannot compose this by `$ref` — `allOf` evaluates each subschema against the whole object and this one would reject them. vta/credentials/issue is that case: its response is this shape plus `supersedes` and `ext`, and it therefore states the members inline while `$ref`-ing the shared CredentialId. That is deliberate, not drift.",
|
|
229
|
+
"CredentialReference": {
|
|
230
|
+
"$anchor": "credentialReference",
|
|
231
|
+
"title": "CredentialReference",
|
|
228
232
|
"type": "object",
|
|
229
233
|
"additionalProperties": false,
|
|
234
|
+
"description": "A pointer to an issued credential, without the credential itself.\n\nThe counterpart to IssuedCredential, for the far more common case of *reading about* a credential rather than being handed one. A listing that embedded the signed credential in every row would grow with the size of the credentials rather than the number of them — a page of fifty is megabytes — and a reader that only needs to know a credential exists, when it lapses, and how to revoke it does not need the bytes.\n\nThe holder can always fetch the credential itself by `credentialId`, and a verifier can check revocation from the row's status-list slot without either. Reach for IssuedCredential only at the moment of minting, where the caller has no other way to receive what was just made for them.",
|
|
230
235
|
"required": [
|
|
231
|
-
"credentialId"
|
|
232
|
-
"credential",
|
|
233
|
-
"expiresAt"
|
|
236
|
+
"credentialId"
|
|
234
237
|
],
|
|
235
238
|
"properties": {
|
|
236
239
|
"credentialId": {
|
|
237
240
|
"$ref": "#/$defs/CredentialId"
|
|
238
241
|
},
|
|
239
|
-
"credential": {
|
|
240
|
-
"type": "object",
|
|
241
|
-
"description": "The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework."
|
|
242
|
-
},
|
|
243
242
|
"issuedAt": {
|
|
244
243
|
"type": "string",
|
|
245
244
|
"format": "date-time",
|
|
246
245
|
"description": "When the credential was minted."
|
|
247
246
|
},
|
|
248
247
|
"expiresAt": {
|
|
249
|
-
"type":
|
|
248
|
+
"type": [
|
|
249
|
+
"string",
|
|
250
|
+
"null"
|
|
251
|
+
],
|
|
250
252
|
"format": "date-time",
|
|
251
|
-
"description": "When
|
|
253
|
+
"description": "When it lapses, or null when it does not."
|
|
252
254
|
}
|
|
253
255
|
}
|
|
254
256
|
},
|
|
@@ -273,12 +275,17 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
273
275
|
"type": "object",
|
|
274
276
|
"additionalProperties": false,
|
|
275
277
|
"required": [
|
|
276
|
-
"endorsement"
|
|
278
|
+
"endorsement",
|
|
279
|
+
"credential"
|
|
277
280
|
],
|
|
278
281
|
"properties": {
|
|
279
282
|
"endorsement": {
|
|
280
283
|
"$ref": "#/$defs/Endorsement"
|
|
281
284
|
},
|
|
285
|
+
"credential": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"description": "The signed VEC just minted. Present only here: handing back the credential is the point of an issue call, and the issuer is the only party that can. Reads carry `endorsement.issued` — the reference — instead."
|
|
288
|
+
},
|
|
282
289
|
"ext": {
|
|
283
290
|
"$ref": "#/$defs/Ext"
|
|
284
291
|
}
|
|
@@ -328,8 +335,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
328
335
|
"description": "The attested claim body, validated against the endorsement type's claimSchema when it declares one."
|
|
329
336
|
},
|
|
330
337
|
"issued": {
|
|
331
|
-
"$ref": "#/$defs/
|
|
332
|
-
"description": "
|
|
338
|
+
"$ref": "#/$defs/CredentialReference",
|
|
339
|
+
"description": "A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it."
|
|
333
340
|
},
|
|
334
341
|
"statusListIndex": {
|
|
335
342
|
"type": "integer",
|
|
@@ -346,34 +353,31 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
346
353
|
}
|
|
347
354
|
}
|
|
348
355
|
},
|
|
349
|
-
"
|
|
350
|
-
"$anchor": "
|
|
351
|
-
"title": "
|
|
352
|
-
"description": "The receipt for a successfully-minted Verifiable Credential: a stable handle for revocation and audit, the signed credential itself, and when it lapses.\n\nSCOPE — this is an *issuance* receipt, returned by the party that minted the credential. It is not the shape for a *delivery* receipt, where a holder hands an already-issued credential to a party that stores it: such a task returns a receipt naming what was stored (see vtc/members/vmc and vtc/join-requests/accept) and MUST NOT echo the credential back to the party that just sent it. Reaching for this definition on a delivery task is the mistake this paragraph exists to prevent.\n\n`additionalProperties` is false, so a specification needing extra members cannot compose this by `$ref` — `allOf` evaluates each subschema against the whole object and this one would reject them. vta/credentials/issue is that case: its response is this shape plus `supersedes` and `ext`, and it therefore states the members inline while `$ref`-ing the shared CredentialId. That is deliberate, not drift.",
|
|
356
|
+
"CredentialReference": {
|
|
357
|
+
"$anchor": "credentialReference",
|
|
358
|
+
"title": "CredentialReference",
|
|
353
359
|
"type": "object",
|
|
354
360
|
"additionalProperties": false,
|
|
361
|
+
"description": "A pointer to an issued credential, without the credential itself.\n\nThe counterpart to IssuedCredential, for the far more common case of *reading about* a credential rather than being handed one. A listing that embedded the signed credential in every row would grow with the size of the credentials rather than the number of them — a page of fifty is megabytes — and a reader that only needs to know a credential exists, when it lapses, and how to revoke it does not need the bytes.\n\nThe holder can always fetch the credential itself by `credentialId`, and a verifier can check revocation from the row's status-list slot without either. Reach for IssuedCredential only at the moment of minting, where the caller has no other way to receive what was just made for them.",
|
|
355
362
|
"required": [
|
|
356
|
-
"credentialId"
|
|
357
|
-
"credential",
|
|
358
|
-
"expiresAt"
|
|
363
|
+
"credentialId"
|
|
359
364
|
],
|
|
360
365
|
"properties": {
|
|
361
366
|
"credentialId": {
|
|
362
367
|
"$ref": "#/$defs/CredentialId"
|
|
363
368
|
},
|
|
364
|
-
"credential": {
|
|
365
|
-
"type": "object",
|
|
366
|
-
"description": "The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework."
|
|
367
|
-
},
|
|
368
369
|
"issuedAt": {
|
|
369
370
|
"type": "string",
|
|
370
371
|
"format": "date-time",
|
|
371
372
|
"description": "When the credential was minted."
|
|
372
373
|
},
|
|
373
374
|
"expiresAt": {
|
|
374
|
-
"type":
|
|
375
|
+
"type": [
|
|
376
|
+
"string",
|
|
377
|
+
"null"
|
|
378
|
+
],
|
|
375
379
|
"format": "date-time",
|
|
376
|
-
"description": "When
|
|
380
|
+
"description": "When it lapses, or null when it does not."
|
|
377
381
|
}
|
|
378
382
|
}
|
|
379
383
|
},
|
|
@@ -66,7 +66,7 @@ export interface Endorsement {
|
|
|
66
66
|
* The attested claim body, validated against the endorsement type's claimSchema when it declares one.
|
|
67
67
|
*/
|
|
68
68
|
claim?: {};
|
|
69
|
-
issued:
|
|
69
|
+
issued: CredentialReference;
|
|
70
70
|
/**
|
|
71
71
|
* The endorsement's slot on the community's shared Revocation status list. Published, so a foreign verifier can check revocation without contacting this community.
|
|
72
72
|
*/
|
|
@@ -77,22 +77,18 @@ export interface Endorsement {
|
|
|
77
77
|
revokedAt?: string | null;
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
*
|
|
80
|
+
* A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it.
|
|
81
81
|
*/
|
|
82
|
-
export interface
|
|
82
|
+
export interface CredentialReference {
|
|
83
83
|
credentialId: CredentialId;
|
|
84
|
-
/**
|
|
85
|
-
* The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework.
|
|
86
|
-
*/
|
|
87
|
-
credential: {};
|
|
88
84
|
/**
|
|
89
85
|
* When the credential was minted.
|
|
90
86
|
*/
|
|
91
87
|
issuedAt?: string;
|
|
92
88
|
/**
|
|
93
|
-
* When
|
|
89
|
+
* When it lapses, or null when it does not.
|
|
94
90
|
*/
|
|
95
|
-
expiresAt
|
|
91
|
+
expiresAt?: string | null;
|
|
96
92
|
}
|
|
97
93
|
|
|
98
94
|
/** Trust Task type URI. */
|
|
@@ -231,8 +227,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
231
227
|
"description": "The attested claim body, validated against the endorsement type's claimSchema when it declares one."
|
|
232
228
|
},
|
|
233
229
|
"issued": {
|
|
234
|
-
"$ref": "#/$defs/
|
|
235
|
-
"description": "
|
|
230
|
+
"$ref": "#/$defs/CredentialReference",
|
|
231
|
+
"description": "A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it."
|
|
236
232
|
},
|
|
237
233
|
"statusListIndex": {
|
|
238
234
|
"type": "integer",
|
|
@@ -249,34 +245,31 @@ export const PAYLOAD_SCHEMA = {
|
|
|
249
245
|
}
|
|
250
246
|
}
|
|
251
247
|
},
|
|
252
|
-
"
|
|
253
|
-
"$anchor": "
|
|
254
|
-
"title": "
|
|
255
|
-
"description": "The receipt for a successfully-minted Verifiable Credential: a stable handle for revocation and audit, the signed credential itself, and when it lapses.\n\nSCOPE — this is an *issuance* receipt, returned by the party that minted the credential. It is not the shape for a *delivery* receipt, where a holder hands an already-issued credential to a party that stores it: such a task returns a receipt naming what was stored (see vtc/members/vmc and vtc/join-requests/accept) and MUST NOT echo the credential back to the party that just sent it. Reaching for this definition on a delivery task is the mistake this paragraph exists to prevent.\n\n`additionalProperties` is false, so a specification needing extra members cannot compose this by `$ref` — `allOf` evaluates each subschema against the whole object and this one would reject them. vta/credentials/issue is that case: its response is this shape plus `supersedes` and `ext`, and it therefore states the members inline while `$ref`-ing the shared CredentialId. That is deliberate, not drift.",
|
|
248
|
+
"CredentialReference": {
|
|
249
|
+
"$anchor": "credentialReference",
|
|
250
|
+
"title": "CredentialReference",
|
|
256
251
|
"type": "object",
|
|
257
252
|
"additionalProperties": false,
|
|
253
|
+
"description": "A pointer to an issued credential, without the credential itself.\n\nThe counterpart to IssuedCredential, for the far more common case of *reading about* a credential rather than being handed one. A listing that embedded the signed credential in every row would grow with the size of the credentials rather than the number of them — a page of fifty is megabytes — and a reader that only needs to know a credential exists, when it lapses, and how to revoke it does not need the bytes.\n\nThe holder can always fetch the credential itself by `credentialId`, and a verifier can check revocation from the row's status-list slot without either. Reach for IssuedCredential only at the moment of minting, where the caller has no other way to receive what was just made for them.",
|
|
258
254
|
"required": [
|
|
259
|
-
"credentialId"
|
|
260
|
-
"credential",
|
|
261
|
-
"expiresAt"
|
|
255
|
+
"credentialId"
|
|
262
256
|
],
|
|
263
257
|
"properties": {
|
|
264
258
|
"credentialId": {
|
|
265
259
|
"$ref": "#/$defs/CredentialId"
|
|
266
260
|
},
|
|
267
|
-
"credential": {
|
|
268
|
-
"type": "object",
|
|
269
|
-
"description": "The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework."
|
|
270
|
-
},
|
|
271
261
|
"issuedAt": {
|
|
272
262
|
"type": "string",
|
|
273
263
|
"format": "date-time",
|
|
274
264
|
"description": "When the credential was minted."
|
|
275
265
|
},
|
|
276
266
|
"expiresAt": {
|
|
277
|
-
"type":
|
|
267
|
+
"type": [
|
|
268
|
+
"string",
|
|
269
|
+
"null"
|
|
270
|
+
],
|
|
278
271
|
"format": "date-time",
|
|
279
|
-
"description": "When
|
|
272
|
+
"description": "When it lapses, or null when it does not."
|
|
280
273
|
}
|
|
281
274
|
}
|
|
282
275
|
},
|
|
@@ -373,8 +366,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
373
366
|
"description": "The attested claim body, validated against the endorsement type's claimSchema when it declares one."
|
|
374
367
|
},
|
|
375
368
|
"issued": {
|
|
376
|
-
"$ref": "#/$defs/
|
|
377
|
-
"description": "
|
|
369
|
+
"$ref": "#/$defs/CredentialReference",
|
|
370
|
+
"description": "A pointer to the issued VEC — its identifier and lifetime, not its bytes. `endorsements/issue` additionally returns the credential itself, because that is the one call whose caller has no other way to receive it."
|
|
378
371
|
},
|
|
379
372
|
"statusListIndex": {
|
|
380
373
|
"type": "integer",
|
|
@@ -391,34 +384,31 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
391
384
|
}
|
|
392
385
|
}
|
|
393
386
|
},
|
|
394
|
-
"
|
|
395
|
-
"$anchor": "
|
|
396
|
-
"title": "
|
|
397
|
-
"description": "The receipt for a successfully-minted Verifiable Credential: a stable handle for revocation and audit, the signed credential itself, and when it lapses.\n\nSCOPE — this is an *issuance* receipt, returned by the party that minted the credential. It is not the shape for a *delivery* receipt, where a holder hands an already-issued credential to a party that stores it: such a task returns a receipt naming what was stored (see vtc/members/vmc and vtc/join-requests/accept) and MUST NOT echo the credential back to the party that just sent it. Reaching for this definition on a delivery task is the mistake this paragraph exists to prevent.\n\n`additionalProperties` is false, so a specification needing extra members cannot compose this by `$ref` — `allOf` evaluates each subschema against the whole object and this one would reject them. vta/credentials/issue is that case: its response is this shape plus `supersedes` and `ext`, and it therefore states the members inline while `$ref`-ing the shared CredentialId. That is deliberate, not drift.",
|
|
387
|
+
"CredentialReference": {
|
|
388
|
+
"$anchor": "credentialReference",
|
|
389
|
+
"title": "CredentialReference",
|
|
398
390
|
"type": "object",
|
|
399
391
|
"additionalProperties": false,
|
|
392
|
+
"description": "A pointer to an issued credential, without the credential itself.\n\nThe counterpart to IssuedCredential, for the far more common case of *reading about* a credential rather than being handed one. A listing that embedded the signed credential in every row would grow with the size of the credentials rather than the number of them — a page of fifty is megabytes — and a reader that only needs to know a credential exists, when it lapses, and how to revoke it does not need the bytes.\n\nThe holder can always fetch the credential itself by `credentialId`, and a verifier can check revocation from the row's status-list slot without either. Reach for IssuedCredential only at the moment of minting, where the caller has no other way to receive what was just made for them.",
|
|
400
393
|
"required": [
|
|
401
|
-
"credentialId"
|
|
402
|
-
"credential",
|
|
403
|
-
"expiresAt"
|
|
394
|
+
"credentialId"
|
|
404
395
|
],
|
|
405
396
|
"properties": {
|
|
406
397
|
"credentialId": {
|
|
407
398
|
"$ref": "#/$defs/CredentialId"
|
|
408
399
|
},
|
|
409
|
-
"credential": {
|
|
410
|
-
"type": "object",
|
|
411
|
-
"description": "The issued Verifiable Credential (W3C VC Data Model 2.0), signed by the issuer's key. Opaque to the framework."
|
|
412
|
-
},
|
|
413
400
|
"issuedAt": {
|
|
414
401
|
"type": "string",
|
|
415
402
|
"format": "date-time",
|
|
416
403
|
"description": "When the credential was minted."
|
|
417
404
|
},
|
|
418
405
|
"expiresAt": {
|
|
419
|
-
"type":
|
|
406
|
+
"type": [
|
|
407
|
+
"string",
|
|
408
|
+
"null"
|
|
409
|
+
],
|
|
420
410
|
"format": "date-time",
|
|
421
|
-
"description": "When
|
|
411
|
+
"description": "When it lapses, or null when it does not."
|
|
422
412
|
}
|
|
423
413
|
}
|
|
424
414
|
},
|