@openvtc/trust-tasks 0.23.7 → 0.23.9
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 +65 -0
- package/dist/_shared/components.d.ts +2451 -4
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/auth/oob/_shared/0.1/oob.d.ts +16 -0
- package/dist/auth/oob/_shared/0.1/oob.d.ts.map +1 -0
- package/dist/auth/oob/_shared/0.1/oob.js +6 -0
- package/dist/auth/oob/_shared/0.1/oob.js.map +1 -0
- package/dist/auth/oob/cancel/0.1/payload.d.ts +262 -0
- package/dist/auth/oob/cancel/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/cancel/0.1/payload.js +153 -0
- package/dist/auth/oob/cancel/0.1/payload.js.map +1 -0
- package/dist/auth/oob/claim/0.1/payload.d.ts +463 -0
- package/dist/auth/oob/claim/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/claim/0.1/payload.js +264 -0
- package/dist/auth/oob/claim/0.1/payload.js.map +1 -0
- package/dist/auth/oob/grant/0.1/payload.d.ts +212 -0
- package/dist/auth/oob/grant/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/grant/0.1/payload.js +117 -0
- package/dist/auth/oob/grant/0.1/payload.js.map +1 -0
- package/dist/auth/oob/identify/0.1/payload.d.ts +145 -0
- package/dist/auth/oob/identify/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/identify/0.1/payload.js +81 -0
- package/dist/auth/oob/identify/0.1/payload.js.map +1 -0
- package/dist/auth/oob/prove/0.1/payload.d.ts +740 -0
- package/dist/auth/oob/prove/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/prove/0.1/payload.js +422 -0
- package/dist/auth/oob/prove/0.1/payload.js.map +1 -0
- package/dist/auth/oob/redeem/0.1/payload.d.ts +364 -0
- package/dist/auth/oob/redeem/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/redeem/0.1/payload.js +199 -0
- package/dist/auth/oob/redeem/0.1/payload.js.map +1 -0
- package/dist/auth/oob/request/0.1/payload.d.ts +330 -0
- package/dist/auth/oob/request/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/request/0.1/payload.js +193 -0
- package/dist/auth/oob/request/0.1/payload.js.map +1 -0
- package/dist/auth/oob/respond/0.1/payload.d.ts +235 -0
- package/dist/auth/oob/respond/0.1/payload.d.ts.map +1 -0
- package/dist/auth/oob/respond/0.1/payload.js +140 -0
- package/dist/auth/oob/respond/0.1/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 +6 -2
- 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 +6 -2
- 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 +6 -2
- 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 +6 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/external/_shared/0.1/accounts.d.ts +18 -0
- package/dist/external/_shared/0.1/accounts.d.ts.map +1 -0
- package/dist/external/_shared/0.1/accounts.js +6 -0
- package/dist/external/_shared/0.1/accounts.js.map +1 -0
- package/dist/external/accounts/archive/0.1/payload.d.ts +2945 -0
- package/dist/external/accounts/archive/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/archive/0.1/payload.js +1736 -0
- package/dist/external/accounts/archive/0.1/payload.js.map +1 -0
- package/dist/external/accounts/bindings/grant/0.1/payload.d.ts +2938 -0
- package/dist/external/accounts/bindings/grant/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/bindings/grant/0.1/payload.js +1735 -0
- package/dist/external/accounts/bindings/grant/0.1/payload.js.map +1 -0
- package/dist/external/accounts/bindings/revoke/0.1/payload.d.ts +2958 -0
- package/dist/external/accounts/bindings/revoke/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/bindings/revoke/0.1/payload.js +1743 -0
- package/dist/external/accounts/bindings/revoke/0.1/payload.js.map +1 -0
- package/dist/external/accounts/create/0.1/payload.d.ts +2954 -0
- package/dist/external/accounts/create/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/create/0.1/payload.js +1742 -0
- package/dist/external/accounts/create/0.1/payload.js.map +1 -0
- package/dist/external/accounts/delete/0.1/payload.d.ts +310 -0
- package/dist/external/accounts/delete/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/delete/0.1/payload.js +176 -0
- package/dist/external/accounts/delete/0.1/payload.js.map +1 -0
- package/dist/external/accounts/get/0.1/payload.d.ts +2931 -0
- package/dist/external/accounts/get/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/get/0.1/payload.js +1731 -0
- package/dist/external/accounts/get/0.1/payload.js.map +1 -0
- package/dist/external/accounts/keys/rotate/0.1/payload.d.ts +3216 -0
- package/dist/external/accounts/keys/rotate/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/keys/rotate/0.1/payload.js +1912 -0
- package/dist/external/accounts/keys/rotate/0.1/payload.js.map +1 -0
- package/dist/external/accounts/list/0.1/payload.d.ts +3034 -0
- package/dist/external/accounts/list/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/list/0.1/payload.js +1791 -0
- package/dist/external/accounts/list/0.1/payload.js.map +1 -0
- package/dist/external/accounts/probe/0.1/payload.d.ts +511 -0
- package/dist/external/accounts/probe/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/probe/0.1/payload.js +307 -0
- package/dist/external/accounts/probe/0.1/payload.js.map +1 -0
- package/dist/external/accounts/restore/0.1/payload.d.ts +2945 -0
- package/dist/external/accounts/restore/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/restore/0.1/payload.js +1736 -0
- package/dist/external/accounts/restore/0.1/payload.js.map +1 -0
- package/dist/external/accounts/resume/0.1/payload.d.ts +2945 -0
- package/dist/external/accounts/resume/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/resume/0.1/payload.js +1736 -0
- package/dist/external/accounts/resume/0.1/payload.js.map +1 -0
- package/dist/external/accounts/secret/set/0.1/payload.d.ts +379 -0
- package/dist/external/accounts/secret/set/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/secret/set/0.1/payload.js +212 -0
- package/dist/external/accounts/secret/set/0.1/payload.js.map +1 -0
- package/dist/external/accounts/setup/0.1/payload.d.ts +535 -0
- package/dist/external/accounts/setup/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/setup/0.1/payload.js +325 -0
- package/dist/external/accounts/setup/0.1/payload.js.map +1 -0
- package/dist/external/accounts/suspend/0.1/payload.d.ts +2945 -0
- package/dist/external/accounts/suspend/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/suspend/0.1/payload.js +1736 -0
- package/dist/external/accounts/suspend/0.1/payload.js.map +1 -0
- package/dist/external/accounts/update/0.1/payload.d.ts +2949 -0
- package/dist/external/accounts/update/0.1/payload.d.ts.map +1 -0
- package/dist/external/accounts/update/0.1/payload.js +1739 -0
- package/dist/external/accounts/update/0.1/payload.js.map +1 -0
- package/dist/external/credentials/issue/0.1/payload.d.ts +586 -0
- package/dist/external/credentials/issue/0.1/payload.d.ts.map +1 -0
- package/dist/external/credentials/issue/0.1/payload.js +322 -0
- package/dist/external/credentials/issue/0.1/payload.js.map +1 -0
- package/dist/external/sign/0.1/payload.d.ts +348 -0
- package/dist/external/sign/0.1/payload.d.ts.map +1 -0
- package/dist/external/sign/0.1/payload.js +193 -0
- package/dist/external/sign/0.1/payload.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -1
- package/dist/rooms/_shared/0.1/blobs.d.ts +16 -0
- package/dist/rooms/_shared/0.1/blobs.d.ts.map +1 -0
- package/dist/rooms/_shared/0.1/blobs.js +6 -0
- package/dist/rooms/_shared/0.1/blobs.js.map +1 -0
- package/dist/rooms/_shared/0.1/room.d.ts +1 -1
- package/dist/rooms/_shared/0.1/room.d.ts.map +1 -1
- package/dist/rooms/blobs/chunk/0.1/payload.d.ts +375 -0
- package/dist/rooms/blobs/chunk/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/chunk/0.1/payload.js +213 -0
- package/dist/rooms/blobs/chunk/0.1/payload.js.map +1 -0
- package/dist/rooms/blobs/get/0.1/payload.d.ts +743 -0
- package/dist/rooms/blobs/get/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/get/0.1/payload.js +415 -0
- package/dist/rooms/blobs/get/0.1/payload.js.map +1 -0
- package/dist/rooms/blobs/upload/abort/0.1/payload.d.ts +263 -0
- package/dist/rooms/blobs/upload/abort/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/upload/abort/0.1/payload.js +151 -0
- package/dist/rooms/blobs/upload/abort/0.1/payload.js.map +1 -0
- package/dist/rooms/blobs/upload/begin/0.1/payload.d.ts +793 -0
- package/dist/rooms/blobs/upload/begin/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/upload/begin/0.1/payload.js +437 -0
- package/dist/rooms/blobs/upload/begin/0.1/payload.js.map +1 -0
- package/dist/rooms/blobs/upload/chunk/0.1/payload.d.ts +459 -0
- package/dist/rooms/blobs/upload/chunk/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/upload/chunk/0.1/payload.js +256 -0
- package/dist/rooms/blobs/upload/chunk/0.1/payload.js.map +1 -0
- package/dist/rooms/blobs/upload/commit/0.1/payload.d.ts +326 -0
- package/dist/rooms/blobs/upload/commit/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/blobs/upload/commit/0.1/payload.js +185 -0
- package/dist/rooms/blobs/upload/commit/0.1/payload.js.map +1 -0
- package/dist/rooms/info/0.1/payload.d.ts +897 -0
- package/dist/rooms/info/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/info/0.1/payload.js +498 -0
- package/dist/rooms/info/0.1/payload.js.map +1 -0
- package/dist/rooms/keys/file-key/0.1/payload.d.ts +306 -0
- package/dist/rooms/keys/file-key/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/keys/file-key/0.1/payload.js +167 -0
- package/dist/rooms/keys/file-key/0.1/payload.js.map +1 -0
- package/dist/rooms/records/get/0.2/payload.d.ts +954 -0
- package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/records/get/0.2/payload.js +515 -0
- package/dist/rooms/records/get/0.2/payload.js.map +1 -0
- package/dist/rooms/records/list/0.2/payload.d.ts +854 -0
- package/dist/rooms/records/list/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/records/list/0.2/payload.js +462 -0
- package/dist/rooms/records/list/0.2/payload.js.map +1 -0
- package/dist/rooms/records/put/0.2/payload.d.ts +679 -0
- package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/records/put/0.2/payload.js +357 -0
- package/dist/rooms/records/put/0.2/payload.js.map +1 -0
- package/dist/rooms/usage/0.1/payload.d.ts +795 -0
- package/dist/rooms/usage/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/usage/0.1/payload.js +417 -0
- package/dist/rooms/usage/0.1/payload.js.map +1 -0
- package/dist/vtc/_shared/0.1/room-storage.d.ts +16 -0
- package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -0
- package/dist/vtc/_shared/0.1/room-storage.js +6 -0
- package/dist/vtc/_shared/0.1/room-storage.js.map +1 -0
- package/dist/vtc/rooms/get/0.1/payload.d.ts +1813 -0
- package/dist/vtc/rooms/get/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/get/0.1/payload.js +892 -0
- package/dist/vtc/rooms/get/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/limits/set/0.1/payload.d.ts +873 -0
- package/dist/vtc/rooms/limits/set/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/limits/set/0.1/payload.js +489 -0
- package/dist/vtc/rooms/limits/set/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/storage/assign/0.1/payload.d.ts +341 -0
- package/dist/vtc/rooms/storage/assign/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/storage/assign/0.1/payload.js +191 -0
- package/dist/vtc/rooms/storage/assign/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/storage/migrate/0.1/payload.d.ts +452 -0
- package/dist/vtc/rooms/storage/migrate/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/storage/migrate/0.1/payload.js +260 -0
- package/dist/vtc/rooms/storage/migrate/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/usage/0.1/payload.d.ts +880 -0
- package/dist/vtc/rooms/usage/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/usage/0.1/payload.js +457 -0
- package/dist/vtc/rooms/usage/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/create/0.1/payload.d.ts +1272 -0
- package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/create/0.1/payload.js +737 -0
- package/dist/vtc/storage/configs/create/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/get/0.1/payload.d.ts +1750 -0
- package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/get/0.1/payload.js +1019 -0
- package/dist/vtc/storage/configs/get/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/list/0.1/payload.d.ts +1851 -0
- package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/list/0.1/payload.js +1069 -0
- package/dist/vtc/storage/configs/list/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/probe/0.1/payload.d.ts +459 -0
- package/dist/vtc/storage/configs/probe/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/probe/0.1/payload.js +267 -0
- package/dist/vtc/storage/configs/probe/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/retire/0.1/payload.d.ts +294 -0
- package/dist/vtc/storage/configs/retire/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/retire/0.1/payload.js +176 -0
- package/dist/vtc/storage/configs/retire/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/configs/update/0.1/payload.d.ts +1274 -0
- package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/configs/update/0.1/payload.js +736 -0
- package/dist/vtc/storage/configs/update/0.1/payload.js.map +1 -0
- package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +511 -0
- package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/storage/credentials/set/0.1/payload.js +293 -0
- package/dist/vtc/storage/credentials/set/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +69 -8
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js +31 -0
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +62 -8
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.js +28 -0
- package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.d.ts +3 -3
- package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.js +1 -1
- package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +2539 -4
- package/src/auth/oob/_shared/0.1/oob.ts +17 -0
- package/src/auth/oob/cancel/0.1/payload.ts +188 -0
- package/src/auth/oob/claim/0.1/payload.ts +306 -0
- package/src/auth/oob/grant/0.1/payload.ts +159 -0
- package/src/auth/oob/identify/0.1/payload.ts +110 -0
- package/src/auth/oob/prove/0.1/payload.ts +473 -0
- package/src/auth/oob/redeem/0.1/payload.ts +248 -0
- package/src/auth/oob/request/0.1/payload.ts +230 -0
- package/src/auth/oob/respond/0.1/payload.ts +178 -0
- package/src/device/list/0.1/payload.ts +6 -2
- package/src/device/list/0.2/payload.ts +6 -2
- package/src/device/register/0.1/payload.ts +6 -2
- package/src/device/register/0.2/payload.ts +6 -2
- package/src/external/_shared/0.1/accounts.ts +19 -0
- package/src/external/accounts/archive/0.1/payload.ts +1770 -0
- package/src/external/accounts/bindings/grant/0.1/payload.ts +1766 -0
- package/src/external/accounts/bindings/revoke/0.1/payload.ts +1778 -0
- package/src/external/accounts/create/0.1/payload.ts +1777 -0
- package/src/external/accounts/delete/0.1/payload.ts +211 -0
- package/src/external/accounts/get/0.1/payload.ts +1761 -0
- package/src/external/accounts/keys/rotate/0.1/payload.ts +1947 -0
- package/src/external/accounts/list/0.1/payload.ts +1834 -0
- package/src/external/accounts/probe/0.1/payload.ts +337 -0
- package/src/external/accounts/restore/0.1/payload.ts +1770 -0
- package/src/external/accounts/resume/0.1/payload.ts +1770 -0
- package/src/external/accounts/secret/set/0.1/payload.ts +248 -0
- package/src/external/accounts/setup/0.1/payload.ts +355 -0
- package/src/external/accounts/suspend/0.1/payload.ts +1770 -0
- package/src/external/accounts/update/0.1/payload.ts +1771 -0
- package/src/external/credentials/issue/0.1/payload.ts +365 -0
- package/src/external/sign/0.1/payload.ts +234 -0
- package/src/index.ts +53 -0
- package/src/rooms/_shared/0.1/blobs.ts +17 -0
- package/src/rooms/_shared/0.1/room.ts +1 -1
- package/src/rooms/blobs/chunk/0.1/payload.ts +251 -0
- package/src/rooms/blobs/get/0.1/payload.ts +463 -0
- package/src/rooms/blobs/upload/abort/0.1/payload.ts +187 -0
- package/src/rooms/blobs/upload/begin/0.1/payload.ts +491 -0
- package/src/rooms/blobs/upload/chunk/0.1/payload.ts +304 -0
- package/src/rooms/blobs/upload/commit/0.1/payload.ts +224 -0
- package/src/rooms/info/0.1/payload.ts +572 -0
- package/src/rooms/keys/file-key/0.1/payload.ts +224 -0
- package/src/rooms/records/get/0.2/payload.ts +614 -0
- package/src/rooms/records/list/0.2/payload.ts +533 -0
- package/src/rooms/records/put/0.2/payload.ts +441 -0
- package/src/rooms/usage/0.1/payload.ts +499 -0
- package/src/vtc/_shared/0.1/room-storage.ts +17 -0
- package/src/vtc/rooms/get/0.1/payload.ts +1275 -0
- package/src/vtc/rooms/limits/set/0.1/payload.ts +555 -0
- package/src/vtc/rooms/storage/assign/0.1/payload.ts +237 -0
- package/src/vtc/rooms/storage/migrate/0.1/payload.ts +317 -0
- package/src/vtc/rooms/usage/0.1/payload.ts +568 -0
- package/src/vtc/storage/configs/create/0.1/payload.ts +784 -0
- package/src/vtc/storage/configs/get/0.1/payload.ts +1054 -0
- package/src/vtc/storage/configs/list/0.1/payload.ts +1121 -0
- package/src/vtc/storage/configs/probe/0.1/payload.ts +329 -0
- package/src/vtc/storage/configs/retire/0.1/payload.ts +211 -0
- package/src/vtc/storage/configs/update/0.1/payload.ts +783 -0
- package/src/vtc/storage/credentials/set/0.1/payload.ts +339 -0
- package/src/vtc/vetting/hidden/publish/0.1/payload.ts +39 -0
- package/src/vtc/vetting/hidden/show/0.1/payload.ts +35 -0
- package/src/vtc/vetting/vetters/pcs-tokens/0.1/payload.ts +2 -2
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/storage/credentials/set/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { CredentialState, DigestMultibase, Ext, ExternalAccountId, StorageConfigId } from "../../../../../_shared/components.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Store a `sealed` storage config's long-lived credential, sealed end to end to the community. Write-only: no task returns it. The outer document members are owned by the framework — SPEC §6.3.
|
|
11
|
+
*/
|
|
12
|
+
export interface VTCStorageCredentialsSetPayload {
|
|
13
|
+
configId: StorageConfigId;
|
|
14
|
+
/**
|
|
15
|
+
* OpenPGP-style ASCII-armored `sealed_transfer` ciphertext of the credential. HPKE base mode, X25519-HKDF-SHA256 KEM, ChaCha20-Poly1305 AEAD, info string `vta-sealed-transfer/v1`; recipient the X25519 derivation of the community DID's Ed25519 key.
|
|
16
|
+
*/
|
|
17
|
+
sealed: string;
|
|
18
|
+
/**
|
|
19
|
+
* Digest over the armored bytes exactly as carried in `sealed`. Covered by the document's proof, and shown to approvers in place of the credential.
|
|
20
|
+
*/
|
|
21
|
+
digestMultibase: DigestMultibase;
|
|
22
|
+
/**
|
|
23
|
+
* Why the administrator is making this change. Recorded with the change in the audit trail and shown to approvers. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.
|
|
24
|
+
*/
|
|
25
|
+
reason: string;
|
|
26
|
+
ext?: Ext;
|
|
27
|
+
}
|
|
28
|
+
export interface VTCStorageCredentialsSetResponsePayload {
|
|
29
|
+
configId: StorageConfigId;
|
|
30
|
+
credentialState: CredentialState;
|
|
31
|
+
/**
|
|
32
|
+
* Present when the community probed the config with the new credential.
|
|
33
|
+
*/
|
|
34
|
+
probeOk?: boolean;
|
|
35
|
+
ext?: Ext;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
39
|
+
export type { CredentialState, DigestMultibase, Ext, ExternalAccountId, StorageConfigId };
|
|
40
|
+
|
|
41
|
+
/** Trust Task type URI. */
|
|
42
|
+
export const TYPE_URI = "https://trusttasks.org/spec/vtc/storage/credentials/set/0.1" as const;
|
|
43
|
+
|
|
44
|
+
/** Stable alias for this specification's request payload shape. */
|
|
45
|
+
export type Payload = VTCStorageCredentialsSetPayload;
|
|
46
|
+
|
|
47
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
48
|
+
export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/vtc/storage/credentials/set/0.1#response" as const;
|
|
49
|
+
|
|
50
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
51
|
+
export type Response = VTCStorageCredentialsSetResponsePayload;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* This specification's payload schema, as a value.
|
|
55
|
+
*
|
|
56
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
57
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
58
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
59
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
60
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
61
|
+
*/
|
|
62
|
+
export const PAYLOAD_SCHEMA = {
|
|
63
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
64
|
+
"$id": "https://trusttasks.org/spec/vtc/storage/credentials/set/0.1",
|
|
65
|
+
"title": "VTC Storage — Credentials — Set — payload",
|
|
66
|
+
"description": "Store a `sealed` storage config's long-lived credential, sealed end to end to the community. Write-only: no task returns it. The outer document members are owned by the framework — SPEC §6.3.",
|
|
67
|
+
"type": "object",
|
|
68
|
+
"additionalProperties": false,
|
|
69
|
+
"required": [
|
|
70
|
+
"configId",
|
|
71
|
+
"sealed",
|
|
72
|
+
"digestMultibase",
|
|
73
|
+
"reason"
|
|
74
|
+
],
|
|
75
|
+
"properties": {
|
|
76
|
+
"configId": {
|
|
77
|
+
"$ref": "#/$defs/StorageConfigId"
|
|
78
|
+
},
|
|
79
|
+
"sealed": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"minLength": 64,
|
|
82
|
+
"maxLength": 16384,
|
|
83
|
+
"pattern": "^-----BEGIN VTA SEALED BUNDLE-----",
|
|
84
|
+
"description": "OpenPGP-style ASCII-armored `sealed_transfer` ciphertext of the credential. HPKE base mode, X25519-HKDF-SHA256 KEM, ChaCha20-Poly1305 AEAD, info string `vta-sealed-transfer/v1`; recipient the X25519 derivation of the community DID's Ed25519 key."
|
|
85
|
+
},
|
|
86
|
+
"digestMultibase": {
|
|
87
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
88
|
+
"description": "Digest over the armored bytes exactly as carried in `sealed`. Covered by the document's proof, and shown to approvers in place of the credential."
|
|
89
|
+
},
|
|
90
|
+
"reason": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 1,
|
|
93
|
+
"maxLength": 500,
|
|
94
|
+
"description": "Why the administrator is making this change. Recorded with the change in the audit trail and shown to approvers. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions."
|
|
95
|
+
},
|
|
96
|
+
"ext": {
|
|
97
|
+
"$ref": "#/$defs/Ext"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"$defs": {
|
|
101
|
+
"Response": {
|
|
102
|
+
"$anchor": "response",
|
|
103
|
+
"title": "VTC Storage — Credentials — Set — response payload",
|
|
104
|
+
"type": "object",
|
|
105
|
+
"additionalProperties": false,
|
|
106
|
+
"required": [
|
|
107
|
+
"configId",
|
|
108
|
+
"credentialState"
|
|
109
|
+
],
|
|
110
|
+
"properties": {
|
|
111
|
+
"configId": {
|
|
112
|
+
"$ref": "#/$defs/StorageConfigId"
|
|
113
|
+
},
|
|
114
|
+
"credentialState": {
|
|
115
|
+
"$ref": "#/$defs/CredentialState"
|
|
116
|
+
},
|
|
117
|
+
"probeOk": {
|
|
118
|
+
"type": "boolean",
|
|
119
|
+
"description": "Present when the community probed the config with the new credential."
|
|
120
|
+
},
|
|
121
|
+
"ext": {
|
|
122
|
+
"$ref": "#/$defs/Ext"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"Ext": {
|
|
127
|
+
"title": "Ext",
|
|
128
|
+
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
129
|
+
"type": "object",
|
|
130
|
+
"minProperties": 1,
|
|
131
|
+
"additionalProperties": true,
|
|
132
|
+
"propertyNames": {
|
|
133
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"CredentialState": {
|
|
137
|
+
"title": "CredentialState",
|
|
138
|
+
"type": "object",
|
|
139
|
+
"additionalProperties": false,
|
|
140
|
+
"required": [
|
|
141
|
+
"status"
|
|
142
|
+
],
|
|
143
|
+
"description": "Whether a config can authenticate now, and how — never the credential. `status`: `vta-account`, `ambient` and `sealed` are usable; `required` means the config cannot store until a credential is provided (a `sealed` config never set, or set before a restore, which carries no credential); `none` is a `local` config.",
|
|
144
|
+
"properties": {
|
|
145
|
+
"status": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"enum": [
|
|
148
|
+
"vta-account",
|
|
149
|
+
"ambient",
|
|
150
|
+
"sealed",
|
|
151
|
+
"required",
|
|
152
|
+
"none"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"account": {
|
|
156
|
+
"$ref": "#/$defs/ExternalAccountId",
|
|
157
|
+
"description": "Present with `vta-account`."
|
|
158
|
+
},
|
|
159
|
+
"fingerprint": {
|
|
160
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
161
|
+
"description": "Present with `sealed`: a digest identifying the stored credential, so an administrator can tell which one is set without anyone being able to read it. Computed over the credential with a community-held key, never a bare hash of a low-entropy secret."
|
|
162
|
+
},
|
|
163
|
+
"setAt": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"format": "date-time",
|
|
166
|
+
"description": "Present with `sealed`: when the stored credential was last set."
|
|
167
|
+
},
|
|
168
|
+
"roomsHoldingCredentials": {
|
|
169
|
+
"type": "integer",
|
|
170
|
+
"minimum": 0,
|
|
171
|
+
"description": "Present with `vta-account`: how many rooms the community currently holds a live room-scoped credential for."
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"ExternalAccountId": {
|
|
176
|
+
"title": "ExternalAccountId",
|
|
177
|
+
"type": "string",
|
|
178
|
+
"minLength": 1,
|
|
179
|
+
"maxLength": 64,
|
|
180
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$",
|
|
181
|
+
"description": "The identifier of an external account held by the community's VTA (the external/accounts/* family), which issues the community short-lived, room-scoped credentials and holds the long-lived authority itself."
|
|
182
|
+
},
|
|
183
|
+
"DigestMultibase": {
|
|
184
|
+
"title": "DigestMultibase",
|
|
185
|
+
"description": "A cryptographic digest as a multibase-encoded multihash — the encoding the W3C Verifiable Credentials Data Model 2.0 defines for `digestMultibase`, and the one `did:webvh` uses for its SCID and entry hashes.\n\nMultihash carries the hash algorithm in-band, so the value is self-describing and the wire format survives an algorithm change without a schema revision; multibase does the same for the base encoding, so a verifier never infers base58 from base64url by context. A bare hex string or a `sha-256:`-style prefix hard-codes one algorithm into the wire contract and is non-conforming here.\n\nThis definition constrains the *encoding only*. What the digest is computed over is stated by each referencing field, because it differs legitimately: a digest over a JSON document is taken over its RFC 8785 (JCS) canonicalization, while a digest over an opaque artifact is taken over its bytes. A field whose input is a JSON document and which does not name a canonicalization is not reproducible.\n\nRestricted 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`.",
|
|
186
|
+
"type": "string",
|
|
187
|
+
"minLength": 16,
|
|
188
|
+
"pattern": "^(z[1-9A-HJ-NP-Za-km-z]+|u[A-Za-z0-9_-]+)$",
|
|
189
|
+
"examples": [
|
|
190
|
+
"zQmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"StorageConfigId": {
|
|
194
|
+
"title": "StorageConfigId",
|
|
195
|
+
"type": "string",
|
|
196
|
+
"minLength": 1,
|
|
197
|
+
"maxLength": 64,
|
|
198
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$",
|
|
199
|
+
"description": "A storage config's identifier, chosen by the administrator who creates it and immutable thereafter: lowercase letters, digits and inner hyphens, at most 64 characters (`eu-s3-primary`, `walrus-main`). Unique within the community. Never reused after a config is retired, because blobs name their config by this value."
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
} as const;
|
|
203
|
+
|
|
204
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
205
|
+
export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
206
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
207
|
+
"$ref": "#/$defs/Response",
|
|
208
|
+
"$defs": {
|
|
209
|
+
"Response": {
|
|
210
|
+
"$anchor": "response",
|
|
211
|
+
"title": "VTC Storage — Credentials — Set — response payload",
|
|
212
|
+
"type": "object",
|
|
213
|
+
"additionalProperties": false,
|
|
214
|
+
"required": [
|
|
215
|
+
"configId",
|
|
216
|
+
"credentialState"
|
|
217
|
+
],
|
|
218
|
+
"properties": {
|
|
219
|
+
"configId": {
|
|
220
|
+
"$ref": "#/$defs/StorageConfigId"
|
|
221
|
+
},
|
|
222
|
+
"credentialState": {
|
|
223
|
+
"$ref": "#/$defs/CredentialState"
|
|
224
|
+
},
|
|
225
|
+
"probeOk": {
|
|
226
|
+
"type": "boolean",
|
|
227
|
+
"description": "Present when the community probed the config with the new credential."
|
|
228
|
+
},
|
|
229
|
+
"ext": {
|
|
230
|
+
"$ref": "#/$defs/Ext"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"Ext": {
|
|
235
|
+
"title": "Ext",
|
|
236
|
+
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
237
|
+
"type": "object",
|
|
238
|
+
"minProperties": 1,
|
|
239
|
+
"additionalProperties": true,
|
|
240
|
+
"propertyNames": {
|
|
241
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"CredentialState": {
|
|
245
|
+
"title": "CredentialState",
|
|
246
|
+
"type": "object",
|
|
247
|
+
"additionalProperties": false,
|
|
248
|
+
"required": [
|
|
249
|
+
"status"
|
|
250
|
+
],
|
|
251
|
+
"description": "Whether a config can authenticate now, and how — never the credential. `status`: `vta-account`, `ambient` and `sealed` are usable; `required` means the config cannot store until a credential is provided (a `sealed` config never set, or set before a restore, which carries no credential); `none` is a `local` config.",
|
|
252
|
+
"properties": {
|
|
253
|
+
"status": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"enum": [
|
|
256
|
+
"vta-account",
|
|
257
|
+
"ambient",
|
|
258
|
+
"sealed",
|
|
259
|
+
"required",
|
|
260
|
+
"none"
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"account": {
|
|
264
|
+
"$ref": "#/$defs/ExternalAccountId",
|
|
265
|
+
"description": "Present with `vta-account`."
|
|
266
|
+
},
|
|
267
|
+
"fingerprint": {
|
|
268
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
269
|
+
"description": "Present with `sealed`: a digest identifying the stored credential, so an administrator can tell which one is set without anyone being able to read it. Computed over the credential with a community-held key, never a bare hash of a low-entropy secret."
|
|
270
|
+
},
|
|
271
|
+
"setAt": {
|
|
272
|
+
"type": "string",
|
|
273
|
+
"format": "date-time",
|
|
274
|
+
"description": "Present with `sealed`: when the stored credential was last set."
|
|
275
|
+
},
|
|
276
|
+
"roomsHoldingCredentials": {
|
|
277
|
+
"type": "integer",
|
|
278
|
+
"minimum": 0,
|
|
279
|
+
"description": "Present with `vta-account`: how many rooms the community currently holds a live room-scoped credential for."
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"ExternalAccountId": {
|
|
284
|
+
"title": "ExternalAccountId",
|
|
285
|
+
"type": "string",
|
|
286
|
+
"minLength": 1,
|
|
287
|
+
"maxLength": 64,
|
|
288
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$",
|
|
289
|
+
"description": "The identifier of an external account held by the community's VTA (the external/accounts/* family), which issues the community short-lived, room-scoped credentials and holds the long-lived authority itself."
|
|
290
|
+
},
|
|
291
|
+
"DigestMultibase": {
|
|
292
|
+
"title": "DigestMultibase",
|
|
293
|
+
"description": "A cryptographic digest as a multibase-encoded multihash — the encoding the W3C Verifiable Credentials Data Model 2.0 defines for `digestMultibase`, and the one `did:webvh` uses for its SCID and entry hashes.\n\nMultihash carries the hash algorithm in-band, so the value is self-describing and the wire format survives an algorithm change without a schema revision; multibase does the same for the base encoding, so a verifier never infers base58 from base64url by context. A bare hex string or a `sha-256:`-style prefix hard-codes one algorithm into the wire contract and is non-conforming here.\n\nThis definition constrains the *encoding only*. What the digest is computed over is stated by each referencing field, because it differs legitimately: a digest over a JSON document is taken over its RFC 8785 (JCS) canonicalization, while a digest over an opaque artifact is taken over its bytes. A field whose input is a JSON document and which does not name a canonicalization is not reproducible.\n\nRestricted 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`.",
|
|
294
|
+
"type": "string",
|
|
295
|
+
"minLength": 16,
|
|
296
|
+
"pattern": "^(z[1-9A-HJ-NP-Za-km-z]+|u[A-Za-z0-9_-]+)$",
|
|
297
|
+
"examples": [
|
|
298
|
+
"zQmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR"
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
"StorageConfigId": {
|
|
302
|
+
"title": "StorageConfigId",
|
|
303
|
+
"type": "string",
|
|
304
|
+
"minLength": 1,
|
|
305
|
+
"maxLength": 64,
|
|
306
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$",
|
|
307
|
+
"description": "A storage config's identifier, chosen by the administrator who creates it and immutable thereafter: lowercase letters, digits and inner hyphens, at most 64 characters (`eu-s3-primary`, `walrus-main`). Unique within the community. Never reused after a config is retired, because blobs name their config by this value."
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
} as const;
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
314
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
315
|
+
* per-specification and cannot be derived from the document alone, and
|
|
316
|
+
* item 2 needs the schema this carries.
|
|
317
|
+
*/
|
|
318
|
+
export const SPEC = {
|
|
319
|
+
typeUri: TYPE_URI,
|
|
320
|
+
isBearer: false,
|
|
321
|
+
isProofRequired: true,
|
|
322
|
+
isRecipientRequired: true,
|
|
323
|
+
isIssuedAtRequired: true,
|
|
324
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
325
|
+
} as const;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
329
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
330
|
+
* parties (§7.3 item 5).
|
|
331
|
+
*/
|
|
332
|
+
export const RESPONSE_SPEC = {
|
|
333
|
+
typeUri: RESPONSE_TYPE_URI,
|
|
334
|
+
isBearer: false,
|
|
335
|
+
isProofRequired: true,
|
|
336
|
+
isRecipientRequired: true,
|
|
337
|
+
isIssuedAtRequired: true,
|
|
338
|
+
payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
|
|
339
|
+
} as const;
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
import type { Ext } from "../../../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
|
|
11
|
+
*/
|
|
12
|
+
export type TickLength = string;
|
|
13
|
+
|
|
9
14
|
/**
|
|
10
15
|
* Turn on (or rotate the parameters of) hidden-vetter admission for one criterion. Every member but criterionId has a default. The outer document members are owned by the framework — SPEC §6.3.
|
|
11
16
|
*/
|
|
@@ -30,6 +35,7 @@ export interface VTCVettingHiddenPublishPayload {
|
|
|
30
35
|
* How many attestation tokens a vetter draws per tick. Defaults to three.
|
|
31
36
|
*/
|
|
32
37
|
dripPerTick?: number;
|
|
38
|
+
tickLength?: TickLength;
|
|
33
39
|
/**
|
|
34
40
|
* Events this community is running, replacing whatever was there. Absent or empty removes every event.
|
|
35
41
|
*/
|
|
@@ -113,6 +119,7 @@ export interface StoredConfig {
|
|
|
113
119
|
livePeriods: string[];
|
|
114
120
|
liveTokenLabels: string[];
|
|
115
121
|
dripPerTick: number;
|
|
122
|
+
tickLength: TickLength;
|
|
116
123
|
events: StoredEvent[];
|
|
117
124
|
}
|
|
118
125
|
export interface StoredEvent {
|
|
@@ -146,6 +153,7 @@ export interface PublishedConfig {
|
|
|
146
153
|
vetterLabels: string[];
|
|
147
154
|
tokenLabels: string[];
|
|
148
155
|
dripPerTick: number;
|
|
156
|
+
tickLength: TickLength;
|
|
149
157
|
events: PublishedEvent[];
|
|
150
158
|
}
|
|
151
159
|
/**
|
|
@@ -222,6 +230,9 @@ export const PAYLOAD_SCHEMA = {
|
|
|
222
230
|
"minimum": 1,
|
|
223
231
|
"description": "How many attestation tokens a vetter draws per tick. Defaults to three."
|
|
224
232
|
},
|
|
233
|
+
"tickLength": {
|
|
234
|
+
"$ref": "#/$defs/TickLength"
|
|
235
|
+
},
|
|
225
236
|
"events": {
|
|
226
237
|
"type": "array",
|
|
227
238
|
"items": {
|
|
@@ -234,6 +245,12 @@ export const PAYLOAD_SCHEMA = {
|
|
|
234
245
|
}
|
|
235
246
|
},
|
|
236
247
|
"$defs": {
|
|
248
|
+
"TickLength": {
|
|
249
|
+
"title": "TickLength",
|
|
250
|
+
"type": "string",
|
|
251
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
252
|
+
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
253
|
+
},
|
|
237
254
|
"RequestEvent": {
|
|
238
255
|
"title": "RequestEvent",
|
|
239
256
|
"type": "object",
|
|
@@ -403,6 +420,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
403
420
|
"livePeriods",
|
|
404
421
|
"liveTokenLabels",
|
|
405
422
|
"dripPerTick",
|
|
423
|
+
"tickLength",
|
|
406
424
|
"events"
|
|
407
425
|
],
|
|
408
426
|
"properties": {
|
|
@@ -440,6 +458,9 @@ export const PAYLOAD_SCHEMA = {
|
|
|
440
458
|
"type": "integer",
|
|
441
459
|
"minimum": 1
|
|
442
460
|
},
|
|
461
|
+
"tickLength": {
|
|
462
|
+
"$ref": "#/$defs/TickLength"
|
|
463
|
+
},
|
|
443
464
|
"events": {
|
|
444
465
|
"type": "array",
|
|
445
466
|
"items": {
|
|
@@ -460,6 +481,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
460
481
|
"vetterLabels",
|
|
461
482
|
"tokenLabels",
|
|
462
483
|
"dripPerTick",
|
|
484
|
+
"tickLength",
|
|
463
485
|
"events"
|
|
464
486
|
],
|
|
465
487
|
"properties": {
|
|
@@ -496,6 +518,9 @@ export const PAYLOAD_SCHEMA = {
|
|
|
496
518
|
"type": "integer",
|
|
497
519
|
"minimum": 1
|
|
498
520
|
},
|
|
521
|
+
"tickLength": {
|
|
522
|
+
"$ref": "#/$defs/TickLength"
|
|
523
|
+
},
|
|
499
524
|
"events": {
|
|
500
525
|
"type": "array",
|
|
501
526
|
"items": {
|
|
@@ -557,6 +582,12 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
557
582
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
558
583
|
"$ref": "#/$defs/Response",
|
|
559
584
|
"$defs": {
|
|
585
|
+
"TickLength": {
|
|
586
|
+
"title": "TickLength",
|
|
587
|
+
"type": "string",
|
|
588
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
589
|
+
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
590
|
+
},
|
|
560
591
|
"RequestEvent": {
|
|
561
592
|
"title": "RequestEvent",
|
|
562
593
|
"type": "object",
|
|
@@ -726,6 +757,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
726
757
|
"livePeriods",
|
|
727
758
|
"liveTokenLabels",
|
|
728
759
|
"dripPerTick",
|
|
760
|
+
"tickLength",
|
|
729
761
|
"events"
|
|
730
762
|
],
|
|
731
763
|
"properties": {
|
|
@@ -763,6 +795,9 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
763
795
|
"type": "integer",
|
|
764
796
|
"minimum": 1
|
|
765
797
|
},
|
|
798
|
+
"tickLength": {
|
|
799
|
+
"$ref": "#/$defs/TickLength"
|
|
800
|
+
},
|
|
766
801
|
"events": {
|
|
767
802
|
"type": "array",
|
|
768
803
|
"items": {
|
|
@@ -783,6 +818,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
783
818
|
"vetterLabels",
|
|
784
819
|
"tokenLabels",
|
|
785
820
|
"dripPerTick",
|
|
821
|
+
"tickLength",
|
|
786
822
|
"events"
|
|
787
823
|
],
|
|
788
824
|
"properties": {
|
|
@@ -819,6 +855,9 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
819
855
|
"type": "integer",
|
|
820
856
|
"minimum": 1
|
|
821
857
|
},
|
|
858
|
+
"tickLength": {
|
|
859
|
+
"$ref": "#/$defs/TickLength"
|
|
860
|
+
},
|
|
822
861
|
"events": {
|
|
823
862
|
"type": "array",
|
|
824
863
|
"items": {
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
import type { Ext } from "../../../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* 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`).
|
|
11
|
+
*/
|
|
12
|
+
export type TickLength = string;
|
|
13
|
+
|
|
9
14
|
/**
|
|
10
15
|
* Read one criterion's stored hidden-vetting configuration, what it publishes, and the aggregate counts an administrator needs to run it. The outer document members are owned by the framework — SPEC §6.3.
|
|
11
16
|
*/
|
|
@@ -65,6 +70,7 @@ export interface StoredConfig {
|
|
|
65
70
|
livePeriods: string[];
|
|
66
71
|
liveTokenLabels: string[];
|
|
67
72
|
dripPerTick: number;
|
|
73
|
+
tickLength: TickLength;
|
|
68
74
|
events: StoredEvent[];
|
|
69
75
|
}
|
|
70
76
|
export interface StoredEvent {
|
|
@@ -108,6 +114,7 @@ export interface PublishedConfig {
|
|
|
108
114
|
vetterLabels: string[];
|
|
109
115
|
tokenLabels: string[];
|
|
110
116
|
dripPerTick: number;
|
|
117
|
+
tickLength: TickLength;
|
|
111
118
|
events: PublishedEvent[];
|
|
112
119
|
}
|
|
113
120
|
/**
|
|
@@ -306,6 +313,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
306
313
|
"livePeriods",
|
|
307
314
|
"liveTokenLabels",
|
|
308
315
|
"dripPerTick",
|
|
316
|
+
"tickLength",
|
|
309
317
|
"events"
|
|
310
318
|
],
|
|
311
319
|
"properties": {
|
|
@@ -343,6 +351,9 @@ export const PAYLOAD_SCHEMA = {
|
|
|
343
351
|
"type": "integer",
|
|
344
352
|
"minimum": 1
|
|
345
353
|
},
|
|
354
|
+
"tickLength": {
|
|
355
|
+
"$ref": "#/$defs/TickLength"
|
|
356
|
+
},
|
|
346
357
|
"events": {
|
|
347
358
|
"type": "array",
|
|
348
359
|
"items": {
|
|
@@ -363,6 +374,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
363
374
|
"vetterLabels",
|
|
364
375
|
"tokenLabels",
|
|
365
376
|
"dripPerTick",
|
|
377
|
+
"tickLength",
|
|
366
378
|
"events"
|
|
367
379
|
],
|
|
368
380
|
"properties": {
|
|
@@ -399,6 +411,9 @@ export const PAYLOAD_SCHEMA = {
|
|
|
399
411
|
"type": "integer",
|
|
400
412
|
"minimum": 1
|
|
401
413
|
},
|
|
414
|
+
"tickLength": {
|
|
415
|
+
"$ref": "#/$defs/TickLength"
|
|
416
|
+
},
|
|
402
417
|
"events": {
|
|
403
418
|
"type": "array",
|
|
404
419
|
"items": {
|
|
@@ -516,6 +531,12 @@ export const PAYLOAD_SCHEMA = {
|
|
|
516
531
|
}
|
|
517
532
|
}
|
|
518
533
|
},
|
|
534
|
+
"TickLength": {
|
|
535
|
+
"title": "TickLength",
|
|
536
|
+
"type": "string",
|
|
537
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
538
|
+
"description": "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`)."
|
|
539
|
+
},
|
|
519
540
|
"Ext": {
|
|
520
541
|
"title": "Ext",
|
|
521
542
|
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
@@ -652,6 +673,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
652
673
|
"livePeriods",
|
|
653
674
|
"liveTokenLabels",
|
|
654
675
|
"dripPerTick",
|
|
676
|
+
"tickLength",
|
|
655
677
|
"events"
|
|
656
678
|
],
|
|
657
679
|
"properties": {
|
|
@@ -689,6 +711,9 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
689
711
|
"type": "integer",
|
|
690
712
|
"minimum": 1
|
|
691
713
|
},
|
|
714
|
+
"tickLength": {
|
|
715
|
+
"$ref": "#/$defs/TickLength"
|
|
716
|
+
},
|
|
692
717
|
"events": {
|
|
693
718
|
"type": "array",
|
|
694
719
|
"items": {
|
|
@@ -709,6 +734,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
709
734
|
"vetterLabels",
|
|
710
735
|
"tokenLabels",
|
|
711
736
|
"dripPerTick",
|
|
737
|
+
"tickLength",
|
|
712
738
|
"events"
|
|
713
739
|
],
|
|
714
740
|
"properties": {
|
|
@@ -745,6 +771,9 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
745
771
|
"type": "integer",
|
|
746
772
|
"minimum": 1
|
|
747
773
|
},
|
|
774
|
+
"tickLength": {
|
|
775
|
+
"$ref": "#/$defs/TickLength"
|
|
776
|
+
},
|
|
748
777
|
"events": {
|
|
749
778
|
"type": "array",
|
|
750
779
|
"items": {
|
|
@@ -862,6 +891,12 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
862
891
|
}
|
|
863
892
|
}
|
|
864
893
|
},
|
|
894
|
+
"TickLength": {
|
|
895
|
+
"title": "TickLength",
|
|
896
|
+
"type": "string",
|
|
897
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
898
|
+
"description": "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`)."
|
|
899
|
+
},
|
|
865
900
|
"Ext": {
|
|
866
901
|
"title": "Ext",
|
|
867
902
|
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
@@ -15,7 +15,7 @@ export interface VTCVettingPCSTokensPayload {
|
|
|
15
15
|
*/
|
|
16
16
|
label: string;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Which tick of this label is being drawn: tick `t` is the window starting `t` tick lengths after the label's start instant (see the specification's Definitions). The community refuses a tick that has not begun (`tickNotYet`) and one already served (`alreadyServed`), so the total drawn under a label is bounded by the drip rate times the ticks elapsed.
|
|
19
19
|
*/
|
|
20
20
|
tick: number;
|
|
21
21
|
/**
|
|
@@ -116,7 +116,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
116
116
|
"tick": {
|
|
117
117
|
"type": "integer",
|
|
118
118
|
"minimum": 0,
|
|
119
|
-
"description": "
|
|
119
|
+
"description": "Which tick of this label is being drawn: tick `t` is the window starting `t` tick lengths after the label's start instant (see the specification's Definitions). The community refuses a tick that has not begun (`tickNotYet`) and one already served (`alreadyServed`), so the total drawn under a label is bounded by the drip rate times the ticks elapsed."
|
|
120
120
|
},
|
|
121
121
|
"requests": {
|
|
122
122
|
"type": "array",
|