@openvtc/trust-tasks 0.23.0 → 0.23.1
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 +32 -0
- package/dist/_shared/components.d.ts +94 -1
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/vtc/admin/actions/_shared/0.1/action.d.ts +1 -1
- package/dist/vtc/admin/actions/_shared/0.1/action.d.ts.map +1 -1
- package/dist/vtc/admin/actions/_shared/0.2/action.d.ts +26 -0
- package/dist/vtc/admin/actions/_shared/0.2/action.d.ts.map +1 -0
- package/dist/vtc/admin/actions/_shared/0.2/action.js +6 -0
- package/dist/vtc/admin/actions/_shared/0.2/action.js.map +1 -0
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/actions/acknowledge/0.2/payload.d.ts +1052 -0
- package/dist/vtc/admin/actions/acknowledge/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/acknowledge/0.2/payload.js +666 -0
- package/dist/vtc/admin/actions/acknowledge/0.2/payload.js.map +1 -0
- package/dist/vtc/admin/actions/cancel/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/actions/cancel/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/actions/cancel/0.2/payload.d.ts +1066 -0
- package/dist/vtc/admin/actions/cancel/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/cancel/0.2/payload.js +671 -0
- package/dist/vtc/admin/actions/cancel/0.2/payload.js.map +1 -0
- package/dist/vtc/admin/actions/list/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/actions/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/actions/list/0.2/payload.d.ts +1240 -0
- package/dist/vtc/admin/actions/list/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/list/0.2/payload.js +756 -0
- package/dist/vtc/admin/actions/list/0.2/payload.js.map +1 -0
- package/dist/vtc/admin/actions/show/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/actions/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/actions/show/0.2/payload.d.ts +1052 -0
- package/dist/vtc/admin/actions/show/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/show/0.2/payload.js +666 -0
- package/dist/vtc/admin/actions/show/0.2/payload.js.map +1 -0
- package/dist/vtc/members/authority-reduction-pending-notice/0.1/payload.d.ts +236 -0
- package/dist/vtc/members/authority-reduction-pending-notice/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/members/authority-reduction-pending-notice/0.1/payload.js +122 -0
- package/dist/vtc/members/authority-reduction-pending-notice/0.1/payload.js.map +1 -0
- package/dist/vtc/operator/offline-write/0.1/payload.d.ts +167 -0
- package/dist/vtc/operator/offline-write/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/operator/offline-write/0.1/payload.js +96 -0
- package/dist/vtc/operator/offline-write/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +102 -1
- package/src/index.ts +7 -0
- package/src/vtc/admin/actions/_shared/0.1/action.ts +1 -1
- package/src/vtc/admin/actions/_shared/0.2/action.ts +27 -0
- package/src/vtc/admin/actions/acknowledge/0.1/payload.ts +1 -1
- package/src/vtc/admin/actions/acknowledge/0.2/payload.ts +701 -0
- package/src/vtc/admin/actions/cancel/0.1/payload.ts +1 -1
- package/src/vtc/admin/actions/cancel/0.2/payload.ts +710 -0
- package/src/vtc/admin/actions/list/0.1/payload.ts +1 -1
- package/src/vtc/admin/actions/list/0.2/payload.ts +825 -0
- package/src/vtc/admin/actions/show/0.1/payload.ts +1 -1
- package/src/vtc/admin/actions/show/0.2/payload.ts +701 -0
- package/src/vtc/members/authority-reduction-pending-notice/0.1/payload.ts +176 -0
- package/src/vtc/operator/offline-write/0.1/payload.ts +133 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/operator/offline-write/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
/** Trust Task type URI. */
|
|
6
|
+
export const TYPE_URI = "https://trusttasks.org/spec/vtc/operator/offline-write/0.1";
|
|
7
|
+
/**
|
|
8
|
+
* This specification's payload schema, as a value.
|
|
9
|
+
*
|
|
10
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
11
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
12
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
13
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
14
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
15
|
+
*/
|
|
16
|
+
export const PAYLOAD_SCHEMA = {
|
|
17
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
18
|
+
"$id": "https://trusttasks.org/spec/vtc/operator/offline-write/0.1",
|
|
19
|
+
"title": "VTC Operator Offline Write — record",
|
|
20
|
+
"description": "A RECORD TYPE, not a request. It describes one change to a Verifiable Trust Community's access control made by an operator with access to the community's host, through an offline command run against the community's store (`vtc admin emergency-bootstrap` and its siblings) rather than through any Trust Task. No party sends a document of this type to another and no consumer executes one: its Type URI exists so that an `acknowledge` action (vtc/admin/actions/_shared/0.2) can name what happened in `typeUri`, and so that the community's audit trail can reference it. When an action names it, the action's `payload` is this record. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.",
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": [
|
|
24
|
+
"command",
|
|
25
|
+
"dids",
|
|
26
|
+
"host",
|
|
27
|
+
"at"
|
|
28
|
+
],
|
|
29
|
+
"properties": {
|
|
30
|
+
"command": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"enum": [
|
|
33
|
+
"aclAdd",
|
|
34
|
+
"aclRemove",
|
|
35
|
+
"adminInvite",
|
|
36
|
+
"createDidKeyAdmin",
|
|
37
|
+
"enrolApprover",
|
|
38
|
+
"emergencyBootstrap"
|
|
39
|
+
],
|
|
40
|
+
"description": "Which offline command made the change. `aclAdd` — an access control entry was written. `aclRemove` — an access control entry was removed. `adminInvite` — an administrator invitation was minted. `createDidKeyAdmin` — a new `did:key` was minted on the host and made an administrator. `enrolApprover` — an approver was enrolled for a subject. `emergencyBootstrap` — the break-glass recovery that installs an administrator when none can act. A closed set: a new offline command is a new version, so that a renderer never shows an administrator a change it cannot name."
|
|
41
|
+
},
|
|
42
|
+
"dids": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"minItems": 1,
|
|
45
|
+
"maxItems": 64,
|
|
46
|
+
"uniqueItems": true,
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"maxLength": 2048
|
|
51
|
+
},
|
|
52
|
+
"description": "The DIDs whose access the command changed — the subject of an entry added or removed, the administrator installed or invited, the subject an approver was enrolled for and the approver — in the order the command reports them. Never empty: an offline write that changed nobody's access is not one administrators need to acknowledge."
|
|
53
|
+
},
|
|
54
|
+
"host": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"maxLength": 253,
|
|
58
|
+
"description": "The host the command ran on, as the community knows it (its hostname, or the deployment's name for the instance). Identifies where an operator held access, not who the operator was; attribution to a person, where the community has one, is the action's `requester`."
|
|
59
|
+
},
|
|
60
|
+
"at": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"format": "date-time",
|
|
63
|
+
"description": "When the command wrote the change to the community's store, as recorded on the host. Not when the community noticed it, which is the action's `createdAt`."
|
|
64
|
+
},
|
|
65
|
+
"ext": {
|
|
66
|
+
"$ref": "#/$defs/Ext"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"$defs": {
|
|
70
|
+
"Ext": {
|
|
71
|
+
"title": "Ext",
|
|
72
|
+
"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.",
|
|
73
|
+
"type": "object",
|
|
74
|
+
"minProperties": 1,
|
|
75
|
+
"additionalProperties": true,
|
|
76
|
+
"propertyNames": {
|
|
77
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
84
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
85
|
+
* per-specification and cannot be derived from the document alone, and
|
|
86
|
+
* item 2 needs the schema this carries.
|
|
87
|
+
*/
|
|
88
|
+
export const SPEC = {
|
|
89
|
+
typeUri: TYPE_URI,
|
|
90
|
+
isBearer: false,
|
|
91
|
+
isProofRequired: false,
|
|
92
|
+
isRecipientRequired: false,
|
|
93
|
+
isIssuedAtRequired: false,
|
|
94
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../../../src/vtc/operator/offline-write/0.1/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkCH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,4DAAqE,CAAC;AAK9F;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,8CAA8C;IACzD,KAAK,EAAE,4DAA4D;IACnE,OAAO,EAAE,qCAAqC;IAC9C,aAAa,EAAE,qvBAAqvB;IACpwB,MAAM,EAAE,QAAQ;IAChB,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE;QACV,SAAS;QACT,MAAM;QACN,MAAM;QACN,IAAI;KACL;IACD,YAAY,EAAE;QACZ,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE;gBACN,QAAQ;gBACR,WAAW;gBACX,aAAa;gBACb,mBAAmB;gBACnB,eAAe;gBACf,oBAAoB;aACrB;YACD,aAAa,EAAE,sjBAAsjB;SACtkB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,IAAI;aAClB;YACD,aAAa,EAAE,4UAA4U;SAC5V;QACD,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,0QAA0Q;SAC1R;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,4JAA4J;SAC5K;QACD,KAAK,EAAE;YACL,MAAM,EAAE,aAAa;SACtB;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,uKAAuK;YACtL,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,CAAC;YAClB,sBAAsB,EAAE,IAAI;YAC5B,eAAe,EAAE;gBACf,SAAS,EAAE,mCAAmC;aAC/C;SACF;KACF;CACO,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;IACtB,mBAAmB,EAAE,KAAK;IAC1B,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,cAAc;CACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1349,7 +1349,7 @@ export interface AclEntry_AclV0_2 {
|
|
|
1349
1349
|
/**
|
|
1350
1350
|
* 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.
|
|
1351
1351
|
*/
|
|
1352
|
-
export interface
|
|
1352
|
+
export interface Action_VtcAdminActionsV0_1 {
|
|
1353
1353
|
actionId: ActionId;
|
|
1354
1354
|
/**
|
|
1355
1355
|
* `approval` — eligible approvers approve or decline, N-of-M; the operation executes when the threshold is met. `acknowledge` — an operation that already happened (an operator's offline or break-glass write) which every remaining administrator must acknowledge; there is nothing to approve or decline. `queue` — an existing human decision (for example a join review) surfaced in the same list, with a threshold of one.
|
|
@@ -1438,6 +1438,107 @@ export interface Action {
|
|
|
1438
1438
|
requesterOpenActions?: number;
|
|
1439
1439
|
ext?: Ext;
|
|
1440
1440
|
}
|
|
1441
|
+
/**
|
|
1442
|
+
* 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.
|
|
1443
|
+
*/
|
|
1444
|
+
export interface Action_VtcAdminActionsV0_2 {
|
|
1445
|
+
actionId: ActionId;
|
|
1446
|
+
/**
|
|
1447
|
+
* `approval` — eligible approvers approve or decline, N-of-M; the operation executes when the threshold is met. `acknowledge` — an operation that already happened (an operator's offline or break-glass write) which every remaining administrator must acknowledge; there is nothing to approve or decline. `queue` — an existing human decision (for example a join review) surfaced in the same list, with a threshold of one. `coolingOff` — an operation with no eligible third party to consent, which lands by itself at `landsAt` unless its requester cancels it first; nobody approves, declines or acknowledges it.
|
|
1448
|
+
*/
|
|
1449
|
+
category: "approval" | "acknowledge" | "queue" | "coolingOff";
|
|
1450
|
+
/**
|
|
1451
|
+
* The community's name for what kind of operation is parked, dotted and lowerCamelCase (`acl.grant.authority`, `member.join.review`). Selects the summary template. The set is OPEN: a renderer that does not recognise a kind still renders `summary` from its fields.
|
|
1452
|
+
*/
|
|
1453
|
+
kind: string;
|
|
1454
|
+
/**
|
|
1455
|
+
* The Type URI of the parked operation — the Trust Task the community will execute when the action completes (for `coolingOff`, when it lands). Together with `payload` it is exactly what will run. For `acknowledge`, the Type URI of the operation that already took effect; an operator's offline write, which is a command on the community's host and has no Trust Task of its own, is named by the record type `https://trusttasks.org/spec/vtc/operator/offline-write/0.1`, and `payload` is then that record.
|
|
1456
|
+
*/
|
|
1457
|
+
typeUri: string;
|
|
1458
|
+
/**
|
|
1459
|
+
* VID of the party whose operation was parked. For `acknowledge`, the operator whose offline write is being acknowledged, where the community can attribute one. For `coolingOff`, the administrator whose operation will land — the only party who may cancel it.
|
|
1460
|
+
*/
|
|
1461
|
+
requester: string;
|
|
1462
|
+
/**
|
|
1463
|
+
* `open` — awaiting decisions, or for `coolingOff` awaiting `landsAt`. `completed` — the threshold was met and the operation executed, a `coolingOff` operation landed, or, for `acknowledge`, every administrator acknowledged. `declined` — an eligible approver denied it. `expired` — it lapsed at `expiresAt`. `cancelled` — the requester withdrew it, or the community invalidated it (see `closedReason`). `failed` — the threshold was met or `landsAt` reached but the re-check at execution refused it, or execution itself failed; the operation did not take effect.
|
|
1464
|
+
*/
|
|
1465
|
+
status: "open" | "completed" | "declined" | "expired" | "cancelled" | "failed";
|
|
1466
|
+
/**
|
|
1467
|
+
* When the operation was parked.
|
|
1468
|
+
*/
|
|
1469
|
+
createdAt: string;
|
|
1470
|
+
/**
|
|
1471
|
+
* When an open action lapses. ALWAYS present for `approval`, whose open life is bounded (72 hours by default; the community configures it between 15 minutes and 14 days). Absent for an `acknowledge` or `queue` action that does not expire, and ALWAYS absent for `coolingOff`, which does not lapse but lands — see `landsAt`.
|
|
1472
|
+
*/
|
|
1473
|
+
expiresAt?: string;
|
|
1474
|
+
/**
|
|
1475
|
+
* When a `coolingOff` action lands: the instant from which the community executes the parked operation, after its execution-time re-check, unless the requester cancelled first. Present exactly when `category` is `coolingOff`. It is a deadline for the requester's cancellation, not for anyone's approval, and it is fixed when the action is parked: neither the requester nor the subject can move it.
|
|
1476
|
+
*/
|
|
1477
|
+
landsAt?: string;
|
|
1478
|
+
/**
|
|
1479
|
+
* Who may withdraw the action with `vtc/admin/actions/cancel` while it is `open`. Present on every open `coolingOff` action, where it is `requester`: the operation lands unless its requester stops it, and nobody else — the subject included — can. A closed set so that a console can offer a cancel control without inferring it; future values would widen who may cancel and need a new version.
|
|
1480
|
+
*/
|
|
1481
|
+
cancellableBy?: "requester";
|
|
1482
|
+
/**
|
|
1483
|
+
* When the action left `open`. Present exactly when `status` is not `open`.
|
|
1484
|
+
*/
|
|
1485
|
+
closedAt?: string;
|
|
1486
|
+
/**
|
|
1487
|
+
* Why the action closed. Present exactly when `status` is not `open`. `invalidated` — the community closed it because something it depended on stopped holding before the threshold or `landsAt` (an approver or the requester lost standing, the target state moved); `failedRecheck` — the threshold was met or `landsAt` reached but the execution-time re-check refused; `landedAfterCoolingOff` — a `coolingOff` action reached `landsAt` uncancelled and its operation executed (`status: completed`).
|
|
1488
|
+
*/
|
|
1489
|
+
closedReason?:
|
|
1490
|
+
| "thresholdMet"
|
|
1491
|
+
| "declined"
|
|
1492
|
+
| "expired"
|
|
1493
|
+
| "cancelledByRequester"
|
|
1494
|
+
| "invalidated"
|
|
1495
|
+
| "failedRecheck"
|
|
1496
|
+
| "acknowledged"
|
|
1497
|
+
| "landedAfterCoolingOff";
|
|
1498
|
+
/**
|
|
1499
|
+
* The number of distinct approvals the operation needs. Present for `approval`; absent otherwise (a `queue` decision is one decision by construction, `acknowledge` needs every remaining administrator, and `coolingOff` needs no approval at all).
|
|
1500
|
+
*/
|
|
1501
|
+
threshold?: number;
|
|
1502
|
+
/**
|
|
1503
|
+
* The decisions in favour recorded so far — approvals for `approval` and `queue`, acknowledgements for `acknowledge` — one entry per distinct subject, in the order recorded. Empty while none has landed, and always empty for `coolingOff`, which takes no decisions.
|
|
1504
|
+
*/
|
|
1505
|
+
approvals: {
|
|
1506
|
+
/**
|
|
1507
|
+
* VID of the approver or acknowledger, as proven by the decision's own proof.
|
|
1508
|
+
*/
|
|
1509
|
+
subject: string;
|
|
1510
|
+
/**
|
|
1511
|
+
* When the decision was recorded.
|
|
1512
|
+
*/
|
|
1513
|
+
at: string;
|
|
1514
|
+
}[];
|
|
1515
|
+
/**
|
|
1516
|
+
* How many further distinct decisions the action needs while `open` — approvals for `approval`, acknowledgements for `acknowledge`. Lets a console say 'one more' without disclosing the eligible set. Absent for `coolingOff`, which waits on time, not on decisions.
|
|
1517
|
+
*/
|
|
1518
|
+
approversRemaining?: number;
|
|
1519
|
+
summary: Summary;
|
|
1520
|
+
/**
|
|
1521
|
+
* The exact payload of the parked operation — the object `payloadDigest` is computed over and the one the community will execute. Carried so an approver can recompute the digest and re-derive every summary field from it rather than trusting the rendering (VTI-APV-013). Deliberately an open object: its shape is governed by the specification `typeUri` names, and a digest is checked over members exactly as received.
|
|
1522
|
+
*/
|
|
1523
|
+
payload: {};
|
|
1524
|
+
/**
|
|
1525
|
+
* Digest of `payload`, taken over its RFC 8785 (JCS) canonicalization. The community re-derives it from the payload it is about to execute and refuses on mismatch. The digest an approver signs over is the challenge-salted one of `task-consent/decision`, not this value; this one lets the approver check that `payload` is what was parked.
|
|
1526
|
+
*/
|
|
1527
|
+
payloadDigest: DigestMultibase;
|
|
1528
|
+
/**
|
|
1529
|
+
* Present ONLY on an action the CALLER may decide now — an `approval` or `queue` action on which the caller is an eligible approver who has not yet decided. Never present on `acknowledge` or `coolingOff`. Per-approver: two approvers are shown different challenges for the same action. Echoed verbatim in `task-consent/decision`'s `challenge`, which binds that decision to this approver and this action. Absent for everyone else, including the requester.
|
|
1530
|
+
*/
|
|
1531
|
+
challenge?: string;
|
|
1532
|
+
/**
|
|
1533
|
+
* The caller's relation to this action. `approver` — an eligible approver (whether or not already decided). `requester` — the party whose operation was parked. `acknowledger` — an administrator expected to acknowledge it. `subject` — the party a `coolingOff` operation acts on, shown it so that they learn of it before it lands; a subject can neither decide nor cancel it. `observer` — none of these; seen only through the audit-read capability on a `history` or `all` view.
|
|
1534
|
+
*/
|
|
1535
|
+
callerRole: "approver" | "requester" | "acknowledger" | "subject" | "observer";
|
|
1536
|
+
/**
|
|
1537
|
+
* How many open actions the requester currently has at the community, this one included. For consent-fatigue display: an approver shown the twentieth request from one requester today should be able to see that it is the twentieth.
|
|
1538
|
+
*/
|
|
1539
|
+
requesterOpenActions?: number;
|
|
1540
|
+
ext?: Ext;
|
|
1541
|
+
}
|
|
1441
1542
|
/**
|
|
1442
1543
|
* A privileged account at the mediator (an `admin` or `rootAdmin`).
|
|
1443
1544
|
*/
|
package/src/index.ts
CHANGED
|
@@ -622,10 +622,15 @@ export * as VettingAutoGrantShared_v0_1 from "./vtc/_shared/0.1/vetting-auto-gra
|
|
|
622
622
|
export * as WebsiteTransferShared_v0_1 from "./vtc/_shared/0.1/website-transfer.js";
|
|
623
623
|
export * as SchemaRegistryShared_v0_2 from "./vtc/_shared/0.2/schema-registry.js";
|
|
624
624
|
export * as ActionShared_v0_1 from "./vtc/admin/actions/_shared/0.1/action.js";
|
|
625
|
+
export * as ActionShared_v0_2 from "./vtc/admin/actions/_shared/0.2/action.js";
|
|
625
626
|
export * as VtcAdminActionsAcknowledge_v0_1 from "./vtc/admin/actions/acknowledge/0.1/payload.js";
|
|
627
|
+
export * as VtcAdminActionsAcknowledge_v0_2 from "./vtc/admin/actions/acknowledge/0.2/payload.js";
|
|
626
628
|
export * as VtcAdminActionsCancel_v0_1 from "./vtc/admin/actions/cancel/0.1/payload.js";
|
|
629
|
+
export * as VtcAdminActionsCancel_v0_2 from "./vtc/admin/actions/cancel/0.2/payload.js";
|
|
627
630
|
export * as VtcAdminActionsList_v0_1 from "./vtc/admin/actions/list/0.1/payload.js";
|
|
631
|
+
export * as VtcAdminActionsList_v0_2 from "./vtc/admin/actions/list/0.2/payload.js";
|
|
628
632
|
export * as VtcAdminActionsShow_v0_1 from "./vtc/admin/actions/show/0.1/payload.js";
|
|
633
|
+
export * as VtcAdminActionsShow_v0_2 from "./vtc/admin/actions/show/0.2/payload.js";
|
|
629
634
|
export * as VtcAdminBootstrap_v0_1 from "./vtc/admin/bootstrap/0.1/payload.js";
|
|
630
635
|
export * as VtcAdminInvitesCreate_v0_1 from "./vtc/admin/invites/create/0.1/payload.js";
|
|
631
636
|
export * as VtcAdminInvitesList_v0_1 from "./vtc/admin/invites/list/0.1/payload.js";
|
|
@@ -686,6 +691,7 @@ export * as VtcJoinRequestsVettingShow_v0_1 from "./vtc/join-requests/vetting/sh
|
|
|
686
691
|
export * as VtcJoinRequestsWithdraw_v0_1 from "./vtc/join-requests/withdraw/0.1/payload.js";
|
|
687
692
|
export * as VtcMembersAdminRemove_v0_1 from "./vtc/members/admin-remove/0.1/payload.js";
|
|
688
693
|
export * as VtcMembersAuthorityReducedNotice_v0_1 from "./vtc/members/authority-reduced-notice/0.1/payload.js";
|
|
694
|
+
export * as VtcMembersAuthorityReductionPendingNotice_v0_1 from "./vtc/members/authority-reduction-pending-notice/0.1/payload.js";
|
|
689
695
|
export * as VtcMembersCredentials_v0_1 from "./vtc/members/credentials/0.1/payload.js";
|
|
690
696
|
export * as VtcMembersList_v0_1 from "./vtc/members/list/0.1/payload.js";
|
|
691
697
|
export * as VtcMembersPersonhoodAssert_v0_1 from "./vtc/members/personhood/assert/0.1/payload.js";
|
|
@@ -705,6 +711,7 @@ export * as VtcMembersSolicitVmc_v0_1 from "./vtc/members/solicit-vmc/0.1/payloa
|
|
|
705
711
|
export * as VtcMembersStepUpPasskeyNotice_v0_1 from "./vtc/members/step-up-passkey-notice/0.1/payload.js";
|
|
706
712
|
export * as VtcMembersUpdate_v0_1 from "./vtc/members/update/0.1/payload.js";
|
|
707
713
|
export * as VtcMembersVmc_v0_1 from "./vtc/members/vmc/0.1/payload.js";
|
|
714
|
+
export * as VtcOperatorOfflineWrite_v0_1 from "./vtc/operator/offline-write/0.1/payload.js";
|
|
708
715
|
export * as VtcPoliciesTest_v0_1 from "./vtc/policies/test/0.1/payload.js";
|
|
709
716
|
export * as VtcRecognitionCheck_v0_1 from "./vtc/recognition/check/0.1/payload.js";
|
|
710
717
|
export * as VtcRegistryDiagnostics_v0_1 from "./vtc/registry/diagnostics/0.1/payload.js";
|
|
@@ -22,4 +22,4 @@ export interface VTCAdminActionsSharedDefinitions {
|
|
|
22
22
|
* The definitions this shared schema publishes, hoisted to one declaration each.
|
|
23
23
|
* See "../../../../../_shared/components.js".
|
|
24
24
|
*/
|
|
25
|
-
export type { Action, ActionId, Field, Summary } from "../../../../../_shared/components.js";
|
|
25
|
+
export type { Action_VtcAdminActionsV0_1 as Action, ActionId, Field, Summary } from "../../../../../_shared/components.js";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/admin/actions/_shared/0.2/action.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Shared shapes for a Verifiable Trust Community's administrative ACTIONS: operations parked for other administrators' decision instead of being refused.
|
|
8
|
+
*
|
|
9
|
+
* THE MODEL. When an administrative operation needs more than its requester's own authority — a grant of administrative authority that needs N-of-M approval, an operator's offline (break-glass) write every administrator must see, a human decision such as a join review — the community does not refuse it. It parks the operation as an Action. An Action names its eligible approvers (or acknowledgers) and, for `approval`, a threshold N. When the N-th approval lands, the community re-checks everything it checked at submission — the requester's standing, each approver's standing, the community's policy, the state the operation acts on — and executes the parked operation EXACTLY ONCE; the action then leaves every administrator's list. One deny closes it for everyone. An open action lapses at `expiresAt`: 72 hours by default, community-configurable between 15 minutes and 14 days.
|
|
10
|
+
*
|
|
11
|
+
* COOLING OFF (new in 0.2). Some operations need a third party's agreement that does not exist — the removal of an administrator in a community where nobody other than the requester and the subject holds the authority to consent. The community neither refuses such an operation nor lets it take effect at once: it parks it as a `coolingOff` action, which has no threshold, no approvers and no expiry. It LANDS at `landsAt` — the community executes the parked payload then, exactly once and after the same execution-time re-check as any other action — unless the requester withdraws it with `vtc/admin/actions/cancel` first. The cooling-off period is 24 hours by default and community-configurable. The subject is shown the action (`callerRole: subject`) and told of it by `vtc/members/authority-reduction-pending-notice`, so a reduction nobody else reviewed is never a surprise; the subject cannot block it, because a veto held by the subject would protect a compromised subject from its own removal.
|
|
12
|
+
*
|
|
13
|
+
* THE REPLY TO THE REQUESTER. The gated operation is not answered with an error or with its own `#response`. The community answers it with the framework-reserved `trust-task-next-step/0.1`, carrying `continuation: proceed` and one `expects` entry whose `typeUri` is `https://trusttasks.org/spec/vtc/admin/actions/show/0.2` with `hint: {"actionId": "…"}`. `proceed` is deliberate: the requester does NOT re-submit the original operation — the community executes the parked payload itself once the threshold is met — so the requester's next step is to follow the action, not to retry. No separate response specification exists for this reply.
|
|
14
|
+
*
|
|
15
|
+
* THE DECISION. A `coolingOff` action takes no decision: nobody approves it and nobody acknowledges it. An approver decides through `task-consent/decision` (0.2 or later), echoing the `challenge` it was shown on the action and quoting `actionId`. An acknowledger answers `acknowledge` actions with `vtc/admin/actions/acknowledge`. The requester may withdraw an open action with `vtc/admin/actions/cancel`.
|
|
16
|
+
*
|
|
17
|
+
* WHAT APPROVERS ARE SHOWN. The `summary` is rendered from a SUMMARY TEMPLATE delivered as data — a title, an effect sentence, and named fields each locating a value in the digested payload by JSON Pointer — and the template is pinned per kind by `templateDigest`. A renderer MUST derive every field it shows from `payload` via that field's `pointer`, and MUST refuse to render an action whose carried `value` differs from the value at the pointer, or whose `payloadDigest` does not match `payload`. It MUST NOT present an action from `title` or `effect` text alone: those are prose the community authored, and a decision taken on prose is a decision about whatever the prose claimed rather than about the payload that will execute (VTI-APV-013).
|
|
18
|
+
*/
|
|
19
|
+
export interface VTCAdminActionsSharedDefinitions {
|
|
20
|
+
[k: string]: unknown | undefined;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The definitions this shared schema publishes, hoisted to one declaration each.
|
|
25
|
+
* See "../../../../../_shared/components.js".
|
|
26
|
+
*/
|
|
27
|
+
export type { Action_VtcAdminActionsV0_2 as Action, ActionId, Field, Summary } from "../../../../../_shared/components.js";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Source: specs/vtc/admin/actions/acknowledge/0.1/payload.schema.json
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { Action, ActionId, DigestMultibase, Ext, Field, Summary } from "../../../../../_shared/components.js";
|
|
6
|
+
import type { Action_VtcAdminActionsV0_1 as Action, ActionId, DigestMultibase, Ext, Field, Summary } from "../../../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
/**
|