@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,499 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/rooms/usage/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { AuthorityPresentation, Ext, ScopeLimits, Usage } from "../../../_shared/components.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A room's owner reads how much each member who has added files is using, against their allowance. Authorized by the room's own credentials: a chain conferring `admin` at the room's scope.
|
|
11
|
+
*/
|
|
12
|
+
export interface RoomsUsagePayload {
|
|
13
|
+
/**
|
|
14
|
+
* The room's identifier. The host verifies the presentation against credentials issued by this identifier.
|
|
15
|
+
*/
|
|
16
|
+
roomId: string;
|
|
17
|
+
/**
|
|
18
|
+
* Must confer the `admin` action at this room's scope.
|
|
19
|
+
*/
|
|
20
|
+
presentation: AuthorityPresentation;
|
|
21
|
+
/**
|
|
22
|
+
* Opaque continuation from a previous response's `nextCursor`. Omit for the first page.
|
|
23
|
+
*/
|
|
24
|
+
cursor?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Most entries to return. The host chooses when omitted, and may return fewer.
|
|
27
|
+
*/
|
|
28
|
+
limit?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1.
|
|
31
|
+
*/
|
|
32
|
+
ext?: Ext;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Success response to rooms/usage. Type https://trusttasks.org/spec/rooms/usage/0.1#response.
|
|
36
|
+
*/
|
|
37
|
+
export interface RoomsUsageResponsePayload {
|
|
38
|
+
/**
|
|
39
|
+
* The room this describes.
|
|
40
|
+
*/
|
|
41
|
+
roomId: string;
|
|
42
|
+
/**
|
|
43
|
+
* One entry per member who holds or has reserved storage in the room, or holds an override. Not a roster: a member who has never added a file does not appear, because the host has never been told about them.
|
|
44
|
+
*
|
|
45
|
+
* @maxItems 500
|
|
46
|
+
*/
|
|
47
|
+
members: MemberUsage[];
|
|
48
|
+
/**
|
|
49
|
+
* Present exactly when more entries remain.
|
|
50
|
+
*/
|
|
51
|
+
nextCursor?: string;
|
|
52
|
+
ext?: Ext;
|
|
53
|
+
}
|
|
54
|
+
export interface MemberUsage {
|
|
55
|
+
/**
|
|
56
|
+
* The member's DID: the subject at the room end of the chains they presented when uploading. Uploads by a member's agents are counted here, under the member.
|
|
57
|
+
*/
|
|
58
|
+
member: string;
|
|
59
|
+
usage: Usage;
|
|
60
|
+
/**
|
|
61
|
+
* The limits that apply to this member in this room: their override if one is set, else the room's per-member default.
|
|
62
|
+
*/
|
|
63
|
+
limits: ScopeLimits;
|
|
64
|
+
/**
|
|
65
|
+
* True when `limits` is an override set for this member rather than the room's default.
|
|
66
|
+
*/
|
|
67
|
+
overridden?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* When this member last committed a blob in the room.
|
|
70
|
+
*/
|
|
71
|
+
lastUploadAt?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
75
|
+
export type { AuthorityPresentation, Ext, ScopeLimits, Usage };
|
|
76
|
+
|
|
77
|
+
/** Trust Task type URI. */
|
|
78
|
+
export const TYPE_URI = "https://trusttasks.org/spec/rooms/usage/0.1" as const;
|
|
79
|
+
|
|
80
|
+
/** Stable alias for this specification's request payload shape. */
|
|
81
|
+
export type Payload = RoomsUsagePayload;
|
|
82
|
+
|
|
83
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
84
|
+
export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/rooms/usage/0.1#response" as const;
|
|
85
|
+
|
|
86
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
87
|
+
export type Response = RoomsUsageResponsePayload;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* This specification's payload schema, as a value.
|
|
91
|
+
*
|
|
92
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
93
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
94
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
95
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
96
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
97
|
+
*/
|
|
98
|
+
export const PAYLOAD_SCHEMA = {
|
|
99
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
100
|
+
"$id": "https://trusttasks.org/spec/rooms/usage/0.1",
|
|
101
|
+
"title": "Rooms Usage — payload",
|
|
102
|
+
"description": "A room's owner reads how much each member who has added files is using, against their allowance. Authorized by the room's own credentials: a chain conferring `admin` at the room's scope.",
|
|
103
|
+
"type": "object",
|
|
104
|
+
"additionalProperties": false,
|
|
105
|
+
"required": [
|
|
106
|
+
"roomId",
|
|
107
|
+
"presentation"
|
|
108
|
+
],
|
|
109
|
+
"properties": {
|
|
110
|
+
"roomId": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"description": "The room's identifier. The host verifies the presentation against credentials issued by this identifier."
|
|
113
|
+
},
|
|
114
|
+
"presentation": {
|
|
115
|
+
"$ref": "#/$defs/AuthorityPresentation",
|
|
116
|
+
"description": "Must confer the `admin` action at this room's scope."
|
|
117
|
+
},
|
|
118
|
+
"cursor": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"maxLength": 512,
|
|
121
|
+
"description": "Opaque continuation from a previous response's `nextCursor`. Omit for the first page."
|
|
122
|
+
},
|
|
123
|
+
"limit": {
|
|
124
|
+
"type": "integer",
|
|
125
|
+
"minimum": 1,
|
|
126
|
+
"maximum": 500,
|
|
127
|
+
"description": "Most entries to return. The host chooses when omitted, and may return fewer."
|
|
128
|
+
},
|
|
129
|
+
"ext": {
|
|
130
|
+
"$ref": "#/$defs/Ext",
|
|
131
|
+
"description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"$defs": {
|
|
135
|
+
"MemberUsage": {
|
|
136
|
+
"title": "MemberUsage",
|
|
137
|
+
"type": "object",
|
|
138
|
+
"additionalProperties": false,
|
|
139
|
+
"required": [
|
|
140
|
+
"member",
|
|
141
|
+
"usage",
|
|
142
|
+
"limits"
|
|
143
|
+
],
|
|
144
|
+
"properties": {
|
|
145
|
+
"member": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"pattern": "^did:[a-z0-9]+:.+$",
|
|
148
|
+
"maxLength": 2048,
|
|
149
|
+
"description": "The member's DID: the subject at the room end of the chains they presented when uploading. Uploads by a member's agents are counted here, under the member."
|
|
150
|
+
},
|
|
151
|
+
"usage": {
|
|
152
|
+
"$ref": "#/$defs/Usage"
|
|
153
|
+
},
|
|
154
|
+
"limits": {
|
|
155
|
+
"$ref": "#/$defs/ScopeLimits",
|
|
156
|
+
"description": "The limits that apply to this member in this room: their override if one is set, else the room's per-member default."
|
|
157
|
+
},
|
|
158
|
+
"overridden": {
|
|
159
|
+
"type": "boolean",
|
|
160
|
+
"description": "True when `limits` is an override set for this member rather than the room's default."
|
|
161
|
+
},
|
|
162
|
+
"lastUploadAt": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"format": "date-time",
|
|
165
|
+
"description": "When this member last committed a blob in the room."
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"Response": {
|
|
170
|
+
"$anchor": "response",
|
|
171
|
+
"title": "Rooms Usage — response payload",
|
|
172
|
+
"description": "Success response to rooms/usage. Type https://trusttasks.org/spec/rooms/usage/0.1#response.",
|
|
173
|
+
"type": "object",
|
|
174
|
+
"additionalProperties": false,
|
|
175
|
+
"required": [
|
|
176
|
+
"roomId",
|
|
177
|
+
"members"
|
|
178
|
+
],
|
|
179
|
+
"properties": {
|
|
180
|
+
"roomId": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"description": "The room this describes."
|
|
183
|
+
},
|
|
184
|
+
"members": {
|
|
185
|
+
"type": "array",
|
|
186
|
+
"maxItems": 500,
|
|
187
|
+
"items": {
|
|
188
|
+
"$ref": "#/$defs/MemberUsage"
|
|
189
|
+
},
|
|
190
|
+
"description": "One entry per member who holds or has reserved storage in the room, or holds an override. Not a roster: a member who has never added a file does not appear, because the host has never been told about them."
|
|
191
|
+
},
|
|
192
|
+
"nextCursor": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"maxLength": 512,
|
|
195
|
+
"description": "Present exactly when more entries remain."
|
|
196
|
+
},
|
|
197
|
+
"ext": {
|
|
198
|
+
"$ref": "#/$defs/Ext"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"Ext": {
|
|
203
|
+
"title": "Ext",
|
|
204
|
+
"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.",
|
|
205
|
+
"type": "object",
|
|
206
|
+
"minProperties": 1,
|
|
207
|
+
"additionalProperties": true,
|
|
208
|
+
"propertyNames": {
|
|
209
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"ScopeLimits": {
|
|
213
|
+
"title": "ScopeLimits",
|
|
214
|
+
"type": "object",
|
|
215
|
+
"additionalProperties": false,
|
|
216
|
+
"description": "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.",
|
|
217
|
+
"properties": {
|
|
218
|
+
"maxFiles": {
|
|
219
|
+
"type": "integer",
|
|
220
|
+
"minimum": 0,
|
|
221
|
+
"description": "The number of committed blobs the scope may hold. 0 refuses every upload at this scope."
|
|
222
|
+
},
|
|
223
|
+
"maxFileBytes": {
|
|
224
|
+
"type": "integer",
|
|
225
|
+
"minimum": 0,
|
|
226
|
+
"maximum": 1073741824,
|
|
227
|
+
"description": "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest)."
|
|
228
|
+
},
|
|
229
|
+
"maxBytes": {
|
|
230
|
+
"type": "integer",
|
|
231
|
+
"minimum": 0,
|
|
232
|
+
"description": "The total size of the committed and reserved blobs the scope may hold."
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"Usage": {
|
|
237
|
+
"title": "Usage",
|
|
238
|
+
"type": "object",
|
|
239
|
+
"additionalProperties": false,
|
|
240
|
+
"required": [
|
|
241
|
+
"files",
|
|
242
|
+
"bytes",
|
|
243
|
+
"reservedBytes"
|
|
244
|
+
],
|
|
245
|
+
"description": "What one scope holds now. Ciphertext bytes throughout.",
|
|
246
|
+
"properties": {
|
|
247
|
+
"files": {
|
|
248
|
+
"type": "integer",
|
|
249
|
+
"minimum": 0,
|
|
250
|
+
"description": "Committed blobs that are not orphaned."
|
|
251
|
+
},
|
|
252
|
+
"bytes": {
|
|
253
|
+
"type": "integer",
|
|
254
|
+
"minimum": 0,
|
|
255
|
+
"description": "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once."
|
|
256
|
+
},
|
|
257
|
+
"reservedBytes": {
|
|
258
|
+
"type": "integer",
|
|
259
|
+
"minimum": 0,
|
|
260
|
+
"description": "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits."
|
|
261
|
+
},
|
|
262
|
+
"reservedFiles": {
|
|
263
|
+
"type": "integer",
|
|
264
|
+
"minimum": 0,
|
|
265
|
+
"description": "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`."
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"AuthorityPresentation": {
|
|
270
|
+
"title": "AuthorityPresentation",
|
|
271
|
+
"type": "object",
|
|
272
|
+
"additionalProperties": false,
|
|
273
|
+
"required": [
|
|
274
|
+
"membership",
|
|
275
|
+
"authority"
|
|
276
|
+
],
|
|
277
|
+
"description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.",
|
|
278
|
+
"properties": {
|
|
279
|
+
"membership": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"description": "The presenter's membership credential for this room, or — on a `private` room — a zero-knowledge presentation of it. Serialized per the governing profile."
|
|
282
|
+
},
|
|
283
|
+
"authority": {
|
|
284
|
+
"type": "array",
|
|
285
|
+
"minItems": 1,
|
|
286
|
+
"maxItems": 8,
|
|
287
|
+
"items": {
|
|
288
|
+
"type": "string"
|
|
289
|
+
},
|
|
290
|
+
"description": "The authority chain, LEAF FIRST: the first element is the credential being relied on and the last MUST be one issued by the room itself. Every link the presenter relies on is present, because the host will not fetch one. Capped at 8: verification is linear in chain length and runs on every operation, so an unbounded chain is a denial-of-service surface against the host. The known uses need 2 to 3 — a person attenuating to an agent, and that agent to a sub-agent."
|
|
291
|
+
},
|
|
292
|
+
"subjectBinding": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "REQUIRED on a `private` room, where the subject identifier is withheld: a proof that the membership credential and the authority chain's leaf describe the SAME subject. Without it two parties pool credentials — one contributes membership, the other authority — and the combination verifies as a single party holding both. A host MUST refuse a private-room presentation that omits this."
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
} as const;
|
|
300
|
+
|
|
301
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
302
|
+
export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
303
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
304
|
+
"$ref": "#/$defs/Response",
|
|
305
|
+
"$defs": {
|
|
306
|
+
"MemberUsage": {
|
|
307
|
+
"title": "MemberUsage",
|
|
308
|
+
"type": "object",
|
|
309
|
+
"additionalProperties": false,
|
|
310
|
+
"required": [
|
|
311
|
+
"member",
|
|
312
|
+
"usage",
|
|
313
|
+
"limits"
|
|
314
|
+
],
|
|
315
|
+
"properties": {
|
|
316
|
+
"member": {
|
|
317
|
+
"type": "string",
|
|
318
|
+
"pattern": "^did:[a-z0-9]+:.+$",
|
|
319
|
+
"maxLength": 2048,
|
|
320
|
+
"description": "The member's DID: the subject at the room end of the chains they presented when uploading. Uploads by a member's agents are counted here, under the member."
|
|
321
|
+
},
|
|
322
|
+
"usage": {
|
|
323
|
+
"$ref": "#/$defs/Usage"
|
|
324
|
+
},
|
|
325
|
+
"limits": {
|
|
326
|
+
"$ref": "#/$defs/ScopeLimits",
|
|
327
|
+
"description": "The limits that apply to this member in this room: their override if one is set, else the room's per-member default."
|
|
328
|
+
},
|
|
329
|
+
"overridden": {
|
|
330
|
+
"type": "boolean",
|
|
331
|
+
"description": "True when `limits` is an override set for this member rather than the room's default."
|
|
332
|
+
},
|
|
333
|
+
"lastUploadAt": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"format": "date-time",
|
|
336
|
+
"description": "When this member last committed a blob in the room."
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"Response": {
|
|
341
|
+
"$anchor": "response",
|
|
342
|
+
"title": "Rooms Usage — response payload",
|
|
343
|
+
"description": "Success response to rooms/usage. Type https://trusttasks.org/spec/rooms/usage/0.1#response.",
|
|
344
|
+
"type": "object",
|
|
345
|
+
"additionalProperties": false,
|
|
346
|
+
"required": [
|
|
347
|
+
"roomId",
|
|
348
|
+
"members"
|
|
349
|
+
],
|
|
350
|
+
"properties": {
|
|
351
|
+
"roomId": {
|
|
352
|
+
"type": "string",
|
|
353
|
+
"description": "The room this describes."
|
|
354
|
+
},
|
|
355
|
+
"members": {
|
|
356
|
+
"type": "array",
|
|
357
|
+
"maxItems": 500,
|
|
358
|
+
"items": {
|
|
359
|
+
"$ref": "#/$defs/MemberUsage"
|
|
360
|
+
},
|
|
361
|
+
"description": "One entry per member who holds or has reserved storage in the room, or holds an override. Not a roster: a member who has never added a file does not appear, because the host has never been told about them."
|
|
362
|
+
},
|
|
363
|
+
"nextCursor": {
|
|
364
|
+
"type": "string",
|
|
365
|
+
"maxLength": 512,
|
|
366
|
+
"description": "Present exactly when more entries remain."
|
|
367
|
+
},
|
|
368
|
+
"ext": {
|
|
369
|
+
"$ref": "#/$defs/Ext"
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
"Ext": {
|
|
374
|
+
"title": "Ext",
|
|
375
|
+
"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.",
|
|
376
|
+
"type": "object",
|
|
377
|
+
"minProperties": 1,
|
|
378
|
+
"additionalProperties": true,
|
|
379
|
+
"propertyNames": {
|
|
380
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"ScopeLimits": {
|
|
384
|
+
"title": "ScopeLimits",
|
|
385
|
+
"type": "object",
|
|
386
|
+
"additionalProperties": false,
|
|
387
|
+
"description": "Limits at one scope. Every member is optional: an absent member means the scope sets no limit of that kind, and the next wider scope's limit, or the host's ceiling, governs. All sizes are ciphertext bytes.",
|
|
388
|
+
"properties": {
|
|
389
|
+
"maxFiles": {
|
|
390
|
+
"type": "integer",
|
|
391
|
+
"minimum": 0,
|
|
392
|
+
"description": "The number of committed blobs the scope may hold. 0 refuses every upload at this scope."
|
|
393
|
+
},
|
|
394
|
+
"maxFileBytes": {
|
|
395
|
+
"type": "integer",
|
|
396
|
+
"minimum": 0,
|
|
397
|
+
"maximum": 1073741824,
|
|
398
|
+
"description": "The largest single blob the scope accepts. Never above 1 GiB, the transfer ceiling (BlobManifest)."
|
|
399
|
+
},
|
|
400
|
+
"maxBytes": {
|
|
401
|
+
"type": "integer",
|
|
402
|
+
"minimum": 0,
|
|
403
|
+
"description": "The total size of the committed and reserved blobs the scope may hold."
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"Usage": {
|
|
408
|
+
"title": "Usage",
|
|
409
|
+
"type": "object",
|
|
410
|
+
"additionalProperties": false,
|
|
411
|
+
"required": [
|
|
412
|
+
"files",
|
|
413
|
+
"bytes",
|
|
414
|
+
"reservedBytes"
|
|
415
|
+
],
|
|
416
|
+
"description": "What one scope holds now. Ciphertext bytes throughout.",
|
|
417
|
+
"properties": {
|
|
418
|
+
"files": {
|
|
419
|
+
"type": "integer",
|
|
420
|
+
"minimum": 0,
|
|
421
|
+
"description": "Committed blobs that are not orphaned."
|
|
422
|
+
},
|
|
423
|
+
"bytes": {
|
|
424
|
+
"type": "integer",
|
|
425
|
+
"minimum": 0,
|
|
426
|
+
"description": "Their total size. A blob stops counting the moment it is orphaned (its last record dropped it or was retracted), not when the host finally deletes it, so a member who deletes a file has the room back at once."
|
|
427
|
+
},
|
|
428
|
+
"reservedBytes": {
|
|
429
|
+
"type": "integer",
|
|
430
|
+
"minimum": 0,
|
|
431
|
+
"description": "Bytes reserved by uploads begun and not yet committed, aborted or expired. Counted against `maxBytes`, so two concurrent uploads cannot both fit under a limit only one of them fits."
|
|
432
|
+
},
|
|
433
|
+
"reservedFiles": {
|
|
434
|
+
"type": "integer",
|
|
435
|
+
"minimum": 0,
|
|
436
|
+
"description": "Uploads begun and not yet committed, aborted or expired. Counted against `maxFiles`."
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"AuthorityPresentation": {
|
|
441
|
+
"title": "AuthorityPresentation",
|
|
442
|
+
"type": "object",
|
|
443
|
+
"additionalProperties": false,
|
|
444
|
+
"required": [
|
|
445
|
+
"membership",
|
|
446
|
+
"authority"
|
|
447
|
+
],
|
|
448
|
+
"description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.",
|
|
449
|
+
"properties": {
|
|
450
|
+
"membership": {
|
|
451
|
+
"type": "string",
|
|
452
|
+
"description": "The presenter's membership credential for this room, or — on a `private` room — a zero-knowledge presentation of it. Serialized per the governing profile."
|
|
453
|
+
},
|
|
454
|
+
"authority": {
|
|
455
|
+
"type": "array",
|
|
456
|
+
"minItems": 1,
|
|
457
|
+
"maxItems": 8,
|
|
458
|
+
"items": {
|
|
459
|
+
"type": "string"
|
|
460
|
+
},
|
|
461
|
+
"description": "The authority chain, LEAF FIRST: the first element is the credential being relied on and the last MUST be one issued by the room itself. Every link the presenter relies on is present, because the host will not fetch one. Capped at 8: verification is linear in chain length and runs on every operation, so an unbounded chain is a denial-of-service surface against the host. The known uses need 2 to 3 — a person attenuating to an agent, and that agent to a sub-agent."
|
|
462
|
+
},
|
|
463
|
+
"subjectBinding": {
|
|
464
|
+
"type": "string",
|
|
465
|
+
"description": "REQUIRED on a `private` room, where the subject identifier is withheld: a proof that the membership credential and the authority chain's leaf describe the SAME subject. Without it two parties pool credentials — one contributes membership, the other authority — and the combination verifies as a single party holding both. A host MUST refuse a private-room presentation that omits this."
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
} as const;
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
474
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
475
|
+
* per-specification and cannot be derived from the document alone, and
|
|
476
|
+
* item 2 needs the schema this carries.
|
|
477
|
+
*/
|
|
478
|
+
export const SPEC = {
|
|
479
|
+
typeUri: TYPE_URI,
|
|
480
|
+
isBearer: false,
|
|
481
|
+
isProofRequired: false,
|
|
482
|
+
isRecipientRequired: true,
|
|
483
|
+
isIssuedAtRequired: false,
|
|
484
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
485
|
+
} as const;
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
489
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
490
|
+
* parties (§7.3 item 5).
|
|
491
|
+
*/
|
|
492
|
+
export const RESPONSE_SPEC = {
|
|
493
|
+
typeUri: RESPONSE_TYPE_URI,
|
|
494
|
+
isBearer: false,
|
|
495
|
+
isProofRequired: false,
|
|
496
|
+
isRecipientRequired: true,
|
|
497
|
+
isIssuedAtRequired: false,
|
|
498
|
+
payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
|
|
499
|
+
} as const;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/_shared/0.1/room-storage.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Shared types for the host-side administration of files in the data rooms a community hosts: the vtc/storage/configs/*, vtc/storage/credentials/set, vtc/rooms/get, vtc/rooms/limits/set, vtc/rooms/usage and vtc/rooms/storage/* tasks. A storage config is one named backend — a local directory, an S3-compatible bucket, a Google Cloud Storage bucket or Walrus — with its own account and credentials. Every room is assigned to exactly one config, which receives its new uploads; one config serves any number of rooms; every blob remembers the config it was written to, so reassigning a room strands nothing. Limits, usage and blob shapes come from rooms/_shared/0.1/blobs.schema.json. No member of any type here carries a secret: a credential is referred to by mode, account and fingerprint, never by value. Not itself a Trust Task specification (the `_shared` folder is skipped by the registry build and the codegen).
|
|
8
|
+
*/
|
|
9
|
+
export interface VTCSharedRoomStorageDefinitions {
|
|
10
|
+
[k: string]: unknown | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The definitions this shared schema publishes, hoisted to one declaration each.
|
|
15
|
+
* See "../../../_shared/components.js".
|
|
16
|
+
*/
|
|
17
|
+
export type { ConfigState, CredentialState, EffectiveLimits, ExternalAccountId, GcsSettings, HostedRoom, LimitSource, LimitTarget, LocalSettings, ObjectPrefix, S3Settings, StorageAuth, StorageConfig, StorageConfigFacts, StorageConfigId, StorageHealth, StorageKind, StorageSettings, WalrusSettings } from "../../../_shared/components.js";
|