@openvtc/trust-tasks 0.26.17 → 0.26.19
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/CHANGELOG.md +222 -0
- package/dist/_shared/components.d.ts +867 -3
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/auth/oob/_shared/0.1/oob.d.ts +1 -1
- package/dist/auth/oob/_shared/0.1/oob.d.ts.map +1 -1
- package/dist/auth/oob/grant/0.2/payload.d.ts +262 -0
- package/dist/auth/oob/grant/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/grant/0.2/payload.js +140 -0
- package/dist/auth/oob/grant/0.2/payload.js.map +1 -0
- package/dist/auth/oob/prove/0.2/payload.d.ts +836 -0
- package/dist/auth/oob/prove/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/prove/0.2/payload.js +468 -0
- package/dist/auth/oob/prove/0.2/payload.js.map +1 -0
- package/dist/auth/oob/respond/0.2/payload.d.ts +235 -0
- package/dist/auth/oob/respond/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/respond/0.2/payload.js +140 -0
- package/dist/auth/oob/respond/0.2/payload.js.map +1 -0
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +2 -0
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +2 -0
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +2 -0
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +2 -0
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -1
- package/dist/keys/sign-document/0.1/payload.d.ts +627 -0
- package/dist/keys/sign-document/0.1/payload.d.ts.map +1 -0
- package/dist/keys/sign-document/0.1/payload.js +341 -0
- package/dist/keys/sign-document/0.1/payload.js.map +1 -0
- package/dist/persona/_shared/0.1/contact-annotations.d.ts +22 -0
- package/dist/persona/_shared/0.1/contact-annotations.d.ts.map +1 -0
- package/dist/persona/_shared/0.1/contact-annotations.js +6 -0
- package/dist/persona/_shared/0.1/contact-annotations.js.map +1 -0
- package/dist/persona/contact/get/1.1/payload.d.ts +1403 -0
- package/dist/persona/contact/get/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/get/1.1/payload.js +804 -0
- package/dist/persona/contact/get/1.1/payload.js.map +1 -0
- package/dist/persona/contact/list/1.1/payload.d.ts +803 -0
- package/dist/persona/contact/list/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/list/1.1/payload.js +417 -0
- package/dist/persona/contact/list/1.1/payload.js.map +1 -0
- package/dist/persona/contact/lists/delete/1.0/payload.d.ts +289 -0
- package/dist/persona/contact/lists/delete/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/delete/1.0/payload.js +166 -0
- package/dist/persona/contact/lists/delete/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/list/1.0/payload.d.ts +527 -0
- package/dist/persona/contact/lists/list/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/list/1.0/payload.js +294 -0
- package/dist/persona/contact/lists/list/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/put/1.0/payload.d.ts +629 -0
- package/dist/persona/contact/lists/put/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/put/1.0/payload.js +366 -0
- package/dist/persona/contact/lists/put/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/show/1.0/payload.d.ts +476 -0
- package/dist/persona/contact/lists/show/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/show/1.0/payload.js +272 -0
- package/dist/persona/contact/lists/show/1.0/payload.js.map +1 -0
- package/dist/persona/contact/put/1.1/payload.d.ts +1444 -0
- package/dist/persona/contact/put/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/put/1.1/payload.js +850 -0
- package/dist/persona/contact/put/1.1/payload.js.map +1 -0
- package/dist/rooms/keys/seal/0.1/payload.d.ts +24 -4
- package/dist/rooms/keys/seal/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/keys/seal/0.1/payload.js +12 -2
- package/dist/rooms/keys/seal/0.1/payload.js.map +1 -1
- package/dist/rooms/keys/seal/0.2/payload.d.ts +24 -4
- package/dist/rooms/keys/seal/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/seal/0.2/payload.js +12 -2
- package/dist/rooms/keys/seal/0.2/payload.js.map +1 -1
- package/dist/rooms/owner/group/add/0.3/payload.d.ts +417 -0
- package/dist/rooms/owner/group/add/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/add/0.3/payload.js +218 -0
- package/dist/rooms/owner/group/add/0.3/payload.js.map +1 -0
- package/dist/rooms/owner/group/remove/0.3/payload.d.ts +600 -0
- package/dist/rooms/owner/group/remove/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/remove/0.3/payload.js +310 -0
- package/dist/rooms/owner/group/remove/0.3/payload.js.map +1 -0
- package/dist/rooms/owner/group/renew/0.2/payload.d.ts +299 -0
- package/dist/rooms/owner/group/renew/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/renew/0.2/payload.js +163 -0
- package/dist/rooms/owner/group/renew/0.2/payload.js.map +1 -0
- package/dist/rooms/owner/register/0.2/payload.d.ts +591 -0
- package/dist/rooms/owner/register/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/owner/register/0.2/payload.js +335 -0
- package/dist/rooms/owner/register/0.2/payload.js.map +1 -0
- package/dist/rooms/records/get/0.1/payload.d.ts +24 -4
- package/dist/rooms/records/get/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.1/payload.js +12 -2
- package/dist/rooms/records/get/0.1/payload.js.map +1 -1
- package/dist/rooms/records/get/0.2/payload.d.ts +24 -4
- package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.2/payload.js +12 -2
- package/dist/rooms/records/get/0.2/payload.js.map +1 -1
- package/dist/rooms/records/put/0.1/payload.d.ts +24 -4
- package/dist/rooms/records/put/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/records/put/0.1/payload.js +12 -2
- package/dist/rooms/records/put/0.1/payload.js.map +1 -1
- package/dist/rooms/records/put/0.2/payload.d.ts +24 -4
- package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/records/put/0.2/payload.js +12 -2
- package/dist/rooms/records/put/0.2/payload.js.map +1 -1
- package/dist/vtc/admin/events/_shared/0.3/topic.d.ts +30 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.d.ts.map +1 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.js +6 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.js.map +1 -0
- package/dist/vtc/admin/events/event/0.3/payload.d.ts +172 -0
- package/dist/vtc/admin/events/event/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/event/0.3/payload.js +102 -0
- package/dist/vtc/admin/events/event/0.3/payload.js.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts +409 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.js +236 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.d.ts +16 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.js +6 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.d.ts +22 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.js +6 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.d.ts +18 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.js +6 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.d.ts +16 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.js +6 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.js.map +1 -0
- package/dist/vtc/directory/card/assert/0.1/payload.d.ts +780 -0
- package/dist/vtc/directory/card/assert/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/assert/0.1/payload.js +454 -0
- package/dist/vtc/directory/card/assert/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/present/0.1/payload.d.ts +603 -0
- package/dist/vtc/directory/card/present/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/present/0.1/payload.js +297 -0
- package/dist/vtc/directory/card/present/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/public/0.1/payload.d.ts +348 -0
- package/dist/vtc/directory/card/public/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/public/0.1/payload.js +197 -0
- package/dist/vtc/directory/card/public/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/publish/0.1/payload.d.ts +384 -0
- package/dist/vtc/directory/card/publish/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/publish/0.1/payload.js +222 -0
- package/dist/vtc/directory/card/publish/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/show/0.1/payload.d.ts +1276 -0
- package/dist/vtc/directory/card/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/show/0.1/payload.js +775 -0
- package/dist/vtc/directory/card/show/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/update/0.1/payload.d.ts +1423 -0
- package/dist/vtc/directory/card/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/update/0.1/payload.js +845 -0
- package/dist/vtc/directory/card/update/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/disclosure/0.1/payload.d.ts +951 -0
- package/dist/vtc/directory/disclosure/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/disclosure/0.1/payload.js +613 -0
- package/dist/vtc/directory/disclosure/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/entries/list/0.1/payload.d.ts +5525 -0
- package/dist/vtc/directory/entries/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/entries/list/0.1/payload.js +656 -0
- package/dist/vtc/directory/entries/list/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/entries/show/0.1/payload.d.ts +861 -0
- package/dist/vtc/directory/entries/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/entries/show/0.1/payload.js +502 -0
- package/dist/vtc/directory/entries/show/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/export/0.1/payload.d.ts +346 -0
- package/dist/vtc/directory/export/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/export/0.1/payload.js +192 -0
- package/dist/vtc/directory/export/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/define/0.1/payload.d.ts +1355 -0
- package/dist/vtc/directory/fields/define/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/define/0.1/payload.js +811 -0
- package/dist/vtc/directory/fields/define/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/list/0.1/payload.d.ts +1236 -0
- package/dist/vtc/directory/fields/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/list/0.1/payload.js +739 -0
- package/dist/vtc/directory/fields/list/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.d.ts +1146 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.js +684 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/update/0.1/payload.d.ts +1223 -0
- package/dist/vtc/directory/fields/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/update/0.1/payload.js +715 -0
- package/dist/vtc/directory/fields/update/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/images/get/0.1/payload.d.ts +484 -0
- package/dist/vtc/directory/images/get/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/images/get/0.1/payload.js +273 -0
- package/dist/vtc/directory/images/get/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/images/upload/0.1/payload.d.ts +441 -0
- package/dist/vtc/directory/images/upload/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/images/upload/0.1/payload.js +262 -0
- package/dist/vtc/directory/images/upload/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/introduce/0.1/payload.d.ts +417 -0
- package/dist/vtc/directory/introduce/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/introduce/0.1/payload.js +183 -0
- package/dist/vtc/directory/introduce/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/introduction/0.1/payload.d.ts +423 -0
- package/dist/vtc/directory/introduction/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/introduction/0.1/payload.js +241 -0
- package/dist/vtc/directory/introduction/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/append/0.1/payload.d.ts +494 -0
- package/dist/vtc/directory/notes/append/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/append/0.1/payload.js +281 -0
- package/dist/vtc/directory/notes/append/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/export/0.1/payload.d.ts +530 -0
- package/dist/vtc/directory/notes/export/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/export/0.1/payload.js +294 -0
- package/dist/vtc/directory/notes/export/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/list/0.1/payload.d.ts +528 -0
- package/dist/vtc/directory/notes/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/list/0.1/payload.js +294 -0
- package/dist/vtc/directory/notes/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/_shared/0.1/group.d.ts +22 -0
- package/dist/vtc/groups/_shared/0.1/group.d.ts.map +1 -0
- package/dist/vtc/groups/_shared/0.1/group.js +6 -0
- package/dist/vtc/groups/_shared/0.1/group.js.map +1 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.d.ts +914 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.js +536 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.d.ts +910 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.js +533 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts +310 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.js +182 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/create/0.1/payload.d.ts +1075 -0
- package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/create/0.1/payload.js +631 -0
- package/dist/vtc/groups/create/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/delete/0.1/payload.d.ts +317 -0
- package/dist/vtc/groups/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/delete/0.1/payload.js +182 -0
- package/dist/vtc/groups/delete/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/join/0.1/payload.d.ts +1262 -0
- package/dist/vtc/groups/join/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/join/0.1/payload.js +758 -0
- package/dist/vtc/groups/join/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/leave/0.1/payload.d.ts +291 -0
- package/dist/vtc/groups/leave/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/leave/0.1/payload.js +179 -0
- package/dist/vtc/groups/leave/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/list/0.1/payload.d.ts +1127 -0
- package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/list/0.1/payload.js +674 -0
- package/dist/vtc/groups/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/add/0.1/payload.d.ts +1014 -0
- package/dist/vtc/groups/members/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/add/0.1/payload.js +607 -0
- package/dist/vtc/groups/members/add/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/list/0.1/payload.d.ts +1018 -0
- package/dist/vtc/groups/members/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/list/0.1/payload.js +606 -0
- package/dist/vtc/groups/members/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/remove/0.1/payload.d.ts +351 -0
- package/dist/vtc/groups/members/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/remove/0.1/payload.js +205 -0
- package/dist/vtc/groups/members/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.d.ts +1236 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.js +741 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/requests/list/0.1/payload.d.ts +1063 -0
- package/dist/vtc/groups/requests/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/requests/list/0.1/payload.js +622 -0
- package/dist/vtc/groups/requests/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/show/0.1/payload.d.ts +1012 -0
- package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/show/0.1/payload.js +619 -0
- package/dist/vtc/groups/show/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/update/0.1/payload.d.ts +1078 -0
- package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/update/0.1/payload.js +633 -0
- package/dist/vtc/groups/update/0.1/payload.js.map +1 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.d.ts +2303 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.d.ts.map +1 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.js +1293 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +912 -1
- package/src/auth/oob/_shared/0.1/oob.ts +1 -1
- package/src/auth/oob/grant/0.2/payload.ts +186 -0
- package/src/auth/oob/prove/0.2/payload.ts +523 -0
- package/src/auth/oob/respond/0.2/payload.ts +178 -0
- package/src/device/list/0.1/payload.ts +2 -0
- package/src/device/list/0.2/payload.ts +2 -0
- package/src/device/register/0.1/payload.ts +2 -0
- package/src/device/register/0.2/payload.ts +2 -0
- package/src/index.ts +61 -0
- package/src/keys/sign-document/0.1/payload.ts +437 -0
- package/src/persona/_shared/0.1/contact-annotations.ts +23 -0
- package/src/persona/contact/get/1.1/payload.ts +876 -0
- package/src/persona/contact/list/1.1/payload.ts +497 -0
- package/src/persona/contact/lists/delete/1.0/payload.ts +204 -0
- package/src/persona/contact/lists/list/1.0/payload.ts +332 -0
- package/src/persona/contact/lists/put/1.0/payload.ts +429 -0
- package/src/persona/contact/lists/show/1.0/payload.ts +305 -0
- package/src/persona/contact/put/1.1/payload.ts +958 -0
- package/src/rooms/keys/seal/0.1/payload.ts +12 -2
- package/src/rooms/keys/seal/0.2/payload.ts +12 -2
- package/src/rooms/owner/group/add/0.3/payload.ts +288 -0
- package/src/rooms/owner/group/remove/0.3/payload.ts +415 -0
- package/src/rooms/owner/group/renew/0.2/payload.ts +213 -0
- package/src/rooms/owner/register/0.2/payload.ts +415 -0
- package/src/rooms/records/get/0.1/payload.ts +12 -2
- package/src/rooms/records/get/0.2/payload.ts +12 -2
- package/src/rooms/records/put/0.1/payload.ts +12 -2
- package/src/rooms/records/put/0.2/payload.ts +12 -2
- package/src/vtc/admin/events/_shared/0.3/topic.ts +31 -0
- package/src/vtc/admin/events/event/0.3/payload.ts +136 -0
- package/src/vtc/admin/events/subscribe/0.3/payload.ts +314 -0
- package/src/vtc/directory/_shared/0.1/admin-note.ts +17 -0
- package/src/vtc/directory/_shared/0.1/directory-card.ts +23 -0
- package/src/vtc/directory/_shared/0.1/disclosure-statement.ts +19 -0
- package/src/vtc/directory/_shared/0.1/field-definition.ts +17 -0
- package/src/vtc/directory/card/assert/0.1/payload.ts +503 -0
- package/src/vtc/directory/card/present/0.1/payload.ts +437 -0
- package/src/vtc/directory/card/public/0.1/payload.ts +238 -0
- package/src/vtc/directory/card/publish/0.1/payload.ts +261 -0
- package/src/vtc/directory/card/show/0.1/payload.ts +812 -0
- package/src/vtc/directory/card/update/0.1/payload.ts +907 -0
- package/src/vtc/directory/disclosure/0.1/payload.ts +645 -0
- package/src/vtc/directory/entries/list/0.1/payload.ts +5676 -0
- package/src/vtc/directory/entries/show/0.1/payload.ts +541 -0
- package/src/vtc/directory/export/0.1/payload.ts +241 -0
- package/src/vtc/directory/fields/define/0.1/payload.ts +847 -0
- package/src/vtc/directory/fields/list/0.1/payload.ts +780 -0
- package/src/vtc/directory/fields/retire/0.1/payload.ts +723 -0
- package/src/vtc/directory/fields/update/0.1/payload.ts +767 -0
- package/src/vtc/directory/images/get/0.1/payload.ts +320 -0
- package/src/vtc/directory/images/upload/0.1/payload.ts +308 -0
- package/src/vtc/directory/introduce/0.1/payload.ts +324 -0
- package/src/vtc/directory/introduction/0.1/payload.ts +278 -0
- package/src/vtc/directory/notes/append/0.1/payload.ts +319 -0
- package/src/vtc/directory/notes/export/0.1/payload.ts +337 -0
- package/src/vtc/directory/notes/list/0.1/payload.ts +337 -0
- package/src/vtc/groups/_shared/0.1/group.ts +23 -0
- package/src/vtc/groups/bindings/add/0.1/payload.ts +573 -0
- package/src/vtc/groups/bindings/list/0.1/payload.ts +568 -0
- package/src/vtc/groups/bindings/remove/0.1/payload.ts +223 -0
- package/src/vtc/groups/create/0.1/payload.ts +683 -0
- package/src/vtc/groups/delete/0.1/payload.ts +224 -0
- package/src/vtc/groups/join/0.1/payload.ts +807 -0
- package/src/vtc/groups/leave/0.1/payload.ts +219 -0
- package/src/vtc/groups/list/0.1/payload.ts +728 -0
- package/src/vtc/groups/members/add/0.1/payload.ts +648 -0
- package/src/vtc/groups/members/list/0.1/payload.ts +647 -0
- package/src/vtc/groups/members/remove/0.1/payload.ts +251 -0
- package/src/vtc/groups/requests/decide/0.1/payload.ts +786 -0
- package/src/vtc/groups/requests/list/0.1/payload.ts +670 -0
- package/src/vtc/groups/show/0.1/payload.ts +652 -0
- package/src/vtc/groups/update/0.1/payload.ts +682 -0
- package/src/vtc/join-requests/manifest/0.4/payload.ts +1490 -0
|
@@ -357,6 +357,12 @@ export type ApproverLabel = string;
|
|
|
357
357
|
* The metadata of one attestation: what a Vetting Statement would have said, minus its issuer, as vetting/attestation/0.1 defines it.
|
|
358
358
|
*/
|
|
359
359
|
export type AttestationMeta = StatementMeta;
|
|
360
|
+
/**
|
|
361
|
+
* Who may see a directory field, ordered from narrowest to widest. `admins`: holders of `vtc.directory.admin` (and, for derived fields, `vtc.members.manage`). `groups`: members who share at least one community group with the subject (narrowed to the groups the subject names in `groupAudience`, where it names any). `connections`: members holding an attributed, in-force verified relationship with the subject at the community. `members`: every active member. `public`: anyone, and what the member's signed public card carries outside the community.
|
|
362
|
+
*
|
|
363
|
+
* `groups` and `connections` are not a chain: a viewer sees a field when they satisfy the audience the subject chose for it or any wider audience. Every audience includes the administrators, and the subject always sees their own whole card. There is no `onlyMe`: a value nobody else should see is not directory data.
|
|
364
|
+
*/
|
|
365
|
+
export type Audience = "admins" | "groups" | "connections" | "members" | "public";
|
|
360
366
|
/**
|
|
361
367
|
* The kind of privileged change recorded in the audit log.
|
|
362
368
|
*/
|
|
@@ -373,6 +379,8 @@ export type AuthModel = "aws-roles-anywhere" | "gcp-wif-pinned" | "azure-cert" |
|
|
|
373
379
|
export type AuthorityScope = AuthorityScopeAll | AuthorityScopeNone | AuthorityScopeContexts;
|
|
374
380
|
export type AwsArn = string;
|
|
375
381
|
export type AwsRegion = string;
|
|
382
|
+
export type BindingId = string;
|
|
383
|
+
export type BindingSpec = RoomBindingSpec | GrantsBindingSpec | RoleBindingSpec;
|
|
376
384
|
/**
|
|
377
385
|
* The name of one blob: the digest of its BlobManifest, taken over the manifest's RFC 8785 (JCS) canonicalization. sha2-256 is RECOMMENDED and MUST be implemented. Content addressing over ciphertext, never plaintext, so a BlobRef says nothing about what the file contains, and two uploads of one file have different BlobRefs (a fresh `fileId` gives a different key, and so different ciphertext). Rooms cannot be correlated by the files they share. Compared as decoded multihash bytes, never as encoded strings. A BlobRef is defined over the manifest's JSON, as this schema states it and RFC 8785 canonicalizes it, never over any binding's generated type: two bindings that model the manifest as distinct types still compute the same BlobRef from the same JSON.
|
|
378
386
|
*/
|
|
@@ -400,11 +408,11 @@ export type Capability_AclV0_2 = string;
|
|
|
400
408
|
/**
|
|
401
409
|
* Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything.
|
|
402
410
|
*/
|
|
403
|
-
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "external-accounts-manage" | "external-auth-use" | "pcs-vetter" | "pcs-applicant" | "witness-request";
|
|
411
|
+
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "sign-document" | "external-accounts-manage" | "external-auth-use" | "pcs-vetter" | "pcs-applicant" | "witness-request";
|
|
404
412
|
/**
|
|
405
413
|
* Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything.
|
|
406
414
|
*/
|
|
407
|
-
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "externalAccountsManage" | "externalAuthUse" | "pcsVetter" | "pcsApplicant" | "witnessRequest";
|
|
415
|
+
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "signDocument" | "externalAccountsManage" | "externalAuthUse" | "pcsVetter" | "pcsApplicant" | "witnessRequest";
|
|
408
416
|
/**
|
|
409
417
|
* Number of chunks in the bundle, equal to ceil(expectedSizeBytes / chunkSize). Bounded at 4096 so that the manifest itself — one digest per chunk — fits in the single document that carries it under the same message-size reasoning as a chunk.
|
|
410
418
|
*/
|
|
@@ -536,6 +544,10 @@ export type Did_GitNsV0_3 = string;
|
|
|
536
544
|
* Restricted to the two multibase headers W3C Controlled Identifiers 1.0 §2.4 normatively requires — `z` (base58btc) and `u` (base64url-no-pad). CID permits others but states that "interoperability is not guaranteed between implementations using such values", and a registry whose purpose is interoperability should not mint digests a conforming verifier may be unable to read. The alphabets are enforced rather than assumed: base58btc excludes 0, O, I and l, and an earlier permissive pattern let three published examples carry digests that were not valid base58 at all. base58btc is RECOMMENDED, for consistency with `did:key` and `did:webvh`.
|
|
537
545
|
*/
|
|
538
546
|
export type DigestMultibase = string;
|
|
547
|
+
/**
|
|
548
|
+
* A community directory entry's identifier, exactly as that community's directory returned it. Opaque and community-scoped: the agent stores and compares it as a string, never parses it, and never treats the same value under two communities as the same entry.
|
|
549
|
+
*/
|
|
550
|
+
export type DirectoryEntryId = string;
|
|
539
551
|
/**
|
|
540
552
|
* The kinds of drift, named so that a task can select a drift item by kind. The same values, with the same meanings, as `DriftItem`'s `type`, which keeps its own inline list so that `DriftItem` stays textually identical to 0.1; the two lists change together. `roleAdded` — someone holds a forge role the projection does not give them. `roleRemoved` — a projected role is missing. `roleChanged` — a projected role is present at another level. `requiredCheckMissing` — the verify-trust check is no longer required. `protectionWeakened` — branch protection or a ruleset is weaker than the projection in another way (force-push allowed, bypass actors added). `bootstrapMissing` — a bootstrap file or variable is gone.
|
|
541
553
|
*/
|
|
@@ -560,6 +572,10 @@ export type ElevatedRight = "git.ns.admin" | "git.repo.create" | "git.repo.own";
|
|
|
560
572
|
* The anchor the binding rested on, recorded so an incident review can see how each factor came to exist. `install`: claimed with the community's install token (vtc/install/claim/finish/0.3). `invite`: redeemed from an administrator's invite (auth/step-up/approver/redeem/finish/0.1). `selfService`: added by the subject behind a factor they already held (auth/step-up/approver/enroll/0.1). `offline`: redeemed from an invite minted by the operator with host access while the service was stopped — an `invite`-shaped redemption whose issuer was the host rather than an administrator.
|
|
561
573
|
*/
|
|
562
574
|
export type EnrolledVia = "install" | "invite" | "selfService" | "offline";
|
|
575
|
+
/**
|
|
576
|
+
* Opaque identifier of one directory entry: `dir_` followed by 16 to 64 base64url characters. Random, scoped to one community, and stable for the life of the membership — it survives a rotation of the member's DID, which is why groups, notes and cards are keyed by it. It MUST NOT be derived from, and MUST NOT reveal, any DID of the member, and the same person's entries in two communities MUST NOT share one. Compared by exact string equality.
|
|
577
|
+
*/
|
|
578
|
+
export type EntryId = string;
|
|
563
579
|
/**
|
|
564
580
|
* Lowercase hex SHA-256 of the whole bundle's bytes. Kept in the hex form the 1.0 descriptor published rather than moved to DigestMultibase, because it is an unchanged member of an existing descriptor and re-encoding it would break every stream producer for no gain in what it checks. For a chunked transfer it is the check over the reassembled bundle, applied after every chunk has verified individually, so that a correct set of chunks assembled in the wrong order is still caught.
|
|
565
581
|
*/
|
|
@@ -619,6 +635,34 @@ export type FaceReach = {
|
|
|
619
635
|
* **Superseded by `WorldColour`** — the same set, under the name the rest of the family now uses. Retained because `persona/facet/*` is retired in favour of `persona/world/*`, and a retired specification's schema is frozen, so the definition it references has to stay. New work references `WorldColour`. A colour **name**, resolved by each consumer against its own palette — never a hex value or any other literal. Two reasons, and both are about the consumer rather than the holder. A literal cannot be legible in a terminal, in a light theme and in a dark one at once, so a stored `#8B0000` is a colour that is wrong somewhere and the holder has no way to know where. And a consumer that reserves colours to mean something — an error, a warning, an irreversible act — must be able to keep a holder's decorative choice out of that channel; it cannot do that with an arbitrary value, and it can do it trivially with a closed set it maps itself. The eight members are chosen to be distinguishable from one another and deliberately carry no status connotation: none is named for success, warning or danger.
|
|
620
636
|
*/
|
|
621
637
|
export type FacetColour = "slate" | "indigo" | "teal" | "moss" | "sand" | "clay" | "rose" | "plum";
|
|
638
|
+
/**
|
|
639
|
+
* Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.
|
|
640
|
+
*/
|
|
641
|
+
export type FieldDescription = string;
|
|
642
|
+
/**
|
|
643
|
+
* Identifier of a directory field. A key with no `.` is a BASE field, the same in every community: `displayName`, `nickname`, `avatar`, `pronouns`, `bio`, `links` (written by the member) and `role`, `joinedAt`, `did`, `personhood` (derived from the community's own records, never stored on a card). A community-defined field MUST use a reverse-DNS key (`org.example.employer`), so a base key never collides with one, and a key is never reused with a different meaning once defined.
|
|
644
|
+
*/
|
|
645
|
+
export type FieldKey = string;
|
|
646
|
+
/**
|
|
647
|
+
* What readers see as the field's name. Plain text.
|
|
648
|
+
*/
|
|
649
|
+
export type FieldLabel = string;
|
|
650
|
+
/**
|
|
651
|
+
* Who writes the value. `member`: self-asserted, through vtc/directory/card/update. `admin`: asserted by the community through vtc/directory/card/assert; the member reads it and cannot change it. `credential`: a claim the member discloses from a credential through vtc/directory/card/present, badged with its issuer. `derived`: a base field read from the community's own records (`role`, `joinedAt`, `did`, `personhood`) and never stored on a card. Each source is written only through its own path.
|
|
652
|
+
*/
|
|
653
|
+
export type FieldSource = "member" | "admin" | "credential" | "derived";
|
|
654
|
+
/**
|
|
655
|
+
* `active`: in use. `disabled`: a base field the community has switched off; hidden from every projection and re-enablable. `retired`: a community field withdrawn for good; hidden at once, its values purged after the community's retention period, and its key never reused.
|
|
656
|
+
*/
|
|
657
|
+
export type FieldState = "active" | "disabled" | "retired";
|
|
658
|
+
/**
|
|
659
|
+
* The kind of value a field holds, which fixes its `FieldValue` shape. `did` holds a DID the member chooses to show (never their membership DID, which is the derived base field `did`). `claim` holds a `VerifiedValue` and requires `source: credential`.
|
|
660
|
+
*/
|
|
661
|
+
export type FieldType = "text" | "longText" | "url" | "email" | "phone" | "enum" | "multiEnum" | "date" | "country" | "image" | "did" | "claim";
|
|
662
|
+
/**
|
|
663
|
+
* The value of one field. Which shape a field takes is fixed by its definition's `type`: text-like types (`text`, `longText`, `url`, `email`, `phone`, `enum`, `date` as YYYY-MM-DD, `country` as ISO 3166-1 alpha-2, `did`) are strings; `multiEnum` and the base field `links` are arrays of strings; `image` and the base field `avatar` are a `CardBlobRef`; `claim` is a `VerifiedValue`; the derived base field `personhood` is a boolean.
|
|
664
|
+
*/
|
|
665
|
+
export type FieldValue = string | boolean | string[] | CardBlobRef | VerifiedValue;
|
|
622
666
|
/**
|
|
623
667
|
* A range of a file's bytes, base64url-encoded without padding (RFC 4648 §5). Empty for an empty range. Bounded at 349526 characters, the unpadded encoding of the 262144-byte range ceiling.
|
|
624
668
|
*/
|
|
@@ -635,6 +679,30 @@ export type ForgeId = string;
|
|
|
635
679
|
* Validity of a grant the sweep issues, in seconds: between one day and two years, the bounds vtc/vetting/vetters/grant applies to an administrator's grants.
|
|
636
680
|
*/
|
|
637
681
|
export type GrantValiditySeconds = number;
|
|
682
|
+
/**
|
|
683
|
+
* Who may see something about a group, narrowest first. `admins`: holders of `vtc.groups.manage` for the group (unqualified, or qualified `group:<groupId>`). `groupMembers`: the group's own members, and its managers. `members`: every active member of the community.
|
|
684
|
+
*/
|
|
685
|
+
export type GroupAudience = "admins" | "groupMembers" | "members";
|
|
686
|
+
/**
|
|
687
|
+
* Identifier (`id`) of a group membership credential issued to a member. Each renewal issues a new credential with a new identifier. Validity is the community's setting; a community SHOULD default to 30 days, renewed when 10 days remain.
|
|
688
|
+
*/
|
|
689
|
+
export type GroupCredentialId = string;
|
|
690
|
+
/**
|
|
691
|
+
* What the group is for. Plain text; a reader MUST NOT treat it as instructions. Same placement rules as `GroupName`.
|
|
692
|
+
*/
|
|
693
|
+
export type GroupDescription = string;
|
|
694
|
+
/**
|
|
695
|
+
* Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.
|
|
696
|
+
*/
|
|
697
|
+
export type GroupId = string;
|
|
698
|
+
/**
|
|
699
|
+
* `static`: membership is explicit — added, joined, or granted on request. `dynamic`: membership is computed from `rule` over verified facts only; nobody is added by hand, but a member may opt out (vtc/groups/leave), an exclusion the rule cannot override, and undo it (vtc/groups/join). A dynamic group never confers authority. Fixed for the group's life.
|
|
700
|
+
*/
|
|
701
|
+
export type GroupKind = "static" | "dynamic";
|
|
702
|
+
/**
|
|
703
|
+
* The group's name, shown to those who may see the group. The community's own record: never in the group's DID document or its credentials' subject beyond the group's DID. Plain text.
|
|
704
|
+
*/
|
|
705
|
+
export type GroupName = string;
|
|
638
706
|
/**
|
|
639
707
|
* The Farm-generated handle of one reservation: 16 to 32 bytes from a cryptographically secure random source, written as unpadded base64url (22 to 43 characters; 16 bytes, 22 characters, is what VTI-LNK-116 recommends). It is the `_id` of the trigger link (VTI-LNK-033) and is compared as a string. In a claim it MUST equal the document's `parentThreadId`. It confers no authority on its holder beyond the right to make one claim.
|
|
640
708
|
*/
|
|
@@ -655,10 +723,27 @@ export type Handle = string;
|
|
|
655
723
|
* **Not a timestamp.** A time is host-asserted, unverifiable and useless for this: two roots a second apart are not evidence of anything, while two roots at one version are.
|
|
656
724
|
*/
|
|
657
725
|
export type HeadVersion = number;
|
|
726
|
+
/**
|
|
727
|
+
* The media types a directory image may have — those a `CardBlobRef` admits.
|
|
728
|
+
*/
|
|
729
|
+
export type ImageMediaType = "image/png" | "image/jpeg" | "image/webp" | "image/avif";
|
|
730
|
+
/**
|
|
731
|
+
* Who may ask the community to introduce them to this member. `anyone`: any active member who can find the entry. `groups`: only members who share a community group with them. `connections`: only members holding an attributed, in-force verified relationship with them. `off`: nobody. A refused introduction is never reported to its sender.
|
|
732
|
+
*/
|
|
733
|
+
export type Introductions = "anyone" | "groups" | "connections" | "off";
|
|
658
734
|
/**
|
|
659
735
|
* `issued` is outstanding and revocable; `consumed` and `expired` are terminal.
|
|
660
736
|
*/
|
|
661
737
|
export type InviteStatus = "issued" | "consumed" | "expired";
|
|
738
|
+
/**
|
|
739
|
+
* How a member enters a static group by themselves. `closed`: only a manager adds them. `request`: a member asks and a manager decides. `open`: a member joins at once, subject to the community's `groups` policy. A group carrying authority is always `closed`.
|
|
740
|
+
*/
|
|
741
|
+
export type JoinPolicy = "closed" | "request" | "open";
|
|
742
|
+
export type JoinRequestId = string;
|
|
743
|
+
/**
|
|
744
|
+
* An optional note from the member to the group's managers. Plain text.
|
|
745
|
+
*/
|
|
746
|
+
export type JoinRequestMessage = string;
|
|
662
747
|
/**
|
|
663
748
|
* Application-chosen identifier for a record within a namespace. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `list` is a byte-prefix comparison over the UTF-8 encoding. Applications SHOULD use `/`-delimited hierarchical keys (`community/acme`, `contact/z6Mk…`) so that `prefix` can address a record family, but the delimiter is a convention between an application and itself — the maintainer attaches no meaning to it.
|
|
664
749
|
*/
|
|
@@ -707,6 +792,33 @@ export type LifecycleReason = string;
|
|
|
707
792
|
* Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.
|
|
708
793
|
*/
|
|
709
794
|
export type LimitSource = "policy" | "override" | "default";
|
|
795
|
+
/**
|
|
796
|
+
* A colour the holder picked for a list, as a six-digit lowercase sRGB hex value (`#1f8a70`). A rendering hint: a consumer MAY map it to the nearest colour of its own palette that keeps contrast in light and dark themes, and MUST NOT rely on colour alone to tell lists apart.
|
|
797
|
+
*/
|
|
798
|
+
export type ListColour = string;
|
|
799
|
+
/**
|
|
800
|
+
* Identifier of one of the holder's contact lists: a ULID in Crockford base32, uppercase, assigned by the agent when the list is created. Meaningful only inside the context that holds the list; it is never sent to anyone but the holder's own clients.
|
|
801
|
+
*/
|
|
802
|
+
export type ListId = string;
|
|
803
|
+
/**
|
|
804
|
+
* The lists a contact is on, as a set: order carries no meaning. A contact on no list has no `lists` member, never an empty array, so there is one way to say "none".
|
|
805
|
+
*
|
|
806
|
+
* @minItems 1
|
|
807
|
+
* @maxItems 64
|
|
808
|
+
*/
|
|
809
|
+
export type ListIds = [ListId, ...ListId[]];
|
|
810
|
+
/**
|
|
811
|
+
* The holder's name for one of their lists ("Mentors", "Met at the spring meetup"), on one line: no control characters. Unique within a context, compared exactly.
|
|
812
|
+
*/
|
|
813
|
+
export type ListName = string;
|
|
814
|
+
/**
|
|
815
|
+
* Where the holder wants a list among their lists: ascending, ties broken by `name`. A sort key, not a position, so moving one list does not renumber the others; gaps are expected.
|
|
816
|
+
*/
|
|
817
|
+
export type ListOrder = number;
|
|
818
|
+
/**
|
|
819
|
+
* Whether members can find the entry. `listed`: it appears when members browse. `findable`: it does not appear when browsing, but a search that matches it under `search` returns it. `hidden`: no member finds it by browsing or searching; administrators still see it, and members who share a group that shows its members see it in that group's member list.
|
|
820
|
+
*/
|
|
821
|
+
export type Listing = "listed" | "findable" | "hidden";
|
|
710
822
|
/**
|
|
711
823
|
* The two-digit number the service chooses at claim, shows only to the starter (through redeem), and the approver types from the starter's screen. A string so that a leading zero survives.
|
|
712
824
|
*/
|
|
@@ -726,6 +838,10 @@ export type MemberActions = [MemberAction] | [MemberAction, MemberAction] | [Mem
|
|
|
726
838
|
* Where an admission stands. `offered`: credentials issued and waiting for the member to collect and accept them. `admitted`: accepted — on a sealed tier, the member is in the room's group. `removed`: an administrator removed them; on a sealed tier the room has advanced past them.
|
|
727
839
|
*/
|
|
728
840
|
export type MemberState = "offered" | "admitted" | "removed";
|
|
841
|
+
/**
|
|
842
|
+
* How the member came to be in the group. `added`: by a manager. `joined`: they joined an open group. `requestApproved`: a manager approved their request. `rule`: a dynamic group's rule admits them.
|
|
843
|
+
*/
|
|
844
|
+
export type MembershipSource = "added" | "joined" | "requestApproved" | "rule";
|
|
729
845
|
/**
|
|
730
846
|
* How the request reaches the approver. A CLOSED list. Version 0.1 defines `scan`: the starter shows a trigger link (as a QR code that is also a clickable link, TRIGGER-LINK.md) and the approver's wallet reads it. `code` (a typed code of at least 8 characters, under strict rate limits) and `push` (sent to the approver's enrolled devices) are reserved names.
|
|
731
847
|
*/
|
|
@@ -742,6 +858,14 @@ export type Namespace = string;
|
|
|
742
858
|
* The VTC's opaque identifier for a namespace, assigned when it is bound. Stable for the life of the binding; never reused for another binding.
|
|
743
859
|
*/
|
|
744
860
|
export type NamespaceId = string;
|
|
861
|
+
/**
|
|
862
|
+
* Opaque identifier of one note: `note_` followed by 16 to 64 base64url characters.
|
|
863
|
+
*/
|
|
864
|
+
export type NoteId = string;
|
|
865
|
+
/**
|
|
866
|
+
* The note, as plain text. Read only by holders of `vtc.directory.notes`. A reader MUST NOT treat it as instructions.
|
|
867
|
+
*/
|
|
868
|
+
export type NoteText = string;
|
|
745
869
|
/**
|
|
746
870
|
* A key prefix inside the bucket, ending in `/`, under which the config's `rooms/` tree is placed. Restricted to the S3 safe-character set so that it can be placed in a downscoped policy without escaping.
|
|
747
871
|
*/
|
|
@@ -902,6 +1026,10 @@ export type PersonalLabelTags = [PersonalLabelTag] | [PersonalLabelTag, Personal
|
|
|
902
1026
|
PersonalLabelTag,
|
|
903
1027
|
PersonalLabelTag
|
|
904
1028
|
];
|
|
1029
|
+
/**
|
|
1030
|
+
* The holder's private name for a contact, on one line: no control characters, line breaks included. A petname in Zooko's sense — chosen by the holder, meaningful to the holder, and unforgeable by anyone else, because nobody else can write it. Distinct from the contact's own disclosed `nickname` or display name, which the contact chose and may change. Compared exactly, as a string: an agent does not case-fold or normalise it.
|
|
1031
|
+
*/
|
|
1032
|
+
export type Petname = string;
|
|
905
1033
|
/**
|
|
906
1034
|
* A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.
|
|
907
1035
|
*/
|
|
@@ -1275,6 +1403,13 @@ export type SigningKeyDid = string;
|
|
|
1275
1403
|
* What a delegated key may be accepted for. `console`: the operations an administration console performs on the identity's behalf, authorized by the identity's own standing. Never an approver's signature on a consent or approval decision, whatever the scope: those require an `assertionMethod` key of the approver's own DID document, which a delegated key never is. A closed enumeration so a consumer cannot be asked for a scope it does not define; a later version adds values.
|
|
1276
1404
|
*/
|
|
1277
1405
|
export type SigningKeyScope = "console";
|
|
1406
|
+
/**
|
|
1407
|
+
* The task families a `login` grant lets the starter key sign documents for, as the approving DID, for the session the grant arms (auth/oob/grant/0.2). Offered by the service in step 2, copied unchanged into the grant, and bounded further by the exclusions auth/oob/grant/0.2 states. Absent means the starter key signs nothing beyond the family's own tasks.
|
|
1408
|
+
*
|
|
1409
|
+
* @minItems 1
|
|
1410
|
+
* @maxItems 8
|
|
1411
|
+
*/
|
|
1412
|
+
export type SigningScope = [TaskFamily] | [TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily] | [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily];
|
|
1278
1413
|
/**
|
|
1279
1414
|
* A single binding target for a vault entry. Tagged union over the discriminator `kind`. A VaultEntry's `targets` array MAY mix any number of these.
|
|
1280
1415
|
*/
|
|
@@ -1331,6 +1466,10 @@ export type StorageSettings = LocalSettings | S3Settings | GcsSettings | WalrusS
|
|
|
1331
1466
|
export type SweepMinutes = number;
|
|
1332
1467
|
export type SyncEvent_SyncV0_1 = VaultUpsertedEvent_SyncV0_1 | VaultDeletedEvent_SyncV0_1 | AclChangedEvent_SyncV0_1 | PolicyChangedEvent_SyncV0_1;
|
|
1333
1468
|
export type SyncEvent_SyncV0_2 = VaultUpsertedEvent_SyncV0_2 | VaultDeletedEvent_SyncV0_2 | AclChangedEvent_SyncV0_2 | PolicyChangedEvent_SyncV0_2;
|
|
1469
|
+
/**
|
|
1470
|
+
* A family of Trust Tasks, named by a slug prefix of whole segments (SPEC §6.1 grammar): `vtc/directory` names every task whose slug is `vtc/directory` or begins `vtc/directory/`, at any version. A prefix matches on segment boundaries only, so `vtc/dir` names nothing under `vtc/directory`.
|
|
1471
|
+
*/
|
|
1472
|
+
export type TaskFamily = string;
|
|
1334
1473
|
/**
|
|
1335
1474
|
* The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
|
|
1336
1475
|
*/
|
|
@@ -1343,6 +1482,10 @@ export type Topic_VtcAdminEventsV0_1 = "actions" | "acknowledgements" | "joinReq
|
|
|
1343
1482
|
* One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
|
|
1344
1483
|
*/
|
|
1345
1484
|
export type Topic_VtcAdminEventsV0_2 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms";
|
|
1485
|
+
/**
|
|
1486
|
+
* One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
|
|
1487
|
+
*/
|
|
1488
|
+
export type Topic_VtcAdminEventsV0_3 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms" | "directory" | "groups";
|
|
1346
1489
|
/**
|
|
1347
1490
|
* How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
|
|
1348
1491
|
*/
|
|
@@ -3671,6 +3814,31 @@ export interface AdminAccount {
|
|
|
3671
3814
|
*/
|
|
3672
3815
|
accountType: AccountType;
|
|
3673
3816
|
}
|
|
3817
|
+
export interface AdminNote {
|
|
3818
|
+
noteId: NoteId;
|
|
3819
|
+
entryId: EntryId;
|
|
3820
|
+
/**
|
|
3821
|
+
* DID of the administrator who wrote the note.
|
|
3822
|
+
*/
|
|
3823
|
+
author: string;
|
|
3824
|
+
createdAt: string;
|
|
3825
|
+
/**
|
|
3826
|
+
* The note. Absent from a note that has since been redacted, except in vtc/directory/notes/export, which returns every note as written.
|
|
3827
|
+
*/
|
|
3828
|
+
text?: NoteText;
|
|
3829
|
+
/**
|
|
3830
|
+
* Optional date by which the note asks for a follow-up.
|
|
3831
|
+
*/
|
|
3832
|
+
followUp?: string;
|
|
3833
|
+
/**
|
|
3834
|
+
* Present on a redaction: the earlier note this one withdraws.
|
|
3835
|
+
*/
|
|
3836
|
+
redacts?: NoteId;
|
|
3837
|
+
/**
|
|
3838
|
+
* Present on a note that a later note redacted.
|
|
3839
|
+
*/
|
|
3840
|
+
redactedBy?: NoteId;
|
|
3841
|
+
}
|
|
3674
3842
|
/**
|
|
3675
3843
|
* One right as the administrator's rights console shows it: a recorded `RightRecord` restated with the membership facts an administrator needs (`subjectMember`, `granterDeparted`), or a role-derived grant that carries no record. `git-ns/right/list` and `git-ns/right/issued-by-departed` are its only producers.
|
|
3676
3844
|
*/
|
|
@@ -4456,6 +4624,37 @@ export interface CapabilityScopeListed {
|
|
|
4456
4624
|
export interface CapabilityScopeNone {
|
|
4457
4625
|
scope: "none";
|
|
4458
4626
|
}
|
|
4627
|
+
/**
|
|
4628
|
+
* A content-addressed image held in the community's blob store — an avatar or an `image` field. At most 256 KiB, images only, re-encoded by the community on upload (vtc/directory/images/upload: metadata stripped, dimensions capped) so its digest does not link the member across communities. A viewer reads the bytes with vtc/directory/images/get, which answers only where the same projection shows the value. `url` and `urlExpiresAt` MAY appear in a projection: a short-lived URL the community checks against the same projection, so a member-only image is never a public URL. A community that does not offer one leaves both out.
|
|
4629
|
+
*/
|
|
4630
|
+
export interface CardBlobRef {
|
|
4631
|
+
/**
|
|
4632
|
+
* Lowercase hex SHA-256 of the stored, re-encoded bytes.
|
|
4633
|
+
*/
|
|
4634
|
+
sha256: string;
|
|
4635
|
+
/**
|
|
4636
|
+
* Media type of the stored bytes.
|
|
4637
|
+
*/
|
|
4638
|
+
mediaType: "image/png" | "image/jpeg" | "image/webp" | "image/avif";
|
|
4639
|
+
/**
|
|
4640
|
+
* Size in bytes of the stored bytes.
|
|
4641
|
+
*/
|
|
4642
|
+
size?: number;
|
|
4643
|
+
/**
|
|
4644
|
+
* Projection only: a URL the viewer can fetch the image from until `urlExpiresAt`.
|
|
4645
|
+
*/
|
|
4646
|
+
url?: string;
|
|
4647
|
+
/**
|
|
4648
|
+
* Projection only: when `url` stops working.
|
|
4649
|
+
*/
|
|
4650
|
+
urlExpiresAt?: string;
|
|
4651
|
+
}
|
|
4652
|
+
/**
|
|
4653
|
+
* A card's stored values, keyed by field. Holds `member`-, `admin`- and `credential`-sourced fields only; derived fields (`role`, `joinedAt`, `did`, `personhood`) are read from the community's own records when a projection is made, never stored here. At most 64 values, and at most 16 KiB serialized excluding the blobs a `CardBlobRef` names.
|
|
4654
|
+
*/
|
|
4655
|
+
export interface CardValues {
|
|
4656
|
+
[k: string]: FieldValue | undefined;
|
|
4657
|
+
}
|
|
4459
4658
|
/**
|
|
4460
4659
|
* A whole Trust Task document — `id`, `type`, `payload` and every other member, `proof` included — carried between the VTA and the witness by the client: one the VTA built and signed for the client to send, or one the witness returned for the client to hand back. Typed as an open object so every member survives a round trip: carried exactly as built or received, never re-serialised, because its proof is over itself. Its envelope is checked by the VTA against the session record (CONVENTIONS.md §3), not by this schema.
|
|
4461
4660
|
*/
|
|
@@ -4491,6 +4690,25 @@ export interface ChunkedDescriptor {
|
|
|
4491
4690
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
4492
4691
|
expiresAt: ExpiresAt;
|
|
4493
4692
|
}
|
|
4693
|
+
/**
|
|
4694
|
+
* Which claim a `claim` field accepts, from which credentials and issuers.
|
|
4695
|
+
*/
|
|
4696
|
+
export interface ClaimSelector {
|
|
4697
|
+
/**
|
|
4698
|
+
* A `type` the presented credential MUST carry.
|
|
4699
|
+
*/
|
|
4700
|
+
credentialType: string;
|
|
4701
|
+
/**
|
|
4702
|
+
* JSON Pointer (RFC 6901) to the claim within `credentialSubject`.
|
|
4703
|
+
*/
|
|
4704
|
+
claimPath: string;
|
|
4705
|
+
/**
|
|
4706
|
+
* Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.
|
|
4707
|
+
*
|
|
4708
|
+
* @maxItems 32
|
|
4709
|
+
*/
|
|
4710
|
+
issuers?: string[];
|
|
4711
|
+
}
|
|
4494
4712
|
/**
|
|
4495
4713
|
* OPTIONAL. How the community asks to be shown to a prospective applicant: a name, an accent colour and a logo. Presentation only, self-asserted and unverified — `communityDid` identifies the community, never `branding`. Not part of any criterion, so not covered by a `requirementsDigest`. Every member is optional.
|
|
4496
4714
|
*/
|
|
@@ -4826,6 +5044,24 @@ export interface ContactDocument {
|
|
|
4826
5044
|
provenance?: Provenance;
|
|
4827
5045
|
}[];
|
|
4828
5046
|
}
|
|
5047
|
+
/**
|
|
5048
|
+
* One of the holder's lists, as their agent keeps it. A list is context-scoped, like the contacts it holds: it may hold contacts known by any persona in its context, and contacts from any number of communities, but never a contact of another context.
|
|
5049
|
+
*/
|
|
5050
|
+
export interface ContactList {
|
|
5051
|
+
listId: ListId;
|
|
5052
|
+
name: ListName;
|
|
5053
|
+
colour?: ListColour;
|
|
5054
|
+
order: ListOrder;
|
|
5055
|
+
/**
|
|
5056
|
+
* How many of the context's contacts are on the list now.
|
|
5057
|
+
*/
|
|
5058
|
+
contactCount: number;
|
|
5059
|
+
createdAt: string;
|
|
5060
|
+
/**
|
|
5061
|
+
* When the list's name, colour or order last changed. Adding a contact to the list or removing one does not move it.
|
|
5062
|
+
*/
|
|
5063
|
+
updatedAt: string;
|
|
5064
|
+
}
|
|
4829
5065
|
/**
|
|
4830
5066
|
* One received version of a contact's document. Revisions exist because an address book that silently replaces a payment address is a phishing surface, and one that says what changed and when is a defence.
|
|
4831
5067
|
*/
|
|
@@ -5554,6 +5790,138 @@ export interface DidcommAuthcryptEnvelope_VaultV0_2 {
|
|
|
5554
5790
|
*/
|
|
5555
5791
|
jwe: string;
|
|
5556
5792
|
}
|
|
5793
|
+
/**
|
|
5794
|
+
* A member's own directory record: their values, a visibility for each field, their discoverability and who may ask to be introduced. Returned whole only to its subject. Every other reader receives a `DirectoryEntry`.
|
|
5795
|
+
*/
|
|
5796
|
+
export interface DirectoryCard {
|
|
5797
|
+
entryId: EntryId;
|
|
5798
|
+
values: CardValues;
|
|
5799
|
+
visibility: FieldVisibility;
|
|
5800
|
+
discoverability: Discoverability;
|
|
5801
|
+
introductions: Introductions;
|
|
5802
|
+
/**
|
|
5803
|
+
* The community groups whose members count as the `groups` audience for this card. Absent: every community group the subject belongs to. A group the subject has left stops counting at once.
|
|
5804
|
+
*
|
|
5805
|
+
* @maxItems 64
|
|
5806
|
+
*/
|
|
5807
|
+
groupAudience?: string[];
|
|
5808
|
+
externalCard?: ExternalCard;
|
|
5809
|
+
/**
|
|
5810
|
+
* Incremented on every accepted change to the card, by its subject or by an administrator's assertion.
|
|
5811
|
+
*/
|
|
5812
|
+
revision: number;
|
|
5813
|
+
/**
|
|
5814
|
+
* When the card last changed.
|
|
5815
|
+
*/
|
|
5816
|
+
updatedAt: string;
|
|
5817
|
+
/**
|
|
5818
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry directory data that bypasses the projection.
|
|
5819
|
+
*/
|
|
5820
|
+
ext?: Ext;
|
|
5821
|
+
}
|
|
5822
|
+
/**
|
|
5823
|
+
* The statement itself. Every member is generated from the community's configuration when the statement is read. `statementDigest` names this exact statement, so an applicant can record which one it was shown.
|
|
5824
|
+
*/
|
|
5825
|
+
export interface DirectoryDisclosure {
|
|
5826
|
+
/**
|
|
5827
|
+
* Every active field, base and community-defined, in display order. A base field the community has disabled is absent, which is how a reader learns it is not collected.
|
|
5828
|
+
*
|
|
5829
|
+
* @maxItems 128
|
|
5830
|
+
*/
|
|
5831
|
+
fields: DisclosedField[];
|
|
5832
|
+
newCard: NewCardDefaults;
|
|
5833
|
+
/**
|
|
5834
|
+
* The widest audience a member's membership identifier — the DID they joined with — can reach through the directory: the ceiling of the base field `did`, or `admins` where that field is disabled. `members` or `public` means a member may choose to show it that widely; a new card never shows it beyond `admins` (VTI-DIR-042). Administrators always see it.
|
|
5835
|
+
*/
|
|
5836
|
+
membershipIdentifiers: Audience;
|
|
5837
|
+
/**
|
|
5838
|
+
* Whether administrators keep notes about members. Notes are never on a card and never reach another member; a member may ask for the notes about them.
|
|
5839
|
+
*/
|
|
5840
|
+
adminNotes: boolean;
|
|
5841
|
+
groups?: GroupDisclosure;
|
|
5842
|
+
/**
|
|
5843
|
+
* Whether a member may publish a card beyond the community: their `public` values, signed by them, offered through the community's trust registry. Always the member's own choice, and off on a new card. False where the community cannot publish external cards.
|
|
5844
|
+
*/
|
|
5845
|
+
externalCards: boolean;
|
|
5846
|
+
/**
|
|
5847
|
+
* Digest over the RFC 8785 (JCS) canonicalization of this statement with the `statementDigest` member removed, as a multibase-encoded multihash (SHA-256 and base58btc RECOMMENDED). Changes exactly when what the statement says changes.
|
|
5848
|
+
*/
|
|
5849
|
+
statementDigest: DigestMultibase;
|
|
5850
|
+
ext?: Ext;
|
|
5851
|
+
}
|
|
5852
|
+
/**
|
|
5853
|
+
* One entry as a particular viewer sees it.
|
|
5854
|
+
*/
|
|
5855
|
+
export interface DirectoryEntry {
|
|
5856
|
+
entryId: EntryId;
|
|
5857
|
+
fields: EntryFields;
|
|
5858
|
+
/**
|
|
5859
|
+
* Present, and `true`, only when the viewer is one of the two parties to an attributed, in-force verified relationship with this entry's member that the community can see. Absent otherwise — never `false`, which would disclose that the community looked and found none. Relationships known only to the viewer's own agent are badged by that agent, not here.
|
|
5860
|
+
*/
|
|
5861
|
+
connected?: boolean;
|
|
5862
|
+
/**
|
|
5863
|
+
* The community groups the viewer and this member both belong to, among those whose membership the viewer may see. Absent when there are none.
|
|
5864
|
+
*
|
|
5865
|
+
* @maxItems 64
|
|
5866
|
+
*/
|
|
5867
|
+
sharedGroups?: string[];
|
|
5868
|
+
}
|
|
5869
|
+
/**
|
|
5870
|
+
* Links a contact to the entry in a community's member directory it corresponds to, so the holder's own client can join that community's directory with the holder's address book — showing a star or a petname beside an entry — without either side telling the other. The community never learns the link exists; the contact never learns it either. A contact has at most one.
|
|
5871
|
+
*/
|
|
5872
|
+
export interface DirectoryRef {
|
|
5873
|
+
/**
|
|
5874
|
+
* The DID of the community whose directory holds the entry.
|
|
5875
|
+
*/
|
|
5876
|
+
vtcDid: string;
|
|
5877
|
+
/**
|
|
5878
|
+
* The entry, as that community's directory identifies it.
|
|
5879
|
+
*/
|
|
5880
|
+
entryId: DirectoryEntryId;
|
|
5881
|
+
}
|
|
5882
|
+
/**
|
|
5883
|
+
* One active field of the community's directory, as an applicant needs to see it: what it is, who writes its value, the widest audience it may ever reach and the audience a new card gives it. Disabled and retired fields are not listed: no projection shows them.
|
|
5884
|
+
*/
|
|
5885
|
+
export interface DisclosedField {
|
|
5886
|
+
key: FieldKey;
|
|
5887
|
+
label: FieldLabel;
|
|
5888
|
+
description?: FieldDescription;
|
|
5889
|
+
type: FieldType;
|
|
5890
|
+
/**
|
|
5891
|
+
* Who writes the value. `admin` and `credential` matter most to an applicant: an `admin` field holds what the community asserts about the member, which the member reads and cannot change.
|
|
5892
|
+
*/
|
|
5893
|
+
source: FieldSource;
|
|
5894
|
+
/**
|
|
5895
|
+
* The widest audience the field may ever reach, whatever the member chooses.
|
|
5896
|
+
*/
|
|
5897
|
+
ceiling: Audience;
|
|
5898
|
+
/**
|
|
5899
|
+
* The audience a new card gives the field until its member chooses. Never wider than `ceiling`.
|
|
5900
|
+
*/
|
|
5901
|
+
defaultVisibility: Audience;
|
|
5902
|
+
/**
|
|
5903
|
+
* Whether a member's search may match the field, within what the searcher may see.
|
|
5904
|
+
*/
|
|
5905
|
+
searchable: boolean;
|
|
5906
|
+
/**
|
|
5907
|
+
* Whether members may filter on the field and see counts by its values. Absent: false.
|
|
5908
|
+
*/
|
|
5909
|
+
facet?: boolean;
|
|
5910
|
+
}
|
|
5911
|
+
/**
|
|
5912
|
+
* The member's three discoverability decisions, made separately.
|
|
5913
|
+
*/
|
|
5914
|
+
export interface Discoverability {
|
|
5915
|
+
listing: Listing;
|
|
5916
|
+
/**
|
|
5917
|
+
* What a member's search may match. `byName`: `displayName` or `nickname`. `exactNickname`: only an exact `nickname`. `off`: nothing. A DID is never a search key for a non-administrator, whatever this says.
|
|
5918
|
+
*/
|
|
5919
|
+
search: "byName" | "exactNickname" | "off";
|
|
5920
|
+
/**
|
|
5921
|
+
* Whether the member publishes a public card — the fields whose visibility is `public`, signed by the member — through the community's trust registry. A second consent, separate from registry-publication consent (`publishConsent`), which it requires. A community that cannot yet publish external cards refuses `true` with `notAvailable`.
|
|
5922
|
+
*/
|
|
5923
|
+
external: boolean;
|
|
5924
|
+
}
|
|
5557
5925
|
export interface DomainEntry {
|
|
5558
5926
|
/**
|
|
5559
5927
|
* Hosting domain name (e.g. `did.example.com`). Compared case-insensitively; producers SHOULD emit lowercase canonical form.
|
|
@@ -5625,6 +5993,133 @@ export interface DriftItem {
|
|
|
5625
5993
|
*/
|
|
5626
5994
|
expected?: string;
|
|
5627
5995
|
}
|
|
5996
|
+
/**
|
|
5997
|
+
* A dynamic group's membership rule: a member belongs when every condition holds and they have not opted out. The community evaluates it under its `groups` policy and recomputes membership whenever a fact it reads changes, always excluding opted-out entries.
|
|
5998
|
+
*/
|
|
5999
|
+
export interface DynamicRule {
|
|
6000
|
+
/**
|
|
6001
|
+
* @minItems 1
|
|
6002
|
+
* @maxItems 16
|
|
6003
|
+
*/
|
|
6004
|
+
all: [RuleCondition] | [RuleCondition, RuleCondition] | [RuleCondition, RuleCondition, RuleCondition] | [RuleCondition, RuleCondition, RuleCondition, RuleCondition] | [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition] | [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition] | [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition] | [
|
|
6005
|
+
RuleCondition,
|
|
6006
|
+
RuleCondition,
|
|
6007
|
+
RuleCondition,
|
|
6008
|
+
RuleCondition,
|
|
6009
|
+
RuleCondition,
|
|
6010
|
+
RuleCondition,
|
|
6011
|
+
RuleCondition,
|
|
6012
|
+
RuleCondition
|
|
6013
|
+
] | [
|
|
6014
|
+
RuleCondition,
|
|
6015
|
+
RuleCondition,
|
|
6016
|
+
RuleCondition,
|
|
6017
|
+
RuleCondition,
|
|
6018
|
+
RuleCondition,
|
|
6019
|
+
RuleCondition,
|
|
6020
|
+
RuleCondition,
|
|
6021
|
+
RuleCondition,
|
|
6022
|
+
RuleCondition
|
|
6023
|
+
] | [
|
|
6024
|
+
RuleCondition,
|
|
6025
|
+
RuleCondition,
|
|
6026
|
+
RuleCondition,
|
|
6027
|
+
RuleCondition,
|
|
6028
|
+
RuleCondition,
|
|
6029
|
+
RuleCondition,
|
|
6030
|
+
RuleCondition,
|
|
6031
|
+
RuleCondition,
|
|
6032
|
+
RuleCondition,
|
|
6033
|
+
RuleCondition
|
|
6034
|
+
] | [
|
|
6035
|
+
RuleCondition,
|
|
6036
|
+
RuleCondition,
|
|
6037
|
+
RuleCondition,
|
|
6038
|
+
RuleCondition,
|
|
6039
|
+
RuleCondition,
|
|
6040
|
+
RuleCondition,
|
|
6041
|
+
RuleCondition,
|
|
6042
|
+
RuleCondition,
|
|
6043
|
+
RuleCondition,
|
|
6044
|
+
RuleCondition,
|
|
6045
|
+
RuleCondition
|
|
6046
|
+
] | [
|
|
6047
|
+
RuleCondition,
|
|
6048
|
+
RuleCondition,
|
|
6049
|
+
RuleCondition,
|
|
6050
|
+
RuleCondition,
|
|
6051
|
+
RuleCondition,
|
|
6052
|
+
RuleCondition,
|
|
6053
|
+
RuleCondition,
|
|
6054
|
+
RuleCondition,
|
|
6055
|
+
RuleCondition,
|
|
6056
|
+
RuleCondition,
|
|
6057
|
+
RuleCondition,
|
|
6058
|
+
RuleCondition
|
|
6059
|
+
] | [
|
|
6060
|
+
RuleCondition,
|
|
6061
|
+
RuleCondition,
|
|
6062
|
+
RuleCondition,
|
|
6063
|
+
RuleCondition,
|
|
6064
|
+
RuleCondition,
|
|
6065
|
+
RuleCondition,
|
|
6066
|
+
RuleCondition,
|
|
6067
|
+
RuleCondition,
|
|
6068
|
+
RuleCondition,
|
|
6069
|
+
RuleCondition,
|
|
6070
|
+
RuleCondition,
|
|
6071
|
+
RuleCondition,
|
|
6072
|
+
RuleCondition
|
|
6073
|
+
] | [
|
|
6074
|
+
RuleCondition,
|
|
6075
|
+
RuleCondition,
|
|
6076
|
+
RuleCondition,
|
|
6077
|
+
RuleCondition,
|
|
6078
|
+
RuleCondition,
|
|
6079
|
+
RuleCondition,
|
|
6080
|
+
RuleCondition,
|
|
6081
|
+
RuleCondition,
|
|
6082
|
+
RuleCondition,
|
|
6083
|
+
RuleCondition,
|
|
6084
|
+
RuleCondition,
|
|
6085
|
+
RuleCondition,
|
|
6086
|
+
RuleCondition,
|
|
6087
|
+
RuleCondition
|
|
6088
|
+
] | [
|
|
6089
|
+
RuleCondition,
|
|
6090
|
+
RuleCondition,
|
|
6091
|
+
RuleCondition,
|
|
6092
|
+
RuleCondition,
|
|
6093
|
+
RuleCondition,
|
|
6094
|
+
RuleCondition,
|
|
6095
|
+
RuleCondition,
|
|
6096
|
+
RuleCondition,
|
|
6097
|
+
RuleCondition,
|
|
6098
|
+
RuleCondition,
|
|
6099
|
+
RuleCondition,
|
|
6100
|
+
RuleCondition,
|
|
6101
|
+
RuleCondition,
|
|
6102
|
+
RuleCondition,
|
|
6103
|
+
RuleCondition
|
|
6104
|
+
] | [
|
|
6105
|
+
RuleCondition,
|
|
6106
|
+
RuleCondition,
|
|
6107
|
+
RuleCondition,
|
|
6108
|
+
RuleCondition,
|
|
6109
|
+
RuleCondition,
|
|
6110
|
+
RuleCondition,
|
|
6111
|
+
RuleCondition,
|
|
6112
|
+
RuleCondition,
|
|
6113
|
+
RuleCondition,
|
|
6114
|
+
RuleCondition,
|
|
6115
|
+
RuleCondition,
|
|
6116
|
+
RuleCondition,
|
|
6117
|
+
RuleCondition,
|
|
6118
|
+
RuleCondition,
|
|
6119
|
+
RuleCondition,
|
|
6120
|
+
RuleCondition
|
|
6121
|
+
];
|
|
6122
|
+
}
|
|
5628
6123
|
/**
|
|
5629
6124
|
* One consequence of executing the pending task, authored by the executor that is about to run it. An effect is produced by dry-running the real handler against the executor's own prior state — never by the requester, and never by re-implementing the handler's semantics elsewhere. A consent surface renders ONLY effects it received under the executor's signature.
|
|
5630
6125
|
*/
|
|
@@ -5728,6 +6223,22 @@ export interface EndorsementType {
|
|
|
5728
6223
|
*/
|
|
5729
6224
|
createdByDid?: string;
|
|
5730
6225
|
}
|
|
6226
|
+
/**
|
|
6227
|
+
* The fields of one entry that a particular viewer may see, keyed by field: the intersection of the member's visibility, the community's ceiling and policy, plus any derived fields that intersection admits. A withheld field is ABSENT, never null.
|
|
6228
|
+
*/
|
|
6229
|
+
export interface EntryFields {
|
|
6230
|
+
[k: string]: FieldValue | undefined;
|
|
6231
|
+
}
|
|
6232
|
+
export interface EnumOption {
|
|
6233
|
+
/**
|
|
6234
|
+
* The stored value.
|
|
6235
|
+
*/
|
|
6236
|
+
value: string;
|
|
6237
|
+
/**
|
|
6238
|
+
* What a reader is shown for it.
|
|
6239
|
+
*/
|
|
6240
|
+
label: string;
|
|
6241
|
+
}
|
|
5731
6242
|
/**
|
|
5732
6243
|
* What a room writes into its own witnessed log, so that a host serving a stale, forked or partial view of it becomes **evident rather than merely possible**.
|
|
5733
6244
|
*
|
|
@@ -5838,6 +6349,20 @@ export interface ExternalAccount {
|
|
|
5838
6349
|
createdAt: string;
|
|
5839
6350
|
updatedAt: string;
|
|
5840
6351
|
}
|
|
6352
|
+
/**
|
|
6353
|
+
* Where the member's external card stands. Present on a card exactly when `discoverability.external` is true. `published`: the community is serving the card the member signed, and its trust registry points to it. `awaitingSignature`: the member's `public` values have changed since they signed, so the community has withdrawn the card it was serving and serves none until the member signs the current values (vtc/directory/card/publish). The community never serves a card the member did not sign, and never one that differs from their current `public` values.
|
|
6354
|
+
*/
|
|
6355
|
+
export interface ExternalCard {
|
|
6356
|
+
state: "published" | "awaitingSignature";
|
|
6357
|
+
/**
|
|
6358
|
+
* Present while `published`: digest of the card served, as vtc/directory/card/publish defines it.
|
|
6359
|
+
*/
|
|
6360
|
+
cardDigest?: DigestMultibase;
|
|
6361
|
+
/**
|
|
6362
|
+
* Present while `published`: when the card now served was published.
|
|
6363
|
+
*/
|
|
6364
|
+
publishedAt?: string;
|
|
6365
|
+
}
|
|
5841
6366
|
/**
|
|
5842
6367
|
* One displayed value, with where it comes from and how to render it.
|
|
5843
6368
|
*/
|
|
@@ -5857,6 +6382,108 @@ export interface Field {
|
|
|
5857
6382
|
[k: string]: unknown | undefined;
|
|
5858
6383
|
};
|
|
5859
6384
|
}
|
|
6385
|
+
/**
|
|
6386
|
+
* Per-type constraints. A member that does not apply to the field's type is refused by the community with `valueInvalid` when the definition is written.
|
|
6387
|
+
*/
|
|
6388
|
+
export interface FieldConstraints {
|
|
6389
|
+
maxLength?: number;
|
|
6390
|
+
minLength?: number;
|
|
6391
|
+
/**
|
|
6392
|
+
* ECMA-262 regular expression a text value MUST match.
|
|
6393
|
+
*/
|
|
6394
|
+
pattern?: string;
|
|
6395
|
+
/**
|
|
6396
|
+
* The permitted values of an `enum` or `multiEnum` field.
|
|
6397
|
+
*
|
|
6398
|
+
* @minItems 1
|
|
6399
|
+
* @maxItems 128
|
|
6400
|
+
*/
|
|
6401
|
+
options?: [EnumOption, ...EnumOption[]];
|
|
6402
|
+
maxItems?: number;
|
|
6403
|
+
minDate?: string;
|
|
6404
|
+
maxDate?: string;
|
|
6405
|
+
claim?: ClaimSelector;
|
|
6406
|
+
}
|
|
6407
|
+
/**
|
|
6408
|
+
* One field of the community's directory schema, as the community holds it. The audience order `admins` < `groups`/`connections` < `members` < `public` applies to `ceiling` and `defaultVisibility`; `defaultVisibility` is never wider than `ceiling`.
|
|
6409
|
+
*/
|
|
6410
|
+
export interface FieldDefinition {
|
|
6411
|
+
key: FieldKey;
|
|
6412
|
+
label: FieldLabel;
|
|
6413
|
+
description?: FieldDescription;
|
|
6414
|
+
type: FieldType;
|
|
6415
|
+
constraints?: FieldConstraints;
|
|
6416
|
+
source: FieldSource;
|
|
6417
|
+
/**
|
|
6418
|
+
* `true` for a base field, present in every community; `false` for a field this community defined.
|
|
6419
|
+
*/
|
|
6420
|
+
base: boolean;
|
|
6421
|
+
/**
|
|
6422
|
+
* Where the field lands when an entry is exported as a JSContact Card (RFC 9553), e.g. `name.full`, `nicknames`, `speakToAs.pronouns`. Absent: a vendor-specific property named by the key.
|
|
6423
|
+
*/
|
|
6424
|
+
jsContactPath?: string;
|
|
6425
|
+
required: boolean;
|
|
6426
|
+
ceiling: Audience;
|
|
6427
|
+
defaultVisibility: Audience;
|
|
6428
|
+
searchable: boolean;
|
|
6429
|
+
facet: boolean;
|
|
6430
|
+
order: number;
|
|
6431
|
+
state: FieldState;
|
|
6432
|
+
/**
|
|
6433
|
+
* When the field was retired. Present only on a retired field.
|
|
6434
|
+
*/
|
|
6435
|
+
retiredAt?: string;
|
|
6436
|
+
/**
|
|
6437
|
+
* When the values of a retired field are purged. Present only on a retired field.
|
|
6438
|
+
*/
|
|
6439
|
+
purgeAfter?: string;
|
|
6440
|
+
updatedAt?: string;
|
|
6441
|
+
/**
|
|
6442
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.
|
|
6443
|
+
*/
|
|
6444
|
+
ext?: Ext;
|
|
6445
|
+
}
|
|
6446
|
+
/**
|
|
6447
|
+
* What an administrator supplies to define a community field. `key`, `type` and `source` are fixed for the field's life.
|
|
6448
|
+
*/
|
|
6449
|
+
export interface FieldInput {
|
|
6450
|
+
key: FieldKey;
|
|
6451
|
+
label: FieldLabel;
|
|
6452
|
+
description?: FieldDescription;
|
|
6453
|
+
type: FieldType;
|
|
6454
|
+
constraints?: FieldConstraints;
|
|
6455
|
+
/**
|
|
6456
|
+
* As `FieldSource`, less `derived`, which only base fields carry.
|
|
6457
|
+
*/
|
|
6458
|
+
source: "member" | "admin" | "credential";
|
|
6459
|
+
/**
|
|
6460
|
+
* Whether a card must hold a value for its entry to be listed. Never a condition of membership. Absent: false.
|
|
6461
|
+
*/
|
|
6462
|
+
required?: boolean;
|
|
6463
|
+
ceiling: Audience;
|
|
6464
|
+
/**
|
|
6465
|
+
* The audience a card gives the field until its member chooses. MUST NOT be wider than `ceiling`.
|
|
6466
|
+
*/
|
|
6467
|
+
defaultVisibility: Audience;
|
|
6468
|
+
/**
|
|
6469
|
+
* Whether a member's search may match the field, within what the searcher may see. Absent: false.
|
|
6470
|
+
*/
|
|
6471
|
+
searchable?: boolean;
|
|
6472
|
+
/**
|
|
6473
|
+
* Whether the field may be filtered on and counted. Only `enum`, `multiEnum` and `country` fields may be facets. Absent: false.
|
|
6474
|
+
*/
|
|
6475
|
+
facet?: boolean;
|
|
6476
|
+
/**
|
|
6477
|
+
* Display order, ascending.
|
|
6478
|
+
*/
|
|
6479
|
+
order?: number;
|
|
6480
|
+
}
|
|
6481
|
+
/**
|
|
6482
|
+
* The audience the member chose for each field. A field with no entry here takes its definition's `defaultVisibility`. The community MUST NOT widen a member's choice: widening a field's ceiling or default changes no visibility already recorded.
|
|
6483
|
+
*/
|
|
6484
|
+
export interface FieldVisibility {
|
|
6485
|
+
[k: string]: Audience | undefined;
|
|
6486
|
+
}
|
|
5860
6487
|
/**
|
|
5861
6488
|
* The `file` member of a sealed record body: everything that describes a file, sealed with the record, signed by the record's author, and never seen by the host. Defined here so that clients interoperate; no host task carries it, because the host receives only ciphertext.
|
|
5862
6489
|
*
|
|
@@ -5952,6 +6579,131 @@ export interface GitNamespace {
|
|
|
5952
6579
|
*/
|
|
5953
6580
|
state: "pending" | "bound";
|
|
5954
6581
|
}
|
|
6582
|
+
/**
|
|
6583
|
+
* A grant set the group confers: each capability is written onto every member's access-control entry as a resource grant whose source is the group, bounded by the member's role ceiling and by the binder's own holdings.
|
|
6584
|
+
*/
|
|
6585
|
+
export interface GrantsBindingSpec {
|
|
6586
|
+
kind: "grants";
|
|
6587
|
+
/**
|
|
6588
|
+
* @minItems 1
|
|
6589
|
+
* @maxItems 32
|
|
6590
|
+
*/
|
|
6591
|
+
grants: [CapabilityRef, ...CapabilityRef[]];
|
|
6592
|
+
}
|
|
6593
|
+
/**
|
|
6594
|
+
* A community group, as a caller who may see it sees it. Members a caller may not see are absent: `memberCount` only to those who may see the group's members, `managers` and `credentialAuthorityValidUntil` only to its managers.
|
|
6595
|
+
*/
|
|
6596
|
+
export interface Group {
|
|
6597
|
+
groupId: GroupId;
|
|
6598
|
+
/**
|
|
6599
|
+
* The group's own DID, minted by the community's VTA for this group alone. It issues the group's membership credentials. Its DID document carries no name or description.
|
|
6600
|
+
*/
|
|
6601
|
+
groupDid: string;
|
|
6602
|
+
name: GroupName;
|
|
6603
|
+
description?: GroupDescription;
|
|
6604
|
+
kind: GroupKind;
|
|
6605
|
+
/**
|
|
6606
|
+
* Present exactly when `kind` is `dynamic`.
|
|
6607
|
+
*/
|
|
6608
|
+
rule?: DynamicRule;
|
|
6609
|
+
/**
|
|
6610
|
+
* Present exactly when `kind` is `static`.
|
|
6611
|
+
*/
|
|
6612
|
+
joinPolicy?: JoinPolicy;
|
|
6613
|
+
/**
|
|
6614
|
+
* Who may see that the group exists, and its name and description.
|
|
6615
|
+
*/
|
|
6616
|
+
visibility: GroupAudience;
|
|
6617
|
+
/**
|
|
6618
|
+
* Who may see the group's member list. Separate from `visibility`: a group everyone sees may show its members only to administrators. Never wider than `visibility`.
|
|
6619
|
+
*/
|
|
6620
|
+
showMembers: GroupAudience;
|
|
6621
|
+
/**
|
|
6622
|
+
* Whether the group's DID issues its members a membership credential. Default true.
|
|
6623
|
+
*/
|
|
6624
|
+
issuesCredentials: boolean;
|
|
6625
|
+
/**
|
|
6626
|
+
* `true` while the group has a `grants` or `role` binding. Such a group is `static` and `closed` for as long as it does.
|
|
6627
|
+
*/
|
|
6628
|
+
carriesAuthority: boolean;
|
|
6629
|
+
/**
|
|
6630
|
+
* Active members. Only to callers who may see the member list.
|
|
6631
|
+
*/
|
|
6632
|
+
memberCount?: number;
|
|
6633
|
+
/**
|
|
6634
|
+
* Entries holding `vtc.groups.manage` qualified to this group, read from the access-control list. Informational: managers are appointed by an access-control grant, never by this record.
|
|
6635
|
+
*
|
|
6636
|
+
* @maxItems 256
|
|
6637
|
+
*/
|
|
6638
|
+
managers?: EntryId[];
|
|
6639
|
+
/**
|
|
6640
|
+
* When the community's authorization credential to the group expires. The community renews it well before.
|
|
6641
|
+
*/
|
|
6642
|
+
credentialAuthorityValidUntil?: string;
|
|
6643
|
+
createdAt: string;
|
|
6644
|
+
/**
|
|
6645
|
+
* The creating administrator's directory entry, where they have one.
|
|
6646
|
+
*/
|
|
6647
|
+
createdBy?: EntryId;
|
|
6648
|
+
updatedAt?: string;
|
|
6649
|
+
/**
|
|
6650
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry authority.
|
|
6651
|
+
*/
|
|
6652
|
+
ext?: Ext;
|
|
6653
|
+
}
|
|
6654
|
+
export interface GroupBinding {
|
|
6655
|
+
bindingId: BindingId;
|
|
6656
|
+
binding: BindingSpec;
|
|
6657
|
+
/**
|
|
6658
|
+
* `pending`: waiting for the consent the community requires. `active`: in force; the community's reconciler keeps members' admissions and grants in line with it. `removing`: being withdrawn; the reconciler is removing what only this binding provided.
|
|
6659
|
+
*/
|
|
6660
|
+
state: "pending" | "active" | "removing";
|
|
6661
|
+
createdAt: string;
|
|
6662
|
+
createdBy?: string;
|
|
6663
|
+
}
|
|
6664
|
+
/**
|
|
6665
|
+
* Present when the community has groups. A member of a group holds a credential, issued by the group's own identifier, that evidences their membership, and can present it outside the community — which is why an applicant is told.
|
|
6666
|
+
*/
|
|
6667
|
+
export interface GroupDisclosure {
|
|
6668
|
+
/**
|
|
6669
|
+
* How long each group membership credential is valid for, as an ISO 8601 duration in weeks, days, hours, minutes and seconds (`P30D`). It is renewed while the member stays in the group, and a credential already issued stays valid until it expires even after its holder leaves.
|
|
6670
|
+
*/
|
|
6671
|
+
credentialValidity: string;
|
|
6672
|
+
}
|
|
6673
|
+
export interface GroupJoinRequest {
|
|
6674
|
+
requestId: JoinRequestId;
|
|
6675
|
+
groupId: GroupId;
|
|
6676
|
+
entryId: EntryId;
|
|
6677
|
+
message?: JoinRequestMessage;
|
|
6678
|
+
createdAt: string;
|
|
6679
|
+
state: "pending" | "approved" | "declined" | "withdrawn";
|
|
6680
|
+
decidedAt?: string;
|
|
6681
|
+
/**
|
|
6682
|
+
* The manager who decided. Shown to managers only.
|
|
6683
|
+
*/
|
|
6684
|
+
decidedBy?: string;
|
|
6685
|
+
}
|
|
6686
|
+
export interface GroupMember {
|
|
6687
|
+
entryId: EntryId;
|
|
6688
|
+
source: MembershipSource;
|
|
6689
|
+
since: string;
|
|
6690
|
+
/**
|
|
6691
|
+
* `active`: a member. `pending`: an addition to a group carrying authority that is waiting for the consent the community requires for a grant.
|
|
6692
|
+
*/
|
|
6693
|
+
state: "active" | "pending";
|
|
6694
|
+
/**
|
|
6695
|
+
* The member's directory fields that the caller may see, projected exactly as vtc/directory/entries/show would project them. Absent when the caller may see none.
|
|
6696
|
+
*/
|
|
6697
|
+
fields?: EntryFields;
|
|
6698
|
+
/**
|
|
6699
|
+
* The member's current group membership credential, or null when the group issues none.
|
|
6700
|
+
*/
|
|
6701
|
+
credentialId?: GroupCredentialId | null;
|
|
6702
|
+
/**
|
|
6703
|
+
* When the member's current group credential expires. Shown to the member themselves and to managers only.
|
|
6704
|
+
*/
|
|
6705
|
+
credentialValidUntil?: string;
|
|
6706
|
+
}
|
|
5955
6707
|
/**
|
|
5956
6708
|
* The applicant's proof that distinct eligible vetters of the community vetted it, as a join submission carries it under `extensions.hiddenVetting`. Built by vta/pcs/prove, verified by the community.
|
|
5957
6709
|
*/
|
|
@@ -6212,6 +6964,12 @@ export interface IssuedCredentialBase {
|
|
|
6212
6964
|
*/
|
|
6213
6965
|
expiresAt: string;
|
|
6214
6966
|
}
|
|
6967
|
+
/**
|
|
6968
|
+
* One entry exported as a JSContact `Card` (RFC 9553). Member names inside are JSContact's own and are carried verbatim. `uid` is `urn:vtc-directory:<EntryId>`. Base fields map as their definitions' `jsContactPath` says (`displayName` → `name.full`, `nickname` → `nicknames`, `avatar` → `media` of kind `photo`, `pronouns` → `speakToAs.pronouns`, `bio` → `notes`, `links` → `links`); community fields and derived fields are exported as vendor-specific properties named by their field key. Additional members are permitted because JSContact defines them. Carried as an open object so that no JSContact member is lost in transit: a consumer MUST check that `@type` is `Card`, `version` is `1.0` and `uid` is `urn:vtc-directory:<EntryId>`, which this schema does not constrain.
|
|
6969
|
+
*/
|
|
6970
|
+
export interface JSContactCard {
|
|
6971
|
+
[k: string]: unknown | undefined;
|
|
6972
|
+
}
|
|
6215
6973
|
/**
|
|
6216
6974
|
* Whether this community answers vtc/join-requests/manifest to a caller it cannot identify.
|
|
6217
6975
|
*/
|
|
@@ -6429,6 +7187,12 @@ export interface LimitTarget {
|
|
|
6429
7187
|
*/
|
|
6430
7188
|
member?: string;
|
|
6431
7189
|
}
|
|
7190
|
+
/**
|
|
7191
|
+
* The community's listing settings. `defaultListing`: the listing a new card starts with (default `listed`). There is no floor: every member may always choose `hidden`, and a community cannot hold an entry above its member's choice. Raising `defaultListing` affects new cards only.
|
|
7192
|
+
*/
|
|
7193
|
+
export interface ListingDefaults {
|
|
7194
|
+
defaultListing: Listing;
|
|
7195
|
+
}
|
|
6432
7196
|
export interface LocalSettings {
|
|
6433
7197
|
kind: "local";
|
|
6434
7198
|
/**
|
|
@@ -6824,6 +7588,23 @@ export interface MonitorFilter {
|
|
|
6824
7588
|
*/
|
|
6825
7589
|
failuresOnly?: boolean;
|
|
6826
7590
|
}
|
|
7591
|
+
/**
|
|
7592
|
+
* The discoverability a card has when the community creates it, before its member chooses. A new card is never published beyond the community (VTI-DIR-042), so there is no member for that here: `externalCards` says whether the member may turn it on.
|
|
7593
|
+
*/
|
|
7594
|
+
export interface NewCardDefaults {
|
|
7595
|
+
/**
|
|
7596
|
+
* The listing a new card starts with: the community's `defaultListing` (vtc/directory/fields/list). Every member may always choose `hidden`.
|
|
7597
|
+
*/
|
|
7598
|
+
listing: Listing;
|
|
7599
|
+
/**
|
|
7600
|
+
* What a member's search may match, as the card's `discoverability.search`.
|
|
7601
|
+
*/
|
|
7602
|
+
search: "byName" | "exactNickname" | "off";
|
|
7603
|
+
/**
|
|
7604
|
+
* From whom a new card accepts introductions. Absent where the community does not deliver introductions.
|
|
7605
|
+
*/
|
|
7606
|
+
introductions?: Introductions;
|
|
7607
|
+
}
|
|
6827
7608
|
/**
|
|
6828
7609
|
* A community's offer of admission to a room it owns, as the member it is addressed to sees it.
|
|
6829
7610
|
*/
|
|
@@ -7335,6 +8116,14 @@ export interface PublicKeyCredentialRequestOptions {
|
|
|
7335
8116
|
allowCredentials?: PublicKeyCredentialDescriptor[];
|
|
7336
8117
|
userVerification?: "discouraged" | "preferred" | "required";
|
|
7337
8118
|
}
|
|
8119
|
+
/**
|
|
8120
|
+
* A member's external card: a JSContact `Card` (RFC 9553) holding exactly their values whose visibility is `public`, mapped as `JSContactCard` maps them, with the member's W3C Data Integrity `proof`. The community serves it as received and never signs, composes or edits it (VTI-REG-004 item 4).
|
|
8121
|
+
*
|
|
8122
|
+
* Carried as an open object, and deliberately so: the proof covers every member of the card, and a typed binding that kept only the members named here would drop the rest and break the signature. So this schema constrains none of its members, and a consumer MUST check them itself: `@type`, `version`, `uid` and `proof` are present; `@type` is `Card`; `version` is `1.0`; `uid` is `urn:vtc-directory:<EntryId>`; `proof` is a `DataIntegrityProof` with `cryptosuite` `eddsa-jcs-2022` or `ecdsa-jcs-2019`, `proofPurpose` `assertionMethod`, and a `verificationMethod` of the member's membership DID authorized for `assertionMethod`; and the proof verifies over the card without it, before any member is relied on.
|
|
8123
|
+
*/
|
|
8124
|
+
export interface PublishedCard {
|
|
8125
|
+
[k: string]: unknown | undefined;
|
|
8126
|
+
}
|
|
7338
8127
|
/**
|
|
7339
8128
|
* The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.
|
|
7340
8129
|
*/
|
|
@@ -7922,6 +8711,13 @@ export interface RightRecord_GitNsV0_4 {
|
|
|
7922
8711
|
*/
|
|
7923
8712
|
breakGlass?: BreakGlass;
|
|
7924
8713
|
}
|
|
8714
|
+
/**
|
|
8715
|
+
* A grant set by reference: the capability ceiling of a defined role, conferred as resource grants exactly as a `grants` binding confers its list. It never assigns the role itself — an entry's administrative role and its community role stay direct assignments.
|
|
8716
|
+
*/
|
|
8717
|
+
export interface RoleBindingSpec {
|
|
8718
|
+
kind: "role";
|
|
8719
|
+
role: RoleName;
|
|
8720
|
+
}
|
|
7925
8721
|
/**
|
|
7926
8722
|
* One administrative role of a VTC: a name, the CEILING of capabilities an entry holding the role may hold, and the approve ceiling of capabilities it may approve.
|
|
7927
8723
|
*
|
|
@@ -8102,6 +8898,21 @@ export interface RollbackResult {
|
|
|
8102
8898
|
serverless?: boolean;
|
|
8103
8899
|
ext?: Ext;
|
|
8104
8900
|
}
|
|
8901
|
+
/**
|
|
8902
|
+
* Links a room the community owns to the group: joining the group offers the member admission to the room with `actions`, valid for `validFor`; leaving removes them unless another source still covers them.
|
|
8903
|
+
*/
|
|
8904
|
+
export interface RoomBindingSpec {
|
|
8905
|
+
kind: "room";
|
|
8906
|
+
/**
|
|
8907
|
+
* The community-owned room's DID.
|
|
8908
|
+
*/
|
|
8909
|
+
roomId: string;
|
|
8910
|
+
actions: MemberActions;
|
|
8911
|
+
/**
|
|
8912
|
+
* How long each admission's authority runs, as an ISO 8601 duration in whole days (`P365D`). The community renews it while the member stays in the group.
|
|
8913
|
+
*/
|
|
8914
|
+
validFor: string;
|
|
8915
|
+
}
|
|
8105
8916
|
/**
|
|
8106
8917
|
* How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.
|
|
8107
8918
|
*/
|
|
@@ -8266,6 +9077,26 @@ export interface RotationRecord {
|
|
|
8266
9077
|
*/
|
|
8267
9078
|
cacheHorizonAt?: string;
|
|
8268
9079
|
}
|
|
9080
|
+
/**
|
|
9081
|
+
* One test over a verified fact about a member. `fact: role` tests the member's community role; `fact: field` tests an `admin`- or `credential`-sourced directory field named by `field`; `fact: personhood` tests whether a personhood assertion is on file; `fact: joinedAt` tests when they joined. A rule never reads a self-asserted (`member`-sourced) field: a member must not be able to join a group by editing their card.
|
|
9082
|
+
*/
|
|
9083
|
+
export interface RuleCondition {
|
|
9084
|
+
fact: "role" | "field" | "personhood" | "joinedAt";
|
|
9085
|
+
/**
|
|
9086
|
+
* Present exactly when `fact` is `field`.
|
|
9087
|
+
*/
|
|
9088
|
+
field?: FieldKey;
|
|
9089
|
+
/**
|
|
9090
|
+
* `equals` compares with `value`; `oneOf` with any of `values`; `exists` needs neither; `before` and `after` compare a date fact with `value`.
|
|
9091
|
+
*/
|
|
9092
|
+
op: "equals" | "oneOf" | "exists" | "before" | "after";
|
|
9093
|
+
value?: string | boolean;
|
|
9094
|
+
/**
|
|
9095
|
+
* @minItems 1
|
|
9096
|
+
* @maxItems 64
|
|
9097
|
+
*/
|
|
9098
|
+
values?: [string, ...string[]];
|
|
9099
|
+
}
|
|
8269
9100
|
export interface S3Settings {
|
|
8270
9101
|
kind: "s3";
|
|
8271
9102
|
/**
|
|
@@ -8357,7 +9188,7 @@ export interface Context_VtaV0_1 {
|
|
|
8357
9188
|
*/
|
|
8358
9189
|
export interface SealedRecord {
|
|
8359
9190
|
/**
|
|
8360
|
-
* The sealed record, base64url. Bound by AEAD associated data to `roomId`, `key`,
|
|
9191
|
+
* The sealed record, base64url. Bound by AEAD associated data to `roomId`, `key`, the version it was sealed at, and `epoch`, so a host that relocates it to another key, version, epoch or room produces a mismatch and the open fails. The record cannot be moved undetected even though the host holds every byte of it. The version it was sealed at is `version` below where present, and the record's own `version` otherwise.
|
|
8361
9192
|
*/
|
|
8362
9193
|
ciphertext: string;
|
|
8363
9194
|
/**
|
|
@@ -8368,6 +9199,14 @@ export interface SealedRecord {
|
|
|
8368
9199
|
* The key epoch this record was sealed under. Cleartext because the host must serve the right ciphertext, and bound into the associated data so that relabelling it fails authentication rather than causing a reader to try the wrong key.
|
|
8369
9200
|
*/
|
|
8370
9201
|
epoch: number;
|
|
9202
|
+
/**
|
|
9203
|
+
* The version this ciphertext was sealed at, where that is no longer the record's own `version`. A record's version moves when it is curated (`rooms/records/curate`, which MUST assign a new one so that every `sinceVersion` watermark sees the change), but a curation other than a retraction keeps the body — and the body is bound, by the AEAD and by its author's signature (`SealedRecordBody`), to the version it was written at. Without this member a curated record would be opened at a version it was never sealed for, and would not open for anyone.
|
|
9204
|
+
*
|
|
9205
|
+
* A host MUST record the version a body was sealed at when it stores it, MUST NOT change it while that body is kept — a curation alters a record's standing, never its sealed content — and MUST include it whenever it differs from the record's `version`. It is absent where the two are equal, which is every record that has not been curated since it was written, so the members a record carries are unchanged until a curation needs this one. It is part of `sealed`, and so of the record the data commitment covers (`CommittedRecord`): a host cannot change it without changing the root.
|
|
9206
|
+
*
|
|
9207
|
+
* A reader opens and verifies the body at this version, and MUST refuse a record whose `sealed.version` is greater than its own `version` — a body cannot have been sealed for a version the room had not reached. A host that pairs a newer version with an older body of the same key is rolling the record back; that is a change to the committed record like any other, visible to the comparisons `CommittedRecord` exists for.
|
|
9208
|
+
*/
|
|
9209
|
+
version?: number;
|
|
8371
9210
|
}
|
|
8372
9211
|
/**
|
|
8373
9212
|
* Who the service says it is.
|
|
@@ -9575,6 +10414,31 @@ export interface VerdictWith {
|
|
|
9575
10414
|
*/
|
|
9576
10415
|
presentationDefinition?: {};
|
|
9577
10416
|
}
|
|
10417
|
+
/**
|
|
10418
|
+
* The value of a `credential`-sourced field: a claim the member disclosed from a credential they presented, with the issuer that attests it. A verified value always names its issuer, and a self-asserted value is never shaped as one. The community keeps only the disclosed claim and these facts about it — never the presentation.
|
|
10419
|
+
*/
|
|
10420
|
+
export interface VerifiedValue {
|
|
10421
|
+
/**
|
|
10422
|
+
* The disclosed claim value.
|
|
10423
|
+
*/
|
|
10424
|
+
value: string | boolean | number;
|
|
10425
|
+
/**
|
|
10426
|
+
* DID of the credential's issuer, shown as the field's verification badge.
|
|
10427
|
+
*/
|
|
10428
|
+
issuer: string;
|
|
10429
|
+
/**
|
|
10430
|
+
* The most specific `type` of the credential the claim came from.
|
|
10431
|
+
*/
|
|
10432
|
+
credentialType?: string;
|
|
10433
|
+
/**
|
|
10434
|
+
* When the community verified the presentation.
|
|
10435
|
+
*/
|
|
10436
|
+
verifiedAt: string;
|
|
10437
|
+
/**
|
|
10438
|
+
* When the credential expires, where it does. The community withdraws the value once it passes.
|
|
10439
|
+
*/
|
|
10440
|
+
validUntil?: string;
|
|
10441
|
+
}
|
|
9578
10442
|
/**
|
|
9579
10443
|
* An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.
|
|
9580
10444
|
*/
|