@openvtc/trust-tasks 0.25.2 → 0.26.0

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 (33) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/_shared/components.d.ts +10 -1
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/vtc/_shared/0.1/room-storage.d.ts +1 -1
  5. package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -1
  6. package/dist/vtc/storage/configs/create/0.1/payload.d.ts +50 -10
  7. package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -1
  8. package/dist/vtc/storage/configs/create/0.1/payload.js +24 -2
  9. package/dist/vtc/storage/configs/create/0.1/payload.js.map +1 -1
  10. package/dist/vtc/storage/configs/get/0.1/payload.d.ts +66 -10
  11. package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -1
  12. package/dist/vtc/storage/configs/get/0.1/payload.js +32 -2
  13. package/dist/vtc/storage/configs/get/0.1/payload.js.map +1 -1
  14. package/dist/vtc/storage/configs/list/0.1/payload.d.ts +66 -10
  15. package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -1
  16. package/dist/vtc/storage/configs/list/0.1/payload.js +32 -2
  17. package/dist/vtc/storage/configs/list/0.1/payload.js.map +1 -1
  18. package/dist/vtc/storage/configs/update/0.1/payload.d.ts +50 -10
  19. package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -1
  20. package/dist/vtc/storage/configs/update/0.1/payload.js +24 -2
  21. package/dist/vtc/storage/configs/update/0.1/payload.js.map +1 -1
  22. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +46 -2
  23. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -1
  24. package/dist/vtc/storage/credentials/set/0.1/payload.js +22 -0
  25. package/dist/vtc/storage/credentials/set/0.1/payload.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/_shared/components.ts +10 -1
  28. package/src/vtc/_shared/0.1/room-storage.ts +1 -1
  29. package/src/vtc/storage/configs/create/0.1/payload.ts +26 -4
  30. package/src/vtc/storage/configs/get/0.1/payload.ts +34 -4
  31. package/src/vtc/storage/configs/list/0.1/payload.ts +34 -4
  32. package/src/vtc/storage/configs/update/0.1/payload.ts +26 -4
  33. package/src/vtc/storage/credentials/set/0.1/payload.ts +24 -2
package/CHANGELOG.md CHANGED
@@ -11,6 +11,34 @@ 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.0 — 2026-10-13
15
+
16
+
17
+ ### Specifications
18
+
19
+ - **vtc**: A vta-account storage config names the account's context as well as its identifier (#758)
20
+
21
+ `StorageAuth`'s `vta-account` variant named only `account`, but a VTA names an
22
+ external account by the context that owns it and its identifier there: the
23
+ `external/credentials/issue` task the community sends requires both. A
24
+ community could only fill the gap from something outside the config, which
25
+ makes a config mean something only on the host that stored it, confines every
26
+ account a community uses to one context, and leaves each implementation to
27
+ fill the gap its own way.
28
+
29
+ `vta-account` now requires `context` (`ExternalAccountContextId`, the issue
30
+ task's `AccountContextId` form), and `CredentialState` carries it beside
31
+ `account`. Naming a context grants nothing: the VTA issues only to a consumer
32
+ bound to the account and holding `external-auth-use` in that context.
33
+ `vtc/storage/configs/create` item 5 addresses the account by that pair and
34
+ never by an identifier resolved against a context of the community's own
35
+ choosing; `unknownAccount` on create and update says so. A new invalid
36
+ example covers a missing context.
37
+
38
+ Breaking for the generated types: a new required member. No community could
39
+ create a `vta-account` config before this (the one implementation refused
40
+ every kind but `local`), so no stored config lacks it.
41
+
14
42
  ## 0.25.2 — 2026-10-13
15
43
 
16
44
 
@@ -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
  */