@openvtc/trust-tasks 0.26.16 → 0.26.18
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 +201 -0
- package/dist/_shared/components.d.ts +790 -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 +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -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/act/0.5/payload.d.ts +546 -0
- package/dist/rooms/keys/act/0.5/payload.d.ts.map +1 -0
- package/dist/rooms/keys/act/0.5/payload.js +305 -0
- package/dist/rooms/keys/act/0.5/payload.js.map +1 -0
- package/dist/rooms/keys/key-package/0.2/payload.d.ts +304 -0
- package/dist/rooms/keys/key-package/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/keys/key-package/0.2/payload.js +166 -0
- package/dist/rooms/keys/key-package/0.2/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/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/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/_shared/0.1/community-room.d.ts +1 -1
- package/dist/vtc/_shared/0.1/community-room.d.ts.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/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/show/0.1/payload.d.ts +1144 -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 +695 -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 +1291 -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 +765 -0
- package/dist/vtc/directory/card/update/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/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/rooms/memberships/list/0.1/payload.d.ts +696 -0
- package/dist/vtc/rooms/memberships/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/memberships/list/0.1/payload.js +402 -0
- package/dist/vtc/rooms/memberships/list/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +835 -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 +55 -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/act/0.5/payload.ts +380 -0
- package/src/rooms/keys/key-package/0.2/payload.ts +219 -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/remove/0.3/payload.ts +415 -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/_shared/0.1/community-room.ts +1 -1
- 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/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/show/0.1/payload.ts +732 -0
- package/src/vtc/directory/card/update/0.1/payload.ts +827 -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/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/rooms/memberships/list/0.1/payload.ts +445 -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,23 @@ 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
|
+
* 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.
|
|
728
|
+
*/
|
|
729
|
+
export type Introductions = "anyone" | "groups" | "connections" | "off";
|
|
658
730
|
/**
|
|
659
731
|
* `issued` is outstanding and revocable; `consumed` and `expired` are terminal.
|
|
660
732
|
*/
|
|
661
733
|
export type InviteStatus = "issued" | "consumed" | "expired";
|
|
734
|
+
/**
|
|
735
|
+
* 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`.
|
|
736
|
+
*/
|
|
737
|
+
export type JoinPolicy = "closed" | "request" | "open";
|
|
738
|
+
export type JoinRequestId = string;
|
|
739
|
+
/**
|
|
740
|
+
* An optional note from the member to the group's managers. Plain text.
|
|
741
|
+
*/
|
|
742
|
+
export type JoinRequestMessage = string;
|
|
662
743
|
/**
|
|
663
744
|
* 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
745
|
*/
|
|
@@ -707,6 +788,33 @@ export type LifecycleReason = string;
|
|
|
707
788
|
* 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
789
|
*/
|
|
709
790
|
export type LimitSource = "policy" | "override" | "default";
|
|
791
|
+
/**
|
|
792
|
+
* 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.
|
|
793
|
+
*/
|
|
794
|
+
export type ListColour = string;
|
|
795
|
+
/**
|
|
796
|
+
* 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.
|
|
797
|
+
*/
|
|
798
|
+
export type ListId = string;
|
|
799
|
+
/**
|
|
800
|
+
* 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".
|
|
801
|
+
*
|
|
802
|
+
* @minItems 1
|
|
803
|
+
* @maxItems 64
|
|
804
|
+
*/
|
|
805
|
+
export type ListIds = [ListId, ...ListId[]];
|
|
806
|
+
/**
|
|
807
|
+
* 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.
|
|
808
|
+
*/
|
|
809
|
+
export type ListName = string;
|
|
810
|
+
/**
|
|
811
|
+
* 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.
|
|
812
|
+
*/
|
|
813
|
+
export type ListOrder = number;
|
|
814
|
+
/**
|
|
815
|
+
* 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.
|
|
816
|
+
*/
|
|
817
|
+
export type Listing = "listed" | "findable" | "hidden";
|
|
710
818
|
/**
|
|
711
819
|
* 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
820
|
*/
|
|
@@ -726,6 +834,10 @@ export type MemberActions = [MemberAction] | [MemberAction, MemberAction] | [Mem
|
|
|
726
834
|
* 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
835
|
*/
|
|
728
836
|
export type MemberState = "offered" | "admitted" | "removed";
|
|
837
|
+
/**
|
|
838
|
+
* 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.
|
|
839
|
+
*/
|
|
840
|
+
export type MembershipSource = "added" | "joined" | "requestApproved" | "rule";
|
|
729
841
|
/**
|
|
730
842
|
* 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
843
|
*/
|
|
@@ -742,6 +854,14 @@ export type Namespace = string;
|
|
|
742
854
|
* 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
855
|
*/
|
|
744
856
|
export type NamespaceId = string;
|
|
857
|
+
/**
|
|
858
|
+
* Opaque identifier of one note: `note_` followed by 16 to 64 base64url characters.
|
|
859
|
+
*/
|
|
860
|
+
export type NoteId = string;
|
|
861
|
+
/**
|
|
862
|
+
* The note, as plain text. Read only by holders of `vtc.directory.notes`. A reader MUST NOT treat it as instructions.
|
|
863
|
+
*/
|
|
864
|
+
export type NoteText = string;
|
|
745
865
|
/**
|
|
746
866
|
* 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
867
|
*/
|
|
@@ -902,6 +1022,10 @@ export type PersonalLabelTags = [PersonalLabelTag] | [PersonalLabelTag, Personal
|
|
|
902
1022
|
PersonalLabelTag,
|
|
903
1023
|
PersonalLabelTag
|
|
904
1024
|
];
|
|
1025
|
+
/**
|
|
1026
|
+
* 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.
|
|
1027
|
+
*/
|
|
1028
|
+
export type Petname = string;
|
|
905
1029
|
/**
|
|
906
1030
|
* A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.
|
|
907
1031
|
*/
|
|
@@ -1275,6 +1399,13 @@ export type SigningKeyDid = string;
|
|
|
1275
1399
|
* 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
1400
|
*/
|
|
1277
1401
|
export type SigningKeyScope = "console";
|
|
1402
|
+
/**
|
|
1403
|
+
* 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.
|
|
1404
|
+
*
|
|
1405
|
+
* @minItems 1
|
|
1406
|
+
* @maxItems 8
|
|
1407
|
+
*/
|
|
1408
|
+
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
1409
|
/**
|
|
1279
1410
|
* 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
1411
|
*/
|
|
@@ -1331,6 +1462,10 @@ export type StorageSettings = LocalSettings | S3Settings | GcsSettings | WalrusS
|
|
|
1331
1462
|
export type SweepMinutes = number;
|
|
1332
1463
|
export type SyncEvent_SyncV0_1 = VaultUpsertedEvent_SyncV0_1 | VaultDeletedEvent_SyncV0_1 | AclChangedEvent_SyncV0_1 | PolicyChangedEvent_SyncV0_1;
|
|
1333
1464
|
export type SyncEvent_SyncV0_2 = VaultUpsertedEvent_SyncV0_2 | VaultDeletedEvent_SyncV0_2 | AclChangedEvent_SyncV0_2 | PolicyChangedEvent_SyncV0_2;
|
|
1465
|
+
/**
|
|
1466
|
+
* 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`.
|
|
1467
|
+
*/
|
|
1468
|
+
export type TaskFamily = string;
|
|
1334
1469
|
/**
|
|
1335
1470
|
* 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
1471
|
*/
|
|
@@ -1343,6 +1478,10 @@ export type Topic_VtcAdminEventsV0_1 = "actions" | "acknowledgements" | "joinReq
|
|
|
1343
1478
|
* 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
1479
|
*/
|
|
1345
1480
|
export type Topic_VtcAdminEventsV0_2 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms";
|
|
1481
|
+
/**
|
|
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.
|
|
1483
|
+
*/
|
|
1484
|
+
export type Topic_VtcAdminEventsV0_3 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms" | "directory" | "groups";
|
|
1346
1485
|
/**
|
|
1347
1486
|
* How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
|
|
1348
1487
|
*/
|
|
@@ -3671,6 +3810,31 @@ export interface AdminAccount {
|
|
|
3671
3810
|
*/
|
|
3672
3811
|
accountType: AccountType;
|
|
3673
3812
|
}
|
|
3813
|
+
export interface AdminNote {
|
|
3814
|
+
noteId: NoteId;
|
|
3815
|
+
entryId: EntryId;
|
|
3816
|
+
/**
|
|
3817
|
+
* DID of the administrator who wrote the note.
|
|
3818
|
+
*/
|
|
3819
|
+
author: string;
|
|
3820
|
+
createdAt: string;
|
|
3821
|
+
/**
|
|
3822
|
+
* The note. Absent from a note that has since been redacted, except in vtc/directory/notes/export, which returns every note as written.
|
|
3823
|
+
*/
|
|
3824
|
+
text?: NoteText;
|
|
3825
|
+
/**
|
|
3826
|
+
* Optional date by which the note asks for a follow-up.
|
|
3827
|
+
*/
|
|
3828
|
+
followUp?: string;
|
|
3829
|
+
/**
|
|
3830
|
+
* Present on a redaction: the earlier note this one withdraws.
|
|
3831
|
+
*/
|
|
3832
|
+
redacts?: NoteId;
|
|
3833
|
+
/**
|
|
3834
|
+
* Present on a note that a later note redacted.
|
|
3835
|
+
*/
|
|
3836
|
+
redactedBy?: NoteId;
|
|
3837
|
+
}
|
|
3674
3838
|
/**
|
|
3675
3839
|
* 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
3840
|
*/
|
|
@@ -4456,6 +4620,37 @@ export interface CapabilityScopeListed {
|
|
|
4456
4620
|
export interface CapabilityScopeNone {
|
|
4457
4621
|
scope: "none";
|
|
4458
4622
|
}
|
|
4623
|
+
/**
|
|
4624
|
+
* 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 (metadata stripped, dimensions capped) so its digest does not link the member across communities. `url` and `urlExpiresAt` appear only in a projection: a short-lived URL the community checks against the same projection, so a member-only image is never a public URL.
|
|
4625
|
+
*/
|
|
4626
|
+
export interface CardBlobRef {
|
|
4627
|
+
/**
|
|
4628
|
+
* Lowercase hex SHA-256 of the stored, re-encoded bytes.
|
|
4629
|
+
*/
|
|
4630
|
+
sha256: string;
|
|
4631
|
+
/**
|
|
4632
|
+
* Media type of the stored bytes.
|
|
4633
|
+
*/
|
|
4634
|
+
mediaType: "image/png" | "image/jpeg" | "image/webp" | "image/avif";
|
|
4635
|
+
/**
|
|
4636
|
+
* Size in bytes of the stored bytes.
|
|
4637
|
+
*/
|
|
4638
|
+
size?: number;
|
|
4639
|
+
/**
|
|
4640
|
+
* Projection only: a URL the viewer can fetch the image from until `urlExpiresAt`.
|
|
4641
|
+
*/
|
|
4642
|
+
url?: string;
|
|
4643
|
+
/**
|
|
4644
|
+
* Projection only: when `url` stops working.
|
|
4645
|
+
*/
|
|
4646
|
+
urlExpiresAt?: string;
|
|
4647
|
+
}
|
|
4648
|
+
/**
|
|
4649
|
+
* 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.
|
|
4650
|
+
*/
|
|
4651
|
+
export interface CardValues {
|
|
4652
|
+
[k: string]: FieldValue | undefined;
|
|
4653
|
+
}
|
|
4459
4654
|
/**
|
|
4460
4655
|
* 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
4656
|
*/
|
|
@@ -4491,6 +4686,25 @@ export interface ChunkedDescriptor {
|
|
|
4491
4686
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
4492
4687
|
expiresAt: ExpiresAt;
|
|
4493
4688
|
}
|
|
4689
|
+
/**
|
|
4690
|
+
* Which claim a `claim` field accepts, from which credentials and issuers.
|
|
4691
|
+
*/
|
|
4692
|
+
export interface ClaimSelector {
|
|
4693
|
+
/**
|
|
4694
|
+
* A `type` the presented credential MUST carry.
|
|
4695
|
+
*/
|
|
4696
|
+
credentialType: string;
|
|
4697
|
+
/**
|
|
4698
|
+
* JSON Pointer (RFC 6901) to the claim within `credentialSubject`.
|
|
4699
|
+
*/
|
|
4700
|
+
claimPath: string;
|
|
4701
|
+
/**
|
|
4702
|
+
* Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.
|
|
4703
|
+
*
|
|
4704
|
+
* @maxItems 32
|
|
4705
|
+
*/
|
|
4706
|
+
issuers?: string[];
|
|
4707
|
+
}
|
|
4494
4708
|
/**
|
|
4495
4709
|
* 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
4710
|
*/
|
|
@@ -4826,6 +5040,24 @@ export interface ContactDocument {
|
|
|
4826
5040
|
provenance?: Provenance;
|
|
4827
5041
|
}[];
|
|
4828
5042
|
}
|
|
5043
|
+
/**
|
|
5044
|
+
* 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.
|
|
5045
|
+
*/
|
|
5046
|
+
export interface ContactList {
|
|
5047
|
+
listId: ListId;
|
|
5048
|
+
name: ListName;
|
|
5049
|
+
colour?: ListColour;
|
|
5050
|
+
order: ListOrder;
|
|
5051
|
+
/**
|
|
5052
|
+
* How many of the context's contacts are on the list now.
|
|
5053
|
+
*/
|
|
5054
|
+
contactCount: number;
|
|
5055
|
+
createdAt: string;
|
|
5056
|
+
/**
|
|
5057
|
+
* When the list's name, colour or order last changed. Adding a contact to the list or removing one does not move it.
|
|
5058
|
+
*/
|
|
5059
|
+
updatedAt: string;
|
|
5060
|
+
}
|
|
4829
5061
|
/**
|
|
4830
5062
|
* 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
5063
|
*/
|
|
@@ -5554,6 +5786,78 @@ export interface DidcommAuthcryptEnvelope_VaultV0_2 {
|
|
|
5554
5786
|
*/
|
|
5555
5787
|
jwe: string;
|
|
5556
5788
|
}
|
|
5789
|
+
/**
|
|
5790
|
+
* 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`.
|
|
5791
|
+
*/
|
|
5792
|
+
export interface DirectoryCard {
|
|
5793
|
+
entryId: EntryId;
|
|
5794
|
+
values: CardValues;
|
|
5795
|
+
visibility: FieldVisibility;
|
|
5796
|
+
discoverability: Discoverability;
|
|
5797
|
+
introductions: Introductions;
|
|
5798
|
+
/**
|
|
5799
|
+
* 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.
|
|
5800
|
+
*
|
|
5801
|
+
* @maxItems 64
|
|
5802
|
+
*/
|
|
5803
|
+
groupAudience?: string[];
|
|
5804
|
+
/**
|
|
5805
|
+
* Incremented on every accepted change to the card, by its subject or by an administrator's assertion.
|
|
5806
|
+
*/
|
|
5807
|
+
revision: number;
|
|
5808
|
+
/**
|
|
5809
|
+
* When the card last changed.
|
|
5810
|
+
*/
|
|
5811
|
+
updatedAt: string;
|
|
5812
|
+
/**
|
|
5813
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry directory data that bypasses the projection.
|
|
5814
|
+
*/
|
|
5815
|
+
ext?: Ext;
|
|
5816
|
+
}
|
|
5817
|
+
/**
|
|
5818
|
+
* One entry as a particular viewer sees it.
|
|
5819
|
+
*/
|
|
5820
|
+
export interface DirectoryEntry {
|
|
5821
|
+
entryId: EntryId;
|
|
5822
|
+
fields: EntryFields;
|
|
5823
|
+
/**
|
|
5824
|
+
* 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.
|
|
5825
|
+
*/
|
|
5826
|
+
connected?: boolean;
|
|
5827
|
+
/**
|
|
5828
|
+
* The community groups the viewer and this member both belong to, among those whose membership the viewer may see. Absent when there are none.
|
|
5829
|
+
*
|
|
5830
|
+
* @maxItems 64
|
|
5831
|
+
*/
|
|
5832
|
+
sharedGroups?: string[];
|
|
5833
|
+
}
|
|
5834
|
+
/**
|
|
5835
|
+
* 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.
|
|
5836
|
+
*/
|
|
5837
|
+
export interface DirectoryRef {
|
|
5838
|
+
/**
|
|
5839
|
+
* The DID of the community whose directory holds the entry.
|
|
5840
|
+
*/
|
|
5841
|
+
vtcDid: string;
|
|
5842
|
+
/**
|
|
5843
|
+
* The entry, as that community's directory identifies it.
|
|
5844
|
+
*/
|
|
5845
|
+
entryId: DirectoryEntryId;
|
|
5846
|
+
}
|
|
5847
|
+
/**
|
|
5848
|
+
* The member's three discoverability decisions, made separately.
|
|
5849
|
+
*/
|
|
5850
|
+
export interface Discoverability {
|
|
5851
|
+
listing: Listing;
|
|
5852
|
+
/**
|
|
5853
|
+
* 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.
|
|
5854
|
+
*/
|
|
5855
|
+
search: "byName" | "exactNickname" | "off";
|
|
5856
|
+
/**
|
|
5857
|
+
* 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`.
|
|
5858
|
+
*/
|
|
5859
|
+
external: boolean;
|
|
5860
|
+
}
|
|
5557
5861
|
export interface DomainEntry {
|
|
5558
5862
|
/**
|
|
5559
5863
|
* Hosting domain name (e.g. `did.example.com`). Compared case-insensitively; producers SHOULD emit lowercase canonical form.
|
|
@@ -5625,6 +5929,133 @@ export interface DriftItem {
|
|
|
5625
5929
|
*/
|
|
5626
5930
|
expected?: string;
|
|
5627
5931
|
}
|
|
5932
|
+
/**
|
|
5933
|
+
* 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.
|
|
5934
|
+
*/
|
|
5935
|
+
export interface DynamicRule {
|
|
5936
|
+
/**
|
|
5937
|
+
* @minItems 1
|
|
5938
|
+
* @maxItems 16
|
|
5939
|
+
*/
|
|
5940
|
+
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] | [
|
|
5941
|
+
RuleCondition,
|
|
5942
|
+
RuleCondition,
|
|
5943
|
+
RuleCondition,
|
|
5944
|
+
RuleCondition,
|
|
5945
|
+
RuleCondition,
|
|
5946
|
+
RuleCondition,
|
|
5947
|
+
RuleCondition,
|
|
5948
|
+
RuleCondition
|
|
5949
|
+
] | [
|
|
5950
|
+
RuleCondition,
|
|
5951
|
+
RuleCondition,
|
|
5952
|
+
RuleCondition,
|
|
5953
|
+
RuleCondition,
|
|
5954
|
+
RuleCondition,
|
|
5955
|
+
RuleCondition,
|
|
5956
|
+
RuleCondition,
|
|
5957
|
+
RuleCondition,
|
|
5958
|
+
RuleCondition
|
|
5959
|
+
] | [
|
|
5960
|
+
RuleCondition,
|
|
5961
|
+
RuleCondition,
|
|
5962
|
+
RuleCondition,
|
|
5963
|
+
RuleCondition,
|
|
5964
|
+
RuleCondition,
|
|
5965
|
+
RuleCondition,
|
|
5966
|
+
RuleCondition,
|
|
5967
|
+
RuleCondition,
|
|
5968
|
+
RuleCondition,
|
|
5969
|
+
RuleCondition
|
|
5970
|
+
] | [
|
|
5971
|
+
RuleCondition,
|
|
5972
|
+
RuleCondition,
|
|
5973
|
+
RuleCondition,
|
|
5974
|
+
RuleCondition,
|
|
5975
|
+
RuleCondition,
|
|
5976
|
+
RuleCondition,
|
|
5977
|
+
RuleCondition,
|
|
5978
|
+
RuleCondition,
|
|
5979
|
+
RuleCondition,
|
|
5980
|
+
RuleCondition,
|
|
5981
|
+
RuleCondition
|
|
5982
|
+
] | [
|
|
5983
|
+
RuleCondition,
|
|
5984
|
+
RuleCondition,
|
|
5985
|
+
RuleCondition,
|
|
5986
|
+
RuleCondition,
|
|
5987
|
+
RuleCondition,
|
|
5988
|
+
RuleCondition,
|
|
5989
|
+
RuleCondition,
|
|
5990
|
+
RuleCondition,
|
|
5991
|
+
RuleCondition,
|
|
5992
|
+
RuleCondition,
|
|
5993
|
+
RuleCondition,
|
|
5994
|
+
RuleCondition
|
|
5995
|
+
] | [
|
|
5996
|
+
RuleCondition,
|
|
5997
|
+
RuleCondition,
|
|
5998
|
+
RuleCondition,
|
|
5999
|
+
RuleCondition,
|
|
6000
|
+
RuleCondition,
|
|
6001
|
+
RuleCondition,
|
|
6002
|
+
RuleCondition,
|
|
6003
|
+
RuleCondition,
|
|
6004
|
+
RuleCondition,
|
|
6005
|
+
RuleCondition,
|
|
6006
|
+
RuleCondition,
|
|
6007
|
+
RuleCondition,
|
|
6008
|
+
RuleCondition
|
|
6009
|
+
] | [
|
|
6010
|
+
RuleCondition,
|
|
6011
|
+
RuleCondition,
|
|
6012
|
+
RuleCondition,
|
|
6013
|
+
RuleCondition,
|
|
6014
|
+
RuleCondition,
|
|
6015
|
+
RuleCondition,
|
|
6016
|
+
RuleCondition,
|
|
6017
|
+
RuleCondition,
|
|
6018
|
+
RuleCondition,
|
|
6019
|
+
RuleCondition,
|
|
6020
|
+
RuleCondition,
|
|
6021
|
+
RuleCondition,
|
|
6022
|
+
RuleCondition,
|
|
6023
|
+
RuleCondition
|
|
6024
|
+
] | [
|
|
6025
|
+
RuleCondition,
|
|
6026
|
+
RuleCondition,
|
|
6027
|
+
RuleCondition,
|
|
6028
|
+
RuleCondition,
|
|
6029
|
+
RuleCondition,
|
|
6030
|
+
RuleCondition,
|
|
6031
|
+
RuleCondition,
|
|
6032
|
+
RuleCondition,
|
|
6033
|
+
RuleCondition,
|
|
6034
|
+
RuleCondition,
|
|
6035
|
+
RuleCondition,
|
|
6036
|
+
RuleCondition,
|
|
6037
|
+
RuleCondition,
|
|
6038
|
+
RuleCondition,
|
|
6039
|
+
RuleCondition
|
|
6040
|
+
] | [
|
|
6041
|
+
RuleCondition,
|
|
6042
|
+
RuleCondition,
|
|
6043
|
+
RuleCondition,
|
|
6044
|
+
RuleCondition,
|
|
6045
|
+
RuleCondition,
|
|
6046
|
+
RuleCondition,
|
|
6047
|
+
RuleCondition,
|
|
6048
|
+
RuleCondition,
|
|
6049
|
+
RuleCondition,
|
|
6050
|
+
RuleCondition,
|
|
6051
|
+
RuleCondition,
|
|
6052
|
+
RuleCondition,
|
|
6053
|
+
RuleCondition,
|
|
6054
|
+
RuleCondition,
|
|
6055
|
+
RuleCondition,
|
|
6056
|
+
RuleCondition
|
|
6057
|
+
];
|
|
6058
|
+
}
|
|
5628
6059
|
/**
|
|
5629
6060
|
* 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
6061
|
*/
|
|
@@ -5728,6 +6159,22 @@ export interface EndorsementType {
|
|
|
5728
6159
|
*/
|
|
5729
6160
|
createdByDid?: string;
|
|
5730
6161
|
}
|
|
6162
|
+
/**
|
|
6163
|
+
* 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.
|
|
6164
|
+
*/
|
|
6165
|
+
export interface EntryFields {
|
|
6166
|
+
[k: string]: FieldValue | undefined;
|
|
6167
|
+
}
|
|
6168
|
+
export interface EnumOption {
|
|
6169
|
+
/**
|
|
6170
|
+
* The stored value.
|
|
6171
|
+
*/
|
|
6172
|
+
value: string;
|
|
6173
|
+
/**
|
|
6174
|
+
* What a reader is shown for it.
|
|
6175
|
+
*/
|
|
6176
|
+
label: string;
|
|
6177
|
+
}
|
|
5731
6178
|
/**
|
|
5732
6179
|
* 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
6180
|
*
|
|
@@ -5857,6 +6304,108 @@ export interface Field {
|
|
|
5857
6304
|
[k: string]: unknown | undefined;
|
|
5858
6305
|
};
|
|
5859
6306
|
}
|
|
6307
|
+
/**
|
|
6308
|
+
* 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.
|
|
6309
|
+
*/
|
|
6310
|
+
export interface FieldConstraints {
|
|
6311
|
+
maxLength?: number;
|
|
6312
|
+
minLength?: number;
|
|
6313
|
+
/**
|
|
6314
|
+
* ECMA-262 regular expression a text value MUST match.
|
|
6315
|
+
*/
|
|
6316
|
+
pattern?: string;
|
|
6317
|
+
/**
|
|
6318
|
+
* The permitted values of an `enum` or `multiEnum` field.
|
|
6319
|
+
*
|
|
6320
|
+
* @minItems 1
|
|
6321
|
+
* @maxItems 128
|
|
6322
|
+
*/
|
|
6323
|
+
options?: [EnumOption, ...EnumOption[]];
|
|
6324
|
+
maxItems?: number;
|
|
6325
|
+
minDate?: string;
|
|
6326
|
+
maxDate?: string;
|
|
6327
|
+
claim?: ClaimSelector;
|
|
6328
|
+
}
|
|
6329
|
+
/**
|
|
6330
|
+
* 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`.
|
|
6331
|
+
*/
|
|
6332
|
+
export interface FieldDefinition {
|
|
6333
|
+
key: FieldKey;
|
|
6334
|
+
label: FieldLabel;
|
|
6335
|
+
description?: FieldDescription;
|
|
6336
|
+
type: FieldType;
|
|
6337
|
+
constraints?: FieldConstraints;
|
|
6338
|
+
source: FieldSource;
|
|
6339
|
+
/**
|
|
6340
|
+
* `true` for a base field, present in every community; `false` for a field this community defined.
|
|
6341
|
+
*/
|
|
6342
|
+
base: boolean;
|
|
6343
|
+
/**
|
|
6344
|
+
* 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.
|
|
6345
|
+
*/
|
|
6346
|
+
jsContactPath?: string;
|
|
6347
|
+
required: boolean;
|
|
6348
|
+
ceiling: Audience;
|
|
6349
|
+
defaultVisibility: Audience;
|
|
6350
|
+
searchable: boolean;
|
|
6351
|
+
facet: boolean;
|
|
6352
|
+
order: number;
|
|
6353
|
+
state: FieldState;
|
|
6354
|
+
/**
|
|
6355
|
+
* When the field was retired. Present only on a retired field.
|
|
6356
|
+
*/
|
|
6357
|
+
retiredAt?: string;
|
|
6358
|
+
/**
|
|
6359
|
+
* When the values of a retired field are purged. Present only on a retired field.
|
|
6360
|
+
*/
|
|
6361
|
+
purgeAfter?: string;
|
|
6362
|
+
updatedAt?: string;
|
|
6363
|
+
/**
|
|
6364
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.
|
|
6365
|
+
*/
|
|
6366
|
+
ext?: Ext;
|
|
6367
|
+
}
|
|
6368
|
+
/**
|
|
6369
|
+
* What an administrator supplies to define a community field. `key`, `type` and `source` are fixed for the field's life.
|
|
6370
|
+
*/
|
|
6371
|
+
export interface FieldInput {
|
|
6372
|
+
key: FieldKey;
|
|
6373
|
+
label: FieldLabel;
|
|
6374
|
+
description?: FieldDescription;
|
|
6375
|
+
type: FieldType;
|
|
6376
|
+
constraints?: FieldConstraints;
|
|
6377
|
+
/**
|
|
6378
|
+
* As `FieldSource`, less `derived`, which only base fields carry.
|
|
6379
|
+
*/
|
|
6380
|
+
source: "member" | "admin" | "credential";
|
|
6381
|
+
/**
|
|
6382
|
+
* Whether a card must hold a value for its entry to be listed. Never a condition of membership. Absent: false.
|
|
6383
|
+
*/
|
|
6384
|
+
required?: boolean;
|
|
6385
|
+
ceiling: Audience;
|
|
6386
|
+
/**
|
|
6387
|
+
* The audience a card gives the field until its member chooses. MUST NOT be wider than `ceiling`.
|
|
6388
|
+
*/
|
|
6389
|
+
defaultVisibility: Audience;
|
|
6390
|
+
/**
|
|
6391
|
+
* Whether a member's search may match the field, within what the searcher may see. Absent: false.
|
|
6392
|
+
*/
|
|
6393
|
+
searchable?: boolean;
|
|
6394
|
+
/**
|
|
6395
|
+
* Whether the field may be filtered on and counted. Only `enum`, `multiEnum` and `country` fields may be facets. Absent: false.
|
|
6396
|
+
*/
|
|
6397
|
+
facet?: boolean;
|
|
6398
|
+
/**
|
|
6399
|
+
* Display order, ascending.
|
|
6400
|
+
*/
|
|
6401
|
+
order?: number;
|
|
6402
|
+
}
|
|
6403
|
+
/**
|
|
6404
|
+
* 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.
|
|
6405
|
+
*/
|
|
6406
|
+
export interface FieldVisibility {
|
|
6407
|
+
[k: string]: Audience | undefined;
|
|
6408
|
+
}
|
|
5860
6409
|
/**
|
|
5861
6410
|
* 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
6411
|
*
|
|
@@ -5952,6 +6501,122 @@ export interface GitNamespace {
|
|
|
5952
6501
|
*/
|
|
5953
6502
|
state: "pending" | "bound";
|
|
5954
6503
|
}
|
|
6504
|
+
/**
|
|
6505
|
+
* 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.
|
|
6506
|
+
*/
|
|
6507
|
+
export interface GrantsBindingSpec {
|
|
6508
|
+
kind: "grants";
|
|
6509
|
+
/**
|
|
6510
|
+
* @minItems 1
|
|
6511
|
+
* @maxItems 32
|
|
6512
|
+
*/
|
|
6513
|
+
grants: [CapabilityRef, ...CapabilityRef[]];
|
|
6514
|
+
}
|
|
6515
|
+
/**
|
|
6516
|
+
* 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.
|
|
6517
|
+
*/
|
|
6518
|
+
export interface Group {
|
|
6519
|
+
groupId: GroupId;
|
|
6520
|
+
/**
|
|
6521
|
+
* 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.
|
|
6522
|
+
*/
|
|
6523
|
+
groupDid: string;
|
|
6524
|
+
name: GroupName;
|
|
6525
|
+
description?: GroupDescription;
|
|
6526
|
+
kind: GroupKind;
|
|
6527
|
+
/**
|
|
6528
|
+
* Present exactly when `kind` is `dynamic`.
|
|
6529
|
+
*/
|
|
6530
|
+
rule?: DynamicRule;
|
|
6531
|
+
/**
|
|
6532
|
+
* Present exactly when `kind` is `static`.
|
|
6533
|
+
*/
|
|
6534
|
+
joinPolicy?: JoinPolicy;
|
|
6535
|
+
/**
|
|
6536
|
+
* Who may see that the group exists, and its name and description.
|
|
6537
|
+
*/
|
|
6538
|
+
visibility: GroupAudience;
|
|
6539
|
+
/**
|
|
6540
|
+
* 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`.
|
|
6541
|
+
*/
|
|
6542
|
+
showMembers: GroupAudience;
|
|
6543
|
+
/**
|
|
6544
|
+
* Whether the group's DID issues its members a membership credential. Default true.
|
|
6545
|
+
*/
|
|
6546
|
+
issuesCredentials: boolean;
|
|
6547
|
+
/**
|
|
6548
|
+
* `true` while the group has a `grants` or `role` binding. Such a group is `static` and `closed` for as long as it does.
|
|
6549
|
+
*/
|
|
6550
|
+
carriesAuthority: boolean;
|
|
6551
|
+
/**
|
|
6552
|
+
* Active members. Only to callers who may see the member list.
|
|
6553
|
+
*/
|
|
6554
|
+
memberCount?: number;
|
|
6555
|
+
/**
|
|
6556
|
+
* 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.
|
|
6557
|
+
*
|
|
6558
|
+
* @maxItems 256
|
|
6559
|
+
*/
|
|
6560
|
+
managers?: EntryId[];
|
|
6561
|
+
/**
|
|
6562
|
+
* When the community's authorization credential to the group expires. The community renews it well before.
|
|
6563
|
+
*/
|
|
6564
|
+
credentialAuthorityValidUntil?: string;
|
|
6565
|
+
createdAt: string;
|
|
6566
|
+
/**
|
|
6567
|
+
* The creating administrator's directory entry, where they have one.
|
|
6568
|
+
*/
|
|
6569
|
+
createdBy?: EntryId;
|
|
6570
|
+
updatedAt?: string;
|
|
6571
|
+
/**
|
|
6572
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry authority.
|
|
6573
|
+
*/
|
|
6574
|
+
ext?: Ext;
|
|
6575
|
+
}
|
|
6576
|
+
export interface GroupBinding {
|
|
6577
|
+
bindingId: BindingId;
|
|
6578
|
+
binding: BindingSpec;
|
|
6579
|
+
/**
|
|
6580
|
+
* `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.
|
|
6581
|
+
*/
|
|
6582
|
+
state: "pending" | "active" | "removing";
|
|
6583
|
+
createdAt: string;
|
|
6584
|
+
createdBy?: string;
|
|
6585
|
+
}
|
|
6586
|
+
export interface GroupJoinRequest {
|
|
6587
|
+
requestId: JoinRequestId;
|
|
6588
|
+
groupId: GroupId;
|
|
6589
|
+
entryId: EntryId;
|
|
6590
|
+
message?: JoinRequestMessage;
|
|
6591
|
+
createdAt: string;
|
|
6592
|
+
state: "pending" | "approved" | "declined" | "withdrawn";
|
|
6593
|
+
decidedAt?: string;
|
|
6594
|
+
/**
|
|
6595
|
+
* The manager who decided. Shown to managers only.
|
|
6596
|
+
*/
|
|
6597
|
+
decidedBy?: string;
|
|
6598
|
+
}
|
|
6599
|
+
export interface GroupMember {
|
|
6600
|
+
entryId: EntryId;
|
|
6601
|
+
source: MembershipSource;
|
|
6602
|
+
since: string;
|
|
6603
|
+
/**
|
|
6604
|
+
* `active`: a member. `pending`: an addition to a group carrying authority that is waiting for the consent the community requires for a grant.
|
|
6605
|
+
*/
|
|
6606
|
+
state: "active" | "pending";
|
|
6607
|
+
/**
|
|
6608
|
+
* 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.
|
|
6609
|
+
*/
|
|
6610
|
+
fields?: EntryFields;
|
|
6611
|
+
/**
|
|
6612
|
+
* The member's current group membership credential, or null when the group issues none.
|
|
6613
|
+
*/
|
|
6614
|
+
credentialId?: GroupCredentialId | null;
|
|
6615
|
+
/**
|
|
6616
|
+
* When the member's current group credential expires. Shown to the member themselves and to managers only.
|
|
6617
|
+
*/
|
|
6618
|
+
credentialValidUntil?: string;
|
|
6619
|
+
}
|
|
5955
6620
|
/**
|
|
5956
6621
|
* 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
6622
|
*/
|
|
@@ -6212,6 +6877,12 @@ export interface IssuedCredentialBase {
|
|
|
6212
6877
|
*/
|
|
6213
6878
|
expiresAt: string;
|
|
6214
6879
|
}
|
|
6880
|
+
/**
|
|
6881
|
+
* 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.
|
|
6882
|
+
*/
|
|
6883
|
+
export interface JSContactCard {
|
|
6884
|
+
[k: string]: unknown | undefined;
|
|
6885
|
+
}
|
|
6215
6886
|
/**
|
|
6216
6887
|
* Whether this community answers vtc/join-requests/manifest to a caller it cannot identify.
|
|
6217
6888
|
*/
|
|
@@ -6429,6 +7100,12 @@ export interface LimitTarget {
|
|
|
6429
7100
|
*/
|
|
6430
7101
|
member?: string;
|
|
6431
7102
|
}
|
|
7103
|
+
/**
|
|
7104
|
+
* 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.
|
|
7105
|
+
*/
|
|
7106
|
+
export interface ListingDefaults {
|
|
7107
|
+
defaultListing: Listing;
|
|
7108
|
+
}
|
|
6432
7109
|
export interface LocalSettings {
|
|
6433
7110
|
kind: "local";
|
|
6434
7111
|
/**
|
|
@@ -7922,6 +8599,13 @@ export interface RightRecord_GitNsV0_4 {
|
|
|
7922
8599
|
*/
|
|
7923
8600
|
breakGlass?: BreakGlass;
|
|
7924
8601
|
}
|
|
8602
|
+
/**
|
|
8603
|
+
* 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.
|
|
8604
|
+
*/
|
|
8605
|
+
export interface RoleBindingSpec {
|
|
8606
|
+
kind: "role";
|
|
8607
|
+
role: RoleName;
|
|
8608
|
+
}
|
|
7925
8609
|
/**
|
|
7926
8610
|
* 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
8611
|
*
|
|
@@ -8102,6 +8786,21 @@ export interface RollbackResult {
|
|
|
8102
8786
|
serverless?: boolean;
|
|
8103
8787
|
ext?: Ext;
|
|
8104
8788
|
}
|
|
8789
|
+
/**
|
|
8790
|
+
* 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.
|
|
8791
|
+
*/
|
|
8792
|
+
export interface RoomBindingSpec {
|
|
8793
|
+
kind: "room";
|
|
8794
|
+
/**
|
|
8795
|
+
* The community-owned room's DID.
|
|
8796
|
+
*/
|
|
8797
|
+
roomId: string;
|
|
8798
|
+
actions: MemberActions;
|
|
8799
|
+
/**
|
|
8800
|
+
* 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.
|
|
8801
|
+
*/
|
|
8802
|
+
validFor: string;
|
|
8803
|
+
}
|
|
8105
8804
|
/**
|
|
8106
8805
|
* 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
8806
|
*/
|
|
@@ -8134,6 +8833,41 @@ export interface RoomMember {
|
|
|
8134
8833
|
admittedAt?: string;
|
|
8135
8834
|
removedAt?: string;
|
|
8136
8835
|
}
|
|
8836
|
+
/**
|
|
8837
|
+
* What vtc/rooms/memberships/list/0.1 returns: one room the community owns, and where the caller's admission to it stands in the community's own record. Unlike `OfferV2` it carries no credentials — those are collected with vtc/rooms/offers/list while an offer is open — and it is listed in every state, for as long as the community keeps the record, not only while an accept can be repeated. `label` and `description` are the room's as they stand when the record is read.
|
|
8838
|
+
*/
|
|
8839
|
+
export interface RoomMembership {
|
|
8840
|
+
roomId: string;
|
|
8841
|
+
/**
|
|
8842
|
+
* The room's host: this community.
|
|
8843
|
+
*/
|
|
8844
|
+
host: string;
|
|
8845
|
+
label: RoomLabel;
|
|
8846
|
+
/**
|
|
8847
|
+
* Absent when the room has none.
|
|
8848
|
+
*/
|
|
8849
|
+
description?: RoomDescription;
|
|
8850
|
+
visibility: Visibility;
|
|
8851
|
+
actions: MemberActions;
|
|
8852
|
+
/**
|
|
8853
|
+
* When the member's authority credential expires.
|
|
8854
|
+
*/
|
|
8855
|
+
validUntil: string;
|
|
8856
|
+
state: MemberState;
|
|
8857
|
+
offeredAt: string;
|
|
8858
|
+
/**
|
|
8859
|
+
* When the community recorded the admission. Present when `state` is `admitted`, and kept when it becomes `removed`.
|
|
8860
|
+
*/
|
|
8861
|
+
admittedAt?: string;
|
|
8862
|
+
/**
|
|
8863
|
+
* Present exactly when `state` is `removed`.
|
|
8864
|
+
*/
|
|
8865
|
+
removedAt?: string;
|
|
8866
|
+
/**
|
|
8867
|
+
* On an `attributed` or `private` room in state `admitted`: until when the community keeps the Welcome, so that a repeated vtc/rooms/offers/accept carrying the same KeyPackage is answered with it. Absent on an `open` room, in any other state, and once the community no longer keeps it. A surface finding the member admitted but the room absent from its key holder's rooms/keys/list finishes the acceptance before this time, and asks an administrator to re-admit the member after it.
|
|
8868
|
+
*/
|
|
8869
|
+
repeatAcceptUntil?: string;
|
|
8870
|
+
}
|
|
8137
8871
|
/**
|
|
8138
8872
|
* What a room says about itself to its own members: a name and, optionally, a description, short tags and an emoji, so that a member's wallet, portal or CLI can show what each room is rather than a DID.
|
|
8139
8873
|
*
|
|
@@ -8231,6 +8965,26 @@ export interface RotationRecord {
|
|
|
8231
8965
|
*/
|
|
8232
8966
|
cacheHorizonAt?: string;
|
|
8233
8967
|
}
|
|
8968
|
+
/**
|
|
8969
|
+
* 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.
|
|
8970
|
+
*/
|
|
8971
|
+
export interface RuleCondition {
|
|
8972
|
+
fact: "role" | "field" | "personhood" | "joinedAt";
|
|
8973
|
+
/**
|
|
8974
|
+
* Present exactly when `fact` is `field`.
|
|
8975
|
+
*/
|
|
8976
|
+
field?: FieldKey;
|
|
8977
|
+
/**
|
|
8978
|
+
* `equals` compares with `value`; `oneOf` with any of `values`; `exists` needs neither; `before` and `after` compare a date fact with `value`.
|
|
8979
|
+
*/
|
|
8980
|
+
op: "equals" | "oneOf" | "exists" | "before" | "after";
|
|
8981
|
+
value?: string | boolean;
|
|
8982
|
+
/**
|
|
8983
|
+
* @minItems 1
|
|
8984
|
+
* @maxItems 64
|
|
8985
|
+
*/
|
|
8986
|
+
values?: [string, ...string[]];
|
|
8987
|
+
}
|
|
8234
8988
|
export interface S3Settings {
|
|
8235
8989
|
kind: "s3";
|
|
8236
8990
|
/**
|
|
@@ -8322,7 +9076,7 @@ export interface Context_VtaV0_1 {
|
|
|
8322
9076
|
*/
|
|
8323
9077
|
export interface SealedRecord {
|
|
8324
9078
|
/**
|
|
8325
|
-
* The sealed record, base64url. Bound by AEAD associated data to `roomId`, `key`,
|
|
9079
|
+
* 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.
|
|
8326
9080
|
*/
|
|
8327
9081
|
ciphertext: string;
|
|
8328
9082
|
/**
|
|
@@ -8333,6 +9087,14 @@ export interface SealedRecord {
|
|
|
8333
9087
|
* 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.
|
|
8334
9088
|
*/
|
|
8335
9089
|
epoch: number;
|
|
9090
|
+
/**
|
|
9091
|
+
* 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.
|
|
9092
|
+
*
|
|
9093
|
+
* 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.
|
|
9094
|
+
*
|
|
9095
|
+
* 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.
|
|
9096
|
+
*/
|
|
9097
|
+
version?: number;
|
|
8336
9098
|
}
|
|
8337
9099
|
/**
|
|
8338
9100
|
* Who the service says it is.
|
|
@@ -9540,6 +10302,31 @@ export interface VerdictWith {
|
|
|
9540
10302
|
*/
|
|
9541
10303
|
presentationDefinition?: {};
|
|
9542
10304
|
}
|
|
10305
|
+
/**
|
|
10306
|
+
* 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.
|
|
10307
|
+
*/
|
|
10308
|
+
export interface VerifiedValue {
|
|
10309
|
+
/**
|
|
10310
|
+
* The disclosed claim value.
|
|
10311
|
+
*/
|
|
10312
|
+
value: string | boolean | number;
|
|
10313
|
+
/**
|
|
10314
|
+
* DID of the credential's issuer, shown as the field's verification badge.
|
|
10315
|
+
*/
|
|
10316
|
+
issuer: string;
|
|
10317
|
+
/**
|
|
10318
|
+
* The most specific `type` of the credential the claim came from.
|
|
10319
|
+
*/
|
|
10320
|
+
credentialType?: string;
|
|
10321
|
+
/**
|
|
10322
|
+
* When the community verified the presentation.
|
|
10323
|
+
*/
|
|
10324
|
+
verifiedAt: string;
|
|
10325
|
+
/**
|
|
10326
|
+
* When the credential expires, where it does. The community withdraws the value once it passes.
|
|
10327
|
+
*/
|
|
10328
|
+
validUntil?: string;
|
|
10329
|
+
}
|
|
9543
10330
|
/**
|
|
9544
10331
|
* 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`.
|
|
9545
10332
|
*/
|