@openvtc/trust-tasks 0.26.5 → 0.26.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 +3 -3
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +4 -2
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +4 -2
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +4 -2
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +4 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/external/accounts/secret/set/0.1/payload.d.ts +4 -4
- package/dist/external/accounts/secret/set/0.1/payload.js +2 -2
- package/dist/external/accounts/secret/set/0.1/payload.js.map +1 -1
- package/dist/external/credentials/issue/0.1/payload.d.ts +4 -4
- package/dist/external/credentials/issue/0.1/payload.js +2 -2
- package/dist/external/credentials/issue/0.1/payload.js.map +1 -1
- package/dist/external/credentials/issue/0.2/payload.d.ts +1517 -0
- package/dist/external/credentials/issue/0.2/payload.d.ts.map +1 -0
- package/dist/external/credentials/issue/0.2/payload.js +845 -0
- package/dist/external/credentials/issue/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/dist/vta/witness/request/0.1/payload.d.ts +597 -0
- package/dist/vta/witness/request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/witness/request/0.1/payload.js +311 -0
- package/dist/vta/witness/request/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +5 -3
- package/src/device/list/0.1/payload.ts +4 -2
- package/src/device/list/0.2/payload.ts +4 -2
- package/src/device/register/0.1/payload.ts +4 -2
- package/src/device/register/0.2/payload.ts +4 -2
- package/src/external/accounts/secret/set/0.1/payload.ts +2 -2
- package/src/external/credentials/issue/0.1/payload.ts +2 -2
- package/src/external/credentials/issue/0.2/payload.ts +995 -0
- package/src/index.ts +2 -0
- package/src/vta/witness/request/0.1/payload.ts +405 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,86 @@ 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.26.7 — 2026-10-15
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **vta/witness**: Vta/witness/request — the VTA runs a witnessed session for its principal's relationship (#777)
|
|
20
|
+
|
|
21
|
+
A Verifiable Witness Credential is issued to the participating party of a
|
|
22
|
+
witness/session, who presents its relationship credential bound to the
|
|
23
|
+
session's challenge. A principal whose keys and credentials live in a VTA
|
|
24
|
+
cannot do that from a client that holds neither. This adds
|
|
25
|
+
vta/witness/request/0.1: the client names a witness, the relationship
|
|
26
|
+
(relationshipDid, counterpartyDid, the enclosing thread) and credentials by
|
|
27
|
+
vault handle; the VTA opens the session as the relationship DID, builds and
|
|
28
|
+
signs the presentation itself, submits, verifies the VWC as a verifier of
|
|
29
|
+
the evidence would (issuer = session recipient = response signer,
|
|
30
|
+
taskContext/taskDigest over the session document as sent, subject and
|
|
31
|
+
object digest, vwcDigestMultibase), and stores it in the credential vault
|
|
32
|
+
with its evidence — the session document as sent and the submit #response
|
|
33
|
+
as received. It answers with the vault handle, the digest and the two
|
|
34
|
+
evidence documents (which carry the VWC); never a key, a presentation or
|
|
35
|
+
the challenge.
|
|
36
|
+
|
|
37
|
+
Membership evidence is optional. A VMC naming the relationship DID rides
|
|
38
|
+
in the relationship presentation; one naming a member DID needs an
|
|
39
|
+
explicit memberDid, and the VTA builds a second presentation by that DID
|
|
40
|
+
bound to the same session. witness/session/submit/0.1 has no member for
|
|
41
|
+
it, so its carriage is the witness's own (SPEC 4.5.1 leaves an ext
|
|
42
|
+
namespace's semantics to its controller); the OpenVTC carriage is cited
|
|
43
|
+
non-normatively.
|
|
44
|
+
|
|
45
|
+
Authorization is standing over every context the task touches, expressed
|
|
46
|
+
as the new witnessRequest capability (witness-request in device/_shared
|
|
47
|
+
0.1), which is not sign and is not satisfied by sign. Errors: notFound,
|
|
48
|
+
credentialMismatch, noMatchingProtocol, witnessUnreachable (retryable),
|
|
49
|
+
witnessRefused, challengeMismatch, presentationInvalid (the witness's own
|
|
50
|
+
code and message in details), vwcInvalid.
|
|
51
|
+
|
|
52
|
+
## 0.26.6 — 2026-10-15
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### Specifications
|
|
56
|
+
|
|
57
|
+
- **external**: Credentials/issue 0.2 — batched presigned requests with signed length and checksum, multipart and head, for direct uploads (#775)
|
|
58
|
+
|
|
59
|
+
rooms/blobs/upload/begin/0.2 lets a host answer with direct-to-storage
|
|
60
|
+
targets whose PUT binds each part's exact length and SHA-256 (item 17),
|
|
61
|
+
and commit/0.2 has the host verify the object at storage and complete a
|
|
62
|
+
multipart upload before recording (item 3). A host that holds no storage
|
|
63
|
+
credential asks its custodian for each request through
|
|
64
|
+
external/credentials/issue on an s3-static-presign account, and 0.1 can
|
|
65
|
+
express none of it: one GET/PUT/DELETE per issuance, no signed headers,
|
|
66
|
+
no multipart operations, no HEAD.
|
|
67
|
+
|
|
68
|
+
external/credentials/issue 0.2:
|
|
69
|
+
- the payload takes either `scope` (session and token models, as 0.1)
|
|
70
|
+
or `presign` (s3-static-presign only): one object, at most one
|
|
71
|
+
multipart upload of it, up to 128 operations — put, get, head, delete,
|
|
72
|
+
create-multipart, upload-part, list-parts, complete-multipart,
|
|
73
|
+
abort-multipart;
|
|
74
|
+
- the custodian signs Content-Length and x-amz-checksum-sha256 into put
|
|
75
|
+
and upload-part, uploadId/partNumber into the query,
|
|
76
|
+
x-amz-checksum-algorithm into create-multipart, x-amz-mp-object-size
|
|
77
|
+
into complete-multipart, x-amz-checksum-mode into head, so storage is
|
|
78
|
+
the enforcer;
|
|
79
|
+
- every operation is presigned, none performed: issuance keeps needing
|
|
80
|
+
no egress, and verifying the object stays the host's duty;
|
|
81
|
+
- the binding ceiling is unchanged: each operation is authorized by
|
|
82
|
+
put / get / delete (multipart writes by put, head by get, abort by
|
|
83
|
+
delete), so no account record or other task changes shape;
|
|
84
|
+
- a batch counts once against the binding's rate;
|
|
85
|
+
- new errors requestShapeMismatch and invalidBatch; the sealed cleartext
|
|
86
|
+
for presign is a PresignedRequestSet; the response's bundle is bounded
|
|
87
|
+
at 256 KiB, maxDocumentBytes declared.
|
|
88
|
+
|
|
89
|
+
external/_shared/0.1 gains PresignOperation and PresignedRequestSet
|
|
90
|
+
(additive); CONVENTIONS §6 names the new cleartext. Bindings regenerated.
|
|
91
|
+
rooms/blobs/upload/{begin,commit}/0.2 do not name
|
|
92
|
+
external/credentials/issue, so they are unchanged.
|
|
93
|
+
|
|
14
94
|
## 0.26.5 — 2026-10-15
|
|
15
95
|
|
|
16
96
|
|
|
@@ -396,11 +396,11 @@ export type Capability_AclV0_2 = string;
|
|
|
396
396
|
/**
|
|
397
397
|
* Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything.
|
|
398
398
|
*/
|
|
399
|
-
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "external-accounts-manage" | "external-auth-use" | "pcs-vetter" | "pcs-applicant";
|
|
399
|
+
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "external-accounts-manage" | "external-auth-use" | "pcs-vetter" | "pcs-applicant" | "witness-request";
|
|
400
400
|
/**
|
|
401
401
|
* Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything.
|
|
402
402
|
*/
|
|
403
|
-
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "externalAccountsManage" | "externalAuthUse" | "pcsVetter" | "pcsApplicant";
|
|
403
|
+
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "externalAccountsManage" | "externalAuthUse" | "pcsVetter" | "pcsApplicant" | "witnessRequest";
|
|
404
404
|
/**
|
|
405
405
|
* Number of chunks in the bundle, equal to ceil(expectedSizeBytes / chunkSize). Bounded at 4096 so that the manifest itself — one digest per chunk — fits in the single document that carries it under the same message-size reasoning as a chunk.
|
|
406
406
|
*/
|
|
@@ -1034,7 +1034,7 @@ export type SealedEnvelope_VaultV0_1 = DidcommAuthcryptEnvelope_VaultV0_1 | Hpke
|
|
|
1034
1034
|
*/
|
|
1035
1035
|
export type SealedEnvelope_VaultV0_2 = DidcommAuthcryptEnvelope_VaultV0_2 | HpkeArmoredEnvelope_VaultV0_2 | TspMessageEnvelope_VaultV0_2;
|
|
1036
1036
|
/**
|
|
1037
|
-
* A sealed-transfer bundle: OpenPGP-style ASCII armor around an HPKE-sealed `SealedPayloadV1` (base mode, X25519-HKDF-SHA256 KEM, HKDF-SHA256 KDF, ChaCha20-Poly1305 AEAD, info string `vta-sealed-transfer/v1`), with a producer assertion and Bundle-Id, Chunk and Digest-Algo headers bound into the associated data. Each task states the key it is sealed to: a single-use wrapping key from keys/import-wrapping-key for external/accounts/secret/set, and the caller's key-agreement key for external/credentials/issue. Its cleartext is an ExternalSecretPayload or
|
|
1037
|
+
* A sealed-transfer bundle: OpenPGP-style ASCII armor around an HPKE-sealed `SealedPayloadV1` (base mode, X25519-HKDF-SHA256 KEM, HKDF-SHA256 KDF, ChaCha20-Poly1305 AEAD, info string `vta-sealed-transfer/v1`), with a producer assertion and Bundle-Id, Chunk and Digest-Algo headers bound into the associated data. Each task states the key it is sealed to: a single-use wrapping key from keys/import-wrapping-key for external/accounts/secret/set, and the caller's key-agreement key for external/credentials/issue. Its cleartext is an ExternalSecretPayload, an ExternalCredentialPayload or, from external/credentials/issue 0.2 for `s3-static-presign`, a PresignedRequestSet. The only form in which secret material crosses the wire in this family, in either direction: the seal is what keeps a terminating proxy, a relay, a request log or a debug dump of "the response" from ever holding a usable secret, whatever transport carried the document.
|
|
1038
1038
|
*/
|
|
1039
1039
|
export type SealedTransferBundle = string;
|
|
1040
1040
|
/**
|