@openvtc/trust-tasks 0.19.7 → 0.19.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 +4 -0
- package/dist/_shared/components.d.ts +234 -17
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/vta/_shared/0.1/backup-transfer.d.ts +18 -0
- package/dist/vta/_shared/0.1/backup-transfer.d.ts.map +1 -0
- package/dist/vta/_shared/0.1/backup-transfer.js +6 -0
- package/dist/vta/_shared/0.1/backup-transfer.js.map +1 -0
- package/dist/vta/_shared/0.1/did-template.d.ts +1 -1
- package/dist/vta/_shared/0.1/did-template.d.ts.map +1 -1
- package/dist/vta/_shared/0.2/did-template.d.ts +16 -0
- package/dist/vta/_shared/0.2/did-template.d.ts.map +1 -0
- package/dist/vta/_shared/0.2/did-template.js +6 -0
- package/dist/vta/_shared/0.2/did-template.js.map +1 -0
- package/dist/vta/backup/finalize-import/1.1/payload.d.ts +477 -0
- package/dist/vta/backup/finalize-import/1.1/payload.d.ts.map +1 -0
- package/dist/vta/backup/finalize-import/1.1/payload.js +249 -0
- package/dist/vta/backup/finalize-import/1.1/payload.js.map +1 -0
- package/dist/vta/backup/get-chunk/1.0/payload.d.ts +461 -0
- package/dist/vta/backup/get-chunk/1.0/payload.d.ts.map +1 -0
- package/dist/vta/backup/get-chunk/1.0/payload.js +250 -0
- package/dist/vta/backup/get-chunk/1.0/payload.js.map +1 -0
- package/dist/vta/backup/initiate-export/1.1/payload.d.ts +896 -0
- package/dist/vta/backup/initiate-export/1.1/payload.d.ts.map +1 -0
- package/dist/vta/backup/initiate-export/1.1/payload.js +507 -0
- package/dist/vta/backup/initiate-export/1.1/payload.js.map +1 -0
- package/dist/vta/backup/initiate-import/1.1/payload.d.ts +888 -0
- package/dist/vta/backup/initiate-import/1.1/payload.d.ts.map +1 -0
- package/dist/vta/backup/initiate-import/1.1/payload.js +504 -0
- package/dist/vta/backup/initiate-import/1.1/payload.js.map +1 -0
- package/dist/vta/backup/put-chunk/1.0/payload.d.ts +495 -0
- package/dist/vta/backup/put-chunk/1.0/payload.d.ts.map +1 -0
- package/dist/vta/backup/put-chunk/1.0/payload.js +265 -0
- package/dist/vta/backup/put-chunk/1.0/payload.js.map +1 -0
- package/dist/vta/did-templates/create/2.0/payload.d.ts +1 -1
- package/dist/vta/did-templates/create/2.0/payload.d.ts.map +1 -1
- package/dist/vta/did-templates/create/3.0/payload.d.ts +1092 -0
- package/dist/vta/did-templates/create/3.0/payload.d.ts.map +1 -0
- package/dist/vta/did-templates/create/3.0/payload.js +682 -0
- package/dist/vta/did-templates/create/3.0/payload.js.map +1 -0
- package/dist/vta/did-templates/get/2.0/payload.d.ts +1 -1
- package/dist/vta/did-templates/get/2.0/payload.d.ts.map +1 -1
- package/dist/vta/did-templates/get/3.0/payload.d.ts +742 -0
- package/dist/vta/did-templates/get/3.0/payload.d.ts.map +1 -0
- package/dist/vta/did-templates/get/3.0/payload.js +461 -0
- package/dist/vta/did-templates/get/3.0/payload.js.map +1 -0
- package/dist/vta/did-templates/list/2.0/payload.d.ts +1 -1
- package/dist/vta/did-templates/list/2.0/payload.d.ts.map +1 -1
- package/dist/vta/did-templates/list/3.0/payload.d.ts +799 -0
- package/dist/vta/did-templates/list/3.0/payload.d.ts.map +1 -0
- package/dist/vta/did-templates/list/3.0/payload.js +487 -0
- package/dist/vta/did-templates/list/3.0/payload.js.map +1 -0
- package/dist/vta/did-templates/update/2.0/payload.d.ts +1 -1
- package/dist/vta/did-templates/update/2.0/payload.d.ts.map +1 -1
- package/dist/vta/did-templates/update/3.0/payload.d.ts +1106 -0
- package/dist/vta/did-templates/update/3.0/payload.d.ts.map +1 -0
- package/dist/vta/did-templates/update/3.0/payload.js +688 -0
- package/dist/vta/did-templates/update/3.0/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +239 -18
- package/src/index.ts +11 -0
- package/src/vta/_shared/0.1/backup-transfer.ts +19 -0
- package/src/vta/_shared/0.1/did-template.ts +1 -1
- package/src/vta/_shared/0.2/did-template.ts +17 -0
- package/src/vta/backup/finalize-import/1.1/payload.ts +333 -0
- package/src/vta/backup/get-chunk/1.0/payload.ts +308 -0
- package/src/vta/backup/initiate-export/1.1/payload.ts +564 -0
- package/src/vta/backup/initiate-import/1.1/payload.ts +561 -0
- package/src/vta/backup/put-chunk/1.0/payload.ts +331 -0
- package/src/vta/did-templates/create/2.0/payload.ts +1 -1
- package/src/vta/did-templates/create/3.0/payload.ts +717 -0
- package/src/vta/did-templates/get/2.0/payload.ts +1 -1
- package/src/vta/did-templates/get/3.0/payload.ts +496 -0
- package/src/vta/did-templates/list/2.0/payload.ts +1 -1
- package/src/vta/did-templates/list/3.0/payload.ts +531 -0
- package/src/vta/did-templates/update/2.0/payload.ts +1 -1
- package/src/vta/did-templates/update/3.0/payload.ts +727 -0
|
@@ -0,0 +1,742 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vta/did-templates/get/3.0/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { Builtin_VtaV0_1 as Builtin, Context_VtaV0_1 as Context, DidTemplateRecord_VtaV0_2 as DidTemplateRecord, Ext, Global_VtaV0_1 as Global, Scope_VtaV0_1 as Scope } from "../../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* Fetch one DID template on a VTA by name. Omit `contextId` to read from the global scope (any authenticated caller); set it to read a template scoped to that context (requires access to the context). The success response is the persisted DidTemplateRecord.
|
|
8
|
+
*/
|
|
9
|
+
export interface VTADIDTemplateGetPayload {
|
|
10
|
+
/**
|
|
11
|
+
* Scope selector. Absent: the global scope. Present: the context the template is scoped to; the caller MUST have access to that context.
|
|
12
|
+
*/
|
|
13
|
+
contextId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Template name to fetch within the selected scope.
|
|
16
|
+
*/
|
|
17
|
+
name: string;
|
|
18
|
+
/**
|
|
19
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1.
|
|
20
|
+
*/
|
|
21
|
+
ext?: Ext;
|
|
22
|
+
}
|
|
23
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
24
|
+
export type { Builtin, Context, DidTemplateRecord, Ext, Global, Scope };
|
|
25
|
+
/** Trust Task type URI. */
|
|
26
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/vta/did-templates/get/3.0";
|
|
27
|
+
/** Stable alias for this specification's request payload shape. */
|
|
28
|
+
export type Payload = VTADIDTemplateGetPayload;
|
|
29
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
30
|
+
export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vta/did-templates/get/3.0#response";
|
|
31
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
32
|
+
export type Response = DidTemplateRecord;
|
|
33
|
+
/**
|
|
34
|
+
* This specification's payload schema, as a value.
|
|
35
|
+
*
|
|
36
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
37
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
38
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
39
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
40
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
41
|
+
*/
|
|
42
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
43
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
44
|
+
readonly $id: "https://trusttasks.org/spec/vta/did-templates/get/3.0";
|
|
45
|
+
readonly title: "VTA DID-Template Get — payload";
|
|
46
|
+
readonly description: "Fetch one DID template on a VTA by name. Omit `contextId` to read from the global scope (any authenticated caller); set it to read a template scoped to that context (requires access to the context). The success response is the persisted DidTemplateRecord.";
|
|
47
|
+
readonly type: "object";
|
|
48
|
+
readonly additionalProperties: false;
|
|
49
|
+
readonly required: readonly ["name"];
|
|
50
|
+
readonly properties: {
|
|
51
|
+
readonly contextId: {
|
|
52
|
+
readonly type: "string";
|
|
53
|
+
readonly minLength: 1;
|
|
54
|
+
readonly description: "Scope selector. Absent: the global scope. Present: the context the template is scoped to; the caller MUST have access to that context.";
|
|
55
|
+
};
|
|
56
|
+
readonly name: {
|
|
57
|
+
readonly type: "string";
|
|
58
|
+
readonly minLength: 1;
|
|
59
|
+
readonly description: "Template name to fetch within the selected scope.";
|
|
60
|
+
};
|
|
61
|
+
readonly ext: {
|
|
62
|
+
readonly $ref: "#/$defs/Ext";
|
|
63
|
+
readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
readonly $defs: {
|
|
67
|
+
readonly Response: {
|
|
68
|
+
readonly $anchor: "response";
|
|
69
|
+
readonly title: "VTA DID-Template Get — response payload";
|
|
70
|
+
readonly description: "The persisted DidTemplateRecord. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by create/update.";
|
|
71
|
+
readonly $ref: "#/$defs/DidTemplateRecord";
|
|
72
|
+
};
|
|
73
|
+
readonly DidTemplateRecord: {
|
|
74
|
+
readonly title: "DidTemplateRecord";
|
|
75
|
+
readonly description: "A persisted template. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by get/create/update and carried per-item by list.";
|
|
76
|
+
readonly type: "object";
|
|
77
|
+
readonly additionalProperties: false;
|
|
78
|
+
readonly required: readonly ["schemaVersion", "name", "kind", "document", "scope", "createdAt", "updatedAt", "createdBy"];
|
|
79
|
+
readonly properties: {
|
|
80
|
+
readonly schemaVersion: {
|
|
81
|
+
readonly type: "integer";
|
|
82
|
+
readonly enum: readonly [1, 2];
|
|
83
|
+
readonly description: "Template schema version. 1 is the historical shape, whose keys are implicitly an Ed25519 signing key and an X25519 key-agreement key. 2 adds the `keys` block, which makes those explicit and allows others.";
|
|
84
|
+
};
|
|
85
|
+
readonly name: {
|
|
86
|
+
readonly type: "string";
|
|
87
|
+
readonly minLength: 1;
|
|
88
|
+
readonly maxLength: 64;
|
|
89
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
90
|
+
};
|
|
91
|
+
readonly kind: {
|
|
92
|
+
readonly type: "string";
|
|
93
|
+
readonly minLength: 1;
|
|
94
|
+
};
|
|
95
|
+
readonly description: {
|
|
96
|
+
readonly type: readonly ["string", "null"];
|
|
97
|
+
readonly maxLength: 1024;
|
|
98
|
+
};
|
|
99
|
+
readonly methods: {
|
|
100
|
+
readonly type: "array";
|
|
101
|
+
readonly items: {
|
|
102
|
+
readonly type: "string";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
readonly requiredVars: {
|
|
106
|
+
readonly type: "array";
|
|
107
|
+
readonly items: {
|
|
108
|
+
readonly type: "string";
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
readonly optionalVars: {
|
|
112
|
+
readonly type: "object";
|
|
113
|
+
readonly additionalProperties: true;
|
|
114
|
+
};
|
|
115
|
+
readonly defaults: {
|
|
116
|
+
readonly type: "object";
|
|
117
|
+
readonly additionalProperties: true;
|
|
118
|
+
};
|
|
119
|
+
readonly keys: {
|
|
120
|
+
readonly type: "object";
|
|
121
|
+
readonly minProperties: 1;
|
|
122
|
+
readonly additionalProperties: {
|
|
123
|
+
readonly type: "object";
|
|
124
|
+
readonly additionalProperties: false;
|
|
125
|
+
readonly required: readonly ["purpose", "algorithms"];
|
|
126
|
+
readonly properties: {
|
|
127
|
+
readonly purpose: {
|
|
128
|
+
readonly type: "string";
|
|
129
|
+
readonly enum: readonly ["signing", "keyAgreement"];
|
|
130
|
+
readonly description: "What the key is for. Deliberately coarser than DID Core's five verification relationships: the template says what the key is, and the `document` body says where it appears. Encoding the relationship here as well would let the two disagree.";
|
|
131
|
+
};
|
|
132
|
+
readonly algorithms: {
|
|
133
|
+
readonly type: "array";
|
|
134
|
+
readonly minItems: 1;
|
|
135
|
+
readonly items: {
|
|
136
|
+
readonly type: "string";
|
|
137
|
+
readonly enum: readonly ["ed25519", "x25519", "p256", "mldsa44", "mldsa65"];
|
|
138
|
+
};
|
|
139
|
+
readonly description: "Acceptable algorithms, MOST PREFERRED FIRST. A list rather than a single value because a fleet does not migrate atomically: `[\"mldsa44\", \"ed25519\"]` means mint ML-DSA-44 where the implementation can and Ed25519 otherwise, so one template serves a VTA with post-quantum support and one without. An implementation MUST NOT substitute an algorithm absent from this list; running out of candidates is an error, never a silent downgrade — a deployment intended to be post-quantum would otherwise ship classical keys with nothing reporting it. `minItems: 1` for the same reason: an empty list would express no preference and inherit whatever the implementation defaulted to.";
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
readonly propertyNames: {
|
|
144
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
145
|
+
};
|
|
146
|
+
readonly description: "The keys this template needs, by slot name. REQUIRES `schemaVersion` 2.\n\nA slot's name becomes a document placeholder by an explicit rule — uppercase, `-` to `_`, suffix `_KEY_MB` — so slot `signing` is rendered into `{SIGNING_KEY_MB}` and slot `ka` into `{KA_KEY_MB}`. Those are the two names a `schemaVersion` 1 template already uses, which is deliberate: a v1 template is exactly a v2 template whose `keys` block is `{signing: [ed25519], ka: [x25519]}`, so an implementation can read both through one path and raising the version cannot change how a v1 template renders.\n\nAn implementation MUST refuse a template that declares a slot whose placeholder never appears in `document` — the key would be minted and never published, so verifiers would continue to see only the keys that are, while the operator believes the template migrated. It MUST likewise refuse a slot placeholder in `document` that no slot declares, which would render as an unsubstituted literal.";
|
|
147
|
+
};
|
|
148
|
+
readonly document: {
|
|
149
|
+
readonly type: "object";
|
|
150
|
+
};
|
|
151
|
+
readonly scope: {
|
|
152
|
+
readonly $ref: "#/$defs/Scope";
|
|
153
|
+
readonly description: "Resolved scope of the stored template.";
|
|
154
|
+
};
|
|
155
|
+
readonly createdAt: {
|
|
156
|
+
readonly type: "integer";
|
|
157
|
+
readonly description: "UTC unix-epoch seconds the template was first stored.";
|
|
158
|
+
};
|
|
159
|
+
readonly updatedAt: {
|
|
160
|
+
readonly type: "integer";
|
|
161
|
+
readonly description: "UTC unix-epoch seconds of the last write.";
|
|
162
|
+
};
|
|
163
|
+
readonly createdBy: {
|
|
164
|
+
readonly type: "string";
|
|
165
|
+
readonly description: "DID of the admin who last wrote the template.";
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
readonly Scope: {
|
|
170
|
+
readonly title: "Scope";
|
|
171
|
+
readonly description: "Where a stored template lives. Tagged by `type`.";
|
|
172
|
+
readonly type: "object";
|
|
173
|
+
readonly oneOf: readonly [{
|
|
174
|
+
readonly title: "Builtin";
|
|
175
|
+
readonly type: "object";
|
|
176
|
+
readonly additionalProperties: false;
|
|
177
|
+
readonly required: readonly ["type"];
|
|
178
|
+
readonly properties: {
|
|
179
|
+
readonly type: {
|
|
180
|
+
readonly const: "builtin";
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
}, {
|
|
184
|
+
readonly title: "Global";
|
|
185
|
+
readonly type: "object";
|
|
186
|
+
readonly additionalProperties: false;
|
|
187
|
+
readonly required: readonly ["type"];
|
|
188
|
+
readonly properties: {
|
|
189
|
+
readonly type: {
|
|
190
|
+
readonly const: "global";
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
}, {
|
|
194
|
+
readonly title: "Context";
|
|
195
|
+
readonly type: "object";
|
|
196
|
+
readonly additionalProperties: false;
|
|
197
|
+
readonly required: readonly ["type", "contextId"];
|
|
198
|
+
readonly properties: {
|
|
199
|
+
readonly type: {
|
|
200
|
+
readonly const: "context";
|
|
201
|
+
};
|
|
202
|
+
readonly contextId: {
|
|
203
|
+
readonly type: "string";
|
|
204
|
+
readonly minLength: 1;
|
|
205
|
+
};
|
|
206
|
+
};
|
|
207
|
+
}];
|
|
208
|
+
};
|
|
209
|
+
readonly Ext: {
|
|
210
|
+
readonly title: "Ext";
|
|
211
|
+
readonly 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.";
|
|
212
|
+
readonly type: "object";
|
|
213
|
+
readonly minProperties: 1;
|
|
214
|
+
readonly additionalProperties: true;
|
|
215
|
+
readonly propertyNames: {
|
|
216
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
222
|
+
export declare const RESPONSE_PAYLOAD_SCHEMA: {
|
|
223
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
224
|
+
readonly $ref: "#/$defs/Response";
|
|
225
|
+
readonly $defs: {
|
|
226
|
+
readonly Response: {
|
|
227
|
+
readonly $anchor: "response";
|
|
228
|
+
readonly title: "VTA DID-Template Get — response payload";
|
|
229
|
+
readonly description: "The persisted DidTemplateRecord. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by create/update.";
|
|
230
|
+
readonly $ref: "#/$defs/DidTemplateRecord";
|
|
231
|
+
};
|
|
232
|
+
readonly DidTemplateRecord: {
|
|
233
|
+
readonly title: "DidTemplateRecord";
|
|
234
|
+
readonly description: "A persisted template. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by get/create/update and carried per-item by list.";
|
|
235
|
+
readonly type: "object";
|
|
236
|
+
readonly additionalProperties: false;
|
|
237
|
+
readonly required: readonly ["schemaVersion", "name", "kind", "document", "scope", "createdAt", "updatedAt", "createdBy"];
|
|
238
|
+
readonly properties: {
|
|
239
|
+
readonly schemaVersion: {
|
|
240
|
+
readonly type: "integer";
|
|
241
|
+
readonly enum: readonly [1, 2];
|
|
242
|
+
readonly description: "Template schema version. 1 is the historical shape, whose keys are implicitly an Ed25519 signing key and an X25519 key-agreement key. 2 adds the `keys` block, which makes those explicit and allows others.";
|
|
243
|
+
};
|
|
244
|
+
readonly name: {
|
|
245
|
+
readonly type: "string";
|
|
246
|
+
readonly minLength: 1;
|
|
247
|
+
readonly maxLength: 64;
|
|
248
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
249
|
+
};
|
|
250
|
+
readonly kind: {
|
|
251
|
+
readonly type: "string";
|
|
252
|
+
readonly minLength: 1;
|
|
253
|
+
};
|
|
254
|
+
readonly description: {
|
|
255
|
+
readonly type: readonly ["string", "null"];
|
|
256
|
+
readonly maxLength: 1024;
|
|
257
|
+
};
|
|
258
|
+
readonly methods: {
|
|
259
|
+
readonly type: "array";
|
|
260
|
+
readonly items: {
|
|
261
|
+
readonly type: "string";
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
readonly requiredVars: {
|
|
265
|
+
readonly type: "array";
|
|
266
|
+
readonly items: {
|
|
267
|
+
readonly type: "string";
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
readonly optionalVars: {
|
|
271
|
+
readonly type: "object";
|
|
272
|
+
readonly additionalProperties: true;
|
|
273
|
+
};
|
|
274
|
+
readonly defaults: {
|
|
275
|
+
readonly type: "object";
|
|
276
|
+
readonly additionalProperties: true;
|
|
277
|
+
};
|
|
278
|
+
readonly keys: {
|
|
279
|
+
readonly type: "object";
|
|
280
|
+
readonly minProperties: 1;
|
|
281
|
+
readonly additionalProperties: {
|
|
282
|
+
readonly type: "object";
|
|
283
|
+
readonly additionalProperties: false;
|
|
284
|
+
readonly required: readonly ["purpose", "algorithms"];
|
|
285
|
+
readonly properties: {
|
|
286
|
+
readonly purpose: {
|
|
287
|
+
readonly type: "string";
|
|
288
|
+
readonly enum: readonly ["signing", "keyAgreement"];
|
|
289
|
+
readonly description: "What the key is for. Deliberately coarser than DID Core's five verification relationships: the template says what the key is, and the `document` body says where it appears. Encoding the relationship here as well would let the two disagree.";
|
|
290
|
+
};
|
|
291
|
+
readonly algorithms: {
|
|
292
|
+
readonly type: "array";
|
|
293
|
+
readonly minItems: 1;
|
|
294
|
+
readonly items: {
|
|
295
|
+
readonly type: "string";
|
|
296
|
+
readonly enum: readonly ["ed25519", "x25519", "p256", "mldsa44", "mldsa65"];
|
|
297
|
+
};
|
|
298
|
+
readonly description: "Acceptable algorithms, MOST PREFERRED FIRST. A list rather than a single value because a fleet does not migrate atomically: `[\"mldsa44\", \"ed25519\"]` means mint ML-DSA-44 where the implementation can and Ed25519 otherwise, so one template serves a VTA with post-quantum support and one without. An implementation MUST NOT substitute an algorithm absent from this list; running out of candidates is an error, never a silent downgrade — a deployment intended to be post-quantum would otherwise ship classical keys with nothing reporting it. `minItems: 1` for the same reason: an empty list would express no preference and inherit whatever the implementation defaulted to.";
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
readonly propertyNames: {
|
|
303
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
304
|
+
};
|
|
305
|
+
readonly description: "The keys this template needs, by slot name. REQUIRES `schemaVersion` 2.\n\nA slot's name becomes a document placeholder by an explicit rule — uppercase, `-` to `_`, suffix `_KEY_MB` — so slot `signing` is rendered into `{SIGNING_KEY_MB}` and slot `ka` into `{KA_KEY_MB}`. Those are the two names a `schemaVersion` 1 template already uses, which is deliberate: a v1 template is exactly a v2 template whose `keys` block is `{signing: [ed25519], ka: [x25519]}`, so an implementation can read both through one path and raising the version cannot change how a v1 template renders.\n\nAn implementation MUST refuse a template that declares a slot whose placeholder never appears in `document` — the key would be minted and never published, so verifiers would continue to see only the keys that are, while the operator believes the template migrated. It MUST likewise refuse a slot placeholder in `document` that no slot declares, which would render as an unsubstituted literal.";
|
|
306
|
+
};
|
|
307
|
+
readonly document: {
|
|
308
|
+
readonly type: "object";
|
|
309
|
+
};
|
|
310
|
+
readonly scope: {
|
|
311
|
+
readonly $ref: "#/$defs/Scope";
|
|
312
|
+
readonly description: "Resolved scope of the stored template.";
|
|
313
|
+
};
|
|
314
|
+
readonly createdAt: {
|
|
315
|
+
readonly type: "integer";
|
|
316
|
+
readonly description: "UTC unix-epoch seconds the template was first stored.";
|
|
317
|
+
};
|
|
318
|
+
readonly updatedAt: {
|
|
319
|
+
readonly type: "integer";
|
|
320
|
+
readonly description: "UTC unix-epoch seconds of the last write.";
|
|
321
|
+
};
|
|
322
|
+
readonly createdBy: {
|
|
323
|
+
readonly type: "string";
|
|
324
|
+
readonly description: "DID of the admin who last wrote the template.";
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
readonly Scope: {
|
|
329
|
+
readonly title: "Scope";
|
|
330
|
+
readonly description: "Where a stored template lives. Tagged by `type`.";
|
|
331
|
+
readonly type: "object";
|
|
332
|
+
readonly oneOf: readonly [{
|
|
333
|
+
readonly title: "Builtin";
|
|
334
|
+
readonly type: "object";
|
|
335
|
+
readonly additionalProperties: false;
|
|
336
|
+
readonly required: readonly ["type"];
|
|
337
|
+
readonly properties: {
|
|
338
|
+
readonly type: {
|
|
339
|
+
readonly const: "builtin";
|
|
340
|
+
};
|
|
341
|
+
};
|
|
342
|
+
}, {
|
|
343
|
+
readonly title: "Global";
|
|
344
|
+
readonly type: "object";
|
|
345
|
+
readonly additionalProperties: false;
|
|
346
|
+
readonly required: readonly ["type"];
|
|
347
|
+
readonly properties: {
|
|
348
|
+
readonly type: {
|
|
349
|
+
readonly const: "global";
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
}, {
|
|
353
|
+
readonly title: "Context";
|
|
354
|
+
readonly type: "object";
|
|
355
|
+
readonly additionalProperties: false;
|
|
356
|
+
readonly required: readonly ["type", "contextId"];
|
|
357
|
+
readonly properties: {
|
|
358
|
+
readonly type: {
|
|
359
|
+
readonly const: "context";
|
|
360
|
+
};
|
|
361
|
+
readonly contextId: {
|
|
362
|
+
readonly type: "string";
|
|
363
|
+
readonly minLength: 1;
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
}];
|
|
367
|
+
};
|
|
368
|
+
readonly Ext: {
|
|
369
|
+
readonly title: "Ext";
|
|
370
|
+
readonly 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.";
|
|
371
|
+
readonly type: "object";
|
|
372
|
+
readonly minProperties: 1;
|
|
373
|
+
readonly additionalProperties: true;
|
|
374
|
+
readonly propertyNames: {
|
|
375
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
/**
|
|
381
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
382
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
383
|
+
* per-specification and cannot be derived from the document alone, and
|
|
384
|
+
* item 2 needs the schema this carries.
|
|
385
|
+
*/
|
|
386
|
+
export declare const SPEC: {
|
|
387
|
+
readonly typeUri: "https://trusttasks.org/spec/vta/did-templates/get/3.0";
|
|
388
|
+
readonly isBearer: false;
|
|
389
|
+
readonly isProofRequired: false;
|
|
390
|
+
readonly isRecipientRequired: true;
|
|
391
|
+
readonly isIssuedAtRequired: false;
|
|
392
|
+
readonly payloadSchema: {
|
|
393
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
394
|
+
readonly $id: "https://trusttasks.org/spec/vta/did-templates/get/3.0";
|
|
395
|
+
readonly title: "VTA DID-Template Get — payload";
|
|
396
|
+
readonly description: "Fetch one DID template on a VTA by name. Omit `contextId` to read from the global scope (any authenticated caller); set it to read a template scoped to that context (requires access to the context). The success response is the persisted DidTemplateRecord.";
|
|
397
|
+
readonly type: "object";
|
|
398
|
+
readonly additionalProperties: false;
|
|
399
|
+
readonly required: readonly ["name"];
|
|
400
|
+
readonly properties: {
|
|
401
|
+
readonly contextId: {
|
|
402
|
+
readonly type: "string";
|
|
403
|
+
readonly minLength: 1;
|
|
404
|
+
readonly description: "Scope selector. Absent: the global scope. Present: the context the template is scoped to; the caller MUST have access to that context.";
|
|
405
|
+
};
|
|
406
|
+
readonly name: {
|
|
407
|
+
readonly type: "string";
|
|
408
|
+
readonly minLength: 1;
|
|
409
|
+
readonly description: "Template name to fetch within the selected scope.";
|
|
410
|
+
};
|
|
411
|
+
readonly ext: {
|
|
412
|
+
readonly $ref: "#/$defs/Ext";
|
|
413
|
+
readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
|
|
414
|
+
};
|
|
415
|
+
};
|
|
416
|
+
readonly $defs: {
|
|
417
|
+
readonly Response: {
|
|
418
|
+
readonly $anchor: "response";
|
|
419
|
+
readonly title: "VTA DID-Template Get — response payload";
|
|
420
|
+
readonly description: "The persisted DidTemplateRecord. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by create/update.";
|
|
421
|
+
readonly $ref: "#/$defs/DidTemplateRecord";
|
|
422
|
+
};
|
|
423
|
+
readonly DidTemplateRecord: {
|
|
424
|
+
readonly title: "DidTemplateRecord";
|
|
425
|
+
readonly description: "A persisted template. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by get/create/update and carried per-item by list.";
|
|
426
|
+
readonly type: "object";
|
|
427
|
+
readonly additionalProperties: false;
|
|
428
|
+
readonly required: readonly ["schemaVersion", "name", "kind", "document", "scope", "createdAt", "updatedAt", "createdBy"];
|
|
429
|
+
readonly properties: {
|
|
430
|
+
readonly schemaVersion: {
|
|
431
|
+
readonly type: "integer";
|
|
432
|
+
readonly enum: readonly [1, 2];
|
|
433
|
+
readonly description: "Template schema version. 1 is the historical shape, whose keys are implicitly an Ed25519 signing key and an X25519 key-agreement key. 2 adds the `keys` block, which makes those explicit and allows others.";
|
|
434
|
+
};
|
|
435
|
+
readonly name: {
|
|
436
|
+
readonly type: "string";
|
|
437
|
+
readonly minLength: 1;
|
|
438
|
+
readonly maxLength: 64;
|
|
439
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
440
|
+
};
|
|
441
|
+
readonly kind: {
|
|
442
|
+
readonly type: "string";
|
|
443
|
+
readonly minLength: 1;
|
|
444
|
+
};
|
|
445
|
+
readonly description: {
|
|
446
|
+
readonly type: readonly ["string", "null"];
|
|
447
|
+
readonly maxLength: 1024;
|
|
448
|
+
};
|
|
449
|
+
readonly methods: {
|
|
450
|
+
readonly type: "array";
|
|
451
|
+
readonly items: {
|
|
452
|
+
readonly type: "string";
|
|
453
|
+
};
|
|
454
|
+
};
|
|
455
|
+
readonly requiredVars: {
|
|
456
|
+
readonly type: "array";
|
|
457
|
+
readonly items: {
|
|
458
|
+
readonly type: "string";
|
|
459
|
+
};
|
|
460
|
+
};
|
|
461
|
+
readonly optionalVars: {
|
|
462
|
+
readonly type: "object";
|
|
463
|
+
readonly additionalProperties: true;
|
|
464
|
+
};
|
|
465
|
+
readonly defaults: {
|
|
466
|
+
readonly type: "object";
|
|
467
|
+
readonly additionalProperties: true;
|
|
468
|
+
};
|
|
469
|
+
readonly keys: {
|
|
470
|
+
readonly type: "object";
|
|
471
|
+
readonly minProperties: 1;
|
|
472
|
+
readonly additionalProperties: {
|
|
473
|
+
readonly type: "object";
|
|
474
|
+
readonly additionalProperties: false;
|
|
475
|
+
readonly required: readonly ["purpose", "algorithms"];
|
|
476
|
+
readonly properties: {
|
|
477
|
+
readonly purpose: {
|
|
478
|
+
readonly type: "string";
|
|
479
|
+
readonly enum: readonly ["signing", "keyAgreement"];
|
|
480
|
+
readonly description: "What the key is for. Deliberately coarser than DID Core's five verification relationships: the template says what the key is, and the `document` body says where it appears. Encoding the relationship here as well would let the two disagree.";
|
|
481
|
+
};
|
|
482
|
+
readonly algorithms: {
|
|
483
|
+
readonly type: "array";
|
|
484
|
+
readonly minItems: 1;
|
|
485
|
+
readonly items: {
|
|
486
|
+
readonly type: "string";
|
|
487
|
+
readonly enum: readonly ["ed25519", "x25519", "p256", "mldsa44", "mldsa65"];
|
|
488
|
+
};
|
|
489
|
+
readonly description: "Acceptable algorithms, MOST PREFERRED FIRST. A list rather than a single value because a fleet does not migrate atomically: `[\"mldsa44\", \"ed25519\"]` means mint ML-DSA-44 where the implementation can and Ed25519 otherwise, so one template serves a VTA with post-quantum support and one without. An implementation MUST NOT substitute an algorithm absent from this list; running out of candidates is an error, never a silent downgrade — a deployment intended to be post-quantum would otherwise ship classical keys with nothing reporting it. `minItems: 1` for the same reason: an empty list would express no preference and inherit whatever the implementation defaulted to.";
|
|
490
|
+
};
|
|
491
|
+
};
|
|
492
|
+
};
|
|
493
|
+
readonly propertyNames: {
|
|
494
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
495
|
+
};
|
|
496
|
+
readonly description: "The keys this template needs, by slot name. REQUIRES `schemaVersion` 2.\n\nA slot's name becomes a document placeholder by an explicit rule — uppercase, `-` to `_`, suffix `_KEY_MB` — so slot `signing` is rendered into `{SIGNING_KEY_MB}` and slot `ka` into `{KA_KEY_MB}`. Those are the two names a `schemaVersion` 1 template already uses, which is deliberate: a v1 template is exactly a v2 template whose `keys` block is `{signing: [ed25519], ka: [x25519]}`, so an implementation can read both through one path and raising the version cannot change how a v1 template renders.\n\nAn implementation MUST refuse a template that declares a slot whose placeholder never appears in `document` — the key would be minted and never published, so verifiers would continue to see only the keys that are, while the operator believes the template migrated. It MUST likewise refuse a slot placeholder in `document` that no slot declares, which would render as an unsubstituted literal.";
|
|
497
|
+
};
|
|
498
|
+
readonly document: {
|
|
499
|
+
readonly type: "object";
|
|
500
|
+
};
|
|
501
|
+
readonly scope: {
|
|
502
|
+
readonly $ref: "#/$defs/Scope";
|
|
503
|
+
readonly description: "Resolved scope of the stored template.";
|
|
504
|
+
};
|
|
505
|
+
readonly createdAt: {
|
|
506
|
+
readonly type: "integer";
|
|
507
|
+
readonly description: "UTC unix-epoch seconds the template was first stored.";
|
|
508
|
+
};
|
|
509
|
+
readonly updatedAt: {
|
|
510
|
+
readonly type: "integer";
|
|
511
|
+
readonly description: "UTC unix-epoch seconds of the last write.";
|
|
512
|
+
};
|
|
513
|
+
readonly createdBy: {
|
|
514
|
+
readonly type: "string";
|
|
515
|
+
readonly description: "DID of the admin who last wrote the template.";
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
readonly Scope: {
|
|
520
|
+
readonly title: "Scope";
|
|
521
|
+
readonly description: "Where a stored template lives. Tagged by `type`.";
|
|
522
|
+
readonly type: "object";
|
|
523
|
+
readonly oneOf: readonly [{
|
|
524
|
+
readonly title: "Builtin";
|
|
525
|
+
readonly type: "object";
|
|
526
|
+
readonly additionalProperties: false;
|
|
527
|
+
readonly required: readonly ["type"];
|
|
528
|
+
readonly properties: {
|
|
529
|
+
readonly type: {
|
|
530
|
+
readonly const: "builtin";
|
|
531
|
+
};
|
|
532
|
+
};
|
|
533
|
+
}, {
|
|
534
|
+
readonly title: "Global";
|
|
535
|
+
readonly type: "object";
|
|
536
|
+
readonly additionalProperties: false;
|
|
537
|
+
readonly required: readonly ["type"];
|
|
538
|
+
readonly properties: {
|
|
539
|
+
readonly type: {
|
|
540
|
+
readonly const: "global";
|
|
541
|
+
};
|
|
542
|
+
};
|
|
543
|
+
}, {
|
|
544
|
+
readonly title: "Context";
|
|
545
|
+
readonly type: "object";
|
|
546
|
+
readonly additionalProperties: false;
|
|
547
|
+
readonly required: readonly ["type", "contextId"];
|
|
548
|
+
readonly properties: {
|
|
549
|
+
readonly type: {
|
|
550
|
+
readonly const: "context";
|
|
551
|
+
};
|
|
552
|
+
readonly contextId: {
|
|
553
|
+
readonly type: "string";
|
|
554
|
+
readonly minLength: 1;
|
|
555
|
+
};
|
|
556
|
+
};
|
|
557
|
+
}];
|
|
558
|
+
};
|
|
559
|
+
readonly Ext: {
|
|
560
|
+
readonly title: "Ext";
|
|
561
|
+
readonly 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.";
|
|
562
|
+
readonly type: "object";
|
|
563
|
+
readonly minProperties: 1;
|
|
564
|
+
readonly additionalProperties: true;
|
|
565
|
+
readonly propertyNames: {
|
|
566
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
567
|
+
};
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
};
|
|
571
|
+
};
|
|
572
|
+
/**
|
|
573
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
574
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
575
|
+
* parties (§7.3 item 5).
|
|
576
|
+
*/
|
|
577
|
+
export declare const RESPONSE_SPEC: {
|
|
578
|
+
readonly typeUri: "https://trusttasks.org/spec/vta/did-templates/get/3.0#response";
|
|
579
|
+
readonly isBearer: false;
|
|
580
|
+
readonly isProofRequired: false;
|
|
581
|
+
readonly isRecipientRequired: true;
|
|
582
|
+
readonly isIssuedAtRequired: false;
|
|
583
|
+
readonly payloadSchema: {
|
|
584
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
585
|
+
readonly $ref: "#/$defs/Response";
|
|
586
|
+
readonly $defs: {
|
|
587
|
+
readonly Response: {
|
|
588
|
+
readonly $anchor: "response";
|
|
589
|
+
readonly title: "VTA DID-Template Get — response payload";
|
|
590
|
+
readonly description: "The persisted DidTemplateRecord. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by create/update.";
|
|
591
|
+
readonly $ref: "#/$defs/DidTemplateRecord";
|
|
592
|
+
};
|
|
593
|
+
readonly DidTemplateRecord: {
|
|
594
|
+
readonly title: "DidTemplateRecord";
|
|
595
|
+
readonly description: "A persisted template. The DidTemplate fields are flattened at the top level alongside the resolved scope and provenance metadata. Same shape returned by get/create/update and carried per-item by list.";
|
|
596
|
+
readonly type: "object";
|
|
597
|
+
readonly additionalProperties: false;
|
|
598
|
+
readonly required: readonly ["schemaVersion", "name", "kind", "document", "scope", "createdAt", "updatedAt", "createdBy"];
|
|
599
|
+
readonly properties: {
|
|
600
|
+
readonly schemaVersion: {
|
|
601
|
+
readonly type: "integer";
|
|
602
|
+
readonly enum: readonly [1, 2];
|
|
603
|
+
readonly description: "Template schema version. 1 is the historical shape, whose keys are implicitly an Ed25519 signing key and an X25519 key-agreement key. 2 adds the `keys` block, which makes those explicit and allows others.";
|
|
604
|
+
};
|
|
605
|
+
readonly name: {
|
|
606
|
+
readonly type: "string";
|
|
607
|
+
readonly minLength: 1;
|
|
608
|
+
readonly maxLength: 64;
|
|
609
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
610
|
+
};
|
|
611
|
+
readonly kind: {
|
|
612
|
+
readonly type: "string";
|
|
613
|
+
readonly minLength: 1;
|
|
614
|
+
};
|
|
615
|
+
readonly description: {
|
|
616
|
+
readonly type: readonly ["string", "null"];
|
|
617
|
+
readonly maxLength: 1024;
|
|
618
|
+
};
|
|
619
|
+
readonly methods: {
|
|
620
|
+
readonly type: "array";
|
|
621
|
+
readonly items: {
|
|
622
|
+
readonly type: "string";
|
|
623
|
+
};
|
|
624
|
+
};
|
|
625
|
+
readonly requiredVars: {
|
|
626
|
+
readonly type: "array";
|
|
627
|
+
readonly items: {
|
|
628
|
+
readonly type: "string";
|
|
629
|
+
};
|
|
630
|
+
};
|
|
631
|
+
readonly optionalVars: {
|
|
632
|
+
readonly type: "object";
|
|
633
|
+
readonly additionalProperties: true;
|
|
634
|
+
};
|
|
635
|
+
readonly defaults: {
|
|
636
|
+
readonly type: "object";
|
|
637
|
+
readonly additionalProperties: true;
|
|
638
|
+
};
|
|
639
|
+
readonly keys: {
|
|
640
|
+
readonly type: "object";
|
|
641
|
+
readonly minProperties: 1;
|
|
642
|
+
readonly additionalProperties: {
|
|
643
|
+
readonly type: "object";
|
|
644
|
+
readonly additionalProperties: false;
|
|
645
|
+
readonly required: readonly ["purpose", "algorithms"];
|
|
646
|
+
readonly properties: {
|
|
647
|
+
readonly purpose: {
|
|
648
|
+
readonly type: "string";
|
|
649
|
+
readonly enum: readonly ["signing", "keyAgreement"];
|
|
650
|
+
readonly description: "What the key is for. Deliberately coarser than DID Core's five verification relationships: the template says what the key is, and the `document` body says where it appears. Encoding the relationship here as well would let the two disagree.";
|
|
651
|
+
};
|
|
652
|
+
readonly algorithms: {
|
|
653
|
+
readonly type: "array";
|
|
654
|
+
readonly minItems: 1;
|
|
655
|
+
readonly items: {
|
|
656
|
+
readonly type: "string";
|
|
657
|
+
readonly enum: readonly ["ed25519", "x25519", "p256", "mldsa44", "mldsa65"];
|
|
658
|
+
};
|
|
659
|
+
readonly description: "Acceptable algorithms, MOST PREFERRED FIRST. A list rather than a single value because a fleet does not migrate atomically: `[\"mldsa44\", \"ed25519\"]` means mint ML-DSA-44 where the implementation can and Ed25519 otherwise, so one template serves a VTA with post-quantum support and one without. An implementation MUST NOT substitute an algorithm absent from this list; running out of candidates is an error, never a silent downgrade — a deployment intended to be post-quantum would otherwise ship classical keys with nothing reporting it. `minItems: 1` for the same reason: an empty list would express no preference and inherit whatever the implementation defaulted to.";
|
|
660
|
+
};
|
|
661
|
+
};
|
|
662
|
+
};
|
|
663
|
+
readonly propertyNames: {
|
|
664
|
+
readonly pattern: "^[a-z0-9-]+$";
|
|
665
|
+
};
|
|
666
|
+
readonly description: "The keys this template needs, by slot name. REQUIRES `schemaVersion` 2.\n\nA slot's name becomes a document placeholder by an explicit rule — uppercase, `-` to `_`, suffix `_KEY_MB` — so slot `signing` is rendered into `{SIGNING_KEY_MB}` and slot `ka` into `{KA_KEY_MB}`. Those are the two names a `schemaVersion` 1 template already uses, which is deliberate: a v1 template is exactly a v2 template whose `keys` block is `{signing: [ed25519], ka: [x25519]}`, so an implementation can read both through one path and raising the version cannot change how a v1 template renders.\n\nAn implementation MUST refuse a template that declares a slot whose placeholder never appears in `document` — the key would be minted and never published, so verifiers would continue to see only the keys that are, while the operator believes the template migrated. It MUST likewise refuse a slot placeholder in `document` that no slot declares, which would render as an unsubstituted literal.";
|
|
667
|
+
};
|
|
668
|
+
readonly document: {
|
|
669
|
+
readonly type: "object";
|
|
670
|
+
};
|
|
671
|
+
readonly scope: {
|
|
672
|
+
readonly $ref: "#/$defs/Scope";
|
|
673
|
+
readonly description: "Resolved scope of the stored template.";
|
|
674
|
+
};
|
|
675
|
+
readonly createdAt: {
|
|
676
|
+
readonly type: "integer";
|
|
677
|
+
readonly description: "UTC unix-epoch seconds the template was first stored.";
|
|
678
|
+
};
|
|
679
|
+
readonly updatedAt: {
|
|
680
|
+
readonly type: "integer";
|
|
681
|
+
readonly description: "UTC unix-epoch seconds of the last write.";
|
|
682
|
+
};
|
|
683
|
+
readonly createdBy: {
|
|
684
|
+
readonly type: "string";
|
|
685
|
+
readonly description: "DID of the admin who last wrote the template.";
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
};
|
|
689
|
+
readonly Scope: {
|
|
690
|
+
readonly title: "Scope";
|
|
691
|
+
readonly description: "Where a stored template lives. Tagged by `type`.";
|
|
692
|
+
readonly type: "object";
|
|
693
|
+
readonly oneOf: readonly [{
|
|
694
|
+
readonly title: "Builtin";
|
|
695
|
+
readonly type: "object";
|
|
696
|
+
readonly additionalProperties: false;
|
|
697
|
+
readonly required: readonly ["type"];
|
|
698
|
+
readonly properties: {
|
|
699
|
+
readonly type: {
|
|
700
|
+
readonly const: "builtin";
|
|
701
|
+
};
|
|
702
|
+
};
|
|
703
|
+
}, {
|
|
704
|
+
readonly title: "Global";
|
|
705
|
+
readonly type: "object";
|
|
706
|
+
readonly additionalProperties: false;
|
|
707
|
+
readonly required: readonly ["type"];
|
|
708
|
+
readonly properties: {
|
|
709
|
+
readonly type: {
|
|
710
|
+
readonly const: "global";
|
|
711
|
+
};
|
|
712
|
+
};
|
|
713
|
+
}, {
|
|
714
|
+
readonly title: "Context";
|
|
715
|
+
readonly type: "object";
|
|
716
|
+
readonly additionalProperties: false;
|
|
717
|
+
readonly required: readonly ["type", "contextId"];
|
|
718
|
+
readonly properties: {
|
|
719
|
+
readonly type: {
|
|
720
|
+
readonly const: "context";
|
|
721
|
+
};
|
|
722
|
+
readonly contextId: {
|
|
723
|
+
readonly type: "string";
|
|
724
|
+
readonly minLength: 1;
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
}];
|
|
728
|
+
};
|
|
729
|
+
readonly Ext: {
|
|
730
|
+
readonly title: "Ext";
|
|
731
|
+
readonly 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.";
|
|
732
|
+
readonly type: "object";
|
|
733
|
+
readonly minProperties: 1;
|
|
734
|
+
readonly additionalProperties: true;
|
|
735
|
+
readonly propertyNames: {
|
|
736
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
737
|
+
};
|
|
738
|
+
};
|
|
739
|
+
};
|
|
740
|
+
};
|
|
741
|
+
};
|
|
742
|
+
//# sourceMappingURL=payload.d.ts.map
|