@openvtc/trust-tasks 0.28.24 → 0.28.26
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 +107 -0
- package/dist/_extends.d.ts.map +1 -1
- package/dist/_extends.js +9 -0
- package/dist/_extends.js.map +1 -1
- package/dist/_shared/components.d.ts +117 -0
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/acl/_shared/0.3/acl-entry.d.ts +24 -0
- package/dist/acl/_shared/0.3/acl-entry.d.ts.map +1 -0
- package/dist/acl/_shared/0.3/acl-entry.js +6 -0
- package/dist/acl/_shared/0.3/acl-entry.js.map +1 -0
- package/dist/acl/change-role/0.1/payload.d.ts +4 -4
- package/dist/acl/change-role/0.1/payload.js +1 -1
- package/dist/acl/change-role/0.2/payload.d.ts +14 -2
- package/dist/acl/change-role/0.2/payload.d.ts.map +1 -1
- package/dist/acl/change-role/0.2/payload.js +1 -1
- package/dist/acl/change-role/0.2/payload.js.map +1 -1
- package/dist/acl/change-role/0.3/payload.d.ts +1925 -0
- package/dist/acl/change-role/0.3/payload.d.ts.map +1 -0
- package/dist/acl/change-role/0.3/payload.js +1109 -0
- package/dist/acl/change-role/0.3/payload.js.map +1 -0
- package/dist/acl/grant/0.1/payload.d.ts +4 -4
- package/dist/acl/grant/0.1/payload.js +1 -1
- package/dist/acl/grant/0.2/payload.d.ts +14 -2
- package/dist/acl/grant/0.2/payload.d.ts.map +1 -1
- package/dist/acl/grant/0.2/payload.js +1 -1
- package/dist/acl/grant/0.2/payload.js.map +1 -1
- package/dist/acl/grant/0.3/payload.d.ts +1895 -0
- package/dist/acl/grant/0.3/payload.d.ts.map +1 -0
- package/dist/acl/grant/0.3/payload.js +1096 -0
- package/dist/acl/grant/0.3/payload.js.map +1 -0
- package/dist/acl/list/0.1/payload.d.ts +4 -4
- package/dist/acl/list/0.1/payload.js +1 -1
- package/dist/acl/list/0.2/payload.d.ts +4 -4
- package/dist/acl/list/0.2/payload.js +1 -1
- package/dist/acl/list/0.3/payload.d.ts +14 -2
- package/dist/acl/list/0.3/payload.d.ts.map +1 -1
- package/dist/acl/list/0.3/payload.js +1 -1
- package/dist/acl/list/0.3/payload.js.map +1 -1
- package/dist/acl/list/0.4/payload.d.ts +2079 -0
- package/dist/acl/list/0.4/payload.d.ts.map +1 -0
- package/dist/acl/list/0.4/payload.js +1185 -0
- package/dist/acl/list/0.4/payload.js.map +1 -0
- package/dist/acl/revoke/0.1/payload.d.ts +4 -4
- package/dist/acl/revoke/0.1/payload.js +1 -1
- package/dist/acl/revoke/0.2/payload.d.ts +14 -2
- package/dist/acl/revoke/0.2/payload.d.ts.map +1 -1
- package/dist/acl/revoke/0.2/payload.js +1 -1
- package/dist/acl/revoke/0.2/payload.js.map +1 -1
- package/dist/acl/revoke/0.3/payload.d.ts +2090 -0
- package/dist/acl/revoke/0.3/payload.d.ts.map +1 -0
- package/dist/acl/revoke/0.3/payload.js +1206 -0
- package/dist/acl/revoke/0.3/payload.js.map +1 -0
- package/dist/acl/show/0.1/payload.d.ts +4 -4
- package/dist/acl/show/0.1/payload.js +1 -1
- package/dist/acl/show/0.2/payload.d.ts +14 -2
- package/dist/acl/show/0.2/payload.d.ts.map +1 -1
- package/dist/acl/show/0.2/payload.js +1 -1
- package/dist/acl/show/0.2/payload.js.map +1 -1
- package/dist/acl/show/0.3/payload.d.ts +1935 -0
- package/dist/acl/show/0.3/payload.d.ts.map +1 -0
- package/dist/acl/show/0.3/payload.js +1122 -0
- package/dist/acl/show/0.3/payload.js.map +1 -0
- package/dist/acl/update/0.1/payload.d.ts +4 -4
- package/dist/acl/update/0.1/payload.js +1 -1
- package/dist/acl/update/0.2/payload.d.ts +14 -2
- package/dist/acl/update/0.2/payload.d.ts.map +1 -1
- package/dist/acl/update/0.2/payload.js +1 -1
- package/dist/acl/update/0.2/payload.js.map +1 -1
- package/dist/acl/update/0.3/payload.d.ts +2042 -0
- package/dist/acl/update/0.3/payload.d.ts.map +1 -0
- package/dist/acl/update/0.3/payload.js +1163 -0
- package/dist/acl/update/0.3/payload.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -1
- package/dist/rooms/_shared/0.2/room.d.ts +1 -1
- package/dist/rooms/_shared/0.2/room.d.ts.map +1 -1
- package/dist/rooms/keys/file-key/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/file-key/0.1/payload.js +1 -1
- package/dist/rooms/keys/file-key/0.2/payload.d.ts +14 -2
- package/dist/rooms/keys/file-key/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/file-key/0.2/payload.js +1 -1
- package/dist/rooms/keys/file-key/0.2/payload.js.map +1 -1
- package/dist/rooms/keys/file-key/0.3/payload.d.ts +396 -0
- package/dist/rooms/keys/file-key/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/keys/file-key/0.3/payload.js +223 -0
- package/dist/rooms/keys/file-key/0.3/payload.js.map +1 -0
- package/dist/rooms/keys/open/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/open/0.1/payload.js +1 -1
- package/dist/rooms/keys/open/0.2/payload.d.ts +14 -2
- package/dist/rooms/keys/open/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/open/0.2/payload.js +1 -1
- package/dist/rooms/keys/open/0.2/payload.js.map +1 -1
- package/dist/rooms/keys/open/0.3/payload.d.ts +413 -0
- package/dist/rooms/keys/open/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/keys/open/0.3/payload.js +227 -0
- package/dist/rooms/keys/open/0.3/payload.js.map +1 -0
- package/dist/rooms/keys/read/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/read/0.1/payload.js +1 -1
- package/dist/rooms/keys/read/0.2/payload.d.ts +14 -2
- package/dist/rooms/keys/read/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/read/0.2/payload.js +1 -1
- package/dist/rooms/keys/read/0.2/payload.js.map +1 -1
- package/dist/rooms/keys/read/0.3/payload.d.ts +1363 -0
- package/dist/rooms/keys/read/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/keys/read/0.3/payload.js +731 -0
- package/dist/rooms/keys/read/0.3/payload.js.map +1 -0
- package/dist/rooms/owner/issue-authority/0.2/payload.d.ts +13 -2
- package/dist/rooms/owner/issue-authority/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/owner/issue-authority/0.2/payload.js +1 -1
- package/dist/rooms/owner/issue-authority/0.2/payload.js.map +1 -1
- package/dist/rooms/owner/issue-authority/0.3/payload.d.ts +557 -0
- package/dist/rooms/owner/issue-authority/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/owner/issue-authority/0.3/payload.js +322 -0
- package/dist/rooms/owner/issue-authority/0.3/payload.js.map +1 -0
- package/dist/rooms/records/get/0.1/payload.d.ts +4 -4
- package/dist/rooms/records/get/0.1/payload.js +1 -1
- package/dist/rooms/records/get/0.2/payload.d.ts +4 -4
- package/dist/rooms/records/get/0.2/payload.js +1 -1
- package/dist/rooms/records/get/0.3/payload.d.ts +13 -2
- package/dist/rooms/records/get/0.3/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.3/payload.js +1 -1
- package/dist/rooms/records/get/0.3/payload.js.map +1 -1
- package/dist/rooms/records/get/0.4/payload.d.ts +1140 -0
- package/dist/rooms/records/get/0.4/payload.d.ts.map +1 -0
- package/dist/rooms/records/get/0.4/payload.js +613 -0
- package/dist/rooms/records/get/0.4/payload.js.map +1 -0
- package/dist/vault/sign-trust-task/0.2/payload.d.ts +5 -5
- package/dist/vault/sign-trust-task/0.2/payload.js +2 -2
- package/dist/vta/_shared/0.1/memory-record.d.ts +1 -1
- package/dist/vta/_shared/0.1/memory-record.d.ts.map +1 -1
- package/dist/vta/memory/delete/0.1/payload.d.ts +4 -4
- package/dist/vta/memory/delete/0.1/payload.js +1 -1
- package/dist/vta/memory/delete/0.2/payload.d.ts +14 -2
- package/dist/vta/memory/delete/0.2/payload.d.ts.map +1 -1
- package/dist/vta/memory/delete/0.2/payload.js +1 -1
- package/dist/vta/memory/delete/0.2/payload.js.map +1 -1
- package/dist/vta/memory/delete/0.3/payload.d.ts +491 -0
- package/dist/vta/memory/delete/0.3/payload.d.ts.map +1 -0
- package/dist/vta/memory/delete/0.3/payload.js +266 -0
- package/dist/vta/memory/delete/0.3/payload.js.map +1 -0
- package/dist/vta/memory/get/0.1/payload.d.ts +14 -2
- package/dist/vta/memory/get/0.1/payload.d.ts.map +1 -1
- package/dist/vta/memory/get/0.1/payload.js +1 -1
- package/dist/vta/memory/get/0.1/payload.js.map +1 -1
- package/dist/vta/memory/get/0.2/payload.d.ts +722 -0
- package/dist/vta/memory/get/0.2/payload.d.ts.map +1 -0
- package/dist/vta/memory/get/0.2/payload.js +391 -0
- package/dist/vta/memory/get/0.2/payload.js.map +1 -0
- package/dist/vta/memory/list/0.1/payload.d.ts +4 -4
- package/dist/vta/memory/list/0.1/payload.js +1 -1
- package/dist/vta/memory/list/0.2/payload.d.ts +14 -2
- package/dist/vta/memory/list/0.2/payload.d.ts.map +1 -1
- package/dist/vta/memory/list/0.2/payload.js +1 -1
- package/dist/vta/memory/list/0.2/payload.js.map +1 -1
- package/dist/vta/memory/list/0.3/payload.d.ts +769 -0
- package/dist/vta/memory/list/0.3/payload.d.ts.map +1 -0
- package/dist/vta/memory/list/0.3/payload.js +405 -0
- package/dist/vta/memory/list/0.3/payload.js.map +1 -0
- package/dist/vta/memory/put/0.1/payload.d.ts +4 -4
- package/dist/vta/memory/put/0.1/payload.js +1 -1
- package/dist/vta/memory/put/0.2/payload.d.ts +14 -2
- package/dist/vta/memory/put/0.2/payload.d.ts.map +1 -1
- package/dist/vta/memory/put/0.2/payload.js +1 -1
- package/dist/vta/memory/put/0.2/payload.js.map +1 -1
- package/dist/vta/memory/put/0.3/payload.d.ts +566 -0
- package/dist/vta/memory/put/0.3/payload.d.ts.map +1 -0
- package/dist/vta/memory/put/0.3/payload.js +306 -0
- package/dist/vta/memory/put/0.3/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_extends.ts +9 -0
- package/src/_shared/components.ts +117 -0
- package/src/acl/_shared/0.3/acl-entry.ts +25 -0
- package/src/acl/change-role/0.1/payload.ts +5 -5
- package/src/acl/change-role/0.2/payload.ts +15 -3
- package/src/acl/change-role/0.3/payload.ts +1167 -0
- package/src/acl/grant/0.1/payload.ts +5 -5
- package/src/acl/grant/0.2/payload.ts +15 -3
- package/src/acl/grant/0.3/payload.ts +1146 -0
- package/src/acl/list/0.1/payload.ts +5 -5
- package/src/acl/list/0.2/payload.ts +5 -5
- package/src/acl/list/0.3/payload.ts +15 -3
- package/src/acl/list/0.4/payload.ts +1267 -0
- package/src/acl/revoke/0.1/payload.ts +5 -5
- package/src/acl/revoke/0.2/payload.ts +15 -3
- package/src/acl/revoke/0.3/payload.ts +1278 -0
- package/src/acl/show/0.1/payload.ts +5 -5
- package/src/acl/show/0.2/payload.ts +15 -3
- package/src/acl/show/0.3/payload.ts +1172 -0
- package/src/acl/update/0.1/payload.ts +5 -5
- package/src/acl/update/0.2/payload.ts +15 -3
- package/src/acl/update/0.3/payload.ts +1258 -0
- package/src/index.ts +48 -0
- package/src/rooms/_shared/0.2/room.ts +1 -1
- package/src/rooms/keys/file-key/0.1/payload.ts +5 -5
- package/src/rooms/keys/file-key/0.2/payload.ts +15 -3
- package/src/rooms/keys/file-key/0.3/payload.ts +286 -0
- package/src/rooms/keys/open/0.1/payload.ts +5 -5
- package/src/rooms/keys/open/0.2/payload.ts +15 -3
- package/src/rooms/keys/open/0.3/payload.ts +299 -0
- package/src/rooms/keys/read/0.1/payload.ts +5 -5
- package/src/rooms/keys/read/0.2/payload.ts +15 -3
- package/src/rooms/keys/read/0.3/payload.ts +901 -0
- package/src/rooms/owner/issue-authority/0.2/payload.ts +14 -3
- package/src/rooms/owner/issue-authority/0.3/payload.ts +388 -0
- package/src/rooms/records/get/0.1/payload.ts +5 -5
- package/src/rooms/records/get/0.2/payload.ts +5 -5
- package/src/rooms/records/get/0.3/payload.ts +14 -3
- package/src/rooms/records/get/0.4/payload.ts +730 -0
- package/src/vault/sign-trust-task/0.2/payload.ts +3 -3
- package/src/vta/_shared/0.1/memory-record.ts +1 -1
- package/src/vta/memory/delete/0.1/payload.ts +5 -5
- package/src/vta/memory/delete/0.2/payload.ts +15 -3
- package/src/vta/memory/delete/0.3/payload.ts +334 -0
- package/src/vta/memory/get/0.1/payload.ts +15 -3
- package/src/vta/memory/get/0.2/payload.ts +460 -0
- package/src/vta/memory/list/0.1/payload.ts +5 -5
- package/src/vta/memory/list/0.2/payload.ts +15 -3
- package/src/vta/memory/list/0.3/payload.ts +491 -0
- package/src/vta/memory/put/0.1/payload.ts +5 -5
- package/src/vta/memory/put/0.2/payload.ts +15 -3
- package/src/vta/memory/put/0.3/payload.ts +379 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vta/memory/put/0.3/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
/** Trust Task type URI. */
|
|
6
|
+
export const TYPE_URI = "https://trusttasks.org/spec/vta/memory/put/0.3";
|
|
7
|
+
/**
|
|
8
|
+
* The earlier version of this specification that this one declares it
|
|
9
|
+
* extends (front matter `extends`, SPEC §5.2 "Declared extension"), or
|
|
10
|
+
* `null`. Only the direct declaration — follow the chain with
|
|
11
|
+
* `extendsChain` / `readForSpec`.
|
|
12
|
+
*/
|
|
13
|
+
export const EXTENDS = "0.2";
|
|
14
|
+
/**
|
|
15
|
+
* Why this version is deprecated, or `null` while it is current. A
|
|
16
|
+
* superseded or retired version is still supported, and is withdrawn from
|
|
17
|
+
* this package in a later scheduled batch (SPEC "Superseded and Withdrawn
|
|
18
|
+
* Versions").
|
|
19
|
+
*/
|
|
20
|
+
export const DEPRECATION = null;
|
|
21
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
22
|
+
export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/vta/memory/put/0.3#response";
|
|
23
|
+
/**
|
|
24
|
+
* This specification's payload schema, as a value.
|
|
25
|
+
*
|
|
26
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
27
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
28
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
29
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
30
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
31
|
+
*/
|
|
32
|
+
export const PAYLOAD_SCHEMA = {
|
|
33
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
34
|
+
"$id": "https://trusttasks.org/spec/vta/memory/put/0.3",
|
|
35
|
+
"title": "VTA Memory Put — payload",
|
|
36
|
+
"description": "Store one memory item at its `(contextId, key)` address. `expectedVersion` makes the write conditional: a positive value requires the item to be at exactly that version, and zero requires that no live item exists.",
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"required": [
|
|
40
|
+
"contextId",
|
|
41
|
+
"key",
|
|
42
|
+
"value"
|
|
43
|
+
],
|
|
44
|
+
"properties": {
|
|
45
|
+
"contextId": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"minLength": 1,
|
|
48
|
+
"description": "The VTA context the item is scoped to; the isolation boundary."
|
|
49
|
+
},
|
|
50
|
+
"key": {
|
|
51
|
+
"$ref": "#/$defs/MemoryKey"
|
|
52
|
+
},
|
|
53
|
+
"value": {
|
|
54
|
+
"$ref": "#/$defs/MemoryValue"
|
|
55
|
+
},
|
|
56
|
+
"expectedVersion": {
|
|
57
|
+
"$ref": "#/$defs/MemoryExpectedVersion",
|
|
58
|
+
"description": "Optional precondition. Omit for a last-writer-wins upsert, as in 0.1. Supply the version a prior read returned to make the write conditional; supply 0 to create only."
|
|
59
|
+
},
|
|
60
|
+
"purpose": {
|
|
61
|
+
"$ref": "#/$defs/MemoryPurpose",
|
|
62
|
+
"description": "OPTIONAL. The one purpose the caller will use the content this request discloses for (VTI-ACL-103). Granted only as the caller's ACL entry grants it; a purpose the entry does not grant is refused with `purposeNotGranted`. May be omitted where the entry lists exactly one purpose, or states `any`."
|
|
63
|
+
},
|
|
64
|
+
"ext": {
|
|
65
|
+
"$ref": "#/$defs/Ext",
|
|
66
|
+
"description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"$defs": {
|
|
70
|
+
"Response": {
|
|
71
|
+
"$anchor": "response",
|
|
72
|
+
"title": "VTA Memory Put — response payload",
|
|
73
|
+
"description": "Success response to vta/memory/put. Type https://trusttasks.org/spec/vta/memory/put/0.3#response. A failed precondition is not a success: it is a trust-task-error carrying vta/memory/put:versionConflict, whose details carry the maintainer's current version and value.",
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"required": [
|
|
77
|
+
"contextId",
|
|
78
|
+
"key",
|
|
79
|
+
"version",
|
|
80
|
+
"wasCreated",
|
|
81
|
+
"updatedAt"
|
|
82
|
+
],
|
|
83
|
+
"properties": {
|
|
84
|
+
"contextId": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"minLength": 1,
|
|
87
|
+
"description": "Echoed from the request."
|
|
88
|
+
},
|
|
89
|
+
"key": {
|
|
90
|
+
"$ref": "#/$defs/MemoryKey"
|
|
91
|
+
},
|
|
92
|
+
"version": {
|
|
93
|
+
"$ref": "#/$defs/MemoryVersion",
|
|
94
|
+
"description": "The version this write took. Supply it as `expectedVersion` on the next write to chain conditional updates without an intervening read."
|
|
95
|
+
},
|
|
96
|
+
"wasCreated": {
|
|
97
|
+
"type": "boolean",
|
|
98
|
+
"description": "True when no live item existed at the key beforehand — including when the key held a tombstone, since a tombstone is not a live item."
|
|
99
|
+
},
|
|
100
|
+
"updatedAt": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"format": "date-time",
|
|
103
|
+
"description": "When the write was applied."
|
|
104
|
+
},
|
|
105
|
+
"valueBytes": {
|
|
106
|
+
"type": "integer",
|
|
107
|
+
"minimum": 0,
|
|
108
|
+
"description": "Size of the stored value in bytes as the maintainer measured it against its per-item cap."
|
|
109
|
+
},
|
|
110
|
+
"ext": {
|
|
111
|
+
"$ref": "#/$defs/Ext",
|
|
112
|
+
"description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"Ext": {
|
|
117
|
+
"title": "Ext",
|
|
118
|
+
"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.",
|
|
119
|
+
"type": "object",
|
|
120
|
+
"minProperties": 1,
|
|
121
|
+
"additionalProperties": true,
|
|
122
|
+
"propertyNames": {
|
|
123
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"MemoryVersion": {
|
|
127
|
+
"title": "MemoryVersion",
|
|
128
|
+
"description": "A value of the context's monotonic write counter (see this schema's description). Server-assigned; a producer never chooses one.",
|
|
129
|
+
"type": "integer",
|
|
130
|
+
"minimum": 1
|
|
131
|
+
},
|
|
132
|
+
"MemoryKey": {
|
|
133
|
+
"title": "MemoryKey",
|
|
134
|
+
"description": "Agent-chosen identifier for an item within a context. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `vta/memory/list` is a byte-prefix comparison over the UTF-8 encoding. Agents SHOULD use `/`-delimited hierarchical keys (`contact/billing`, `preference/timezone`) so that `prefix` can address a family of items, but the delimiter is a convention between an agent and itself. A key is content as well as an address: a key naming a person, a condition or a dispute discloses something to anyone who can list the context, even without its value.",
|
|
135
|
+
"type": "string",
|
|
136
|
+
"minLength": 1,
|
|
137
|
+
"maxLength": 512,
|
|
138
|
+
"pattern": "^[^\\u0000]+$"
|
|
139
|
+
},
|
|
140
|
+
"MemoryPurpose": {
|
|
141
|
+
"title": "MemoryPurpose",
|
|
142
|
+
"description": "The one purpose for which the caller will use the memory content a request discloses (VTI-ACL-103): a name registered in the VTI specification's purpose registry (`personalisation`, `taskExecution`, `analytics`, `modelTraining`) or an absolute IRI. The VTA grants it only if the caller's ACL entry does — `any` grants every purpose but `modelTraining` — refuses it otherwise (`purposeNotGranted`), and records it in the audit record of the read. Optional where the entry lists exactly one purpose (that one applies) or states `any` (the read is recorded as for no stated purpose).",
|
|
143
|
+
"$ref": "#/$defs/Purpose"
|
|
144
|
+
},
|
|
145
|
+
"Purpose": {
|
|
146
|
+
"title": "Purpose",
|
|
147
|
+
"description": "What content is used for: a lowerCamelCase name registered in the VTI specification's purpose registry (Appendix H) — `personalisation`, `taskExecution`, `analytics`, `modelTraining` at the time of writing — or an absolute IRI naming a purpose defined elsewhere, such as a purpose of the W3C Data Privacy Vocabulary (`https://w3id.org/dpv#ServicePersonalisation`). Compared by exact string equality: a consumer MUST NOT treat a purpose it does not recognise as equal to any other, and grants only a request naming exactly a listed purpose (VTI-ACL-109). A registered name is never an IRI, because it contains no `:`.",
|
|
148
|
+
"type": "string",
|
|
149
|
+
"maxLength": 2048,
|
|
150
|
+
"anyOf": [
|
|
151
|
+
{
|
|
152
|
+
"pattern": "^[a-z][a-zA-Z0-9]{0,63}$"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]+$"
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"MemoryExpectedVersion": {
|
|
160
|
+
"title": "MemoryExpectedVersion",
|
|
161
|
+
"description": "Optimistic-concurrency precondition on a write. A positive value requires that the item's current `version` equals it exactly. Zero means \"create only\" — the write applies only if no LIVE item exists at the key. A tombstone is not a live item, so `expectedVersion: 0` succeeds over one; the created item takes the context's next counter value, which is necessarily greater than the tombstone's.",
|
|
162
|
+
"type": "integer",
|
|
163
|
+
"minimum": 0
|
|
164
|
+
},
|
|
165
|
+
"MemoryValue": {
|
|
166
|
+
"title": "MemoryValue",
|
|
167
|
+
"description": "The remembered text: a fact, a summary, a preference. Opaque to the maintainer, which stores it as given and never interprets, rewrites or summarises it. The maintainer enforces a documented per-item cap on its size (see `vta/memory/put`).",
|
|
168
|
+
"type": "string"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
173
|
+
export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
174
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
175
|
+
"$ref": "#/$defs/Response",
|
|
176
|
+
"$defs": {
|
|
177
|
+
"Response": {
|
|
178
|
+
"$anchor": "response",
|
|
179
|
+
"title": "VTA Memory Put — response payload",
|
|
180
|
+
"description": "Success response to vta/memory/put. Type https://trusttasks.org/spec/vta/memory/put/0.3#response. A failed precondition is not a success: it is a trust-task-error carrying vta/memory/put:versionConflict, whose details carry the maintainer's current version and value.",
|
|
181
|
+
"type": "object",
|
|
182
|
+
"additionalProperties": false,
|
|
183
|
+
"required": [
|
|
184
|
+
"contextId",
|
|
185
|
+
"key",
|
|
186
|
+
"version",
|
|
187
|
+
"wasCreated",
|
|
188
|
+
"updatedAt"
|
|
189
|
+
],
|
|
190
|
+
"properties": {
|
|
191
|
+
"contextId": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"minLength": 1,
|
|
194
|
+
"description": "Echoed from the request."
|
|
195
|
+
},
|
|
196
|
+
"key": {
|
|
197
|
+
"$ref": "#/$defs/MemoryKey"
|
|
198
|
+
},
|
|
199
|
+
"version": {
|
|
200
|
+
"$ref": "#/$defs/MemoryVersion",
|
|
201
|
+
"description": "The version this write took. Supply it as `expectedVersion` on the next write to chain conditional updates without an intervening read."
|
|
202
|
+
},
|
|
203
|
+
"wasCreated": {
|
|
204
|
+
"type": "boolean",
|
|
205
|
+
"description": "True when no live item existed at the key beforehand — including when the key held a tombstone, since a tombstone is not a live item."
|
|
206
|
+
},
|
|
207
|
+
"updatedAt": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"format": "date-time",
|
|
210
|
+
"description": "When the write was applied."
|
|
211
|
+
},
|
|
212
|
+
"valueBytes": {
|
|
213
|
+
"type": "integer",
|
|
214
|
+
"minimum": 0,
|
|
215
|
+
"description": "Size of the stored value in bytes as the maintainer measured it against its per-item cap."
|
|
216
|
+
},
|
|
217
|
+
"ext": {
|
|
218
|
+
"$ref": "#/$defs/Ext",
|
|
219
|
+
"description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"Ext": {
|
|
224
|
+
"title": "Ext",
|
|
225
|
+
"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.",
|
|
226
|
+
"type": "object",
|
|
227
|
+
"minProperties": 1,
|
|
228
|
+
"additionalProperties": true,
|
|
229
|
+
"propertyNames": {
|
|
230
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"MemoryVersion": {
|
|
234
|
+
"title": "MemoryVersion",
|
|
235
|
+
"description": "A value of the context's monotonic write counter (see this schema's description). Server-assigned; a producer never chooses one.",
|
|
236
|
+
"type": "integer",
|
|
237
|
+
"minimum": 1
|
|
238
|
+
},
|
|
239
|
+
"MemoryKey": {
|
|
240
|
+
"title": "MemoryKey",
|
|
241
|
+
"description": "Agent-chosen identifier for an item within a context. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `vta/memory/list` is a byte-prefix comparison over the UTF-8 encoding. Agents SHOULD use `/`-delimited hierarchical keys (`contact/billing`, `preference/timezone`) so that `prefix` can address a family of items, but the delimiter is a convention between an agent and itself. A key is content as well as an address: a key naming a person, a condition or a dispute discloses something to anyone who can list the context, even without its value.",
|
|
242
|
+
"type": "string",
|
|
243
|
+
"minLength": 1,
|
|
244
|
+
"maxLength": 512,
|
|
245
|
+
"pattern": "^[^\\u0000]+$"
|
|
246
|
+
},
|
|
247
|
+
"MemoryPurpose": {
|
|
248
|
+
"title": "MemoryPurpose",
|
|
249
|
+
"description": "The one purpose for which the caller will use the memory content a request discloses (VTI-ACL-103): a name registered in the VTI specification's purpose registry (`personalisation`, `taskExecution`, `analytics`, `modelTraining`) or an absolute IRI. The VTA grants it only if the caller's ACL entry does — `any` grants every purpose but `modelTraining` — refuses it otherwise (`purposeNotGranted`), and records it in the audit record of the read. Optional where the entry lists exactly one purpose (that one applies) or states `any` (the read is recorded as for no stated purpose).",
|
|
250
|
+
"$ref": "#/$defs/Purpose"
|
|
251
|
+
},
|
|
252
|
+
"Purpose": {
|
|
253
|
+
"title": "Purpose",
|
|
254
|
+
"description": "What content is used for: a lowerCamelCase name registered in the VTI specification's purpose registry (Appendix H) — `personalisation`, `taskExecution`, `analytics`, `modelTraining` at the time of writing — or an absolute IRI naming a purpose defined elsewhere, such as a purpose of the W3C Data Privacy Vocabulary (`https://w3id.org/dpv#ServicePersonalisation`). Compared by exact string equality: a consumer MUST NOT treat a purpose it does not recognise as equal to any other, and grants only a request naming exactly a listed purpose (VTI-ACL-109). A registered name is never an IRI, because it contains no `:`.",
|
|
255
|
+
"type": "string",
|
|
256
|
+
"maxLength": 2048,
|
|
257
|
+
"anyOf": [
|
|
258
|
+
{
|
|
259
|
+
"pattern": "^[a-z][a-zA-Z0-9]{0,63}$"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]+$"
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
"MemoryExpectedVersion": {
|
|
267
|
+
"title": "MemoryExpectedVersion",
|
|
268
|
+
"description": "Optimistic-concurrency precondition on a write. A positive value requires that the item's current `version` equals it exactly. Zero means \"create only\" — the write applies only if no LIVE item exists at the key. A tombstone is not a live item, so `expectedVersion: 0` succeeds over one; the created item takes the context's next counter value, which is necessarily greater than the tombstone's.",
|
|
269
|
+
"type": "integer",
|
|
270
|
+
"minimum": 0
|
|
271
|
+
},
|
|
272
|
+
"MemoryValue": {
|
|
273
|
+
"title": "MemoryValue",
|
|
274
|
+
"description": "The remembered text: a fact, a summary, a preference. Opaque to the maintainer, which stores it as given and never interprets, rewrites or summarises it. The maintainer enforces a documented per-item cap on its size (see `vta/memory/put`).",
|
|
275
|
+
"type": "string"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
281
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
282
|
+
* per-specification and cannot be derived from the document alone, and
|
|
283
|
+
* item 2 needs the schema this carries.
|
|
284
|
+
*/
|
|
285
|
+
export const SPEC = {
|
|
286
|
+
typeUri: TYPE_URI,
|
|
287
|
+
isBearer: false,
|
|
288
|
+
isProofRequired: true,
|
|
289
|
+
isRecipientRequired: true,
|
|
290
|
+
isIssuedAtRequired: true,
|
|
291
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
295
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
296
|
+
* parties (§7.3 item 5).
|
|
297
|
+
*/
|
|
298
|
+
export const RESPONSE_SPEC = {
|
|
299
|
+
typeUri: RESPONSE_TYPE_URI,
|
|
300
|
+
isBearer: false,
|
|
301
|
+
isProofRequired: true,
|
|
302
|
+
isRecipientRequired: true,
|
|
303
|
+
isIssuedAtRequired: true,
|
|
304
|
+
payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
|
|
305
|
+
};
|
|
306
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../../../src/vta/memory/put/0.3/payload.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/_extends.ts
CHANGED
|
@@ -11,14 +11,23 @@ export const EXTENDS_BY_TYPE_URI: Readonly<Record<string, string>> = Object.free
|
|
|
11
11
|
"https://trusttasks.org/spec/rooms/keys/act/0.11": "0.10",
|
|
12
12
|
"https://trusttasks.org/spec/rooms/keys/act/0.12": "0.11",
|
|
13
13
|
"https://trusttasks.org/spec/rooms/keys/act/0.9": "0.8",
|
|
14
|
+
"https://trusttasks.org/spec/rooms/keys/file-key/0.3": "0.2",
|
|
15
|
+
"https://trusttasks.org/spec/rooms/keys/open/0.3": "0.2",
|
|
16
|
+
"https://trusttasks.org/spec/rooms/keys/read/0.3": "0.2",
|
|
14
17
|
"https://trusttasks.org/spec/rooms/keys/seal/0.3": "0.2",
|
|
18
|
+
"https://trusttasks.org/spec/rooms/owner/issue-authority/0.3": "0.2",
|
|
15
19
|
"https://trusttasks.org/spec/rooms/records/get/0.3": "0.2",
|
|
20
|
+
"https://trusttasks.org/spec/rooms/records/get/0.4": "0.3",
|
|
16
21
|
"https://trusttasks.org/spec/rooms/records/put/0.4": "0.3",
|
|
17
22
|
"https://trusttasks.org/spec/rooms/records/put/0.5": "0.4",
|
|
18
23
|
"https://trusttasks.org/spec/vta/did-templates/create/3.2": "3.1",
|
|
19
24
|
"https://trusttasks.org/spec/vta/did-templates/get/3.2": "3.1",
|
|
20
25
|
"https://trusttasks.org/spec/vta/did-templates/list/3.2": "3.1",
|
|
21
26
|
"https://trusttasks.org/spec/vta/did-templates/update/3.2": "3.1",
|
|
27
|
+
"https://trusttasks.org/spec/vta/memory/delete/0.3": "0.2",
|
|
28
|
+
"https://trusttasks.org/spec/vta/memory/get/0.2": "0.1",
|
|
29
|
+
"https://trusttasks.org/spec/vta/memory/list/0.3": "0.2",
|
|
30
|
+
"https://trusttasks.org/spec/vta/memory/put/0.3": "0.2",
|
|
22
31
|
"https://trusttasks.org/spec/vta/webvh/dids/update/1.1": "1.0",
|
|
23
32
|
"https://trusttasks.org/spec/vtc/elections/list/0.4": "0.3",
|
|
24
33
|
"https://trusttasks.org/spec/vtc/elections/list/0.5": "0.4",
|
|
@@ -1327,6 +1327,10 @@ export type MemoryExpectedVersion = number;
|
|
|
1327
1327
|
* Agent-chosen identifier for an item within a context. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `vta/memory/list` is a byte-prefix comparison over the UTF-8 encoding. Agents SHOULD use `/`-delimited hierarchical keys (`contact/billing`, `preference/timezone`) so that `prefix` can address a family of items, but the delimiter is a convention between an agent and itself. A key is content as well as an address: a key naming a person, a condition or a dispute discloses something to anyone who can list the context, even without its value.
|
|
1328
1328
|
*/
|
|
1329
1329
|
export type MemoryKey = string;
|
|
1330
|
+
/**
|
|
1331
|
+
* The one purpose for which the caller will use the memory content a request discloses (VTI-ACL-103): a name registered in the VTI specification's purpose registry (`personalisation`, `taskExecution`, `analytics`, `modelTraining`) or an absolute IRI. The VTA grants it only if the caller's ACL entry does — `any` grants every purpose but `modelTraining` — refuses it otherwise (`purposeNotGranted`), and records it in the audit record of the read. Optional where the entry lists exactly one purpose (that one applies) or states `any` (the read is recorded as for no stated purpose).
|
|
1332
|
+
*/
|
|
1333
|
+
export type MemoryPurpose = Purpose_AclV0_3;
|
|
1330
1334
|
/**
|
|
1331
1335
|
* The remembered text: a fact, a summary, a preference. Opaque to the maintainer, which stores it as given and never interprets, rewrites or summarises it. The maintainer enforces a documented per-item cap on its size (see `vta/memory/put`).
|
|
1332
1336
|
*/
|
|
@@ -1885,6 +1889,18 @@ export type ProviderObjectPrefix = string;
|
|
|
1885
1889
|
* What the request is for. A CLOSED list: each purpose has a fixed row in CONVENTIONS.md §3 stating what is revealed at each step, what the grant contains, what redeem returns and the window lengths. Version 0.1 defines `login` only. `stepUp` and `deviceEnrol` are reserved names; adding one is a new version of this component and of every task that references it, never an in-place edit.
|
|
1886
1890
|
*/
|
|
1887
1891
|
export type Purpose = "login";
|
|
1892
|
+
/**
|
|
1893
|
+
* An explicit purpose scope. Exactly one of two shapes, discriminated by `scope`: `any`, or `listed` with a NON-EMPTY list of purposes. The empty list is invalid, not a third shape.
|
|
1894
|
+
*/
|
|
1895
|
+
export type PurposeScope = PurposeScopeAny | PurposeScopeListed;
|
|
1896
|
+
/**
|
|
1897
|
+
* What content is used for: a lowerCamelCase name registered in the VTI specification's purpose registry (Appendix H) — `personalisation`, `taskExecution`, `analytics`, `modelTraining` at the time of writing — or an absolute IRI naming a purpose defined elsewhere, such as a purpose of the W3C Data Privacy Vocabulary (`https://w3id.org/dpv#ServicePersonalisation`). Compared by exact string equality: a consumer MUST NOT treat a purpose it does not recognise as equal to any other, and grants only a request naming exactly a listed purpose (VTI-ACL-109). A registered name is never an IRI, because it contains no `:`.
|
|
1898
|
+
*/
|
|
1899
|
+
export type Purpose_AclV0_3 = Purpose_AclV0_31 & Purpose_AclV0_32;
|
|
1900
|
+
export type Purpose_AclV0_31 = {
|
|
1901
|
+
[k: string]: unknown | undefined;
|
|
1902
|
+
};
|
|
1903
|
+
export type Purpose_AclV0_32 = string;
|
|
1888
1904
|
/**
|
|
1889
1905
|
* A device's platform push channel — the body the device registers with its push GATEWAY (push wake-up binding, https://trusttasks.org/binding/push/0.1; modeled on Aries RFC 0699/0734). The gateway holds this token and returns an opaque WakeHandle in exchange; the token is held by the gateway ONLY, never by the mediator or the maintainer/VTA. The gateway uses it to send a contentless wake-up when an authorized trigger asks — the push payload never carries Trust Task content. Tagged union over the discriminator `platform`.
|
|
1890
1906
|
*/
|
|
@@ -1970,6 +1986,10 @@ export type RecordId_VtcNotificationsV0_1 = string;
|
|
|
1970
1986
|
* What a reader shows a record as. Defined values: `note` — something kept in the room's library, titled or not, its `body` markdown; `message` — a turn in the room's conversation, its words in `body` as plain text; `reaction` — a short response to another record, its value in `body` (`SealedRecordBody`, *Reactions*). An open set, not an enumeration, so a new kind needs no new version of any schema: a reader MUST present a record whose kind it does not know as a note, and MUST NOT refuse a record for its kind. Absent means `note`, though a reader that keeps a conversation apart MAY show an untitled record without a kind as a message (*Untitled records*). A new version of a record MUST keep its kind. lowerCamelCase, at most 64 characters.
|
|
1971
1987
|
*/
|
|
1972
1988
|
export type RecordKind = string;
|
|
1989
|
+
/**
|
|
1990
|
+
* The one purpose for which a caller will use room content a request discloses (VTI-ACL-103): a name registered in the VTI specification's purpose registry (`personalisation`, `taskExecution`, `analytics`, `modelTraining`) or an absolute IRI. Granted only as the caller's authority grants it — `any` grants every purpose but `modelTraining` — refused otherwise (`purposeNotGranted`), and recorded with the read. Distinct from `PermittedUse`, which is what a record's author permits and is a statement, not a grant.
|
|
1991
|
+
*/
|
|
1992
|
+
export type RecordPurpose = Purpose_AclV0_3;
|
|
1973
1993
|
/**
|
|
1974
1994
|
* The path from one record's leaf to the room's `DataCommitment` — a Merkle inclusion proof, in the vocabulary this work already uses for it.
|
|
1975
1995
|
*
|
|
@@ -5315,6 +5335,84 @@ export interface AclEntry_AclV0_2 {
|
|
|
5315
5335
|
*/
|
|
5316
5336
|
ext?: Ext;
|
|
5317
5337
|
}
|
|
5338
|
+
/**
|
|
5339
|
+
* One access-control entry: who the grant is for (`subject`), the ceiling it is held under (`role`), where the subject may act (`act`) and approve (`approve`), and which capabilities it may exercise (`capabilities`) and approve (`approveCapabilities`).
|
|
5340
|
+
*
|
|
5341
|
+
* The act axis and the approve axis are independent and a consumer MUST resolve them separately: `act` + `capabilities` (+ `keys`) answer "may this subject do X"; `approve` + `approveCapabilities` answer "may this subject ratify someone else doing X". Neither implies the other. An entry with `act: {scope: none}` and an approve scope other than none is a least-privilege approver — able to satisfy an approval and unable to initiate any change.
|
|
5342
|
+
*/
|
|
5343
|
+
export interface AclEntry_AclV0_3 {
|
|
5344
|
+
/**
|
|
5345
|
+
* VID of the party in the ACL. Compared by exact string equality (SPEC.md §4.8); producers SHOULD emit canonical form.
|
|
5346
|
+
*/
|
|
5347
|
+
subject: string;
|
|
5348
|
+
/**
|
|
5349
|
+
* Opaque role identifier interpreted by the ACL maintainer. A role is a CEILING, never a grant: it bounds the capabilities the entry may hold and never adds to them. A consumer that does not recognise the role MUST treat the entry as conferring no authority and MUST NOT fall back to a default role. Act scope and role are independent members; a consumer MUST NOT compute either from the other.
|
|
5350
|
+
*/
|
|
5351
|
+
role: string;
|
|
5352
|
+
/**
|
|
5353
|
+
* REQUIRED explicit act scope: where this subject may make a change itself. Exactly one of `{"scope": "all"}` (unrestricted — every context the maintainer has), `{"scope": "none"}` (may act nowhere), or `{"scope": "contexts", "contexts": [...]}` with at least one context path (the named contexts and, where the maintainer's contexts are hierarchical, their descendants). There is no default and no implicit form: an entry without `act`, or with an empty `contexts` list, is malformed and MUST be refused, never read as `all` and never read as `none`. A maintainer that has no contexts (for example a community node that narrows authority with resource qualifiers instead) states `all` or `none` only. Replaces 0.1's `scopes`.
|
|
5354
|
+
*/
|
|
5355
|
+
act: AuthorityScope;
|
|
5356
|
+
/**
|
|
5357
|
+
* OPTIONAL approve scope: where this subject may ratify a change made by someone else (a step-up ratification, a consent decision, an N-of-M approval). Same three shapes as `act`, resolved independently of it. ABSENT MEANS NONE — the subject may ratify nothing — so a consumer that has not implemented the member confers less than the producer intended, never more. A producer SHOULD state `{"scope": "none"}` explicitly rather than rely on omission. A subject MUST NOT confer approve authority wider than the approve authority it holds itself (see acl/grant `approveWiderThanGranter`). Replaces 0.1's `approve {all, scopes}`.
|
|
5358
|
+
*/
|
|
5359
|
+
approve?: AuthorityScope;
|
|
5360
|
+
/**
|
|
5361
|
+
* REQUIRED explicit capability scope: which capabilities this entry holds. Exactly one of `{"scope": "ceiling"}` (the role's full ceiling, unnarrowed), `{"scope": "none"}` (no capabilities), or `{"scope": "listed", "grants": [...]}` with at least one CapabilityGrant. For `listed`, the EFFECTIVE set is (the role's ceiling ∩ the non-additive grants) ∪ the additive grants; it can only narrow the ceiling, except through an explicit additive grant, which only an unrestricted granter may make. There is no implicit form: an entry without `capabilities`, or with an empty `grants` list, is malformed and MUST be refused. A non-additive grant outside the role's ceiling is refused when written, never accepted with the capability silently dropped; a capability the consumer does not recognise is never treated as granted. Producers SHOULD NOT list the same (capability, resource) pair twice; a consumer MAY refuse a list that does.
|
|
5362
|
+
*/
|
|
5363
|
+
capabilities: CapabilityScope;
|
|
5364
|
+
/**
|
|
5365
|
+
* OPTIONAL explicit approvable-capability scope: which capabilities this subject may APPROVE an action needing — independent of what it may do itself, so an approver can ratify a capability it does not hold (the least-privilege approver). One of `{"scope": "ceiling"}` (the role's full approve ceiling; at a maintainer whose roles define no capability-level approve ceiling, any action within `approve`), `{"scope": "none"}`, or `{"scope": "listed", "grants": [...]}` with at least one CapabilityRef (intersected with the role's approve ceiling where one is defined). ABSENT MEANS NONE: the subject may approve no capability, because absence derives no authority. Bounded by `approve`: where `approve` is absent or `{"scope": "none"}` this member confers nothing whatever it states. A subject MUST NOT confer approvable capabilities it cannot itself approve.
|
|
5366
|
+
*/
|
|
5367
|
+
approveCapabilities?: ApproveCapabilityScope;
|
|
5368
|
+
/**
|
|
5369
|
+
* VID of the granter whose authority this entry was delegated from and is bounded by. The entry MUST NOT hold authority the granter did not hold when it was written, and MUST NOT retain authority the granter has since lost, so a maintainer re-evaluates it when the granter's own entry narrows or is removed. Distinct from `createdBy`, which records who wrote the entry: the two differ where an entry is written on a granter's behalf (for example after an N-of-M approval, or by an offline operator). Set by the maintainer from the granter it authorized; absent on an entry that derives from no granter's authority (the first administrator, an operator-written recovery entry).
|
|
5370
|
+
*/
|
|
5371
|
+
delegatedBy?: string;
|
|
5372
|
+
/**
|
|
5373
|
+
* REQUIRED explicit key scope: which keys this subject may invoke the maintainer's signing oracle on. Exactly one of `{"scope": "all"}` (every key the entry's act scope reaches), `{"scope": "none"}` (no keys), or `{"scope": "listed", "keys": [...]}` with at least one key identifier. INTERSECTS WITH `act` — it can only narrow, never widen: a listed key that lies outside the entry's act scope remains unreachable, exactly as if it were not listed. There is no implicit form: an entry without `keys`, or with an empty `keys` list, is malformed and MUST be refused. A maintainer that operates no signing oracle states `{"scope": "none"}`. Replaces 0.1's `allowedKeys`, whose absence meant every key.
|
|
5374
|
+
*/
|
|
5375
|
+
keys: KeyScope;
|
|
5376
|
+
/**
|
|
5377
|
+
* REQUIRED explicit purpose scope: what this subject may use content it reads for — the purpose a request for a purpose-bound operation (a read of content held for the principal, or a refusal that carries such content) names, and the maintainer records in that operation's audit record. Exactly one of `{"scope": "any"}` (any purpose EXCEPT `modelTraining`) or `{"scope": "listed", "purposes": [...]}` with at least one Purpose. There is no implicit form: an entry without `purposes`, or with an empty list, is malformed and MUST be refused, never read as `any`. A maintainer that adopts this version writes `any` on every entry that predates it before serving a purpose-bound operation under it (VTI-ACL-101). Delegated purposes are a subset of the granter's: a granter stating `any` MAY delegate a list; a granter stating a list MUST NOT delegate `any`, and no granter delegates `modelTraining` unless its own entry names it (acl/grant `purposeOutsideDelegator`). A maintainer MAY refuse by policy to grant a purpose, naming it, when the entry is written (acl/grant `purposeRefused`), never by writing the entry without it. A purpose is a declaration, not a proof: the maintainer cannot see what the subject does with content, and holds it to what it declared.
|
|
5378
|
+
*/
|
|
5379
|
+
purposes: PurposeScope;
|
|
5380
|
+
/**
|
|
5381
|
+
* Optional human-readable label. Confers nothing.
|
|
5382
|
+
*/
|
|
5383
|
+
label?: string;
|
|
5384
|
+
createdAt?: string;
|
|
5385
|
+
/**
|
|
5386
|
+
* VID of the party that originally wrote this entry.
|
|
5387
|
+
*/
|
|
5388
|
+
createdBy?: string;
|
|
5389
|
+
updatedAt?: string;
|
|
5390
|
+
/**
|
|
5391
|
+
* VID of the party that last modified this entry.
|
|
5392
|
+
*/
|
|
5393
|
+
updatedBy?: string;
|
|
5394
|
+
/**
|
|
5395
|
+
* Optional time after which the entry confers no authority. Evaluated at every authorization decision, not only when a session is established.
|
|
5396
|
+
*/
|
|
5397
|
+
expiresAt?: string;
|
|
5398
|
+
/**
|
|
5399
|
+
* Per-entry authentication step-up configuration, consumed by the ACL maintainer when it gates an operation behind a step-up (see auth/step-up/policy). ADDITIVE-ONLY: a per-entry setting MAY raise the assurance required of this subject above the maintainer's system-wide floor, but MUST NOT lower it. The maintainer resolves the effective requirement as the strictest of (system floor, this entry). Carried forward from 0.1 unchanged.
|
|
5400
|
+
*/
|
|
5401
|
+
stepUp?: {
|
|
5402
|
+
/**
|
|
5403
|
+
* VID authorized to ratify step-up for this subject — the `recipient` the maintainer addresses an auth/step-up/approve-request to (e.g. the holder's mobile authenticator or browser companion). Absent → the subject is its own approver (mode `self`) when it holds a usable authenticator; if neither an `approver` nor a self authenticator exists, no step-up method is available for this subject and the maintainer's fail-closed rule applies.
|
|
5404
|
+
*/
|
|
5405
|
+
approver?: string;
|
|
5406
|
+
/**
|
|
5407
|
+
* Minimum step-up mode this subject MUST satisfy for gated operations, raising the system floor. `self` = the subject re-authenticates its own session; `delegated` = a separate `approver` MUST ratify. Omitted → the system floor applies unchanged. A value weaker than the resolved floor is ignored (additive-only).
|
|
5408
|
+
*/
|
|
5409
|
+
require?: "self" | "delegated";
|
|
5410
|
+
};
|
|
5411
|
+
/**
|
|
5412
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. Reverse-DNS-namespaced; consumers MUST ignore unrecognized namespaces. An extension member MUST NOT be interpreted as conferring authority.
|
|
5413
|
+
*/
|
|
5414
|
+
ext?: Ext;
|
|
5415
|
+
}
|
|
5318
5416
|
/**
|
|
5319
5417
|
* One parked administrative operation, as the caller is entitled to see it. The same action reads differently to different callers only in `challenge` and `callerRole`, which are per-caller.
|
|
5320
5418
|
*/
|
|
@@ -13231,6 +13329,25 @@ export interface PurgeProgress {
|
|
|
13231
13329
|
*/
|
|
13232
13330
|
lastError?: string;
|
|
13233
13331
|
}
|
|
13332
|
+
/**
|
|
13333
|
+
* Any purpose except `modelTraining` (training, fine-tuning or evaluating a machine-learning model on the content), which `any` never grants (VTI-ACL-105).
|
|
13334
|
+
*/
|
|
13335
|
+
export interface PurposeScopeAny {
|
|
13336
|
+
scope: "any";
|
|
13337
|
+
}
|
|
13338
|
+
/**
|
|
13339
|
+
* Exactly the listed purposes. A request naming any other purpose is refused.
|
|
13340
|
+
*/
|
|
13341
|
+
export interface PurposeScopeListed {
|
|
13342
|
+
scope: "listed";
|
|
13343
|
+
/**
|
|
13344
|
+
* Non-empty set of purposes. An empty array is invalid (it is not `any`).
|
|
13345
|
+
*
|
|
13346
|
+
* @minItems 1
|
|
13347
|
+
* @maxItems 32
|
|
13348
|
+
*/
|
|
13349
|
+
purposes: [Purpose_AclV0_3, ...Purpose_AclV0_3[]];
|
|
13350
|
+
}
|
|
13234
13351
|
export interface Apns {
|
|
13235
13352
|
platform: "apns";
|
|
13236
13353
|
/**
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/acl/_shared/0.3/acl-entry.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Canonical AclEntry 0.3 and its component $defs, referenced by the 0.3 acl/* specifications and by any family that reuses the capability shape (vtc/roles). Not itself a Trust Task specification (the `_shared` folder is skipped by the registry build and the codegen). See CONVENTIONS.md beside this file for the rules a consumer applies across tasks.
|
|
8
|
+
*
|
|
9
|
+
* What 0.3 changes over 0.2: an entry states what its subject may use content it reads FOR — `purposes`, REQUIRED, either `{"scope": "any"}` or `{"scope": "listed", "purposes": [...]}` with at least one purpose (VTI-ACL-100 – 110). Every other member and definition is 0.2's, unchanged. A maintainer adopting 0.3 states `any` on every entry that predates it (VTI-ACL-101): the authority it already held, now stated. `any` never grants `modelTraining`, which is granted only by naming it (VTI-ACL-105). CONVENTIONS.md §12 has the rules.
|
|
10
|
+
*
|
|
11
|
+
* What 0.2 changed over 0.1: authority is STATED, never inferred from a shape. 0.1's `scopes` — a list whose emptiness meant `everywhere` for one role and `nowhere` for another, depending on a maintainer convention the wire could not carry — is replaced by `act`, an explicit act scope that is one of `all`, `none`, or a non-empty list of contexts. 0.1's `approve {all, scopes}` is replaced by the same explicit three-shape scope. 0.1's `allowedKeys` — where absent meant every key and empty meant none — is replaced by an explicit, REQUIRED `keys` scope. Capability-level authority is new and equally explicit: `capabilities` is REQUIRED and states `ceiling`, `none` or a listed set; `approveCapabilities` states the same three or is absent, which means none. No member's absence, and no collection's emptiness, ever confers authority. Delegation provenance (`delegatedBy`) is new. CONVENTIONS.md §8 documents how a maintainer maps a 0.1 entry onto 0.2.
|
|
12
|
+
*
|
|
13
|
+
* Role and capability identifiers are OPAQUE to this family: the acl/* tasks are used by maintainers with different vocabularies (a VTA's context administrators, a VTC's administrative roles). A maintainer publishes its own role set and capability registry; the vtc/roles family is one such vocabulary.
|
|
14
|
+
*
|
|
15
|
+
* Timestamp invariants (SHOULD-level, prose — not expressible in JSON Schema): when both `createdAt` and `updatedAt` are present, `updatedAt >= createdAt`; when both `createdAt` and `expiresAt` are present, `expiresAt > createdAt`. Consumers SHOULD reject documents that violate either.
|
|
16
|
+
*/
|
|
17
|
+
export interface AclEntry03SharedDefinitionsForTheAclSpecFamily {
|
|
18
|
+
[k: string]: unknown | undefined;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The definitions this shared schema publishes, hoisted to one declaration each.
|
|
23
|
+
* See "../../../_shared/components.js".
|
|
24
|
+
*/
|
|
25
|
+
export type { AclEntry_AclV0_3 as AclEntry, ApproveCapabilityScope, ApproveCapabilityScopeListed, AuthorityScope, AuthorityScopeAll, AuthorityScopeContexts, AuthorityScopeNone, Capability_AclV0_2 as Capability, CapabilityGrant, CapabilityRef, CapabilityScope, CapabilityScopeCeiling, CapabilityScopeListed, CapabilityScopeNone, ContextPath, KeyScope, KeyScopeAll, KeyScopeListed, KeyScopeNone, Purpose_AclV0_3 as Purpose, PurposeScope, PurposeScopeAny, PurposeScopeListed, ResourceQualifier } from "../../../_shared/components.js";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import type { AclEntry_AclV0_1 as AclEntry, Ext } from "../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
/** @deprecated superseded by acl/change-role/0.
|
|
9
|
+
/** @deprecated superseded by acl/change-role/0.3 */
|
|
10
10
|
export interface ACLChangeRolePayload {
|
|
11
11
|
/**
|
|
12
12
|
* VID of the party whose role is changing.
|
|
@@ -32,7 +32,7 @@ export interface ACLChangeRolePayload {
|
|
|
32
32
|
/**
|
|
33
33
|
* The success response to an acl/change-role request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/acl/change-role/0.1#response.
|
|
34
34
|
*
|
|
35
|
-
* @deprecated superseded by acl/change-role/0.
|
|
35
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
36
36
|
*/
|
|
37
37
|
export interface ACLChangeRoleResponsePayload {
|
|
38
38
|
/**
|
|
@@ -65,12 +65,12 @@ export const EXTENDS: string | null = null;
|
|
|
65
65
|
* this package in a later scheduled batch (SPEC "Superseded and Withdrawn
|
|
66
66
|
* Versions").
|
|
67
67
|
*/
|
|
68
|
-
export const DEPRECATION: string | null = "superseded by acl/change-role/0.
|
|
68
|
+
export const DEPRECATION: string | null = "superseded by acl/change-role/0.3";
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Stable alias for this specification's request payload shape.
|
|
72
72
|
*
|
|
73
|
-
* @deprecated superseded by acl/change-role/0.
|
|
73
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
74
74
|
*/
|
|
75
75
|
export type Payload = ACLChangeRolePayload;
|
|
76
76
|
|
|
@@ -80,7 +80,7 @@ export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/acl/change-role/0.
|
|
|
80
80
|
/**
|
|
81
81
|
* Stable alias for this specification's success-response payload shape.
|
|
82
82
|
*
|
|
83
|
-
* @deprecated superseded by acl/change-role/0.
|
|
83
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
84
84
|
*/
|
|
85
85
|
export type Response = ACLChangeRoleResponsePayload;
|
|
86
86
|
|
|
@@ -8,6 +8,8 @@ import type { AclEntry_AclV0_2 as AclEntry, ApproveCapabilityScope, ApproveCapab
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Move a subject's AclEntry 0.2 from one role to another, with a compare-and-swap on the current role. Only the role changes; the entry's other members are carried over and re-evaluated against the new role's ceilings. The outer document members are owned by the framework — SPEC §6.3.
|
|
11
|
+
*
|
|
12
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
11
13
|
*/
|
|
12
14
|
export interface ACLChangeRole02Payload {
|
|
13
15
|
/**
|
|
@@ -33,6 +35,8 @@ export interface ACLChangeRole02Payload {
|
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* The success response to an acl/change-role/0.2 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/acl/change-role/0.2#response.
|
|
38
|
+
*
|
|
39
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
36
40
|
*/
|
|
37
41
|
export interface ACLChangeRole02ResponsePayload {
|
|
38
42
|
/**
|
|
@@ -65,15 +69,23 @@ export const EXTENDS: string | null = null;
|
|
|
65
69
|
* this package in a later scheduled batch (SPEC "Superseded and Withdrawn
|
|
66
70
|
* Versions").
|
|
67
71
|
*/
|
|
68
|
-
export const DEPRECATION: string | null =
|
|
72
|
+
export const DEPRECATION: string | null = "superseded by acl/change-role/0.3";
|
|
69
73
|
|
|
70
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Stable alias for this specification's request payload shape.
|
|
76
|
+
*
|
|
77
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
78
|
+
*/
|
|
71
79
|
export type Payload = ACLChangeRole02Payload;
|
|
72
80
|
|
|
73
81
|
/** Trust Task response type URI (request type URI + "#response"). */
|
|
74
82
|
export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/acl/change-role/0.2#response" as const;
|
|
75
83
|
|
|
76
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Stable alias for this specification's success-response payload shape.
|
|
86
|
+
*
|
|
87
|
+
* @deprecated superseded by acl/change-role/0.3
|
|
88
|
+
*/
|
|
77
89
|
export type Response = ACLChangeRole02ResponsePayload;
|
|
78
90
|
|
|
79
91
|
/**
|