@openvtc/trust-tasks 0.25.2 → 0.26.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/_shared/components.d.ts +10 -1
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/vtc/_shared/0.1/room-storage.d.ts +1 -1
  9. package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -1
  10. package/dist/vtc/oid4vp/identities/list/0.1/payload.d.ts +938 -0
  11. package/dist/vtc/oid4vp/identities/list/0.1/payload.d.ts.map +1 -0
  12. package/dist/vtc/oid4vp/identities/list/0.1/payload.js +559 -0
  13. package/dist/vtc/oid4vp/identities/list/0.1/payload.js.map +1 -0
  14. package/dist/vtc/storage/configs/create/0.1/payload.d.ts +50 -10
  15. package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -1
  16. package/dist/vtc/storage/configs/create/0.1/payload.js +24 -2
  17. package/dist/vtc/storage/configs/create/0.1/payload.js.map +1 -1
  18. package/dist/vtc/storage/configs/get/0.1/payload.d.ts +66 -10
  19. package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -1
  20. package/dist/vtc/storage/configs/get/0.1/payload.js +32 -2
  21. package/dist/vtc/storage/configs/get/0.1/payload.js.map +1 -1
  22. package/dist/vtc/storage/configs/list/0.1/payload.d.ts +66 -10
  23. package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -1
  24. package/dist/vtc/storage/configs/list/0.1/payload.js +32 -2
  25. package/dist/vtc/storage/configs/list/0.1/payload.js.map +1 -1
  26. package/dist/vtc/storage/configs/update/0.1/payload.d.ts +50 -10
  27. package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -1
  28. package/dist/vtc/storage/configs/update/0.1/payload.js +24 -2
  29. package/dist/vtc/storage/configs/update/0.1/payload.js.map +1 -1
  30. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +46 -2
  31. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -1
  32. package/dist/vtc/storage/credentials/set/0.1/payload.js +22 -0
  33. package/dist/vtc/storage/credentials/set/0.1/payload.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/_shared/components.ts +10 -1
  36. package/src/index.ts +1 -0
  37. package/src/vtc/_shared/0.1/room-storage.ts +1 -1
  38. package/src/vtc/oid4vp/identities/list/0.1/payload.ts +706 -0
  39. package/src/vtc/storage/configs/create/0.1/payload.ts +26 -4
  40. package/src/vtc/storage/configs/get/0.1/payload.ts +34 -4
  41. package/src/vtc/storage/configs/list/0.1/payload.ts +34 -4
  42. package/src/vtc/storage/configs/update/0.1/payload.ts +26 -4
  43. package/src/vtc/storage/credentials/set/0.1/payload.ts +24 -2
