@openvtc/trust-tasks 0.20.7 → 0.21.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.
- package/CHANGELOG.md +320 -0
- package/dist/_shared/components.d.ts +299 -2
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/auth/passkey/enroll/invite/0.2/payload.d.ts +456 -0
- package/dist/auth/passkey/enroll/invite/0.2/payload.d.ts.map +1 -0
- package/dist/auth/passkey/enroll/invite/0.2/payload.js +248 -0
- package/dist/auth/passkey/enroll/invite/0.2/payload.js.map +1 -0
- package/dist/auth/passkey/enroll/redeem/finish/0.1/payload.d.ts +728 -0
- package/dist/auth/passkey/enroll/redeem/finish/0.1/payload.d.ts.map +1 -0
- package/dist/auth/passkey/enroll/redeem/finish/0.1/payload.js +430 -0
- package/dist/auth/passkey/enroll/redeem/finish/0.1/payload.js.map +1 -0
- package/dist/auth/passkey/enroll/redeem/start/0.1/payload.d.ts +1043 -0
- package/dist/auth/passkey/enroll/redeem/start/0.1/payload.d.ts.map +1 -0
- package/dist/auth/passkey/enroll/redeem/start/0.1/payload.js +628 -0
- package/dist/auth/passkey/enroll/redeem/start/0.1/payload.js.map +1 -0
- package/dist/auth/passkey/revoke/finish/0.2/payload.d.ts +533 -0
- package/dist/auth/passkey/revoke/finish/0.2/payload.d.ts.map +1 -0
- package/dist/auth/passkey/revoke/finish/0.2/payload.js +315 -0
- package/dist/auth/passkey/revoke/finish/0.2/payload.js.map +1 -0
- package/dist/auth/passkey/revoke/start/0.2/payload.d.ts +511 -0
- package/dist/auth/passkey/revoke/start/0.2/payload.d.ts.map +1 -0
- package/dist/auth/passkey/revoke/start/0.2/payload.js +297 -0
- package/dist/auth/passkey/revoke/start/0.2/payload.js.map +1 -0
- package/dist/auth/step-up/approve-request/0.3/payload.d.ts +613 -0
- package/dist/auth/step-up/approve-request/0.3/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approve-request/0.3/payload.js +345 -0
- package/dist/auth/step-up/approve-request/0.3/payload.js.map +1 -0
- package/dist/auth/step-up/approve-response/0.4/payload.d.ts +887 -0
- package/dist/auth/step-up/approve-response/0.4/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approve-response/0.4/payload.js +504 -0
- package/dist/auth/step-up/approve-response/0.4/payload.js.map +1 -0
- package/dist/auth/step-up/approve-response/0.5/payload.d.ts +887 -0
- package/dist/auth/step-up/approve-response/0.5/payload.d.ts.map +1 -0
- package/dist/auth/step-up/approve-response/0.5/payload.js +504 -0
- package/dist/auth/step-up/approve-response/0.5/payload.js.map +1 -0
- package/dist/backup/abort/0.1/payload.d.ts +262 -0
- package/dist/backup/abort/0.1/payload.d.ts.map +1 -0
- package/dist/backup/abort/0.1/payload.js +146 -0
- package/dist/backup/abort/0.1/payload.js.map +1 -0
- package/dist/backup/complete-export/0.1/payload.d.ts +262 -0
- package/dist/backup/complete-export/0.1/payload.d.ts.map +1 -0
- package/dist/backup/complete-export/0.1/payload.js +146 -0
- package/dist/backup/complete-export/0.1/payload.js.map +1 -0
- package/dist/backup/finalize-import/0.1/payload.d.ts +395 -0
- package/dist/backup/finalize-import/0.1/payload.d.ts.map +1 -0
- package/dist/backup/finalize-import/0.1/payload.js +209 -0
- package/dist/backup/finalize-import/0.1/payload.js.map +1 -0
- package/dist/backup/get-chunk/0.1/payload.d.ts +461 -0
- package/dist/backup/get-chunk/0.1/payload.d.ts.map +1 -0
- package/dist/backup/get-chunk/0.1/payload.js +250 -0
- package/dist/backup/get-chunk/0.1/payload.js.map +1 -0
- package/dist/backup/initiate-export/0.1/payload.d.ts +896 -0
- package/dist/backup/initiate-export/0.1/payload.d.ts.map +1 -0
- package/dist/backup/initiate-export/0.1/payload.js +507 -0
- package/dist/backup/initiate-export/0.1/payload.js.map +1 -0
- package/dist/backup/initiate-import/0.1/payload.d.ts +888 -0
- package/dist/backup/initiate-import/0.1/payload.d.ts.map +1 -0
- package/dist/backup/initiate-import/0.1/payload.js +504 -0
- package/dist/backup/initiate-import/0.1/payload.js.map +1 -0
- package/dist/backup/put-chunk/0.1/payload.d.ts +495 -0
- package/dist/backup/put-chunk/0.1/payload.d.ts.map +1 -0
- package/dist/backup/put-chunk/0.1/payload.js +265 -0
- package/dist/backup/put-chunk/0.1/payload.js.map +1 -0
- 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/git-ns/_shared/0.4/git-ns.d.ts +16 -0
- package/dist/git-ns/_shared/0.4/git-ns.d.ts.map +1 -0
- package/dist/git-ns/_shared/0.4/git-ns.js +6 -0
- package/dist/git-ns/_shared/0.4/git-ns.js.map +1 -0
- package/dist/git-ns/account/link-status/0.1/payload.d.ts +2 -2
- package/dist/git-ns/account/link-status/0.1/payload.js +2 -2
- package/dist/git-ns/account/link-status/0.1/payload.js.map +1 -1
- package/dist/git-ns/account/unlink/0.1/payload.d.ts +411 -0
- package/dist/git-ns/account/unlink/0.1/payload.d.ts.map +1 -0
- package/dist/git-ns/account/unlink/0.1/payload.js +228 -0
- package/dist/git-ns/account/unlink/0.1/payload.js.map +1 -0
- package/dist/git-ns/bridge/event/0.3/payload.d.ts +1682 -0
- package/dist/git-ns/bridge/event/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/bridge/event/0.3/payload.js +971 -0
- package/dist/git-ns/bridge/event/0.3/payload.js.map +1 -0
- package/dist/git-ns/bridge/job/0.4/payload.d.ts +1068 -0
- package/dist/git-ns/bridge/job/0.4/payload.d.ts.map +1 -0
- package/dist/git-ns/bridge/job/0.4/payload.js +573 -0
- package/dist/git-ns/bridge/job/0.4/payload.js.map +1 -0
- package/dist/git-ns/drift/resolve/0.3/payload.d.ts +1072 -0
- package/dist/git-ns/drift/resolve/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/drift/resolve/0.3/payload.js +634 -0
- package/dist/git-ns/drift/resolve/0.3/payload.js.map +1 -0
- package/dist/git-ns/namespace/reseat/0.3/payload.d.ts +515 -0
- package/dist/git-ns/namespace/reseat/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/namespace/reseat/0.3/payload.js +296 -0
- package/dist/git-ns/namespace/reseat/0.3/payload.js.map +1 -0
- package/dist/git-ns/repo/create/0.3/payload.d.ts +1101 -0
- package/dist/git-ns/repo/create/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/repo/create/0.3/payload.js +646 -0
- package/dist/git-ns/repo/create/0.3/payload.js.map +1 -0
- package/dist/git-ns/right/break-glass/0.1/payload.d.ts +685 -0
- package/dist/git-ns/right/break-glass/0.1/payload.d.ts.map +1 -0
- package/dist/git-ns/right/break-glass/0.1/payload.js +397 -0
- package/dist/git-ns/right/break-glass/0.1/payload.js.map +1 -0
- package/dist/git-ns/right/break-glass-notice/0.1/payload.d.ts +384 -0
- package/dist/git-ns/right/break-glass-notice/0.1/payload.d.ts.map +1 -0
- package/dist/git-ns/right/break-glass-notice/0.1/payload.js +216 -0
- package/dist/git-ns/right/break-glass-notice/0.1/payload.js.map +1 -0
- package/dist/git-ns/right/grant/0.3/payload.d.ts +678 -0
- package/dist/git-ns/right/grant/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/right/grant/0.3/payload.js +383 -0
- package/dist/git-ns/right/grant/0.3/payload.js.map +1 -0
- package/dist/git-ns/right/ratify/0.1/payload.d.ts +702 -0
- package/dist/git-ns/right/ratify/0.1/payload.d.ts.map +1 -0
- package/dist/git-ns/right/ratify/0.1/payload.js +404 -0
- package/dist/git-ns/right/ratify/0.1/payload.js.map +1 -0
- package/dist/git-ns/right/revoke/0.3/payload.d.ts +664 -0
- package/dist/git-ns/right/revoke/0.3/payload.d.ts.map +1 -0
- package/dist/git-ns/right/revoke/0.3/payload.js +378 -0
- package/dist/git-ns/right/revoke/0.3/payload.js.map +1 -0
- package/dist/git-ns/roles/reproject/0.1/payload.d.ts +325 -0
- package/dist/git-ns/roles/reproject/0.1/payload.d.ts.map +1 -0
- package/dist/git-ns/roles/reproject/0.1/payload.js +176 -0
- package/dist/git-ns/roles/reproject/0.1/payload.js.map +1 -0
- package/dist/git-ns/view/0.1/payload.d.ts +2 -2
- package/dist/git-ns/view/0.1/payload.js +2 -2
- package/dist/git-ns/view/0.1/payload.js.map +1 -1
- package/dist/git-ns/view/0.2/payload.d.ts +2 -2
- package/dist/git-ns/view/0.2/payload.js +2 -2
- package/dist/git-ns/view/0.2/payload.js.map +1 -1
- package/dist/git-ns/view/0.3/payload.d.ts +2 -2
- package/dist/git-ns/view/0.3/payload.js +2 -2
- package/dist/git-ns/view/0.3/payload.js.map +1 -1
- package/dist/git-ns/view/0.4/payload.d.ts +1696 -0
- package/dist/git-ns/view/0.4/payload.d.ts.map +1 -0
- package/dist/git-ns/view/0.4/payload.js +1012 -0
- package/dist/git-ns/view/0.4/payload.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -1
- package/dist/messaging/message/status/0.1/payload.d.ts +372 -0
- package/dist/messaging/message/status/0.1/payload.d.ts.map +1 -0
- package/dist/messaging/message/status/0.1/payload.js +214 -0
- package/dist/messaging/message/status/0.1/payload.js.map +1 -0
- package/dist/vta/_shared/0.3/did-key-roles.d.ts +16 -0
- package/dist/vta/_shared/0.3/did-key-roles.d.ts.map +1 -0
- package/dist/vta/_shared/0.3/did-key-roles.js +6 -0
- package/dist/vta/_shared/0.3/did-key-roles.js.map +1 -0
- package/dist/vta/attestation/mnemonic-export/1.0/payload.d.ts +326 -0
- package/dist/vta/attestation/mnemonic-export/1.0/payload.d.ts.map +1 -0
- package/dist/vta/attestation/mnemonic-export/1.0/payload.js +175 -0
- package/dist/vta/attestation/mnemonic-export/1.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/keys/add/1.0/payload.d.ts +1914 -0
- package/dist/vta/webvh/dids/keys/add/1.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/keys/add/1.0/payload.js +1128 -0
- package/dist/vta/webvh/dids/keys/add/1.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/keys/list/1.0/payload.d.ts +1603 -0
- package/dist/vta/webvh/dids/keys/list/1.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/keys/list/1.0/payload.js +942 -0
- package/dist/vta/webvh/dids/keys/list/1.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/keys/retire/1.0/payload.d.ts +1914 -0
- package/dist/vta/webvh/dids/keys/retire/1.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/keys/retire/1.0/payload.js +1123 -0
- package/dist/vta/webvh/dids/keys/retire/1.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/keys/revoke/1.0/payload.d.ts +2021 -0
- package/dist/vta/webvh/dids/keys/revoke/1.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/keys/revoke/1.0/payload.js +1168 -0
- package/dist/vta/webvh/dids/keys/revoke/1.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/rotate-keys/2.0/payload.d.ts +1992 -0
- package/dist/vta/webvh/dids/rotate-keys/2.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/rotate-keys/2.0/payload.js +1151 -0
- package/dist/vta/webvh/dids/rotate-keys/2.0/payload.js.map +1 -0
- package/dist/vta/webvh/dids/update/2.0/payload.d.ts +1062 -0
- package/dist/vta/webvh/dids/update/2.0/payload.d.ts.map +1 -0
- package/dist/vta/webvh/dids/update/2.0/payload.js +616 -0
- package/dist/vta/webvh/dids/update/2.0/payload.js.map +1 -0
- package/dist/vtc/credentials/reissue/0.1/payload.d.ts +502 -0
- package/dist/vtc/credentials/reissue/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/credentials/reissue/0.1/payload.js +282 -0
- package/dist/vtc/credentials/reissue/0.1/payload.js.map +1 -0
- package/dist/vtc/members/personhood/challenge/0.1/payload.d.ts +2 -2
- package/dist/vtc/members/personhood/challenge/0.1/payload.js +2 -2
- package/dist/vtc/members/personhood/challenge/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/vetters/profile/0.1/payload.d.ts +2 -2
- package/dist/vtc/vetting/vetters/profile/0.1/payload.js +2 -2
- package/dist/vtc/vetting/vetters/profile/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/vetters/resend/0.1/payload.d.ts +2 -2
- package/dist/vtc/vetting/vetters/resend/0.1/payload.js +2 -2
- package/dist/vtc/vetting/vetters/resend/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +313 -2
- package/src/auth/passkey/enroll/invite/0.2/payload.ts +325 -0
- package/src/auth/passkey/enroll/redeem/finish/0.1/payload.ts +499 -0
- package/src/auth/passkey/enroll/redeem/start/0.1/payload.ts +700 -0
- package/src/auth/passkey/revoke/finish/0.2/payload.ts +379 -0
- package/src/auth/passkey/revoke/start/0.2/payload.ts +349 -0
- package/src/auth/step-up/approve-request/0.3/payload.ts +421 -0
- package/src/auth/step-up/approve-response/0.4/payload.ts +593 -0
- package/src/auth/step-up/approve-response/0.5/payload.ts +593 -0
- package/src/backup/abort/0.1/payload.ts +191 -0
- package/src/backup/complete-export/0.1/payload.ts +191 -0
- package/src/backup/finalize-import/0.1/payload.ts +279 -0
- package/src/backup/get-chunk/0.1/payload.ts +308 -0
- package/src/backup/initiate-export/0.1/payload.ts +564 -0
- package/src/backup/initiate-import/0.1/payload.ts +561 -0
- package/src/backup/put-chunk/0.1/payload.ts +331 -0
- 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/git-ns/_shared/0.4/git-ns.ts +17 -0
- package/src/git-ns/account/link-status/0.1/payload.ts +2 -2
- package/src/git-ns/account/unlink/0.1/payload.ts +274 -0
- package/src/git-ns/bridge/event/0.3/payload.ts +1132 -0
- package/src/git-ns/bridge/job/0.4/payload.ts +691 -0
- package/src/git-ns/drift/resolve/0.3/payload.ts +707 -0
- package/src/git-ns/namespace/reseat/0.3/payload.ts +342 -0
- package/src/git-ns/repo/create/0.3/payload.ts +706 -0
- package/src/git-ns/right/break-glass/0.1/payload.ts +443 -0
- package/src/git-ns/right/break-glass-notice/0.1/payload.ts +258 -0
- package/src/git-ns/right/grant/0.3/payload.ts +434 -0
- package/src/git-ns/right/ratify/0.1/payload.ts +455 -0
- package/src/git-ns/right/revoke/0.3/payload.ts +425 -0
- package/src/git-ns/roles/reproject/0.1/payload.ts +220 -0
- package/src/git-ns/view/0.1/payload.ts +2 -2
- package/src/git-ns/view/0.2/payload.ts +2 -2
- package/src/git-ns/view/0.3/payload.ts +2 -2
- package/src/git-ns/view/0.4/payload.ts +1075 -0
- package/src/index.ts +39 -0
- package/src/messaging/message/status/0.1/payload.ts +270 -0
- package/src/vta/_shared/0.3/did-key-roles.ts +17 -0
- package/src/vta/attestation/mnemonic-export/1.0/payload.ts +232 -0
- package/src/vta/webvh/dids/keys/add/1.0/payload.ts +1217 -0
- package/src/vta/webvh/dids/keys/list/1.0/payload.ts +1004 -0
- package/src/vta/webvh/dids/keys/retire/1.0/payload.ts +1212 -0
- package/src/vta/webvh/dids/keys/revoke/1.0/payload.ts +1276 -0
- package/src/vta/webvh/dids/rotate-keys/2.0/payload.ts +1262 -0
- package/src/vta/webvh/dids/update/2.0/payload.ts +713 -0
- package/src/vtc/credentials/reissue/0.1/payload.ts +357 -0
- package/src/vtc/members/personhood/challenge/0.1/payload.ts +2 -2
- package/src/vtc/vetting/vetters/profile/0.1/payload.ts +2 -2
- package/src/vtc/vetting/vetters/resend/0.1/payload.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,326 @@ 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.21.0 — 2026-09-26
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **git-ns**: Separation of duties for elevated rights, with an audited break-glass (#641)
|
|
20
|
+
|
|
21
|
+
* feat(git-ns): separation of duties for elevated rights, with an audited break-glass
|
|
22
|
+
|
|
23
|
+
An elevated git right (git.ns.admin, git.repo.create, git.repo.own) is now
|
|
24
|
+
always granted by someone other than its recipient, and the one way to give
|
|
25
|
+
oneself one is an explicit, justified, highly visible break-glass that another
|
|
26
|
+
administrator ratifies or revokes.
|
|
27
|
+
|
|
28
|
+
- git-ns/right/grant 0.3: fixed rule 7, separation of duties, refused with
|
|
29
|
+
git-ns:selfGrantNotAllowed. It binds every task that records a right on the
|
|
30
|
+
actor's own authority (drift/resolve adopt, repo/adopt, namespace/reseat);
|
|
31
|
+
bind and repo/create are not self-grants. Rules 3 and 4 count only records
|
|
32
|
+
with no expiry that are not unratified break-glass.
|
|
33
|
+
- git-ns/right/break-glass 0.1 (new): self-grant of an elevated right the
|
|
34
|
+
actor may already grant, or git.ns.admin on a headless namespace for a
|
|
35
|
+
community administrator. Mandatory justification, destructive, immediate,
|
|
36
|
+
no expiry, highest-severity audit, notice to every administrator, visible
|
|
37
|
+
until ratified or revoked. Policy may disable, delay or tighten it, never
|
|
38
|
+
quieten it.
|
|
39
|
+
- git-ns/right/ratify 0.1 (new): another administrator clears the flag,
|
|
40
|
+
bound to the breakGlass.at they read.
|
|
41
|
+
- git-ns/right/break-glass-notice 0.1 (new): the VTC's signed push to every
|
|
42
|
+
community administrator and namespace admin, for break-glass, ratified and
|
|
43
|
+
revoked.
|
|
44
|
+
- git-ns/right/revoke 0.3: any community administrator may revoke an
|
|
45
|
+
unratified break-glass record; policy cannot refuse that.
|
|
46
|
+
- git-ns/view 0.4: unratified break-glass records go to every administrator
|
|
47
|
+
they concern, whatever else the caller may see.
|
|
48
|
+
- git-ns/_shared 0.4: BreakGlass, RightRecord.breakGlass, ElevatedRight.
|
|
49
|
+
|
|
50
|
+
Rust, TypeScript, Go and Dart bindings regenerated.
|
|
51
|
+
|
|
52
|
+
- **git-ns**: Drift/resolve 0.3 binds an adoption to the member it names (#640)
|
|
53
|
+
|
|
54
|
+
* feat(git-ns): drift/resolve 0.3 binds an adoption to the member it names
|
|
55
|
+
|
|
56
|
+
A drift/resolve 0.2 adoption did not name who receives the right. The VTC
|
|
57
|
+
resolved the item's forge account to whoever had linked it when the task
|
|
58
|
+
ran, so an account unlinked and linked again, to someone else, between the
|
|
59
|
+
resolver reading the item and signing granted a right, published to the
|
|
60
|
+
Trust Registry, to a member the resolver never saw. The signed document
|
|
61
|
+
said nothing otherwise: observed bounded which role an adoption records,
|
|
62
|
+
nothing bounded to whom.
|
|
63
|
+
|
|
64
|
+
drift/resolve 0.3 adds `subject`, the DID of the member the resolver read
|
|
65
|
+
as linked to the account. It is required for adopt and absent for revert,
|
|
66
|
+
refused as malformedRequest otherwise (as a missing `observed` is, and
|
|
67
|
+
likewise stated in prose rather than a schema conditional). The VTC adopts
|
|
68
|
+
only while the account is still linked to exactly that member, re-checked
|
|
69
|
+
under the same exclusion as the write that records the right, and refuses
|
|
70
|
+
otherwise with the new git-ns/drift/resolve:subjectChanged.
|
|
71
|
+
|
|
72
|
+
Versioning. A 0.2 document is a 0.3 document with no `subject`: still a
|
|
73
|
+
valid revert, now a malformed adopt. Required-for-one-action is not
|
|
74
|
+
backwards-compatible, so this is a MINOR increment under the draft
|
|
75
|
+
allowance of SPEC 5.2. A VTC serving older versions SHOULD NOT accept a
|
|
76
|
+
0.1 or 0.2 adopt, since it cannot know whom that resolver meant, and SHOULD
|
|
77
|
+
refuse one naming 0.3.
|
|
78
|
+
|
|
79
|
+
git-ns/view still returns a member only their own account links, so a
|
|
80
|
+
client that has only git-ns/view cannot adopt another member's role; the
|
|
81
|
+
spec says so. Invalid examples cover a DID URL, shell metacharacters and a
|
|
82
|
+
list as `subject`.
|
|
83
|
+
|
|
84
|
+
Bindings regenerated for Rust, TypeScript, Go and Dart.
|
|
85
|
+
|
|
86
|
+
- **git-ns**: Re-project roles on demand, and the bridge reports its role map (#639)
|
|
87
|
+
|
|
88
|
+
* feat(git-ns): re-project roles on demand, and the bridge reports its role map
|
|
89
|
+
|
|
90
|
+
A bridge's role map (which forge role own, maintain and commit.sign get)
|
|
91
|
+
is the community's to configure per bridge, forge, namespace and
|
|
92
|
+
repository, but nothing told the VTC what map was in force, and a
|
|
93
|
+
change reached a repository only at its next unrelated projection.
|
|
94
|
+
|
|
95
|
+
- git-ns/bridge/event 0.3: a new event type, roleMapReported. The bridge
|
|
96
|
+
reports, per namespace, its role map as the forge applies it (rounded
|
|
97
|
+
onto the forge's ladder: `none` < `read` < `triage` < `write` <
|
|
98
|
+
`maintain` < `admin`), each repository whose map differs (`repos`), and
|
|
99
|
+
each repository whose roles it last projected under a different map
|
|
100
|
+
(`stale`). Sent at start-up, on a map change and after bindCompleted.
|
|
101
|
+
The map has no member for git.ns.admin: a namespace admin projects to
|
|
102
|
+
no forge role whatever the configuration. The VTC refuses an unordered
|
|
103
|
+
map, confines `repos` and `stale` to the namespace, uses the map
|
|
104
|
+
wherever it shows or derives a forge role, and SHOULD re-project each
|
|
105
|
+
stale repository. Everything else is restated unchanged from 0.2; the
|
|
106
|
+
schema pins _shared/0.3, wire-identical for every event shape.
|
|
107
|
+
|
|
108
|
+
- git-ns/roles/reproject 0.1 (new): a community administrator, or a
|
|
109
|
+
namespace admin by explicit record, has the VTC send the complete
|
|
110
|
+
desiredRoles of one repository, or of every active or orphaned
|
|
111
|
+
repository in a namespace, again. No right changes and nothing is
|
|
112
|
+
published; the audit record says who asked and why. Refused in manual
|
|
113
|
+
mode (manualMode) and while the bridge has no access (noForgeAccess).
|
|
114
|
+
|
|
115
|
+
- git-ns/drift/resolve 0.2 (draft, in place): the projected right of a
|
|
116
|
+
role is the lowest right whose role in the bridge's reported map is
|
|
117
|
+
that role; the default map without a report.
|
|
118
|
+
|
|
119
|
+
Bindings regenerated for Rust, TypeScript, Go and Dart.
|
|
120
|
+
|
|
121
|
+
- **vta/webvh/dids/keys**: Named key roles and per-role rotation for a VTA's DIDs (#638)
|
|
122
|
+
|
|
123
|
+
* feat(vta/webvh/dids/keys): named key roles and per-role rotation for a VTA's DIDs
|
|
124
|
+
|
|
125
|
+
Adds the Trust Tasks every client uses to manage the key roles of the
|
|
126
|
+
did:webvh identities a VTA holds keys for (its own, and those of the
|
|
127
|
+
VTCs and VTNs provisioned on it), aligned with the VTI key-roles draft
|
|
128
|
+
(dtgwg-vti-spec#42): attestation, operational, messaging and update.
|
|
129
|
+
|
|
130
|
+
- **git-ns/account/unlink**: A member unlinks their own forge account (#636)
|
|
131
|
+
|
|
132
|
+
* feat(git-ns/account/unlink): a member unlinks their own forge account
|
|
133
|
+
|
|
134
|
+
git-ns/account/link said a binding lasts "until the member unlinks or
|
|
135
|
+
leaves", but no task unlinked: the only way to drop an account was to
|
|
136
|
+
link another on the same forge, or to leave the community.
|
|
137
|
+
|
|
138
|
+
- **git-ns**: Bridge/job 0.4 and namespace/reseat 0.3, a namespace admin gets no forge role (#635)
|
|
139
|
+
|
|
140
|
+
* feat(git-ns): bridge/job 0.4 and namespace/reseat 0.3 — a namespace admin gets no forge role
|
|
141
|
+
|
|
142
|
+
A namespace admin exercises git.ns.admin through the VTC and its bridge,
|
|
143
|
+
never through a forge role: the bridge does not make them an owner of the
|
|
144
|
+
organisation and gives them no role on any repository for it.
|
|
145
|
+
|
|
146
|
+
git-ns/bridge/job 0.4:
|
|
147
|
+
- desiredRoles carries, per person, the highest right recorded in their
|
|
148
|
+
own name on the repository (own, maintain or commit.sign there, or
|
|
149
|
+
commit.sign on the namespace), never one held only because git.ns.admin
|
|
150
|
+
implies it. A namespace admin with none is listed at git.ns.admin, which
|
|
151
|
+
every adapter maps to no role, so the bridge takes off a role it manages
|
|
152
|
+
that they still hold. An admin who is also a recorded owner is listed as
|
|
153
|
+
the owner.
|
|
154
|
+
- Each forge account appears in desiredRoles at most once.
|
|
155
|
+
- repo is required for projectRoles: the namespace-level job, which only
|
|
156
|
+
ever projected git.ns.admin as organisation owners, no longer exists.
|
|
157
|
+
- removeAccounts may name an account listed at git.ns.admin.
|
|
158
|
+
- A VTC must not send 0.4 to a bridge that has not shown it takes 0.4, and
|
|
159
|
+
should read an unsupportedType or unsupportedVersion refusal as the
|
|
160
|
+
bridge taking only earlier versions.
|
|
161
|
+
|
|
162
|
+
git-ns/namespace/reseat 0.3: step 8 no longer queues a namespace-level
|
|
163
|
+
forge projection. Wire-identical to 0.2.
|
|
164
|
+
|
|
165
|
+
Earlier versions are unchanged. Both are draft, so the breaking changes
|
|
166
|
+
ship as MINOR increments under the draft allowance of SPEC 5.2.
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
### Security
|
|
171
|
+
|
|
172
|
+
- **didcomm**: A consumer may require a proof over DIDComm (#642)
|
|
173
|
+
|
|
174
|
+
The DIDComm binding lets a producer omit `proof` because the envelope
|
|
175
|
+
authenticates the sender. A consumer that authorizes on the sender's identity
|
|
176
|
+
now MAY decline that allowance and require an in-band proof on every document
|
|
177
|
+
it accepts over the binding, rejecting a document without one as
|
|
178
|
+
`proofRequired` and one whose proof does not identify the transport sender as
|
|
179
|
+
`identityMismatch`. A producer SHOULD include a proof on every document it
|
|
180
|
+
sends over DIDComm so it is accepted either way.
|
|
181
|
+
|
|
182
|
+
The tasks whose consumer authorizes or answers on the caller's identity alone
|
|
183
|
+
now declare `proof` REQUIRED, so the identity rests on the document on every
|
|
184
|
+
transport:
|
|
185
|
+
|
|
186
|
+
- vtc/vetting/vetters/profile/0.1
|
|
187
|
+
- vtc/vetting/vetters/resend/0.1
|
|
188
|
+
- vtc/members/personhood/challenge/0.1
|
|
189
|
+
- git-ns/view/0.1, 0.2 and 0.3
|
|
190
|
+
- git-ns/account/link-status/0.1
|
|
191
|
+
|
|
192
|
+
All are drafts, edited in place. Bindings regenerated for Rust, TS, Go and
|
|
193
|
+
Dart.
|
|
194
|
+
|
|
195
|
+
- **proof**: Check a proof's verificationMethod against its proofPurpose (#637)
|
|
196
|
+
|
|
197
|
+
* security(proof)!: check a proof's verificationMethod against its proofPurpose
|
|
198
|
+
|
|
199
|
+
The stock Verifier accepted a proof signed by any key listed under the
|
|
200
|
+
issuer's authentication or assertionMethod, whatever proofPurpose the proof
|
|
201
|
+
declared. It did not check that the verification method's controller was the
|
|
202
|
+
issuer. W3C Data Integrity requires both, through Controlled Identifiers
|
|
203
|
+
v1.0 §3.3.
|
|
204
|
+
|
|
205
|
+
- New ProofPurpose type (assertionMethod, authentication,
|
|
206
|
+
capabilityInvocation, capabilityDelegation). Parsing refuses keyAgreement
|
|
207
|
+
and unknown values.
|
|
208
|
+
- New ProofPurposeResolver trait resolves a verificationMethod for one
|
|
209
|
+
purpose. CachedDidResolver implements it. It requires the resolved
|
|
210
|
+
document's id and the method's controller to be the DID that names the
|
|
211
|
+
method. It requires the method to be listed under the relationship the
|
|
212
|
+
purpose names, by absolute DID URL, by a fragment relative to the
|
|
213
|
+
document id, or embedded. DidKeyResolver implements it with did:key's
|
|
214
|
+
implicit relationships: the key named `did:key:<id>#<id>` signs for all
|
|
215
|
+
four purposes, and an X25519 did:key signs for none.
|
|
216
|
+
- Verifier resolves through a ProofPurposeResolver, so every proof is
|
|
217
|
+
checked against its own purpose.
|
|
218
|
+
- New PurposeBound wraps a ProofPurposeResolver as an upstream
|
|
219
|
+
VerificationMethodResolver bound to one proof's purpose. It is for
|
|
220
|
+
callers of DataIntegrityProof::verify.
|
|
221
|
+
- sign_trust_task and ProofExt::sign default to proofPurpose authentication.
|
|
222
|
+
They refuse a purpose that names no signing relationship.
|
|
223
|
+
- Resolver errors name the rule that failed. They carry no DID, document or
|
|
224
|
+
key material.
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
### Specifications
|
|
229
|
+
|
|
230
|
+
- **device**: Register the keyExport capability (#643)
|
|
231
|
+
|
|
232
|
+
keys/export-secret/0.1 authorizes against "standing over the key's
|
|
233
|
+
scope" and leaves the grant's shape to the implementation. Where it is a
|
|
234
|
+
device capability there should be a registered value, as there is for
|
|
235
|
+
roomPresent and roomOpen, so implementations do not each carry a private
|
|
236
|
+
one. The VTA already gates export on it.
|
|
237
|
+
|
|
238
|
+
keyExport (key-export in the 0.1 casing) is deliberately separate from
|
|
239
|
+
sign: a producer that may ask the custodian to use a key loses that the
|
|
240
|
+
moment its entitlement changes, while a producer that took the key keeps
|
|
241
|
+
it after its authority is withdrawn. export-secret now names the value
|
|
242
|
+
and says a sign grant is not a keyExport grant. The value is additive,
|
|
243
|
+
so a consumer that does not recognise it ignores it.
|
|
244
|
+
|
|
245
|
+
Bindings regenerated (Rust, TS, Go, Dart); no version bumps.
|
|
246
|
+
|
|
247
|
+
## 0.20.8 — 2026-09-24
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
### Added
|
|
251
|
+
|
|
252
|
+
- **backup**: A node-neutral backup and restore family (#633)
|
|
253
|
+
|
|
254
|
+
`vta/backup/*` is the agent's descriptor-based backup and restore: a slot,
|
|
255
|
+
digests pre-committed before any byte moves, the bundle carried either as an
|
|
256
|
+
HTTPS stream or chunk by chunk over the agent's own Trust Task transport, and a
|
|
257
|
+
finalize step that previews before it replaces. Nothing in that transfer is
|
|
258
|
+
specific to an agent, and a community node needs exactly the same thing for the
|
|
259
|
+
same reason: a backup of any real node is too large for one document, and a
|
|
260
|
+
node that bounds a document's size before checking its proof — as it must on a
|
|
261
|
+
binding that authenticates no sender — cannot accept one that way.
|
|
262
|
+
`vtc/backup/import/0.1`, which carries the whole envelope inline, is the case
|
|
263
|
+
in point.
|
|
264
|
+
|
|
265
|
+
This adds `backup/{initiate-export, get-chunk, complete-export,
|
|
266
|
+
initiate-import, put-chunk, finalize-import, abort}/0.1`, derived from the
|
|
267
|
+
latest `vta/backup/*` versions and made node-neutral:
|
|
268
|
+
|
|
269
|
+
- The parties, prose and error-code slugs name a node rather than an agent.
|
|
270
|
+
- What a backup contains is the node's to define. `finalize-import`'s
|
|
271
|
+
response replaces the agent-specific `keyCount` / `aclCount` /
|
|
272
|
+
`contextCount` / `auditCount` / `importedSecretCount` with one `counts` map
|
|
273
|
+
keyed by the node's own record kinds — an agent's `keys`, `acl`, `contexts`,
|
|
274
|
+
`audit`, `importedSecrets`; a community's backed-up keyspaces — still
|
|
275
|
+
counts, never contents.
|
|
276
|
+
- The transfer shapes (descriptor, chunk manifest, chunk data, bundle id) are
|
|
277
|
+
referenced from `vta/_shared/0.1/backup-transfer` rather than copied. A copy
|
|
278
|
+
with the node-neutral wording would have been a second definition that the
|
|
279
|
+
TypeScript generator disambiguates by renaming the published `ChunkData`,
|
|
280
|
+
`ChunkSize`, `ChunkManifest`, `ChunkedDescriptor` and `BundleDescriptor`
|
|
281
|
+
exports — a break for every TS consumer, for no difference on the wire.
|
|
282
|
+
- The "Changes from 1.0" history sections are dropped; a new 0.1 has no
|
|
283
|
+
predecessor, and the abstract says where the family came from.
|
|
284
|
+
|
|
285
|
+
`vta/backup/*` stays served while agents adopt this family, and
|
|
286
|
+
`vtc/backup/{export,import}` remain for a node small enough to fit one
|
|
287
|
+
document. Retiring the agent-specific versions is a later change.
|
|
288
|
+
|
|
289
|
+
Bindings regenerated for Rust, TypeScript, Go and Dart; the only change to
|
|
290
|
+
existing generated code is the new `backup` feature and index entries.
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
### Specifications
|
|
295
|
+
|
|
296
|
+
- **auth/step-up**: A step-up bound to one operation needs no session (#631)
|
|
297
|
+
|
|
298
|
+
`approve-response/0.3` introduced the bound approval — one that authorizes a
|
|
299
|
+
single operation and elevates nothing, answered `recorded` — but
|
|
300
|
+
`approve-request` still required a `sessionId`, and `approve-response` echoed
|
|
301
|
+
one. So the only operations a step-up could be bound to were ones that arrived
|
|
302
|
+
over a session.
|
|
303
|
+
|
|
304
|
+
An operation that arrives as a signed Trust Task document has none: its
|
|
305
|
+
authority is its proof. Binding the human's gesture to one of their sessions
|
|
306
|
+
after the fact cannot say which, and a window opened on any of them is one a
|
|
307
|
+
process holding the signer's key can spend on acts the human never saw — the
|
|
308
|
+
same defect as a session elevation standing in for consent.
|
|
309
|
+
|
|
310
|
+
- `approve-request/0.3`: `sessionId` is omitted for a step-up bound to an
|
|
311
|
+
operation that arrived without a session, and a relying party MUST NOT fill
|
|
312
|
+
it with a session it chose after the fact. A new `boundTo` names the bound
|
|
313
|
+
operation — for a signed document, a digest of its type and payload salted
|
|
314
|
+
with the challenge, since an unsalted digest over a short, predictable
|
|
315
|
+
payload is a confirmation oracle. A new "Inline delivery" section lets a
|
|
316
|
+
relying party with no push channel carry the request in the refusal of the
|
|
317
|
+
operation it is for (`details.stepUpRequest`); it is authenticated by being
|
|
318
|
+
the relying party's own reply, so a producer must not surface one received
|
|
319
|
+
any other way, and it is for bound step-ups only. The four Security &
|
|
320
|
+
Privacy sub-headings are added.
|
|
321
|
+
- `approve-response/0.4`: `sessionId` is echoed exactly when the request
|
|
322
|
+
carried one, and a response carrying one for a session-less step-up is
|
|
323
|
+
refused (`subjectMismatch`), so a bound approval cannot be read as naming a
|
|
324
|
+
session to elevate. The subject is compared with the subject bound to the
|
|
325
|
+
pending step-up rather than with a session's.
|
|
326
|
+
|
|
327
|
+
Both are backward-compatible minors: a required member became optional and an
|
|
328
|
+
optional one was added. Motivated by the community node's signed-document
|
|
329
|
+
step-up (OpenVTC/verifiable-trust-infrastructure#1713) and by
|
|
330
|
+
trustoverip/dtgwg-vti-spec#40, which amends VTI-APV-003 to admit it.
|
|
331
|
+
|
|
332
|
+
Bindings regenerated for Rust, TypeScript, Go and Dart.
|
|
333
|
+
|
|
14
334
|
## 0.20.7 — 2026-09-24
|
|
15
335
|
|
|
16
336
|
|