@openvtc/trust-tasks 0.25.0 → 0.25.2
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 +29 -0
- package/dist/_shared/components.d.ts +308 -2
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +6 -2
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +6 -2
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +6 -2
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +6 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/provision/vta/_shared/0.1/vta.d.ts +16 -0
- package/dist/provision/vta/_shared/0.1/vta.d.ts.map +1 -0
- package/dist/provision/vta/_shared/0.1/vta.js +6 -0
- package/dist/provision/vta/_shared/0.1/vta.js.map +1 -0
- package/dist/provision/vta/claim/0.1/payload.d.ts +115 -0
- package/dist/provision/vta/claim/0.1/payload.d.ts.map +1 -0
- package/dist/provision/vta/claim/0.1/payload.js +69 -0
- package/dist/provision/vta/claim/0.1/payload.js.map +1 -0
- package/dist/provision/vta/redeem/0.1/payload.d.ts +371 -0
- package/dist/provision/vta/redeem/0.1/payload.d.ts.map +1 -0
- package/dist/provision/vta/redeem/0.1/payload.js +207 -0
- package/dist/provision/vta/redeem/0.1/payload.js.map +1 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts +16 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js +6 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js.map +1 -0
- package/dist/vetting/attestation/0.1/payload.d.ts +94 -146
- package/dist/vetting/attestation/0.1/payload.d.ts.map +1 -1
- package/dist/vetting/attestation/0.1/payload.js +43 -43
- package/dist/vetting/attestation/0.1/payload.js.map +1 -1
- package/dist/vta/_shared/0.4/pcs-engine.d.ts +16 -0
- package/dist/vta/_shared/0.4/pcs-engine.d.ts.map +1 -0
- package/dist/vta/_shared/0.4/pcs-engine.js +6 -0
- package/dist/vta/_shared/0.4/pcs-engine.js.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts +1215 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js +724 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts +253 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js +146 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts +733 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js +450 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts +1456 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.js +876 -0
- package/dist/vta/pcs/attest/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts +1348 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.js +804 -0
- package/dist/vta/pcs/prove/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts +1100 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js +634 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts +880 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.js +496 -0
- package/dist/vta/pcs/root-request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts +612 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js +355 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts +1149 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js +657 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts +908 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js +508 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts +1423 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js +850 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts +605 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js +351 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +403 -486
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js +240 -240
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +482 -565
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.js +294 -294
- package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +312 -2
- package/src/device/list/0.1/payload.ts +6 -2
- package/src/device/list/0.2/payload.ts +6 -2
- package/src/device/register/0.1/payload.ts +6 -2
- package/src/device/register/0.2/payload.ts +6 -2
- package/src/index.ts +17 -0
- package/src/provision/vta/_shared/0.1/vta.ts +17 -0
- package/src/provision/vta/claim/0.1/payload.ts +88 -0
- package/src/provision/vta/redeem/0.1/payload.ts +255 -0
- package/src/vetting/_shared/0.1/hidden-vetting.ts +17 -0
- package/src/vetting/attestation/0.1/payload.ts +49 -101
- package/src/vta/_shared/0.4/pcs-engine.ts +17 -0
- package/src/vta/pcs/applications/create/0.1/payload.ts +768 -0
- package/src/vta/pcs/applications/delete/0.1/payload.ts +182 -0
- package/src/vta/pcs/applications/show/0.1/payload.ts +482 -0
- package/src/vta/pcs/attest/0.1/payload.ts +943 -0
- package/src/vta/pcs/prove/0.1/payload.ts +845 -0
- package/src/vta/pcs/root-accept/0.1/payload.ts +681 -0
- package/src/vta/pcs/root-request/0.1/payload.ts +559 -0
- package/src/vta/pcs/tokens/abandon/0.1/payload.ts +392 -0
- package/src/vta/pcs/tokens/accept/0.1/payload.ts +713 -0
- package/src/vta/pcs/tokens/request/0.1/payload.ts +581 -0
- package/src/vta/pcs/verify-attestation/0.1/payload.ts +888 -0
- package/src/vta/pcs/vetter/show/0.1/payload.ts +387 -0
- package/src/vtc/vetting/hidden/publish/0.1/payload.ts +247 -331
- package/src/vtc/vetting/hidden/show/0.1/payload.ts +295 -379
|
@@ -3,14 +3,9 @@
|
|
|
3
3
|
* Source: specs/vtc/vetting/hidden/publish/0.1/payload.schema.json
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { Ext } from "../../../../../_shared/components.js";
|
|
6
|
+
import type { Ext, PublishedConfig, PublishedEvent, StoredConfig, StoredEvent, TickLength, Tier } from "../../../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
|
|
11
|
-
*/
|
|
12
|
-
export type TickLength = string;
|
|
13
|
-
|
|
14
9
|
/**
|
|
15
10
|
* Turn on (or rotate the parameters of) hidden-vetter admission for one criterion. Every member but criterionId has a default. The outer document members are owned by the framework — SPEC §6.3.
|
|
16
11
|
*/
|
|
@@ -74,16 +69,6 @@ export interface RequestEvent {
|
|
|
74
69
|
*/
|
|
75
70
|
approvedBy?: string;
|
|
76
71
|
}
|
|
77
|
-
export interface Tier {
|
|
78
|
-
/**
|
|
79
|
-
* How the menu names it: desk, busy-desk.
|
|
80
|
-
*/
|
|
81
|
-
name: string;
|
|
82
|
-
/**
|
|
83
|
-
* How many tokens a tick under this tier yields.
|
|
84
|
-
*/
|
|
85
|
-
dripPerTick: number;
|
|
86
|
-
}
|
|
87
72
|
export interface VTCVettingHiddenPublishResponsePayload {
|
|
88
73
|
/**
|
|
89
74
|
* The criterion that now accepts a hidden proof.
|
|
@@ -97,78 +82,9 @@ export interface VTCVettingHiddenPublishResponsePayload {
|
|
|
97
82
|
requirementsDigest: string | null;
|
|
98
83
|
ext?: Ext;
|
|
99
84
|
}
|
|
100
|
-
/**
|
|
101
|
-
* The parameters exactly as the community stores them, including the helper key it never publishes.
|
|
102
|
-
*/
|
|
103
|
-
export interface StoredConfig {
|
|
104
|
-
/**
|
|
105
|
-
* The blind-signature suite in force, e.g. ps-ddh-bls12381.
|
|
106
|
-
*/
|
|
107
|
-
suite: string;
|
|
108
|
-
/**
|
|
109
|
-
* The helper verification key, multibase. A public value, published as helperKey.
|
|
110
|
-
*/
|
|
111
|
-
hvk: string;
|
|
112
|
-
/**
|
|
113
|
-
* The token verification key, multibase. Never the same key as hvk.
|
|
114
|
-
*/
|
|
115
|
-
tvk: string;
|
|
116
|
-
/**
|
|
117
|
-
* Live vetter class periods, current first, stored as the bare YYYY-MM period.
|
|
118
|
-
*/
|
|
119
|
-
livePeriods: string[];
|
|
120
|
-
liveTokenLabels: string[];
|
|
121
|
-
dripPerTick: number;
|
|
122
|
-
tickLength: TickLength;
|
|
123
|
-
events: StoredEvent[];
|
|
124
|
-
}
|
|
125
|
-
export interface StoredEvent {
|
|
126
|
-
eventId: string;
|
|
127
|
-
startDate: string;
|
|
128
|
-
endDate: string;
|
|
129
|
-
graceDays: number;
|
|
130
|
-
groupFloor: number;
|
|
131
|
-
tiers: Tier[];
|
|
132
|
-
/**
|
|
133
|
-
* Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).
|
|
134
|
-
*/
|
|
135
|
-
approvedBy?: string | null;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.
|
|
139
|
-
*/
|
|
140
|
-
export interface PublishedConfig {
|
|
141
|
-
suite: string;
|
|
142
|
-
/**
|
|
143
|
-
* The helper verification key, multibase — named for its role on the wire rather than for hvk.
|
|
144
|
-
*/
|
|
145
|
-
helperKey: string;
|
|
146
|
-
/**
|
|
147
|
-
* The token verification key, multibase — named for its role on the wire rather than for tvk.
|
|
148
|
-
*/
|
|
149
|
-
tokenKey: string;
|
|
150
|
-
/**
|
|
151
|
-
* Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.
|
|
152
|
-
*/
|
|
153
|
-
vetterLabels: string[];
|
|
154
|
-
tokenLabels: string[];
|
|
155
|
-
dripPerTick: number;
|
|
156
|
-
tickLength: TickLength;
|
|
157
|
-
events: PublishedEvent[];
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* The published shape drops approvedBy and graceDays: who approved is the community's own record, and a vetter is told closesAfter when its request is approved rather than being handed the raw grace period here.
|
|
161
|
-
*/
|
|
162
|
-
export interface PublishedEvent {
|
|
163
|
-
eventId: string;
|
|
164
|
-
startDate: string;
|
|
165
|
-
endDate: string;
|
|
166
|
-
groupFloor: number;
|
|
167
|
-
tiers: Tier[];
|
|
168
|
-
}
|
|
169
85
|
|
|
170
86
|
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
171
|
-
export type { Ext };
|
|
87
|
+
export type { Ext, PublishedConfig, PublishedEvent, StoredConfig, StoredEvent, TickLength, Tier };
|
|
172
88
|
|
|
173
89
|
/** Trust Task type URI. */
|
|
174
90
|
export const TYPE_URI = "https://trusttasks.org/spec/vtc/vetting/hidden/publish/0.1" as const;
|
|
@@ -245,12 +161,6 @@ export const PAYLOAD_SCHEMA = {
|
|
|
245
161
|
}
|
|
246
162
|
},
|
|
247
163
|
"$defs": {
|
|
248
|
-
"TickLength": {
|
|
249
|
-
"title": "TickLength",
|
|
250
|
-
"type": "string",
|
|
251
|
-
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
252
|
-
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
253
|
-
},
|
|
254
164
|
"RequestEvent": {
|
|
255
165
|
"title": "RequestEvent",
|
|
256
166
|
"type": "object",
|
|
@@ -302,72 +212,108 @@ export const PAYLOAD_SCHEMA = {
|
|
|
302
212
|
}
|
|
303
213
|
}
|
|
304
214
|
},
|
|
305
|
-
"
|
|
306
|
-
"
|
|
215
|
+
"Response": {
|
|
216
|
+
"$anchor": "response",
|
|
217
|
+
"title": "VTC Vetting — Hidden — Publish — response payload",
|
|
307
218
|
"type": "object",
|
|
308
219
|
"additionalProperties": false,
|
|
309
220
|
"required": [
|
|
310
|
-
"
|
|
311
|
-
"
|
|
221
|
+
"criterionId",
|
|
222
|
+
"stored",
|
|
223
|
+
"published",
|
|
224
|
+
"requirementsDigest"
|
|
312
225
|
],
|
|
313
226
|
"properties": {
|
|
314
|
-
"
|
|
227
|
+
"criterionId": {
|
|
315
228
|
"type": "string",
|
|
316
229
|
"minLength": 1,
|
|
317
|
-
"description": "
|
|
230
|
+
"description": "The criterion that now accepts a hidden proof."
|
|
318
231
|
},
|
|
319
|
-
"
|
|
320
|
-
"
|
|
321
|
-
|
|
322
|
-
|
|
232
|
+
"stored": {
|
|
233
|
+
"$ref": "#/$defs/StoredConfig"
|
|
234
|
+
},
|
|
235
|
+
"published": {
|
|
236
|
+
"$ref": "#/$defs/PublishedConfig"
|
|
237
|
+
},
|
|
238
|
+
"requirementsDigest": {
|
|
239
|
+
"type": [
|
|
240
|
+
"string",
|
|
241
|
+
"null"
|
|
242
|
+
],
|
|
243
|
+
"description": "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none."
|
|
244
|
+
},
|
|
245
|
+
"ext": {
|
|
246
|
+
"$ref": "#/$defs/Ext"
|
|
323
247
|
}
|
|
324
248
|
}
|
|
325
249
|
},
|
|
326
|
-
"
|
|
327
|
-
"title": "
|
|
250
|
+
"Ext": {
|
|
251
|
+
"title": "Ext",
|
|
252
|
+
"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.",
|
|
253
|
+
"type": "object",
|
|
254
|
+
"minProperties": 1,
|
|
255
|
+
"additionalProperties": true,
|
|
256
|
+
"propertyNames": {
|
|
257
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"PublishedConfig": {
|
|
261
|
+
"title": "PublishedConfig",
|
|
262
|
+
"description": "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.",
|
|
328
263
|
"type": "object",
|
|
329
264
|
"additionalProperties": false,
|
|
330
265
|
"required": [
|
|
331
|
-
"
|
|
332
|
-
"
|
|
333
|
-
"
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"
|
|
266
|
+
"suite",
|
|
267
|
+
"helperKey",
|
|
268
|
+
"tokenKey",
|
|
269
|
+
"vetterLabels",
|
|
270
|
+
"tokenLabels",
|
|
271
|
+
"dripPerTick",
|
|
272
|
+
"tickLength",
|
|
273
|
+
"events"
|
|
337
274
|
],
|
|
338
275
|
"properties": {
|
|
339
|
-
"
|
|
276
|
+
"suite": {
|
|
340
277
|
"type": "string",
|
|
341
278
|
"minLength": 1
|
|
342
279
|
},
|
|
343
|
-
"
|
|
280
|
+
"helperKey": {
|
|
344
281
|
"type": "string",
|
|
345
|
-
"
|
|
282
|
+
"minLength": 1,
|
|
283
|
+
"description": "The helper verification key, multibase — named for its role on the wire rather than for hvk."
|
|
346
284
|
},
|
|
347
|
-
"
|
|
285
|
+
"tokenKey": {
|
|
348
286
|
"type": "string",
|
|
349
|
-
"
|
|
287
|
+
"minLength": 1,
|
|
288
|
+
"description": "The token verification key, multibase — named for its role on the wire rather than for tvk."
|
|
350
289
|
},
|
|
351
|
-
"
|
|
352
|
-
"type": "
|
|
353
|
-
"
|
|
290
|
+
"vetterLabels": {
|
|
291
|
+
"type": "array",
|
|
292
|
+
"items": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"minLength": 1
|
|
295
|
+
},
|
|
296
|
+
"description": "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period."
|
|
354
297
|
},
|
|
355
|
-
"
|
|
298
|
+
"tokenLabels": {
|
|
299
|
+
"type": "array",
|
|
300
|
+
"items": {
|
|
301
|
+
"type": "string",
|
|
302
|
+
"minLength": 1
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
"dripPerTick": {
|
|
356
306
|
"type": "integer",
|
|
357
307
|
"minimum": 1
|
|
358
308
|
},
|
|
359
|
-
"
|
|
309
|
+
"tickLength": {
|
|
310
|
+
"$ref": "#/$defs/TickLength"
|
|
311
|
+
},
|
|
312
|
+
"events": {
|
|
360
313
|
"type": "array",
|
|
361
314
|
"items": {
|
|
362
|
-
"$ref": "#/$defs/
|
|
315
|
+
"$ref": "#/$defs/PublishedEvent"
|
|
363
316
|
}
|
|
364
|
-
},
|
|
365
|
-
"approvedBy": {
|
|
366
|
-
"type": [
|
|
367
|
-
"string",
|
|
368
|
-
"null"
|
|
369
|
-
],
|
|
370
|
-
"description": "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events)."
|
|
371
317
|
}
|
|
372
318
|
}
|
|
373
319
|
},
|
|
@@ -408,6 +354,33 @@ export const PAYLOAD_SCHEMA = {
|
|
|
408
354
|
}
|
|
409
355
|
}
|
|
410
356
|
},
|
|
357
|
+
"Tier": {
|
|
358
|
+
"title": "Tier",
|
|
359
|
+
"type": "object",
|
|
360
|
+
"additionalProperties": false,
|
|
361
|
+
"required": [
|
|
362
|
+
"name",
|
|
363
|
+
"dripPerTick"
|
|
364
|
+
],
|
|
365
|
+
"properties": {
|
|
366
|
+
"name": {
|
|
367
|
+
"type": "string",
|
|
368
|
+
"minLength": 1,
|
|
369
|
+
"description": "How the menu names it: desk, busy-desk."
|
|
370
|
+
},
|
|
371
|
+
"dripPerTick": {
|
|
372
|
+
"type": "integer",
|
|
373
|
+
"minimum": 1,
|
|
374
|
+
"description": "How many tokens a tick under this tier yields."
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
"TickLength": {
|
|
379
|
+
"title": "TickLength",
|
|
380
|
+
"type": "string",
|
|
381
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
382
|
+
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
383
|
+
},
|
|
411
384
|
"StoredConfig": {
|
|
412
385
|
"title": "StoredConfig",
|
|
413
386
|
"description": "The parameters exactly as the community stores them, including the helper key it never publishes.",
|
|
@@ -469,110 +442,53 @@ export const PAYLOAD_SCHEMA = {
|
|
|
469
442
|
}
|
|
470
443
|
}
|
|
471
444
|
},
|
|
472
|
-
"
|
|
473
|
-
"title": "
|
|
474
|
-
"description": "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.",
|
|
445
|
+
"StoredEvent": {
|
|
446
|
+
"title": "StoredEvent",
|
|
475
447
|
"type": "object",
|
|
476
448
|
"additionalProperties": false,
|
|
477
449
|
"required": [
|
|
478
|
-
"
|
|
479
|
-
"
|
|
480
|
-
"
|
|
481
|
-
"
|
|
482
|
-
"
|
|
483
|
-
"
|
|
484
|
-
"tickLength",
|
|
485
|
-
"events"
|
|
450
|
+
"eventId",
|
|
451
|
+
"startDate",
|
|
452
|
+
"endDate",
|
|
453
|
+
"graceDays",
|
|
454
|
+
"groupFloor",
|
|
455
|
+
"tiers"
|
|
486
456
|
],
|
|
487
457
|
"properties": {
|
|
488
|
-
"
|
|
458
|
+
"eventId": {
|
|
489
459
|
"type": "string",
|
|
490
460
|
"minLength": 1
|
|
491
461
|
},
|
|
492
|
-
"
|
|
462
|
+
"startDate": {
|
|
493
463
|
"type": "string",
|
|
494
|
-
"
|
|
495
|
-
"description": "The helper verification key, multibase — named for its role on the wire rather than for hvk."
|
|
464
|
+
"format": "date"
|
|
496
465
|
},
|
|
497
|
-
"
|
|
466
|
+
"endDate": {
|
|
498
467
|
"type": "string",
|
|
499
|
-
"
|
|
500
|
-
"description": "The token verification key, multibase — named for its role on the wire rather than for tvk."
|
|
501
|
-
},
|
|
502
|
-
"vetterLabels": {
|
|
503
|
-
"type": "array",
|
|
504
|
-
"items": {
|
|
505
|
-
"type": "string",
|
|
506
|
-
"minLength": 1
|
|
507
|
-
},
|
|
508
|
-
"description": "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period."
|
|
468
|
+
"format": "date"
|
|
509
469
|
},
|
|
510
|
-
"
|
|
511
|
-
"type": "
|
|
512
|
-
"
|
|
513
|
-
"type": "string",
|
|
514
|
-
"minLength": 1
|
|
515
|
-
}
|
|
470
|
+
"graceDays": {
|
|
471
|
+
"type": "integer",
|
|
472
|
+
"minimum": 0
|
|
516
473
|
},
|
|
517
|
-
"
|
|
474
|
+
"groupFloor": {
|
|
518
475
|
"type": "integer",
|
|
519
476
|
"minimum": 1
|
|
520
477
|
},
|
|
521
|
-
"
|
|
522
|
-
"$ref": "#/$defs/TickLength"
|
|
523
|
-
},
|
|
524
|
-
"events": {
|
|
478
|
+
"tiers": {
|
|
525
479
|
"type": "array",
|
|
526
480
|
"items": {
|
|
527
|
-
"$ref": "#/$defs/
|
|
481
|
+
"$ref": "#/$defs/Tier"
|
|
528
482
|
}
|
|
483
|
+
},
|
|
484
|
+
"approvedBy": {
|
|
485
|
+
"type": [
|
|
486
|
+
"string",
|
|
487
|
+
"null"
|
|
488
|
+
],
|
|
489
|
+
"description": "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events)."
|
|
529
490
|
}
|
|
530
491
|
}
|
|
531
|
-
},
|
|
532
|
-
"Response": {
|
|
533
|
-
"$anchor": "response",
|
|
534
|
-
"title": "VTC Vetting — Hidden — Publish — response payload",
|
|
535
|
-
"type": "object",
|
|
536
|
-
"additionalProperties": false,
|
|
537
|
-
"required": [
|
|
538
|
-
"criterionId",
|
|
539
|
-
"stored",
|
|
540
|
-
"published",
|
|
541
|
-
"requirementsDigest"
|
|
542
|
-
],
|
|
543
|
-
"properties": {
|
|
544
|
-
"criterionId": {
|
|
545
|
-
"type": "string",
|
|
546
|
-
"minLength": 1,
|
|
547
|
-
"description": "The criterion that now accepts a hidden proof."
|
|
548
|
-
},
|
|
549
|
-
"stored": {
|
|
550
|
-
"$ref": "#/$defs/StoredConfig"
|
|
551
|
-
},
|
|
552
|
-
"published": {
|
|
553
|
-
"$ref": "#/$defs/PublishedConfig"
|
|
554
|
-
},
|
|
555
|
-
"requirementsDigest": {
|
|
556
|
-
"type": [
|
|
557
|
-
"string",
|
|
558
|
-
"null"
|
|
559
|
-
],
|
|
560
|
-
"description": "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none."
|
|
561
|
-
},
|
|
562
|
-
"ext": {
|
|
563
|
-
"$ref": "#/$defs/Ext"
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
},
|
|
567
|
-
"Ext": {
|
|
568
|
-
"title": "Ext",
|
|
569
|
-
"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.",
|
|
570
|
-
"type": "object",
|
|
571
|
-
"minProperties": 1,
|
|
572
|
-
"additionalProperties": true,
|
|
573
|
-
"propertyNames": {
|
|
574
|
-
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
575
|
-
}
|
|
576
492
|
}
|
|
577
493
|
}
|
|
578
494
|
} as const;
|
|
@@ -582,12 +498,6 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
582
498
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
583
499
|
"$ref": "#/$defs/Response",
|
|
584
500
|
"$defs": {
|
|
585
|
-
"TickLength": {
|
|
586
|
-
"title": "TickLength",
|
|
587
|
-
"type": "string",
|
|
588
|
-
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
589
|
-
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
590
|
-
},
|
|
591
501
|
"RequestEvent": {
|
|
592
502
|
"title": "RequestEvent",
|
|
593
503
|
"type": "object",
|
|
@@ -639,72 +549,108 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
639
549
|
}
|
|
640
550
|
}
|
|
641
551
|
},
|
|
642
|
-
"
|
|
643
|
-
"
|
|
552
|
+
"Response": {
|
|
553
|
+
"$anchor": "response",
|
|
554
|
+
"title": "VTC Vetting — Hidden — Publish — response payload",
|
|
644
555
|
"type": "object",
|
|
645
556
|
"additionalProperties": false,
|
|
646
557
|
"required": [
|
|
647
|
-
"
|
|
648
|
-
"
|
|
558
|
+
"criterionId",
|
|
559
|
+
"stored",
|
|
560
|
+
"published",
|
|
561
|
+
"requirementsDigest"
|
|
649
562
|
],
|
|
650
563
|
"properties": {
|
|
651
|
-
"
|
|
564
|
+
"criterionId": {
|
|
652
565
|
"type": "string",
|
|
653
566
|
"minLength": 1,
|
|
654
|
-
"description": "
|
|
567
|
+
"description": "The criterion that now accepts a hidden proof."
|
|
655
568
|
},
|
|
656
|
-
"
|
|
657
|
-
"
|
|
658
|
-
|
|
659
|
-
|
|
569
|
+
"stored": {
|
|
570
|
+
"$ref": "#/$defs/StoredConfig"
|
|
571
|
+
},
|
|
572
|
+
"published": {
|
|
573
|
+
"$ref": "#/$defs/PublishedConfig"
|
|
574
|
+
},
|
|
575
|
+
"requirementsDigest": {
|
|
576
|
+
"type": [
|
|
577
|
+
"string",
|
|
578
|
+
"null"
|
|
579
|
+
],
|
|
580
|
+
"description": "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none."
|
|
581
|
+
},
|
|
582
|
+
"ext": {
|
|
583
|
+
"$ref": "#/$defs/Ext"
|
|
660
584
|
}
|
|
661
585
|
}
|
|
662
586
|
},
|
|
663
|
-
"
|
|
664
|
-
"title": "
|
|
587
|
+
"Ext": {
|
|
588
|
+
"title": "Ext",
|
|
589
|
+
"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.",
|
|
590
|
+
"type": "object",
|
|
591
|
+
"minProperties": 1,
|
|
592
|
+
"additionalProperties": true,
|
|
593
|
+
"propertyNames": {
|
|
594
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
"PublishedConfig": {
|
|
598
|
+
"title": "PublishedConfig",
|
|
599
|
+
"description": "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.",
|
|
665
600
|
"type": "object",
|
|
666
601
|
"additionalProperties": false,
|
|
667
602
|
"required": [
|
|
668
|
-
"
|
|
669
|
-
"
|
|
670
|
-
"
|
|
671
|
-
"
|
|
672
|
-
"
|
|
673
|
-
"
|
|
603
|
+
"suite",
|
|
604
|
+
"helperKey",
|
|
605
|
+
"tokenKey",
|
|
606
|
+
"vetterLabels",
|
|
607
|
+
"tokenLabels",
|
|
608
|
+
"dripPerTick",
|
|
609
|
+
"tickLength",
|
|
610
|
+
"events"
|
|
674
611
|
],
|
|
675
612
|
"properties": {
|
|
676
|
-
"
|
|
613
|
+
"suite": {
|
|
677
614
|
"type": "string",
|
|
678
615
|
"minLength": 1
|
|
679
616
|
},
|
|
680
|
-
"
|
|
617
|
+
"helperKey": {
|
|
681
618
|
"type": "string",
|
|
682
|
-
"
|
|
619
|
+
"minLength": 1,
|
|
620
|
+
"description": "The helper verification key, multibase — named for its role on the wire rather than for hvk."
|
|
683
621
|
},
|
|
684
|
-
"
|
|
622
|
+
"tokenKey": {
|
|
685
623
|
"type": "string",
|
|
686
|
-
"
|
|
624
|
+
"minLength": 1,
|
|
625
|
+
"description": "The token verification key, multibase — named for its role on the wire rather than for tvk."
|
|
687
626
|
},
|
|
688
|
-
"
|
|
689
|
-
"type": "
|
|
690
|
-
"
|
|
627
|
+
"vetterLabels": {
|
|
628
|
+
"type": "array",
|
|
629
|
+
"items": {
|
|
630
|
+
"type": "string",
|
|
631
|
+
"minLength": 1
|
|
632
|
+
},
|
|
633
|
+
"description": "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period."
|
|
691
634
|
},
|
|
692
|
-
"
|
|
635
|
+
"tokenLabels": {
|
|
636
|
+
"type": "array",
|
|
637
|
+
"items": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"minLength": 1
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
"dripPerTick": {
|
|
693
643
|
"type": "integer",
|
|
694
644
|
"minimum": 1
|
|
695
645
|
},
|
|
696
|
-
"
|
|
646
|
+
"tickLength": {
|
|
647
|
+
"$ref": "#/$defs/TickLength"
|
|
648
|
+
},
|
|
649
|
+
"events": {
|
|
697
650
|
"type": "array",
|
|
698
651
|
"items": {
|
|
699
|
-
"$ref": "#/$defs/
|
|
652
|
+
"$ref": "#/$defs/PublishedEvent"
|
|
700
653
|
}
|
|
701
|
-
},
|
|
702
|
-
"approvedBy": {
|
|
703
|
-
"type": [
|
|
704
|
-
"string",
|
|
705
|
-
"null"
|
|
706
|
-
],
|
|
707
|
-
"description": "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events)."
|
|
708
654
|
}
|
|
709
655
|
}
|
|
710
656
|
},
|
|
@@ -745,6 +691,33 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
745
691
|
}
|
|
746
692
|
}
|
|
747
693
|
},
|
|
694
|
+
"Tier": {
|
|
695
|
+
"title": "Tier",
|
|
696
|
+
"type": "object",
|
|
697
|
+
"additionalProperties": false,
|
|
698
|
+
"required": [
|
|
699
|
+
"name",
|
|
700
|
+
"dripPerTick"
|
|
701
|
+
],
|
|
702
|
+
"properties": {
|
|
703
|
+
"name": {
|
|
704
|
+
"type": "string",
|
|
705
|
+
"minLength": 1,
|
|
706
|
+
"description": "How the menu names it: desk, busy-desk."
|
|
707
|
+
},
|
|
708
|
+
"dripPerTick": {
|
|
709
|
+
"type": "integer",
|
|
710
|
+
"minimum": 1,
|
|
711
|
+
"description": "How many tokens a tick under this tier yields."
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
"TickLength": {
|
|
716
|
+
"title": "TickLength",
|
|
717
|
+
"type": "string",
|
|
718
|
+
"pattern": "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$",
|
|
719
|
+
"description": "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`)."
|
|
720
|
+
},
|
|
748
721
|
"StoredConfig": {
|
|
749
722
|
"title": "StoredConfig",
|
|
750
723
|
"description": "The parameters exactly as the community stores them, including the helper key it never publishes.",
|
|
@@ -806,110 +779,53 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
806
779
|
}
|
|
807
780
|
}
|
|
808
781
|
},
|
|
809
|
-
"
|
|
810
|
-
"title": "
|
|
811
|
-
"description": "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.",
|
|
782
|
+
"StoredEvent": {
|
|
783
|
+
"title": "StoredEvent",
|
|
812
784
|
"type": "object",
|
|
813
785
|
"additionalProperties": false,
|
|
814
786
|
"required": [
|
|
815
|
-
"
|
|
816
|
-
"
|
|
817
|
-
"
|
|
818
|
-
"
|
|
819
|
-
"
|
|
820
|
-
"
|
|
821
|
-
"tickLength",
|
|
822
|
-
"events"
|
|
787
|
+
"eventId",
|
|
788
|
+
"startDate",
|
|
789
|
+
"endDate",
|
|
790
|
+
"graceDays",
|
|
791
|
+
"groupFloor",
|
|
792
|
+
"tiers"
|
|
823
793
|
],
|
|
824
794
|
"properties": {
|
|
825
|
-
"
|
|
795
|
+
"eventId": {
|
|
826
796
|
"type": "string",
|
|
827
797
|
"minLength": 1
|
|
828
798
|
},
|
|
829
|
-
"
|
|
799
|
+
"startDate": {
|
|
830
800
|
"type": "string",
|
|
831
|
-
"
|
|
832
|
-
"description": "The helper verification key, multibase — named for its role on the wire rather than for hvk."
|
|
801
|
+
"format": "date"
|
|
833
802
|
},
|
|
834
|
-
"
|
|
803
|
+
"endDate": {
|
|
835
804
|
"type": "string",
|
|
836
|
-
"
|
|
837
|
-
"description": "The token verification key, multibase — named for its role on the wire rather than for tvk."
|
|
838
|
-
},
|
|
839
|
-
"vetterLabels": {
|
|
840
|
-
"type": "array",
|
|
841
|
-
"items": {
|
|
842
|
-
"type": "string",
|
|
843
|
-
"minLength": 1
|
|
844
|
-
},
|
|
845
|
-
"description": "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period."
|
|
805
|
+
"format": "date"
|
|
846
806
|
},
|
|
847
|
-
"
|
|
848
|
-
"type": "
|
|
849
|
-
"
|
|
850
|
-
"type": "string",
|
|
851
|
-
"minLength": 1
|
|
852
|
-
}
|
|
807
|
+
"graceDays": {
|
|
808
|
+
"type": "integer",
|
|
809
|
+
"minimum": 0
|
|
853
810
|
},
|
|
854
|
-
"
|
|
811
|
+
"groupFloor": {
|
|
855
812
|
"type": "integer",
|
|
856
813
|
"minimum": 1
|
|
857
814
|
},
|
|
858
|
-
"
|
|
859
|
-
"$ref": "#/$defs/TickLength"
|
|
860
|
-
},
|
|
861
|
-
"events": {
|
|
815
|
+
"tiers": {
|
|
862
816
|
"type": "array",
|
|
863
817
|
"items": {
|
|
864
|
-
"$ref": "#/$defs/
|
|
818
|
+
"$ref": "#/$defs/Tier"
|
|
865
819
|
}
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
},
|
|
869
|
-
"Response": {
|
|
870
|
-
"$anchor": "response",
|
|
871
|
-
"title": "VTC Vetting — Hidden — Publish — response payload",
|
|
872
|
-
"type": "object",
|
|
873
|
-
"additionalProperties": false,
|
|
874
|
-
"required": [
|
|
875
|
-
"criterionId",
|
|
876
|
-
"stored",
|
|
877
|
-
"published",
|
|
878
|
-
"requirementsDigest"
|
|
879
|
-
],
|
|
880
|
-
"properties": {
|
|
881
|
-
"criterionId": {
|
|
882
|
-
"type": "string",
|
|
883
|
-
"minLength": 1,
|
|
884
|
-
"description": "The criterion that now accepts a hidden proof."
|
|
885
|
-
},
|
|
886
|
-
"stored": {
|
|
887
|
-
"$ref": "#/$defs/StoredConfig"
|
|
888
820
|
},
|
|
889
|
-
"
|
|
890
|
-
"$ref": "#/$defs/PublishedConfig"
|
|
891
|
-
},
|
|
892
|
-
"requirementsDigest": {
|
|
821
|
+
"approvedBy": {
|
|
893
822
|
"type": [
|
|
894
823
|
"string",
|
|
895
824
|
"null"
|
|
896
825
|
],
|
|
897
|
-
"description": "
|
|
898
|
-
},
|
|
899
|
-
"ext": {
|
|
900
|
-
"$ref": "#/$defs/Ext"
|
|
826
|
+
"description": "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events)."
|
|
901
827
|
}
|
|
902
828
|
}
|
|
903
|
-
},
|
|
904
|
-
"Ext": {
|
|
905
|
-
"title": "Ext",
|
|
906
|
-
"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.",
|
|
907
|
-
"type": "object",
|
|
908
|
-
"minProperties": 1,
|
|
909
|
-
"additionalProperties": true,
|
|
910
|
-
"propertyNames": {
|
|
911
|
-
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
912
|
-
}
|
|
913
829
|
}
|
|
914
830
|
}
|
|
915
831
|
} as const;
|