package/CHANGELOG.md CHANGED
@@ -11,6 +11,62 @@ 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.1 — 2026-10-14
15
+
16
+
17
+ ### Added
18
+
19
+ - **vtc**: Verifier identities list — the OpenID4VP verifier's state for administrators (#761)
20
+
21
+ vtc/oid4vp/identities/list/0.1 lets a community's configuration
22
+ administrator read the OpenID4VP verifier identities the community presents
23
+ to swiyu and EUDI wallets, and what stops each from serving one.
24
+
25
+ A verifier identity is installed out of band — a DID registered with an
26
+ ecosystem, an access certificate from a registrar, trust statements from a
27
+ registry — and each part expires on its own schedule. A wallet that refuses
28
+ a request object tells the community nothing. Per identity the response
29
+ gives the client identifier wallets see, the DID and signing method, where
30
+ the key is held (cached, or kept by the community's agent), the access
31
+ certificate's subject, issuer and validity, each verifier_info attestation
32
+ with its expiry, whether it is the default, and whether a session could be
33
+ opened on it now. Problems use a fixed vocabulary with error/warning
34
+ severity: invalid key custody, no loaded signer, no link to the agent, a
35
+ missing, not-yet-valid, expired or expiring certificate, a missing identity
36
+ trust statement, an expired or expiring statement; and, community-wide, a
37
+ default identity that is not installed, or no https public URL.
38
+
39
+ The response never carries key material, nor the identifier under which the
40
+ agent holds a key.
41
+
42
+ ## 0.26.0 — 2026-10-13
43
+
44
+
45
+ ### Specifications
46
+
47
+ - **vtc**: A vta-account storage config names the account's context as well as its identifier (#758)
48
+
49
+ `StorageAuth`'s `vta-account` variant named only `account`, but a VTA names an
50
+ external account by the context that owns it and its identifier there: the
51
+ `external/credentials/issue` task the community sends requires both. A
52
+ community could only fill the gap from something outside the config, which
53
+ makes a config mean something only on the host that stored it, confines every
54
+ account a community uses to one context, and leaves each implementation to
55
+ fill the gap its own way.
56
+
57
+ `vta-account` now requires `context` (`ExternalAccountContextId`, the issue
58
+ task's `AccountContextId` form), and `CredentialState` carries it beside
59
+ `account`. Naming a context grants nothing: the VTA issues only to a consumer
60
+ bound to the account and holding `external-auth-use` in that context.
61
+ `vtc/storage/configs/create` item 5 addresses the account by that pair and
62
+ never by an identifier resolved against a context of the community's own
63
+ choosing; `unknownAccount` on create and update says so. A new invalid
64
+ example covers a missing context.
65
+
66
+ Breaking for the generated types: a new required member. No community could
67
+ create a `vta-account` config before this (the one implementation refused
68
+ every kind but `local`), so no stored config lacks it.
69
+
14
70
  ## 0.25.2 — 2026-10-13
15
71
 
16
72
 
@@ -586,6 +586,10 @@ export type ExpiresAt = string;
586
586
  * @minItems 1
587
587
  */
588
588
  export type ExtCritical = [string, ...string[]];
589
+ /**
590
+ * The context at the community's VTA that owns an external account. The VTA names an account by its context and its identifier, and decides who may use it by act scope in that context: the community must hold `external-auth-use` there, and be bound to the account, for the account to issue it anything. Naming a context grants nothing; the VTA's binding is the gate.
591
+ */
592
+ export type ExternalAccountContextId = string;
589
593
  /**
590
594
  * The identifier of an external account held by the community's VTA (the external/accounts/* family), which issues the community short-lived, room-scoped credentials and holds the long-lived authority itself.
591
595
  */
@@ -1089,7 +1093,7 @@ export type Slot = string;
1089
1093
  /**
1090
1094
  * How the community authenticates to a config's backend. Absent on a `local` config, which needs none.
1091
1095
  *
1092
- * `vta-account` (RECOMMENDED): an external account in the community's VTA. The VTA holds the long-lived authority; the community holds nothing that outlives a credential lifetime, and asks for credentials scoped to one room's prefix for at most 15 minutes, every issuance audited at the VTA. Required for a `walrus` config other than a `sealed` one, since the VTA's `sui-signer` account signs its storage transactions.
1096
+ * `vta-account` (RECOMMENDED): an external account in the community's VTA, named by the context that owns it and its identifier there. The VTA holds the long-lived authority; the community holds nothing that outlives a credential lifetime, and asks for credentials scoped to one room's prefix for at most 15 minutes, every issuance audited at the VTA. Required for a `walrus` config other than a `sealed` one, since the VTA's `sui-signer` account signs its storage transactions.
1093
1097
  *
1094
1098
  * `ambient`: the cloud identity of the machine the community runs on (an instance role, workload identity), downscoped to one room's prefix by the community itself. Not audited or rate-limited by the VTA, and usable by anything on that machine that reaches the metadata endpoint. Not valid for `walrus`.
1095
1099
  *
@@ -1097,6 +1101,7 @@ export type Slot = string;
1097
1101
  */
1098
1102
  export type StorageAuth = {
1099
1103
  mode: "vta-account";
1104
+ context: ExternalAccountContextId;
1100
1105
  account: ExternalAccountId;
1101
1106
  } | {
1102
1107
  mode: "ambient";
@@ -4640,6 +4645,10 @@ export interface CredentialScopeCeiling {
4640
4645
  */
4641
4646
  export interface CredentialState {
4642
4647
  status: "vta-account" | "ambient" | "sealed" | "required" | "none";
4648
+ /**
4649
+ * Present with `vta-account`.
4650
+ */
4651
+ context?: ExternalAccountContextId;
4643
4652
  /**
4644
4653
  * Present with `vta-account`.
4645
4654
  */