@openvtc/trust-tasks 0.22.5 → 0.22.7
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 +80 -0
- package/dist/_shared/components.d.ts +434 -1
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/acl/_shared/0.1/acl-entry.d.ts +1 -1
- package/dist/acl/_shared/0.1/acl-entry.d.ts.map +1 -1
- package/dist/acl/_shared/0.2/acl-entry.d.ts +22 -0
- package/dist/acl/_shared/0.2/acl-entry.d.ts.map +1 -0
- package/dist/acl/_shared/0.2/acl-entry.js +6 -0
- package/dist/acl/_shared/0.2/acl-entry.js.map +1 -0
- package/dist/acl/change-role/0.1/payload.d.ts +1 -1
- package/dist/acl/change-role/0.1/payload.d.ts.map +1 -1
- package/dist/acl/change-role/0.2/payload.d.ts +1679 -0
- package/dist/acl/change-role/0.2/payload.d.ts.map +1 -0
- package/dist/acl/change-role/0.2/payload.js +955 -0
- package/dist/acl/change-role/0.2/payload.js.map +1 -0
- package/dist/acl/grant/0.1/payload.d.ts +1 -1
- package/dist/acl/grant/0.1/payload.d.ts.map +1 -1
- package/dist/acl/grant/0.2/payload.d.ts +1649 -0
- package/dist/acl/grant/0.2/payload.d.ts.map +1 -0
- package/dist/acl/grant/0.2/payload.js +942 -0
- package/dist/acl/grant/0.2/payload.js.map +1 -0
- package/dist/acl/list/0.1/payload.d.ts +1 -1
- package/dist/acl/list/0.1/payload.d.ts.map +1 -1
- package/dist/acl/list/0.2/payload.d.ts +1853 -0
- package/dist/acl/list/0.2/payload.d.ts.map +1 -0
- package/dist/acl/list/0.2/payload.js +1041 -0
- package/dist/acl/list/0.2/payload.js.map +1 -0
- package/dist/acl/revoke/0.1/payload.d.ts +1 -1
- package/dist/acl/revoke/0.1/payload.d.ts.map +1 -1
- package/dist/acl/revoke/0.2/payload.d.ts +1844 -0
- package/dist/acl/revoke/0.2/payload.d.ts.map +1 -0
- package/dist/acl/revoke/0.2/payload.js +1052 -0
- package/dist/acl/revoke/0.2/payload.js.map +1 -0
- package/dist/acl/show/0.1/payload.d.ts +1 -1
- package/dist/acl/show/0.1/payload.d.ts.map +1 -1
- package/dist/acl/show/0.2/payload.d.ts +1689 -0
- package/dist/acl/show/0.2/payload.d.ts.map +1 -0
- package/dist/acl/show/0.2/payload.js +968 -0
- package/dist/acl/show/0.2/payload.js.map +1 -0
- package/dist/acl/swap-key/0.1/payload.d.ts +1 -1
- package/dist/acl/swap-key/0.1/payload.d.ts.map +1 -1
- package/dist/acl/update/0.1/payload.d.ts +1 -1
- package/dist/acl/update/0.1/payload.d.ts.map +1 -1
- package/dist/acl/update/0.2/payload.d.ts +1784 -0
- package/dist/acl/update/0.2/payload.d.ts.map +1 -0
- package/dist/acl/update/0.2/payload.js +1005 -0
- package/dist/acl/update/0.2/payload.js.map +1 -0
- package/dist/auth/signing-key/authorize/0.1/payload.d.ts +199 -0
- package/dist/auth/signing-key/authorize/0.1/payload.d.ts.map +1 -0
- package/dist/auth/signing-key/authorize/0.1/payload.js +108 -0
- package/dist/auth/signing-key/authorize/0.1/payload.js.map +1 -0
- package/dist/auth/signing-key/enroll/0.2/payload.d.ts +569 -0
- package/dist/auth/signing-key/enroll/0.2/payload.d.ts.map +1 -0
- package/dist/auth/signing-key/enroll/0.2/payload.js +315 -0
- package/dist/auth/signing-key/enroll/0.2/payload.js.map +1 -0
- package/dist/auth/step-up/approve-request/0.4/payload.d.ts +672 -0
- package/dist/auth/step-up/approve-request/0.4/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approve-request/0.4/payload.js +373 -0
- package/dist/auth/step-up/approve-request/0.4/payload.js.map +1 -0
- package/dist/auth/step-up/approve-response/0.6/payload.d.ts +974 -0
- package/dist/auth/step-up/approve-response/0.6/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approve-response/0.6/payload.js +552 -0
- package/dist/auth/step-up/approve-response/0.6/payload.js.map +1 -0
- package/dist/auth/step-up/approver/_shared/0.1/approver.d.ts +16 -0
- package/dist/auth/step-up/approver/_shared/0.1/approver.d.ts.map +1 -0
- package/dist/auth/step-up/approver/_shared/0.1/approver.js +6 -0
- package/dist/auth/step-up/approver/_shared/0.1/approver.js.map +1 -0
- package/dist/auth/step-up/approver/attest/0.1/payload.d.ts +174 -0
- package/dist/auth/step-up/approver/attest/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/attest/0.1/payload.js +97 -0
- package/dist/auth/step-up/approver/attest/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/enroll/0.1/payload.d.ts +503 -0
- package/dist/auth/step-up/approver/enroll/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/enroll/0.1/payload.js +285 -0
- package/dist/auth/step-up/approver/enroll/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/invite/0.1/payload.d.ts +375 -0
- package/dist/auth/step-up/approver/invite/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/invite/0.1/payload.js +200 -0
- package/dist/auth/step-up/approver/invite/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/list/0.1/payload.d.ts +477 -0
- package/dist/auth/step-up/approver/list/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/list/0.1/payload.js +272 -0
- package/dist/auth/step-up/approver/list/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/redeem/finish/0.1/payload.d.ts +512 -0
- package/dist/auth/step-up/approver/redeem/finish/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/redeem/finish/0.1/payload.js +290 -0
- package/dist/auth/step-up/approver/redeem/finish/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/redeem/start/0.1/payload.d.ts +343 -0
- package/dist/auth/step-up/approver/redeem/start/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/redeem/start/0.1/payload.js +187 -0
- package/dist/auth/step-up/approver/redeem/start/0.1/payload.js.map +1 -0
- package/dist/auth/step-up/approver/revoke/0.1/payload.d.ts +534 -0
- package/dist/auth/step-up/approver/revoke/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approver/revoke/0.1/payload.js +301 -0
- package/dist/auth/step-up/approver/revoke/0.1/payload.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -1
- package/dist/task-consent/decision/0.2/payload.d.ts +775 -0
- package/dist/task-consent/decision/0.2/payload.d.ts.map +1 -0
- package/dist/task-consent/decision/0.2/payload.js +450 -0
- package/dist/task-consent/decision/0.2/payload.js.map +1 -0
- package/dist/vtc/admin/actions/_shared/0.1/action.d.ts +24 -0
- package/dist/vtc/admin/actions/_shared/0.1/action.d.ts.map +1 -0
- package/dist/vtc/admin/actions/_shared/0.1/action.js +6 -0
- package/dist/vtc/admin/actions/_shared/0.1/action.js.map +1 -0
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.d.ts +1012 -0
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.js +636 -0
- package/dist/vtc/admin/actions/acknowledge/0.1/payload.js.map +1 -0
- package/dist/vtc/admin/actions/cancel/0.1/payload.d.ts +1026 -0
- package/dist/vtc/admin/actions/cancel/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/cancel/0.1/payload.js +641 -0
- package/dist/vtc/admin/actions/cancel/0.1/payload.js.map +1 -0
- package/dist/vtc/admin/actions/list/0.1/payload.d.ts +1200 -0
- package/dist/vtc/admin/actions/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/list/0.1/payload.js +726 -0
- package/dist/vtc/admin/actions/list/0.1/payload.js.map +1 -0
- package/dist/vtc/admin/actions/show/0.1/payload.d.ts +1012 -0
- package/dist/vtc/admin/actions/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/admin/actions/show/0.1/payload.js +636 -0
- package/dist/vtc/admin/actions/show/0.1/payload.js.map +1 -0
- package/dist/vtc/install/claim/finish/0.3/payload.d.ts +379 -0
- package/dist/vtc/install/claim/finish/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/install/claim/finish/0.3/payload.js +205 -0
- package/dist/vtc/install/claim/finish/0.3/payload.js.map +1 -0
- package/dist/vtc/install/claim/start/0.3/payload.d.ts +368 -0
- package/dist/vtc/install/claim/start/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/install/claim/start/0.3/payload.js +201 -0
- package/dist/vtc/install/claim/start/0.3/payload.js.map +1 -0
- package/dist/vtc/members/authority-reduced-notice/0.1/payload.d.ts +208 -0
- package/dist/vtc/members/authority-reduced-notice/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/members/authority-reduced-notice/0.1/payload.js +112 -0
- package/dist/vtc/members/authority-reduced-notice/0.1/payload.js.map +1 -0
- package/dist/vtc/roles/_shared/0.1/role.d.ts +16 -0
- package/dist/vtc/roles/_shared/0.1/role.d.ts.map +1 -0
- package/dist/vtc/roles/_shared/0.1/role.js +6 -0
- package/dist/vtc/roles/_shared/0.1/role.js.map +1 -0
- package/dist/vtc/roles/define/0.1/payload.d.ts +703 -0
- package/dist/vtc/roles/define/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/roles/define/0.1/payload.js +371 -0
- package/dist/vtc/roles/define/0.1/payload.js.map +1 -0
- package/dist/vtc/roles/delete/0.1/payload.d.ts +281 -0
- package/dist/vtc/roles/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/roles/delete/0.1/payload.js +152 -0
- package/dist/vtc/roles/delete/0.1/payload.js.map +1 -0
- package/dist/vtc/roles/list/0.1/payload.d.ts +639 -0
- package/dist/vtc/roles/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/roles/list/0.1/payload.js +345 -0
- package/dist/vtc/roles/list/0.1/payload.js.map +1 -0
- package/dist/vtc/roles/show/0.1/payload.d.ts +651 -0
- package/dist/vtc/roles/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/roles/show/0.1/payload.js +351 -0
- package/dist/vtc/roles/show/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +440 -1
- package/src/acl/_shared/0.1/acl-entry.ts +1 -1
- package/src/acl/_shared/0.2/acl-entry.ts +23 -0
- package/src/acl/change-role/0.1/payload.ts +1 -1
- package/src/acl/change-role/0.2/payload.ts +1011 -0
- package/src/acl/grant/0.1/payload.ts +1 -1
- package/src/acl/grant/0.2/payload.ts +990 -0
- package/src/acl/list/0.1/payload.ts +1 -1
- package/src/acl/list/0.2/payload.ts +1125 -0
- package/src/acl/revoke/0.1/payload.ts +1 -1
- package/src/acl/revoke/0.2/payload.ts +1122 -0
- package/src/acl/show/0.1/payload.ts +1 -1
- package/src/acl/show/0.2/payload.ts +1016 -0
- package/src/acl/swap-key/0.1/payload.ts +1 -1
- package/src/acl/update/0.1/payload.ts +1 -1
- package/src/acl/update/0.2/payload.ts +1094 -0
- package/src/auth/signing-key/authorize/0.1/payload.ts +141 -0
- package/src/auth/signing-key/enroll/0.2/payload.ts +365 -0
- package/src/auth/step-up/approve-request/0.4/payload.ts +461 -0
- package/src/auth/step-up/approve-response/0.6/payload.ts +648 -0
- package/src/auth/step-up/approver/_shared/0.1/approver.ts +17 -0
- package/src/auth/step-up/approver/attest/0.1/payload.ts +135 -0
- package/src/auth/step-up/approver/enroll/0.1/payload.ts +329 -0
- package/src/auth/step-up/approver/invite/0.1/payload.ts +258 -0
- package/src/auth/step-up/approver/list/0.1/payload.ts +318 -0
- package/src/auth/step-up/approver/redeem/finish/0.1/payload.ts +337 -0
- package/src/auth/step-up/approver/redeem/start/0.1/payload.ts +241 -0
- package/src/auth/step-up/approver/revoke/0.1/payload.ts +352 -0
- package/src/index.ts +33 -0
- package/src/task-consent/decision/0.2/payload.ts +537 -0
- package/src/vtc/admin/actions/_shared/0.1/action.ts +25 -0
- package/src/vtc/admin/actions/acknowledge/0.1/payload.ts +671 -0
- package/src/vtc/admin/actions/cancel/0.1/payload.ts +680 -0
- package/src/vtc/admin/actions/list/0.1/payload.ts +795 -0
- package/src/vtc/admin/actions/show/0.1/payload.ts +671 -0
- package/src/vtc/install/claim/finish/0.3/payload.ts +253 -0
- package/src/vtc/install/claim/start/0.3/payload.ts +256 -0
- package/src/vtc/members/authority-reduced-notice/0.1/payload.ts +162 -0
- package/src/vtc/roles/_shared/0.1/role.ts +17 -0
- package/src/vtc/roles/define/0.1/payload.ts +435 -0
- package/src/vtc/roles/delete/0.1/payload.ts +200 -0
- package/src/vtc/roles/list/0.1/payload.ts +389 -0
- package/src/vtc/roles/show/0.1/payload.ts +399 -0
|
@@ -0,0 +1,672 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/auth/step-up/approve-request/0.4/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { ApproverDid, Ext, PublicKeyCredentialDescriptor, PublicKeyCredentialRequestOptions } from "../../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* A relying party asks an approver (typically a wallet or a VTA) to ratify an AAL elevation for a subject's session, or — bound to one operation — to approve that one act without elevating any session, and states which kinds of evidence it will accept, including a statement by one of the subject's bound step-up approvers.
|
|
8
|
+
*/
|
|
9
|
+
export interface AuthStepUpApproveRequest {
|
|
10
|
+
/**
|
|
11
|
+
* The VID whose session is being elevated, or — for a step-up bound to one operation — the VID whose act that operation is. The approver MUST verify this is a VID it can speak for.
|
|
12
|
+
*/
|
|
13
|
+
subject: string;
|
|
14
|
+
/**
|
|
15
|
+
* The session the relying party wants elevated. Opaque to the approver. Absent only when the step-up is bound to one operation that arrived without a session (a signed Trust Task document, for instance); see `boundTo`.
|
|
16
|
+
*/
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Present when the step-up authorizes exactly one operation rather than raising a session's assurance level. An opaque relying-party identifier for that operation — for an operation that arrived as a signed document, a digest of its type and payload salted with `challenge`. Copied into a step-up approver's statement, and echoed by a `recorded` approve-response acknowledgement. Not a capability: the binding is the relying party's own state.
|
|
20
|
+
*/
|
|
21
|
+
boundTo?: string;
|
|
22
|
+
/**
|
|
23
|
+
* base64url-encoded nonce the approver will include in the approve-response signature, the WebAuthn assertion, or the step-up approver's statement. ≥128 bits entropy.
|
|
24
|
+
*/
|
|
25
|
+
challenge: string;
|
|
26
|
+
/**
|
|
27
|
+
* Human-readable explanation of WHY the relying party is asking (e.g. "confirm transfer of 1000 USD to bob.example"). Surfaced to the user by the approver for consent. SHOULD be specific enough that a user can refuse intelligently.
|
|
28
|
+
*/
|
|
29
|
+
reason: string;
|
|
30
|
+
/**
|
|
31
|
+
* The acr the relying party expects on the elevated session. Approvers MAY refuse if they cannot deliver this level.
|
|
32
|
+
*/
|
|
33
|
+
targetAcr?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Every approve-response evidence kind the relying party will accept for this step-up, and no other (see auth/step-up/approve-response/0.6 `evidence`). Replaces 0.3's optional `acceptableEvidence`. An approver that can satisfy none of them SHOULD refuse with `methodUnsupported`.
|
|
36
|
+
*
|
|
37
|
+
* @minItems 1
|
|
38
|
+
*/
|
|
39
|
+
accepts: ["webauthn" | "approverSigned" | "didSigned", ...("webauthn" | "approverSigned" | "didSigned")[]];
|
|
40
|
+
/**
|
|
41
|
+
* WebAuthn `PublicKeyCredentialRequestOptions` the approver passes to the platform passkey API when producing `webauthn` evidence. Present exactly when `accepts` lists `webauthn`. Its `challenge` MUST equal `payload.challenge` so the resulting assertion binds the same nonce the relying party bound server-side.
|
|
42
|
+
*/
|
|
43
|
+
webauthn?: PublicKeyCredentialRequestOptions;
|
|
44
|
+
/**
|
|
45
|
+
* The step-up approvers bound to `subject` that the relying party will accept a statement from (auth/step-up/approver/attest/0.1, purpose `stepUp`). Present exactly when `accepts` lists `approverSigned`. Names factors, not authorities: an approver confers nothing, and the relying party re-checks the binding when the statement arrives.
|
|
46
|
+
*
|
|
47
|
+
* @minItems 1
|
|
48
|
+
* @maxItems 5
|
|
49
|
+
*/
|
|
50
|
+
approvers?: [ApproverDid] | [ApproverDid, ApproverDid] | [ApproverDid, ApproverDid, ApproverDid] | [ApproverDid, ApproverDid, ApproverDid, ApproverDid] | [ApproverDid, ApproverDid, ApproverDid, ApproverDid, ApproverDid];
|
|
51
|
+
/**
|
|
52
|
+
* Seconds within which the relying party expects the approve-response. Approvers SHOULD treat as advisory — the relying party's own expiry policy is authoritative.
|
|
53
|
+
*/
|
|
54
|
+
ttl?: number;
|
|
55
|
+
ext?: Ext;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Synchronous ack from the approver acknowledging it received the request and will (or will not) deliver an approve-response. Carried in a Trust Task document whose type is https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response.
|
|
59
|
+
*/
|
|
60
|
+
export interface AuthStepUpApproveRequestResponsePayload {
|
|
61
|
+
/**
|
|
62
|
+
* `accepted` means the approver received the request and will return an approve-response (typically via DIDComm). `refused` means it will not — `reason` MUST be set.
|
|
63
|
+
*/
|
|
64
|
+
status: "accepted" | "refused";
|
|
65
|
+
/**
|
|
66
|
+
* Required when status is `refused`.
|
|
67
|
+
*/
|
|
68
|
+
reason?: string;
|
|
69
|
+
ext?: Ext;
|
|
70
|
+
}
|
|
71
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
72
|
+
export type { ApproverDid, Ext, PublicKeyCredentialDescriptor, PublicKeyCredentialRequestOptions };
|
|
73
|
+
/** Trust Task type URI. */
|
|
74
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4";
|
|
75
|
+
/** Stable alias for this specification's request payload shape. */
|
|
76
|
+
export type Payload = AuthStepUpApproveRequest;
|
|
77
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
78
|
+
export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response";
|
|
79
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
80
|
+
export type Response = AuthStepUpApproveRequestResponsePayload;
|
|
81
|
+
/**
|
|
82
|
+
* This specification's payload schema, as a value.
|
|
83
|
+
*
|
|
84
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
85
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
86
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
87
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
88
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
89
|
+
*/
|
|
90
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
91
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
92
|
+
readonly $id: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4";
|
|
93
|
+
readonly title: "Auth — Step-up Approve Request";
|
|
94
|
+
readonly description: "A relying party asks an approver (typically a wallet or a VTA) to ratify an AAL elevation for a subject's session, or — bound to one operation — to approve that one act without elevating any session, and states which kinds of evidence it will accept, including a statement by one of the subject's bound step-up approvers.";
|
|
95
|
+
readonly type: "object";
|
|
96
|
+
readonly additionalProperties: false;
|
|
97
|
+
readonly required: readonly ["subject", "challenge", "reason", "accepts"];
|
|
98
|
+
readonly properties: {
|
|
99
|
+
readonly subject: {
|
|
100
|
+
readonly type: "string";
|
|
101
|
+
readonly minLength: 1;
|
|
102
|
+
readonly description: "The VID whose session is being elevated, or — for a step-up bound to one operation — the VID whose act that operation is. The approver MUST verify this is a VID it can speak for.";
|
|
103
|
+
};
|
|
104
|
+
readonly sessionId: {
|
|
105
|
+
readonly type: "string";
|
|
106
|
+
readonly minLength: 1;
|
|
107
|
+
readonly description: "The session the relying party wants elevated. Opaque to the approver. Absent only when the step-up is bound to one operation that arrived without a session (a signed Trust Task document, for instance); see `boundTo`.";
|
|
108
|
+
};
|
|
109
|
+
readonly boundTo: {
|
|
110
|
+
readonly type: "string";
|
|
111
|
+
readonly minLength: 1;
|
|
112
|
+
readonly maxLength: 256;
|
|
113
|
+
readonly description: "Present when the step-up authorizes exactly one operation rather than raising a session's assurance level. An opaque relying-party identifier for that operation — for an operation that arrived as a signed document, a digest of its type and payload salted with `challenge`. Copied into a step-up approver's statement, and echoed by a `recorded` approve-response acknowledgement. Not a capability: the binding is the relying party's own state.";
|
|
114
|
+
};
|
|
115
|
+
readonly challenge: {
|
|
116
|
+
readonly type: "string";
|
|
117
|
+
readonly minLength: 16;
|
|
118
|
+
readonly description: "base64url-encoded nonce the approver will include in the approve-response signature, the WebAuthn assertion, or the step-up approver's statement. ≥128 bits entropy.";
|
|
119
|
+
};
|
|
120
|
+
readonly reason: {
|
|
121
|
+
readonly type: "string";
|
|
122
|
+
readonly minLength: 1;
|
|
123
|
+
readonly maxLength: 500;
|
|
124
|
+
readonly description: "Human-readable explanation of WHY the relying party is asking (e.g. \"confirm transfer of 1000 USD to bob.example\"). Surfaced to the user by the approver for consent. SHOULD be specific enough that a user can refuse intelligently.";
|
|
125
|
+
};
|
|
126
|
+
readonly targetAcr: {
|
|
127
|
+
readonly type: "string";
|
|
128
|
+
readonly description: "The acr the relying party expects on the elevated session. Approvers MAY refuse if they cannot deliver this level.";
|
|
129
|
+
};
|
|
130
|
+
readonly accepts: {
|
|
131
|
+
readonly type: "array";
|
|
132
|
+
readonly minItems: 1;
|
|
133
|
+
readonly uniqueItems: true;
|
|
134
|
+
readonly items: {
|
|
135
|
+
readonly type: "string";
|
|
136
|
+
readonly enum: readonly ["webauthn", "approverSigned", "didSigned"];
|
|
137
|
+
};
|
|
138
|
+
readonly description: "Every approve-response evidence kind the relying party will accept for this step-up, and no other (see auth/step-up/approve-response/0.6 `evidence`). Replaces 0.3's optional `acceptableEvidence`. An approver that can satisfy none of them SHOULD refuse with `methodUnsupported`.";
|
|
139
|
+
};
|
|
140
|
+
readonly webauthn: {
|
|
141
|
+
readonly $ref: "#/$defs/CredentialRequestOptions";
|
|
142
|
+
readonly description: "WebAuthn `PublicKeyCredentialRequestOptions` the approver passes to the platform passkey API when producing `webauthn` evidence. Present exactly when `accepts` lists `webauthn`. Its `challenge` MUST equal `payload.challenge` so the resulting assertion binds the same nonce the relying party bound server-side.";
|
|
143
|
+
};
|
|
144
|
+
readonly approvers: {
|
|
145
|
+
readonly type: "array";
|
|
146
|
+
readonly minItems: 1;
|
|
147
|
+
readonly maxItems: 5;
|
|
148
|
+
readonly uniqueItems: true;
|
|
149
|
+
readonly items: {
|
|
150
|
+
readonly $ref: "#/$defs/ApproverDid";
|
|
151
|
+
};
|
|
152
|
+
readonly description: "The step-up approvers bound to `subject` that the relying party will accept a statement from (auth/step-up/approver/attest/0.1, purpose `stepUp`). Present exactly when `accepts` lists `approverSigned`. Names factors, not authorities: an approver confers nothing, and the relying party re-checks the binding when the statement arrives.";
|
|
153
|
+
};
|
|
154
|
+
readonly ttl: {
|
|
155
|
+
readonly type: "integer";
|
|
156
|
+
readonly minimum: 1;
|
|
157
|
+
readonly description: "Seconds within which the relying party expects the approve-response. Approvers SHOULD treat as advisory — the relying party's own expiry policy is authoritative.";
|
|
158
|
+
};
|
|
159
|
+
readonly ext: {
|
|
160
|
+
readonly $ref: "#/$defs/Ext";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
readonly $defs: {
|
|
164
|
+
readonly Response: {
|
|
165
|
+
readonly $anchor: "response";
|
|
166
|
+
readonly title: "Auth Step-up Approve Request — response payload";
|
|
167
|
+
readonly description: "Synchronous ack from the approver acknowledging it received the request and will (or will not) deliver an approve-response. Carried in a Trust Task document whose type is https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response.";
|
|
168
|
+
readonly type: "object";
|
|
169
|
+
readonly additionalProperties: false;
|
|
170
|
+
readonly required: readonly ["status"];
|
|
171
|
+
readonly properties: {
|
|
172
|
+
readonly status: {
|
|
173
|
+
readonly type: "string";
|
|
174
|
+
readonly enum: readonly ["accepted", "refused"];
|
|
175
|
+
readonly description: "`accepted` means the approver received the request and will return an approve-response (typically via DIDComm). `refused` means it will not — `reason` MUST be set.";
|
|
176
|
+
};
|
|
177
|
+
readonly reason: {
|
|
178
|
+
readonly type: "string";
|
|
179
|
+
readonly maxLength: 1024;
|
|
180
|
+
readonly description: "Required when status is `refused`.";
|
|
181
|
+
};
|
|
182
|
+
readonly ext: {
|
|
183
|
+
readonly $ref: "#/$defs/Ext";
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
readonly Ext: {
|
|
188
|
+
readonly title: "Ext";
|
|
189
|
+
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.";
|
|
190
|
+
readonly type: "object";
|
|
191
|
+
readonly minProperties: 1;
|
|
192
|
+
readonly additionalProperties: true;
|
|
193
|
+
readonly propertyNames: {
|
|
194
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
readonly ApproverDid: {
|
|
198
|
+
readonly title: "ApproverDid";
|
|
199
|
+
readonly type: "string";
|
|
200
|
+
readonly minLength: 16;
|
|
201
|
+
readonly maxLength: 128;
|
|
202
|
+
readonly pattern: "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$";
|
|
203
|
+
readonly description: "A step-up approver, as an Ed25519 `did:key` (`z6Mk…`). `did:key` only, because its document is a function of the key and resolves with no network, so verifying an approver's statement never depends on a fetch, and a key whose DID document could be rewritten after enrolment would not be the key that was enrolled. Distinct from the subject's DID, from every verification method in the subject's DID document, and from every key the subject can sign operations with at the relying party.";
|
|
204
|
+
};
|
|
205
|
+
readonly CredentialRequestOptions: {
|
|
206
|
+
readonly $anchor: "credentialRequestOptions";
|
|
207
|
+
readonly title: "PublicKeyCredentialRequestOptions";
|
|
208
|
+
readonly description: "Server-issued options for `navigator.credentials.get({ publicKey: ... })`.";
|
|
209
|
+
readonly type: "object";
|
|
210
|
+
readonly additionalProperties: false;
|
|
211
|
+
readonly required: readonly ["challenge"];
|
|
212
|
+
readonly properties: {
|
|
213
|
+
readonly extensions: {
|
|
214
|
+
readonly type: "object";
|
|
215
|
+
readonly description: "Client extension inputs, per the WebAuthn Level 2 `AuthenticationExtensionsClientInputs` dictionary.\n\nThis component states that it mirrors the W3C dictionary, and that dictionary defines `extensions`. Omitting it while closing the object with `additionalProperties: false` made the two claims contradict each other: a server emitting standard WebAuthn options could not conform, and the widely-used server libraries emit this member by default.\n\nStructure is deliberately unconstrained. The set of extensions is open and registered outside this framework, so enumerating them here would date the schema against a registry it does not own — and a closed list would reproduce the original defect one revision later.";
|
|
216
|
+
};
|
|
217
|
+
readonly challenge: {
|
|
218
|
+
readonly type: "string";
|
|
219
|
+
readonly description: "base64url-encoded one-time nonce.";
|
|
220
|
+
};
|
|
221
|
+
readonly timeout: {
|
|
222
|
+
readonly type: "integer";
|
|
223
|
+
readonly minimum: 1;
|
|
224
|
+
};
|
|
225
|
+
readonly rpId: {
|
|
226
|
+
readonly type: "string";
|
|
227
|
+
readonly minLength: 1;
|
|
228
|
+
};
|
|
229
|
+
readonly allowCredentials: {
|
|
230
|
+
readonly type: "array";
|
|
231
|
+
readonly items: {
|
|
232
|
+
readonly $ref: "#/$defs/CredentialDescriptor";
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
readonly userVerification: {
|
|
236
|
+
readonly enum: readonly ["discouraged", "preferred", "required"];
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
readonly CredentialDescriptor: {
|
|
241
|
+
readonly $anchor: "credentialDescriptor";
|
|
242
|
+
readonly title: "PublicKeyCredentialDescriptor";
|
|
243
|
+
readonly type: "object";
|
|
244
|
+
readonly additionalProperties: false;
|
|
245
|
+
readonly required: readonly ["type", "id"];
|
|
246
|
+
readonly properties: {
|
|
247
|
+
readonly type: {
|
|
248
|
+
readonly const: "public-key";
|
|
249
|
+
};
|
|
250
|
+
readonly id: {
|
|
251
|
+
readonly type: "string";
|
|
252
|
+
readonly description: "base64url-encoded credential id.";
|
|
253
|
+
};
|
|
254
|
+
readonly transports: {
|
|
255
|
+
readonly type: "array";
|
|
256
|
+
readonly items: {
|
|
257
|
+
readonly enum: readonly ["usb", "nfc", "ble", "internal", "hybrid"];
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
265
|
+
export declare const RESPONSE_PAYLOAD_SCHEMA: {
|
|
266
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
267
|
+
readonly $ref: "#/$defs/Response";
|
|
268
|
+
readonly $defs: {
|
|
269
|
+
readonly Response: {
|
|
270
|
+
readonly $anchor: "response";
|
|
271
|
+
readonly title: "Auth Step-up Approve Request — response payload";
|
|
272
|
+
readonly description: "Synchronous ack from the approver acknowledging it received the request and will (or will not) deliver an approve-response. Carried in a Trust Task document whose type is https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response.";
|
|
273
|
+
readonly type: "object";
|
|
274
|
+
readonly additionalProperties: false;
|
|
275
|
+
readonly required: readonly ["status"];
|
|
276
|
+
readonly properties: {
|
|
277
|
+
readonly status: {
|
|
278
|
+
readonly type: "string";
|
|
279
|
+
readonly enum: readonly ["accepted", "refused"];
|
|
280
|
+
readonly description: "`accepted` means the approver received the request and will return an approve-response (typically via DIDComm). `refused` means it will not — `reason` MUST be set.";
|
|
281
|
+
};
|
|
282
|
+
readonly reason: {
|
|
283
|
+
readonly type: "string";
|
|
284
|
+
readonly maxLength: 1024;
|
|
285
|
+
readonly description: "Required when status is `refused`.";
|
|
286
|
+
};
|
|
287
|
+
readonly ext: {
|
|
288
|
+
readonly $ref: "#/$defs/Ext";
|
|
289
|
+
};
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
readonly Ext: {
|
|
293
|
+
readonly title: "Ext";
|
|
294
|
+
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.";
|
|
295
|
+
readonly type: "object";
|
|
296
|
+
readonly minProperties: 1;
|
|
297
|
+
readonly additionalProperties: true;
|
|
298
|
+
readonly propertyNames: {
|
|
299
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
readonly ApproverDid: {
|
|
303
|
+
readonly title: "ApproverDid";
|
|
304
|
+
readonly type: "string";
|
|
305
|
+
readonly minLength: 16;
|
|
306
|
+
readonly maxLength: 128;
|
|
307
|
+
readonly pattern: "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$";
|
|
308
|
+
readonly description: "A step-up approver, as an Ed25519 `did:key` (`z6Mk…`). `did:key` only, because its document is a function of the key and resolves with no network, so verifying an approver's statement never depends on a fetch, and a key whose DID document could be rewritten after enrolment would not be the key that was enrolled. Distinct from the subject's DID, from every verification method in the subject's DID document, and from every key the subject can sign operations with at the relying party.";
|
|
309
|
+
};
|
|
310
|
+
readonly CredentialRequestOptions: {
|
|
311
|
+
readonly $anchor: "credentialRequestOptions";
|
|
312
|
+
readonly title: "PublicKeyCredentialRequestOptions";
|
|
313
|
+
readonly description: "Server-issued options for `navigator.credentials.get({ publicKey: ... })`.";
|
|
314
|
+
readonly type: "object";
|
|
315
|
+
readonly additionalProperties: false;
|
|
316
|
+
readonly required: readonly ["challenge"];
|
|
317
|
+
readonly properties: {
|
|
318
|
+
readonly extensions: {
|
|
319
|
+
readonly type: "object";
|
|
320
|
+
readonly description: "Client extension inputs, per the WebAuthn Level 2 `AuthenticationExtensionsClientInputs` dictionary.\n\nThis component states that it mirrors the W3C dictionary, and that dictionary defines `extensions`. Omitting it while closing the object with `additionalProperties: false` made the two claims contradict each other: a server emitting standard WebAuthn options could not conform, and the widely-used server libraries emit this member by default.\n\nStructure is deliberately unconstrained. The set of extensions is open and registered outside this framework, so enumerating them here would date the schema against a registry it does not own — and a closed list would reproduce the original defect one revision later.";
|
|
321
|
+
};
|
|
322
|
+
readonly challenge: {
|
|
323
|
+
readonly type: "string";
|
|
324
|
+
readonly description: "base64url-encoded one-time nonce.";
|
|
325
|
+
};
|
|
326
|
+
readonly timeout: {
|
|
327
|
+
readonly type: "integer";
|
|
328
|
+
readonly minimum: 1;
|
|
329
|
+
};
|
|
330
|
+
readonly rpId: {
|
|
331
|
+
readonly type: "string";
|
|
332
|
+
readonly minLength: 1;
|
|
333
|
+
};
|
|
334
|
+
readonly allowCredentials: {
|
|
335
|
+
readonly type: "array";
|
|
336
|
+
readonly items: {
|
|
337
|
+
readonly $ref: "#/$defs/CredentialDescriptor";
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
readonly userVerification: {
|
|
341
|
+
readonly enum: readonly ["discouraged", "preferred", "required"];
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
};
|
|
345
|
+
readonly CredentialDescriptor: {
|
|
346
|
+
readonly $anchor: "credentialDescriptor";
|
|
347
|
+
readonly title: "PublicKeyCredentialDescriptor";
|
|
348
|
+
readonly type: "object";
|
|
349
|
+
readonly additionalProperties: false;
|
|
350
|
+
readonly required: readonly ["type", "id"];
|
|
351
|
+
readonly properties: {
|
|
352
|
+
readonly type: {
|
|
353
|
+
readonly const: "public-key";
|
|
354
|
+
};
|
|
355
|
+
readonly id: {
|
|
356
|
+
readonly type: "string";
|
|
357
|
+
readonly description: "base64url-encoded credential id.";
|
|
358
|
+
};
|
|
359
|
+
readonly transports: {
|
|
360
|
+
readonly type: "array";
|
|
361
|
+
readonly items: {
|
|
362
|
+
readonly enum: readonly ["usb", "nfc", "ble", "internal", "hybrid"];
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
};
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
/**
|
|
370
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
371
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
372
|
+
* per-specification and cannot be derived from the document alone, and
|
|
373
|
+
* item 2 needs the schema this carries.
|
|
374
|
+
*/
|
|
375
|
+
export declare const SPEC: {
|
|
376
|
+
readonly typeUri: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4";
|
|
377
|
+
readonly isBearer: false;
|
|
378
|
+
readonly isProofRequired: true;
|
|
379
|
+
readonly isRecipientRequired: true;
|
|
380
|
+
readonly isIssuedAtRequired: false;
|
|
381
|
+
readonly payloadSchema: {
|
|
382
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
383
|
+
readonly $id: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4";
|
|
384
|
+
readonly title: "Auth — Step-up Approve Request";
|
|
385
|
+
readonly description: "A relying party asks an approver (typically a wallet or a VTA) to ratify an AAL elevation for a subject's session, or — bound to one operation — to approve that one act without elevating any session, and states which kinds of evidence it will accept, including a statement by one of the subject's bound step-up approvers.";
|
|
386
|
+
readonly type: "object";
|
|
387
|
+
readonly additionalProperties: false;
|
|
388
|
+
readonly required: readonly ["subject", "challenge", "reason", "accepts"];
|
|
389
|
+
readonly properties: {
|
|
390
|
+
readonly subject: {
|
|
391
|
+
readonly type: "string";
|
|
392
|
+
readonly minLength: 1;
|
|
393
|
+
readonly description: "The VID whose session is being elevated, or — for a step-up bound to one operation — the VID whose act that operation is. The approver MUST verify this is a VID it can speak for.";
|
|
394
|
+
};
|
|
395
|
+
readonly sessionId: {
|
|
396
|
+
readonly type: "string";
|
|
397
|
+
readonly minLength: 1;
|
|
398
|
+
readonly description: "The session the relying party wants elevated. Opaque to the approver. Absent only when the step-up is bound to one operation that arrived without a session (a signed Trust Task document, for instance); see `boundTo`.";
|
|
399
|
+
};
|
|
400
|
+
readonly boundTo: {
|
|
401
|
+
readonly type: "string";
|
|
402
|
+
readonly minLength: 1;
|
|
403
|
+
readonly maxLength: 256;
|
|
404
|
+
readonly description: "Present when the step-up authorizes exactly one operation rather than raising a session's assurance level. An opaque relying-party identifier for that operation — for an operation that arrived as a signed document, a digest of its type and payload salted with `challenge`. Copied into a step-up approver's statement, and echoed by a `recorded` approve-response acknowledgement. Not a capability: the binding is the relying party's own state.";
|
|
405
|
+
};
|
|
406
|
+
readonly challenge: {
|
|
407
|
+
readonly type: "string";
|
|
408
|
+
readonly minLength: 16;
|
|
409
|
+
readonly description: "base64url-encoded nonce the approver will include in the approve-response signature, the WebAuthn assertion, or the step-up approver's statement. ≥128 bits entropy.";
|
|
410
|
+
};
|
|
411
|
+
readonly reason: {
|
|
412
|
+
readonly type: "string";
|
|
413
|
+
readonly minLength: 1;
|
|
414
|
+
readonly maxLength: 500;
|
|
415
|
+
readonly description: "Human-readable explanation of WHY the relying party is asking (e.g. \"confirm transfer of 1000 USD to bob.example\"). Surfaced to the user by the approver for consent. SHOULD be specific enough that a user can refuse intelligently.";
|
|
416
|
+
};
|
|
417
|
+
readonly targetAcr: {
|
|
418
|
+
readonly type: "string";
|
|
419
|
+
readonly description: "The acr the relying party expects on the elevated session. Approvers MAY refuse if they cannot deliver this level.";
|
|
420
|
+
};
|
|
421
|
+
readonly accepts: {
|
|
422
|
+
readonly type: "array";
|
|
423
|
+
readonly minItems: 1;
|
|
424
|
+
readonly uniqueItems: true;
|
|
425
|
+
readonly items: {
|
|
426
|
+
readonly type: "string";
|
|
427
|
+
readonly enum: readonly ["webauthn", "approverSigned", "didSigned"];
|
|
428
|
+
};
|
|
429
|
+
readonly description: "Every approve-response evidence kind the relying party will accept for this step-up, and no other (see auth/step-up/approve-response/0.6 `evidence`). Replaces 0.3's optional `acceptableEvidence`. An approver that can satisfy none of them SHOULD refuse with `methodUnsupported`.";
|
|
430
|
+
};
|
|
431
|
+
readonly webauthn: {
|
|
432
|
+
readonly $ref: "#/$defs/CredentialRequestOptions";
|
|
433
|
+
readonly description: "WebAuthn `PublicKeyCredentialRequestOptions` the approver passes to the platform passkey API when producing `webauthn` evidence. Present exactly when `accepts` lists `webauthn`. Its `challenge` MUST equal `payload.challenge` so the resulting assertion binds the same nonce the relying party bound server-side.";
|
|
434
|
+
};
|
|
435
|
+
readonly approvers: {
|
|
436
|
+
readonly type: "array";
|
|
437
|
+
readonly minItems: 1;
|
|
438
|
+
readonly maxItems: 5;
|
|
439
|
+
readonly uniqueItems: true;
|
|
440
|
+
readonly items: {
|
|
441
|
+
readonly $ref: "#/$defs/ApproverDid";
|
|
442
|
+
};
|
|
443
|
+
readonly description: "The step-up approvers bound to `subject` that the relying party will accept a statement from (auth/step-up/approver/attest/0.1, purpose `stepUp`). Present exactly when `accepts` lists `approverSigned`. Names factors, not authorities: an approver confers nothing, and the relying party re-checks the binding when the statement arrives.";
|
|
444
|
+
};
|
|
445
|
+
readonly ttl: {
|
|
446
|
+
readonly type: "integer";
|
|
447
|
+
readonly minimum: 1;
|
|
448
|
+
readonly description: "Seconds within which the relying party expects the approve-response. Approvers SHOULD treat as advisory — the relying party's own expiry policy is authoritative.";
|
|
449
|
+
};
|
|
450
|
+
readonly ext: {
|
|
451
|
+
readonly $ref: "#/$defs/Ext";
|
|
452
|
+
};
|
|
453
|
+
};
|
|
454
|
+
readonly $defs: {
|
|
455
|
+
readonly Response: {
|
|
456
|
+
readonly $anchor: "response";
|
|
457
|
+
readonly title: "Auth Step-up Approve Request — response payload";
|
|
458
|
+
readonly description: "Synchronous ack from the approver acknowledging it received the request and will (or will not) deliver an approve-response. Carried in a Trust Task document whose type is https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response.";
|
|
459
|
+
readonly type: "object";
|
|
460
|
+
readonly additionalProperties: false;
|
|
461
|
+
readonly required: readonly ["status"];
|
|
462
|
+
readonly properties: {
|
|
463
|
+
readonly status: {
|
|
464
|
+
readonly type: "string";
|
|
465
|
+
readonly enum: readonly ["accepted", "refused"];
|
|
466
|
+
readonly description: "`accepted` means the approver received the request and will return an approve-response (typically via DIDComm). `refused` means it will not — `reason` MUST be set.";
|
|
467
|
+
};
|
|
468
|
+
readonly reason: {
|
|
469
|
+
readonly type: "string";
|
|
470
|
+
readonly maxLength: 1024;
|
|
471
|
+
readonly description: "Required when status is `refused`.";
|
|
472
|
+
};
|
|
473
|
+
readonly ext: {
|
|
474
|
+
readonly $ref: "#/$defs/Ext";
|
|
475
|
+
};
|
|
476
|
+
};
|
|
477
|
+
};
|
|
478
|
+
readonly Ext: {
|
|
479
|
+
readonly title: "Ext";
|
|
480
|
+
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.";
|
|
481
|
+
readonly type: "object";
|
|
482
|
+
readonly minProperties: 1;
|
|
483
|
+
readonly additionalProperties: true;
|
|
484
|
+
readonly propertyNames: {
|
|
485
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
486
|
+
};
|
|
487
|
+
};
|
|
488
|
+
readonly ApproverDid: {
|
|
489
|
+
readonly title: "ApproverDid";
|
|
490
|
+
readonly type: "string";
|
|
491
|
+
readonly minLength: 16;
|
|
492
|
+
readonly maxLength: 128;
|
|
493
|
+
readonly pattern: "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$";
|
|
494
|
+
readonly description: "A step-up approver, as an Ed25519 `did:key` (`z6Mk…`). `did:key` only, because its document is a function of the key and resolves with no network, so verifying an approver's statement never depends on a fetch, and a key whose DID document could be rewritten after enrolment would not be the key that was enrolled. Distinct from the subject's DID, from every verification method in the subject's DID document, and from every key the subject can sign operations with at the relying party.";
|
|
495
|
+
};
|
|
496
|
+
readonly CredentialRequestOptions: {
|
|
497
|
+
readonly $anchor: "credentialRequestOptions";
|
|
498
|
+
readonly title: "PublicKeyCredentialRequestOptions";
|
|
499
|
+
readonly description: "Server-issued options for `navigator.credentials.get({ publicKey: ... })`.";
|
|
500
|
+
readonly type: "object";
|
|
501
|
+
readonly additionalProperties: false;
|
|
502
|
+
readonly required: readonly ["challenge"];
|
|
503
|
+
readonly properties: {
|
|
504
|
+
readonly extensions: {
|
|
505
|
+
readonly type: "object";
|
|
506
|
+
readonly description: "Client extension inputs, per the WebAuthn Level 2 `AuthenticationExtensionsClientInputs` dictionary.\n\nThis component states that it mirrors the W3C dictionary, and that dictionary defines `extensions`. Omitting it while closing the object with `additionalProperties: false` made the two claims contradict each other: a server emitting standard WebAuthn options could not conform, and the widely-used server libraries emit this member by default.\n\nStructure is deliberately unconstrained. The set of extensions is open and registered outside this framework, so enumerating them here would date the schema against a registry it does not own — and a closed list would reproduce the original defect one revision later.";
|
|
507
|
+
};
|
|
508
|
+
readonly challenge: {
|
|
509
|
+
readonly type: "string";
|
|
510
|
+
readonly description: "base64url-encoded one-time nonce.";
|
|
511
|
+
};
|
|
512
|
+
readonly timeout: {
|
|
513
|
+
readonly type: "integer";
|
|
514
|
+
readonly minimum: 1;
|
|
515
|
+
};
|
|
516
|
+
readonly rpId: {
|
|
517
|
+
readonly type: "string";
|
|
518
|
+
readonly minLength: 1;
|
|
519
|
+
};
|
|
520
|
+
readonly allowCredentials: {
|
|
521
|
+
readonly type: "array";
|
|
522
|
+
readonly items: {
|
|
523
|
+
readonly $ref: "#/$defs/CredentialDescriptor";
|
|
524
|
+
};
|
|
525
|
+
};
|
|
526
|
+
readonly userVerification: {
|
|
527
|
+
readonly enum: readonly ["discouraged", "preferred", "required"];
|
|
528
|
+
};
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
readonly CredentialDescriptor: {
|
|
532
|
+
readonly $anchor: "credentialDescriptor";
|
|
533
|
+
readonly title: "PublicKeyCredentialDescriptor";
|
|
534
|
+
readonly type: "object";
|
|
535
|
+
readonly additionalProperties: false;
|
|
536
|
+
readonly required: readonly ["type", "id"];
|
|
537
|
+
readonly properties: {
|
|
538
|
+
readonly type: {
|
|
539
|
+
readonly const: "public-key";
|
|
540
|
+
};
|
|
541
|
+
readonly id: {
|
|
542
|
+
readonly type: "string";
|
|
543
|
+
readonly description: "base64url-encoded credential id.";
|
|
544
|
+
};
|
|
545
|
+
readonly transports: {
|
|
546
|
+
readonly type: "array";
|
|
547
|
+
readonly items: {
|
|
548
|
+
readonly enum: readonly ["usb", "nfc", "ble", "internal", "hybrid"];
|
|
549
|
+
};
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
};
|
|
553
|
+
};
|
|
554
|
+
};
|
|
555
|
+
};
|
|
556
|
+
/**
|
|
557
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
558
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
559
|
+
* parties (§7.3 item 5).
|
|
560
|
+
*/
|
|
561
|
+
export declare const RESPONSE_SPEC: {
|
|
562
|
+
readonly typeUri: "https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response";
|
|
563
|
+
readonly isBearer: false;
|
|
564
|
+
readonly isProofRequired: true;
|
|
565
|
+
readonly isRecipientRequired: true;
|
|
566
|
+
readonly isIssuedAtRequired: false;
|
|
567
|
+
readonly payloadSchema: {
|
|
568
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
569
|
+
readonly $ref: "#/$defs/Response";
|
|
570
|
+
readonly $defs: {
|
|
571
|
+
readonly Response: {
|
|
572
|
+
readonly $anchor: "response";
|
|
573
|
+
readonly title: "Auth Step-up Approve Request — response payload";
|
|
574
|
+
readonly description: "Synchronous ack from the approver acknowledging it received the request and will (or will not) deliver an approve-response. Carried in a Trust Task document whose type is https://trusttasks.org/spec/auth/step-up/approve-request/0.4#response.";
|
|
575
|
+
readonly type: "object";
|
|
576
|
+
readonly additionalProperties: false;
|
|
577
|
+
readonly required: readonly ["status"];
|
|
578
|
+
readonly properties: {
|
|
579
|
+
readonly status: {
|
|
580
|
+
readonly type: "string";
|
|
581
|
+
readonly enum: readonly ["accepted", "refused"];
|
|
582
|
+
readonly description: "`accepted` means the approver received the request and will return an approve-response (typically via DIDComm). `refused` means it will not — `reason` MUST be set.";
|
|
583
|
+
};
|
|
584
|
+
readonly reason: {
|
|
585
|
+
readonly type: "string";
|
|
586
|
+
readonly maxLength: 1024;
|
|
587
|
+
readonly description: "Required when status is `refused`.";
|
|
588
|
+
};
|
|
589
|
+
readonly ext: {
|
|
590
|
+
readonly $ref: "#/$defs/Ext";
|
|
591
|
+
};
|
|
592
|
+
};
|
|
593
|
+
};
|
|
594
|
+
readonly Ext: {
|
|
595
|
+
readonly title: "Ext";
|
|
596
|
+
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.";
|
|
597
|
+
readonly type: "object";
|
|
598
|
+
readonly minProperties: 1;
|
|
599
|
+
readonly additionalProperties: true;
|
|
600
|
+
readonly propertyNames: {
|
|
601
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
602
|
+
};
|
|
603
|
+
};
|
|
604
|
+
readonly ApproverDid: {
|
|
605
|
+
readonly title: "ApproverDid";
|
|
606
|
+
readonly type: "string";
|
|
607
|
+
readonly minLength: 16;
|
|
608
|
+
readonly maxLength: 128;
|
|
609
|
+
readonly pattern: "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$";
|
|
610
|
+
readonly description: "A step-up approver, as an Ed25519 `did:key` (`z6Mk…`). `did:key` only, because its document is a function of the key and resolves with no network, so verifying an approver's statement never depends on a fetch, and a key whose DID document could be rewritten after enrolment would not be the key that was enrolled. Distinct from the subject's DID, from every verification method in the subject's DID document, and from every key the subject can sign operations with at the relying party.";
|
|
611
|
+
};
|
|
612
|
+
readonly CredentialRequestOptions: {
|
|
613
|
+
readonly $anchor: "credentialRequestOptions";
|
|
614
|
+
readonly title: "PublicKeyCredentialRequestOptions";
|
|
615
|
+
readonly description: "Server-issued options for `navigator.credentials.get({ publicKey: ... })`.";
|
|
616
|
+
readonly type: "object";
|
|
617
|
+
readonly additionalProperties: false;
|
|
618
|
+
readonly required: readonly ["challenge"];
|
|
619
|
+
readonly properties: {
|
|
620
|
+
readonly extensions: {
|
|
621
|
+
readonly type: "object";
|
|
622
|
+
readonly description: "Client extension inputs, per the WebAuthn Level 2 `AuthenticationExtensionsClientInputs` dictionary.\n\nThis component states that it mirrors the W3C dictionary, and that dictionary defines `extensions`. Omitting it while closing the object with `additionalProperties: false` made the two claims contradict each other: a server emitting standard WebAuthn options could not conform, and the widely-used server libraries emit this member by default.\n\nStructure is deliberately unconstrained. The set of extensions is open and registered outside this framework, so enumerating them here would date the schema against a registry it does not own — and a closed list would reproduce the original defect one revision later.";
|
|
623
|
+
};
|
|
624
|
+
readonly challenge: {
|
|
625
|
+
readonly type: "string";
|
|
626
|
+
readonly description: "base64url-encoded one-time nonce.";
|
|
627
|
+
};
|
|
628
|
+
readonly timeout: {
|
|
629
|
+
readonly type: "integer";
|
|
630
|
+
readonly minimum: 1;
|
|
631
|
+
};
|
|
632
|
+
readonly rpId: {
|
|
633
|
+
readonly type: "string";
|
|
634
|
+
readonly minLength: 1;
|
|
635
|
+
};
|
|
636
|
+
readonly allowCredentials: {
|
|
637
|
+
readonly type: "array";
|
|
638
|
+
readonly items: {
|
|
639
|
+
readonly $ref: "#/$defs/CredentialDescriptor";
|
|
640
|
+
};
|
|
641
|
+
};
|
|
642
|
+
readonly userVerification: {
|
|
643
|
+
readonly enum: readonly ["discouraged", "preferred", "required"];
|
|
644
|
+
};
|
|
645
|
+
};
|
|
646
|
+
};
|
|
647
|
+
readonly CredentialDescriptor: {
|
|
648
|
+
readonly $anchor: "credentialDescriptor";
|
|
649
|
+
readonly title: "PublicKeyCredentialDescriptor";
|
|
650
|
+
readonly type: "object";
|
|
651
|
+
readonly additionalProperties: false;
|
|
652
|
+
readonly required: readonly ["type", "id"];
|
|
653
|
+
readonly properties: {
|
|
654
|
+
readonly type: {
|
|
655
|
+
readonly const: "public-key";
|
|
656
|
+
};
|
|
657
|
+
readonly id: {
|
|
658
|
+
readonly type: "string";
|
|
659
|
+
readonly description: "base64url-encoded credential id.";
|
|
660
|
+
};
|
|
661
|
+
readonly transports: {
|
|
662
|
+
readonly type: "array";
|
|
663
|
+
readonly items: {
|
|
664
|
+
readonly enum: readonly ["usb", "nfc", "ble", "internal", "hybrid"];
|
|
665
|
+
};
|
|
666
|
+
};
|
|
667
|
+
};
|
|
668
|
+
};
|
|
669
|
+
};
|
|
670
|
+
};
|
|
671
|
+
};
|
|
672
|
+
//# sourceMappingURL=payload.d.ts.map
|