@openvtc/trust-tasks 0.22.5 → 0.22.6
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/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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- 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/index.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,38 @@ The package versions over **its own API** — what a consumer compiles against
|
|
|
11
11
|
not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
|
|
12
12
|
component.
|
|
13
13
|
|
|
14
|
+
## 0.22.6 — 2026-10-02
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **auth/signing-key**: Enroll 0.2 — the identity's own authorization, and key replacement (#712)
|
|
20
|
+
|
|
21
|
+
auth/signing-key/enroll/0.2 adds two optional members to 0.1:
|
|
22
|
+
|
|
23
|
+
- authorization: a complete auth/signing-key/authorize/0.1 document (new),
|
|
24
|
+
issued and signed by identityDid, addressed to the consumer, whose payload
|
|
25
|
+
is the enrolment's payload with authorization removed. A valid one is the
|
|
26
|
+
authority evidence of control over identityDid in place of an
|
|
27
|
+
operation-bound step-up. For a holder who signs in with a key its agent
|
|
28
|
+
holds (a VTA wallet persona) and has no passkey at the consumer, it is the
|
|
29
|
+
only evidence available, and it is the stronger of the two.
|
|
30
|
+
- replaces: an active delegation of the same identity revoked in the same
|
|
31
|
+
critical section as the enrolment. At the consumer's cap a holder whose
|
|
32
|
+
other keys live on browsers it no longer has could neither list nor revoke
|
|
33
|
+
them — both need a working key — and so could not enrol at all.
|
|
34
|
+
|
|
35
|
+
tooManyKeys gains details.activeKeys, listed only once the enrolment's
|
|
36
|
+
authority evidence has been accepted. New codes: authorizationInvalid,
|
|
37
|
+
replaceNotFound (one answer for every reason). The cap is decided after the
|
|
38
|
+
evidence and standing, counting a replaced key as gone. Producers SHOULD mint
|
|
39
|
+
a new key per enrolment: an expired delegation still answers
|
|
40
|
+
alreadyEnrolled.
|
|
41
|
+
|
|
42
|
+
authorization is an open object in the enroll schema on purpose: its proof
|
|
43
|
+
covers every member, so a binding must not narrow it to a typed struct that
|
|
44
|
+
drops one before verification.
|
|
45
|
+
|
|
14
46
|
## 0.22.5 — 2026-10-02
|
|
15
47
|
|
|
16
48
|
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/auth/signing-key/authorize/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { DeviceLabel, Ext, SigningKeyDid, SigningKeyScope } from "../../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* The terms of one signing-key enrolment, signed by the identity the key will act for. Exactly the payload of the auth/signing-key/enroll/0.2 document that carries this one as its `authorization`, with that member removed; the consumer compares the two and refuses any difference. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
|
|
8
|
+
*/
|
|
9
|
+
export interface AuthSigningKeyAuthorizePayload {
|
|
10
|
+
signingKeyDid: SigningKeyDid;
|
|
11
|
+
/**
|
|
12
|
+
* The identity authorizing the delegation. Equal to the document's `issuer`: the identity signs for itself.
|
|
13
|
+
*/
|
|
14
|
+
identityDid: string;
|
|
15
|
+
scope: SigningKeyScope;
|
|
16
|
+
deviceLabel?: DeviceLabel;
|
|
17
|
+
/**
|
|
18
|
+
* The lifetime the enrolment requests, as in auth/signing-key/enroll/0.2.
|
|
19
|
+
*/
|
|
20
|
+
expiresAt?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The identity's active key the enrolment replaces, as in auth/signing-key/enroll/0.2. Signed here so an authorization to add a key cannot be reused to remove one.
|
|
23
|
+
*/
|
|
24
|
+
replaces?: SigningKeyDid;
|
|
25
|
+
ext?: Ext;
|
|
26
|
+
}
|
|
27
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
28
|
+
export type { DeviceLabel, Ext, SigningKeyDid, SigningKeyScope };
|
|
29
|
+
/** Trust Task type URI. */
|
|
30
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/auth/signing-key/authorize/0.1";
|
|
31
|
+
/** Stable alias for this specification's request payload shape. */
|
|
32
|
+
export type Payload = AuthSigningKeyAuthorizePayload;
|
|
33
|
+
/**
|
|
34
|
+
* This specification's payload schema, as a value.
|
|
35
|
+
*
|
|
36
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
37
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
38
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
39
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
40
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
41
|
+
*/
|
|
42
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
43
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
44
|
+
readonly $id: "https://trusttasks.org/spec/auth/signing-key/authorize/0.1";
|
|
45
|
+
readonly title: "Auth — Signing Key Authorize — payload";
|
|
46
|
+
readonly description: "The terms of one signing-key enrolment, signed by the identity the key will act for. Exactly the payload of the auth/signing-key/enroll/0.2 document that carries this one as its `authorization`, with that member removed; the consumer compares the two and refuses any difference. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
|
|
47
|
+
readonly type: "object";
|
|
48
|
+
readonly additionalProperties: false;
|
|
49
|
+
readonly required: readonly ["signingKeyDid", "identityDid", "scope"];
|
|
50
|
+
readonly properties: {
|
|
51
|
+
readonly signingKeyDid: {
|
|
52
|
+
readonly $ref: "#/$defs/SigningKeyDid";
|
|
53
|
+
};
|
|
54
|
+
readonly identityDid: {
|
|
55
|
+
readonly type: "string";
|
|
56
|
+
readonly pattern: "^did:";
|
|
57
|
+
readonly minLength: 5;
|
|
58
|
+
readonly maxLength: 2048;
|
|
59
|
+
readonly description: "The identity authorizing the delegation. Equal to the document's `issuer`: the identity signs for itself.";
|
|
60
|
+
};
|
|
61
|
+
readonly scope: {
|
|
62
|
+
readonly $ref: "#/$defs/SigningKeyScope";
|
|
63
|
+
};
|
|
64
|
+
readonly deviceLabel: {
|
|
65
|
+
readonly $ref: "#/$defs/DeviceLabel";
|
|
66
|
+
};
|
|
67
|
+
readonly expiresAt: {
|
|
68
|
+
readonly type: "string";
|
|
69
|
+
readonly format: "date-time";
|
|
70
|
+
readonly description: "The lifetime the enrolment requests, as in auth/signing-key/enroll/0.2.";
|
|
71
|
+
};
|
|
72
|
+
readonly replaces: {
|
|
73
|
+
readonly $ref: "#/$defs/SigningKeyDid";
|
|
74
|
+
readonly description: "The identity's active key the enrolment replaces, as in auth/signing-key/enroll/0.2. Signed here so an authorization to add a key cannot be reused to remove one.";
|
|
75
|
+
};
|
|
76
|
+
readonly ext: {
|
|
77
|
+
readonly $ref: "#/$defs/Ext";
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
readonly $defs: {
|
|
81
|
+
readonly Ext: {
|
|
82
|
+
readonly title: "Ext";
|
|
83
|
+
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.";
|
|
84
|
+
readonly type: "object";
|
|
85
|
+
readonly minProperties: 1;
|
|
86
|
+
readonly additionalProperties: true;
|
|
87
|
+
readonly propertyNames: {
|
|
88
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
readonly SigningKeyDid: {
|
|
92
|
+
readonly title: "SigningKeyDid";
|
|
93
|
+
readonly type: "string";
|
|
94
|
+
readonly minLength: 9;
|
|
95
|
+
readonly maxLength: 256;
|
|
96
|
+
readonly pattern: "^did:key:z[1-9A-HJ-NP-Za-km-z]+$";
|
|
97
|
+
readonly description: "The delegated key, as a `did:key` — an Ed25519 multikey (`z6Mk…`) derived from the public half of a keypair the holder generated for itself, typically a non-extractable browser key. `did:key` only, because its document is a function of the key and resolves with no network: a key whose DID document could be rewritten after enrolment is not the key that was enrolled.";
|
|
98
|
+
};
|
|
99
|
+
readonly DeviceLabel: {
|
|
100
|
+
readonly title: "DeviceLabel";
|
|
101
|
+
readonly type: "string";
|
|
102
|
+
readonly minLength: 1;
|
|
103
|
+
readonly maxLength: 128;
|
|
104
|
+
readonly description: "A human-readable name for where the key lives, chosen by the enrolling identity — e.g. `Work laptop — Chrome`. Read by that identity and by administrators deciding which key to revoke; retained with the delegation. Free text authored by the enrolling identity, untrusted, and attributed to it wherever it is rendered. Absent rather than invented when none was chosen: an invented label is indistinguishable from a chosen one to somebody deciding which key to revoke.";
|
|
105
|
+
};
|
|
106
|
+
readonly SigningKeyScope: {
|
|
107
|
+
readonly title: "SigningKeyScope";
|
|
108
|
+
readonly type: "string";
|
|
109
|
+
readonly enum: readonly ["console"];
|
|
110
|
+
readonly description: "What a delegated key may be accepted for. `console`: the operations an administration console performs on the identity's behalf, authorized by the identity's own standing. Never an approver's signature on a consent or approval decision, whatever the scope: those require an `assertionMethod` key of the approver's own DID document, which a delegated key never is. A closed enumeration so a consumer cannot be asked for a scope it does not define; a later version adds values.";
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
116
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
117
|
+
* per-specification and cannot be derived from the document alone, and
|
|
118
|
+
* item 2 needs the schema this carries.
|
|
119
|
+
*/
|
|
120
|
+
export declare const SPEC: {
|
|
121
|
+
readonly typeUri: "https://trusttasks.org/spec/auth/signing-key/authorize/0.1";
|
|
122
|
+
readonly isBearer: false;
|
|
123
|
+
readonly isProofRequired: true;
|
|
124
|
+
readonly isRecipientRequired: true;
|
|
125
|
+
readonly isIssuedAtRequired: true;
|
|
126
|
+
readonly payloadSchema: {
|
|
127
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
128
|
+
readonly $id: "https://trusttasks.org/spec/auth/signing-key/authorize/0.1";
|
|
129
|
+
readonly title: "Auth — Signing Key Authorize — payload";
|
|
130
|
+
readonly description: "The terms of one signing-key enrolment, signed by the identity the key will act for. Exactly the payload of the auth/signing-key/enroll/0.2 document that carries this one as its `authorization`, with that member removed; the consumer compares the two and refuses any difference. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
|
|
131
|
+
readonly type: "object";
|
|
132
|
+
readonly additionalProperties: false;
|
|
133
|
+
readonly required: readonly ["signingKeyDid", "identityDid", "scope"];
|
|
134
|
+
readonly properties: {
|
|
135
|
+
readonly signingKeyDid: {
|
|
136
|
+
readonly $ref: "#/$defs/SigningKeyDid";
|
|
137
|
+
};
|
|
138
|
+
readonly identityDid: {
|
|
139
|
+
readonly type: "string";
|
|
140
|
+
readonly pattern: "^did:";
|
|
141
|
+
readonly minLength: 5;
|
|
142
|
+
readonly maxLength: 2048;
|
|
143
|
+
readonly description: "The identity authorizing the delegation. Equal to the document's `issuer`: the identity signs for itself.";
|
|
144
|
+
};
|
|
145
|
+
readonly scope: {
|
|
146
|
+
readonly $ref: "#/$defs/SigningKeyScope";
|
|
147
|
+
};
|
|
148
|
+
readonly deviceLabel: {
|
|
149
|
+
readonly $ref: "#/$defs/DeviceLabel";
|
|
150
|
+
};
|
|
151
|
+
readonly expiresAt: {
|
|
152
|
+
readonly type: "string";
|
|
153
|
+
readonly format: "date-time";
|
|
154
|
+
readonly description: "The lifetime the enrolment requests, as in auth/signing-key/enroll/0.2.";
|
|
155
|
+
};
|
|
156
|
+
readonly replaces: {
|
|
157
|
+
readonly $ref: "#/$defs/SigningKeyDid";
|
|
158
|
+
readonly description: "The identity's active key the enrolment replaces, as in auth/signing-key/enroll/0.2. Signed here so an authorization to add a key cannot be reused to remove one.";
|
|
159
|
+
};
|
|
160
|
+
readonly ext: {
|
|
161
|
+
readonly $ref: "#/$defs/Ext";
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
readonly $defs: {
|
|
165
|
+
readonly Ext: {
|
|
166
|
+
readonly title: "Ext";
|
|
167
|
+
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.";
|
|
168
|
+
readonly type: "object";
|
|
169
|
+
readonly minProperties: 1;
|
|
170
|
+
readonly additionalProperties: true;
|
|
171
|
+
readonly propertyNames: {
|
|
172
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
readonly SigningKeyDid: {
|
|
176
|
+
readonly title: "SigningKeyDid";
|
|
177
|
+
readonly type: "string";
|
|
178
|
+
readonly minLength: 9;
|
|
179
|
+
readonly maxLength: 256;
|
|
180
|
+
readonly pattern: "^did:key:z[1-9A-HJ-NP-Za-km-z]+$";
|
|
181
|
+
readonly description: "The delegated key, as a `did:key` — an Ed25519 multikey (`z6Mk…`) derived from the public half of a keypair the holder generated for itself, typically a non-extractable browser key. `did:key` only, because its document is a function of the key and resolves with no network: a key whose DID document could be rewritten after enrolment is not the key that was enrolled.";
|
|
182
|
+
};
|
|
183
|
+
readonly DeviceLabel: {
|
|
184
|
+
readonly title: "DeviceLabel";
|
|
185
|
+
readonly type: "string";
|
|
186
|
+
readonly minLength: 1;
|
|
187
|
+
readonly maxLength: 128;
|
|
188
|
+
readonly description: "A human-readable name for where the key lives, chosen by the enrolling identity — e.g. `Work laptop — Chrome`. Read by that identity and by administrators deciding which key to revoke; retained with the delegation. Free text authored by the enrolling identity, untrusted, and attributed to it wherever it is rendered. Absent rather than invented when none was chosen: an invented label is indistinguishable from a chosen one to somebody deciding which key to revoke.";
|
|
189
|
+
};
|
|
190
|
+
readonly SigningKeyScope: {
|
|
191
|
+
readonly title: "SigningKeyScope";
|
|
192
|
+
readonly type: "string";
|
|
193
|
+
readonly enum: readonly ["console"];
|
|
194
|
+
readonly description: "What a delegated key may be accepted for. `console`: the operations an administration console performs on the identity's behalf, authorized by the identity's own standing. Never an approver's signature on a consent or approval decision, whatever the scope: those require an `assertionMethod` key of the approver's own DID document, which a delegated key never is. A closed enumeration so a consumer cannot be asked for a scope it does not define; a later version adds values.";
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../src/auth/signing-key/authorize/0.1/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAG1G;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,kHAAkH;AAClH,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAEjE,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,EAAG,4DAAqE,CAAC;AAE9F,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,8BAA8B,CAAC;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EjB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/auth/signing-key/authorize/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
/** Trust Task type URI. */
|
|
6
|
+
export const TYPE_URI = "https://trusttasks.org/spec/auth/signing-key/authorize/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/auth/signing-key/authorize/0.1",
|
|
19
|
+
"title": "Auth — Signing Key Authorize — payload",
|
|
20
|
+
"description": "The terms of one signing-key enrolment, signed by the identity the key will act for. Exactly the payload of the auth/signing-key/enroll/0.2 document that carries this one as its `authorization`, with that member removed; the consumer compares the two and refuses any difference. 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
|
+
"signingKeyDid",
|
|
25
|
+
"identityDid",
|
|
26
|
+
"scope"
|
|
27
|
+
],
|
|
28
|
+
"properties": {
|
|
29
|
+
"signingKeyDid": {
|
|
30
|
+
"$ref": "#/$defs/SigningKeyDid"
|
|
31
|
+
},
|
|
32
|
+
"identityDid": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"pattern": "^did:",
|
|
35
|
+
"minLength": 5,
|
|
36
|
+
"maxLength": 2048,
|
|
37
|
+
"description": "The identity authorizing the delegation. Equal to the document's `issuer`: the identity signs for itself."
|
|
38
|
+
},
|
|
39
|
+
"scope": {
|
|
40
|
+
"$ref": "#/$defs/SigningKeyScope"
|
|
41
|
+
},
|
|
42
|
+
"deviceLabel": {
|
|
43
|
+
"$ref": "#/$defs/DeviceLabel"
|
|
44
|
+
},
|
|
45
|
+
"expiresAt": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"format": "date-time",
|
|
48
|
+
"description": "The lifetime the enrolment requests, as in auth/signing-key/enroll/0.2."
|
|
49
|
+
},
|
|
50
|
+
"replaces": {
|
|
51
|
+
"$ref": "#/$defs/SigningKeyDid",
|
|
52
|
+
"description": "The identity's active key the enrolment replaces, as in auth/signing-key/enroll/0.2. Signed here so an authorization to add a key cannot be reused to remove one."
|
|
53
|
+
},
|
|
54
|
+
"ext": {
|
|
55
|
+
"$ref": "#/$defs/Ext"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"$defs": {
|
|
59
|
+
"Ext": {
|
|
60
|
+
"title": "Ext",
|
|
61
|
+
"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.",
|
|
62
|
+
"type": "object",
|
|
63
|
+
"minProperties": 1,
|
|
64
|
+
"additionalProperties": true,
|
|
65
|
+
"propertyNames": {
|
|
66
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"SigningKeyDid": {
|
|
70
|
+
"title": "SigningKeyDid",
|
|
71
|
+
"type": "string",
|
|
72
|
+
"minLength": 9,
|
|
73
|
+
"maxLength": 256,
|
|
74
|
+
"pattern": "^did:key:z[1-9A-HJ-NP-Za-km-z]+$",
|
|
75
|
+
"description": "The delegated key, as a `did:key` — an Ed25519 multikey (`z6Mk…`) derived from the public half of a keypair the holder generated for itself, typically a non-extractable browser key. `did:key` only, because its document is a function of the key and resolves with no network: a key whose DID document could be rewritten after enrolment is not the key that was enrolled."
|
|
76
|
+
},
|
|
77
|
+
"DeviceLabel": {
|
|
78
|
+
"title": "DeviceLabel",
|
|
79
|
+
"type": "string",
|
|
80
|
+
"minLength": 1,
|
|
81
|
+
"maxLength": 128,
|
|
82
|
+
"description": "A human-readable name for where the key lives, chosen by the enrolling identity — e.g. `Work laptop — Chrome`. Read by that identity and by administrators deciding which key to revoke; retained with the delegation. Free text authored by the enrolling identity, untrusted, and attributed to it wherever it is rendered. Absent rather than invented when none was chosen: an invented label is indistinguishable from a chosen one to somebody deciding which key to revoke."
|
|
83
|
+
},
|
|
84
|
+
"SigningKeyScope": {
|
|
85
|
+
"title": "SigningKeyScope",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": [
|
|
88
|
+
"console"
|
|
89
|
+
],
|
|
90
|
+
"description": "What a delegated key may be accepted for. `console`: the operations an administration console performs on the identity's behalf, authorized by the identity's own standing. Never an approver's signature on a consent or approval decision, whatever the scope: those require an `assertionMethod` key of the approver's own DID document, which a delegated key never is. A closed enumeration so a consumer cannot be asked for a scope it does not define; a later version adds values."
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
96
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
97
|
+
* per-specification and cannot be derived from the document alone, and
|
|
98
|
+
* item 2 needs the schema this carries.
|
|
99
|
+
*/
|
|
100
|
+
export const SPEC = {
|
|
101
|
+
typeUri: TYPE_URI,
|
|
102
|
+
isBearer: false,
|
|
103
|
+
isProofRequired: true,
|
|
104
|
+
isRecipientRequired: true,
|
|
105
|
+
isIssuedAtRequired: true,
|
|
106
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../../../src/auth/signing-key/authorize/0.1/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH,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,wCAAwC;IACjD,aAAa,EAAE,qZAAqZ;IACpa,MAAM,EAAE,QAAQ;IAChB,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE;QACV,eAAe;QACf,aAAa;QACb,OAAO;KACR;IACD,YAAY,EAAE;QACZ,eAAe,EAAE;YACf,MAAM,EAAE,uBAAuB;SAChC;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,2GAA2G;SAC3H;QACD,OAAO,EAAE;YACP,MAAM,EAAE,yBAAyB;SAClC;QACD,aAAa,EAAE;YACb,MAAM,EAAE,qBAAqB;SAC9B;QACD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,yEAAyE;SACzF;QACD,UAAU,EAAE;YACV,MAAM,EAAE,uBAAuB;YAC/B,aAAa,EAAE,mKAAmK;SACnL;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;QACD,eAAe,EAAE;YACf,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kCAAkC;YAC7C,aAAa,EAAE,iXAAiX;SACjY;QACD,aAAa,EAAE;YACb,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,odAAod;SACpe;QACD,iBAAiB,EAAE;YACjB,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE;gBACN,SAAS;aACV;YACD,aAAa,EAAE,6dAA6d;SAC7e;KACF;CACO,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,cAAc;CACrB,CAAC"}
|