@run402/sdk 4.94.0 → 4.96.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/README.md +44 -44
- package/core-dist/keystore.d.ts +1 -1
- package/core-dist/keystore.js +1 -1
- package/dist/actions.d.ts +3 -3
- package/dist/actions.d.ts.map +1 -1
- package/dist/app-up.d.ts +2 -2
- package/dist/app-up.d.ts.map +1 -1
- package/dist/config.d.ts +1 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/credentials.d.ts +1 -1
- package/dist/errors.d.ts +6 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/namespaces/admin.d.ts +1 -1
- package/dist/namespaces/admin.d.ts.map +1 -1
- package/dist/namespaces/ai.d.ts +1 -1
- package/dist/namespaces/ai.js +2 -2
- package/dist/namespaces/ai.js.map +1 -1
- package/dist/namespaces/assets.js +1 -1
- package/dist/namespaces/assets.js.map +1 -1
- package/dist/namespaces/ci.js +3 -3
- package/dist/namespaces/ci.js.map +1 -1
- package/dist/namespaces/deploy.d.ts +5 -5
- package/dist/namespaces/deploy.d.ts.map +1 -1
- package/dist/namespaces/deploy.js +45 -46
- package/dist/namespaces/deploy.js.map +1 -1
- package/dist/namespaces/deploy.types.d.ts +19 -19
- package/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/dist/namespaces/domains.d.ts +10 -2
- package/dist/namespaces/domains.d.ts.map +1 -1
- package/dist/namespaces/domains.js +10 -5
- package/dist/namespaces/domains.js.map +1 -1
- package/dist/namespaces/errors.js +1 -1
- package/dist/namespaces/functions.js +1 -1
- package/dist/namespaces/functions.js.map +1 -1
- package/dist/namespaces/org.d.ts +2 -2
- package/dist/namespaces/org.js +2 -2
- package/dist/namespaces/org.types.d.ts +3 -3
- package/dist/namespaces/pay.js +1 -1
- package/dist/namespaces/{gitvault.d.ts → repos.d.ts} +438 -451
- package/dist/namespaces/repos.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.js → repos.js} +454 -462
- package/dist/namespaces/repos.js.map +1 -0
- package/dist/namespaces/rooms.js +2 -2
- package/dist/namespaces/rooms.js.map +1 -1
- package/dist/namespaces/session.d.ts +2 -2
- package/dist/namespaces/session.d.ts.map +1 -1
- package/dist/namespaces/session.js +2 -2
- package/dist/namespaces/session.js.map +1 -1
- package/dist/namespaces/tier.d.ts +4 -4
- package/dist/namespaces/tier.d.ts.map +1 -1
- package/dist/namespaces/transfers.d.ts +46 -15
- package/dist/namespaces/transfers.d.ts.map +1 -1
- package/dist/namespaces/transfers.js.map +1 -1
- package/dist/namespaces/{gitvault.crypto.d.ts → vault.crypto.d.ts} +141 -141
- package/dist/namespaces/vault.crypto.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.crypto.js → vault.crypto.js} +173 -173
- package/dist/namespaces/vault.crypto.js.map +1 -0
- package/dist/namespaces/{gitvault.types.d.ts → vault.types.d.ts} +136 -136
- package/dist/namespaces/vault.types.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.types.js → vault.types.js} +4 -4
- package/dist/namespaces/vault.types.js.map +1 -0
- package/dist/node/actions-node.js +8 -8
- package/dist/node/actions-node.js.map +1 -1
- package/dist/node/assets-node.js +6 -6
- package/dist/node/assets-node.js.map +1 -1
- package/dist/node/bearer-redeem-key.d.ts +1 -1
- package/dist/node/bearer-redeem-key.js +5 -5
- package/dist/node/bearer-redeem-key.js.map +1 -1
- package/dist/node/ci.js +1 -1
- package/dist/node/ci.js.map +1 -1
- package/dist/node/credentials.d.ts +1 -1
- package/dist/node/credentials.js +1 -1
- package/dist/node/deploy-manifest.d.ts +3 -5
- package/dist/node/deploy-manifest.d.ts.map +1 -1
- package/dist/node/deploy-manifest.js +3 -12
- package/dist/node/deploy-manifest.js.map +1 -1
- package/dist/node/http-dispatcher.js +5 -5
- package/dist/node/http-dispatcher.js.map +1 -1
- package/dist/node/index.d.ts +29 -29
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +39 -39
- package/dist/node/index.js.map +1 -1
- package/dist/node/manifest-export.js +2 -2
- package/dist/node/manifest-export.js.map +1 -1
- package/dist/node/org-adopt.js +1 -1
- package/dist/node/org-adopt.js.map +1 -1
- package/dist/node/sites-node.js +1 -1
- package/dist/node/sites-node.js.map +1 -1
- package/dist/node/{gitvault-address.d.ts → vault-address.d.ts} +42 -42
- package/dist/node/vault-address.d.ts.map +1 -0
- package/dist/node/{gitvault-address.js → vault-address.js} +43 -43
- package/dist/node/vault-address.js.map +1 -0
- package/dist/node/{gitvault-apply.d.ts → vault-apply.d.ts} +27 -27
- package/dist/node/vault-apply.d.ts.map +1 -0
- package/dist/node/{gitvault-apply.js → vault-apply.js} +38 -38
- package/dist/node/vault-apply.js.map +1 -0
- package/dist/node/vault-byo-config.d.ts +29 -0
- package/dist/node/vault-byo-config.d.ts.map +1 -0
- package/dist/node/{gitvault-byo-config.js → vault-byo-config.js} +18 -18
- package/dist/node/vault-byo-config.js.map +1 -0
- package/dist/node/vault-byo-probe.d.ts +20 -0
- package/dist/node/vault-byo-probe.d.ts.map +1 -0
- package/dist/node/vault-byo-probe.js +57 -0
- package/dist/node/vault-byo-probe.js.map +1 -0
- package/dist/node/{gitvault-creation-journal.d.ts → vault-creation-journal.d.ts} +69 -69
- package/dist/node/vault-creation-journal.d.ts.map +1 -0
- package/dist/node/{gitvault-creation-journal.js → vault-creation-journal.js} +54 -54
- package/dist/node/vault-creation-journal.js.map +1 -0
- package/dist/node/{gitvault-degraded-read.d.ts → vault-degraded-read.d.ts} +34 -34
- package/dist/node/vault-degraded-read.d.ts.map +1 -0
- package/dist/node/{gitvault-degraded-read.js → vault-degraded-read.js} +24 -24
- package/dist/node/vault-degraded-read.js.map +1 -0
- package/dist/node/{gitvault-deploy.d.ts → vault-deploy.d.ts} +67 -67
- package/dist/node/vault-deploy.d.ts.map +1 -0
- package/dist/node/{gitvault-deploy.js → vault-deploy.js} +27 -27
- package/dist/node/vault-deploy.js.map +1 -0
- package/dist/node/{gitvault-edge-fetch.d.ts → vault-edge-fetch.d.ts} +9 -9
- package/dist/node/vault-edge-fetch.d.ts.map +1 -0
- package/dist/node/{gitvault-edge-fetch.js → vault-edge-fetch.js} +11 -11
- package/dist/node/vault-edge-fetch.js.map +1 -0
- package/dist/node/{gitvault-handoff.d.ts → vault-handoff.d.ts} +9 -9
- package/dist/node/vault-handoff.d.ts.map +1 -0
- package/dist/node/{gitvault-handoff.js → vault-handoff.js} +24 -24
- package/dist/node/vault-handoff.js.map +1 -0
- package/dist/node/{gitvault-keystore.d.ts → vault-keystore.d.ts} +87 -77
- package/dist/node/vault-keystore.d.ts.map +1 -0
- package/dist/node/{gitvault-keystore.js → vault-keystore.js} +105 -68
- package/dist/node/vault-keystore.js.map +1 -0
- package/dist/node/{gitvault-member-bundle.d.ts → vault-member-bundle.d.ts} +17 -17
- package/dist/node/vault-member-bundle.d.ts.map +1 -0
- package/dist/node/{gitvault-member-bundle.js → vault-member-bundle.js} +11 -11
- package/dist/node/vault-member-bundle.js.map +1 -0
- package/dist/node/{gitvault-mirror-backend.d.ts → vault-mirror-backend.d.ts} +26 -26
- package/dist/node/vault-mirror-backend.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror-backend.js → vault-mirror-backend.js} +25 -25
- package/dist/node/vault-mirror-backend.js.map +1 -0
- package/dist/node/{gitvault-mirror-config.d.ts → vault-mirror-config.d.ts} +23 -23
- package/dist/node/vault-mirror-config.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror-config.js → vault-mirror-config.js} +16 -16
- package/dist/node/vault-mirror-config.js.map +1 -0
- package/dist/node/{gitvault-mirror.d.ts → vault-mirror.d.ts} +36 -36
- package/dist/node/vault-mirror.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror.js → vault-mirror.js} +75 -75
- package/dist/node/vault-mirror.js.map +1 -0
- package/dist/node/{gitvault-native-crypto.d.ts → vault-native-crypto.d.ts} +10 -10
- package/dist/node/vault-native-crypto.d.ts.map +1 -0
- package/dist/node/{gitvault-native-crypto.js → vault-native-crypto.js} +16 -16
- package/dist/node/vault-native-crypto.js.map +1 -0
- package/dist/node/{gitvault-open-or-create.d.ts → vault-open-or-create.d.ts} +16 -16
- package/dist/node/vault-open-or-create.d.ts.map +1 -0
- package/dist/node/{gitvault-open-or-create.js → vault-open-or-create.js} +10 -10
- package/dist/node/vault-open-or-create.js.map +1 -0
- package/dist/node/{gitvault-prewarm.d.ts → vault-prewarm.d.ts} +13 -13
- package/dist/node/vault-prewarm.d.ts.map +1 -0
- package/dist/node/{gitvault-prewarm.js → vault-prewarm.js} +25 -25
- package/dist/node/vault-prewarm.js.map +1 -0
- package/dist/node/{gitvault-profile-scan.d.ts → vault-profile-scan.d.ts} +3 -3
- package/dist/node/vault-profile-scan.d.ts.map +1 -0
- package/dist/node/{gitvault-profile-scan.js → vault-profile-scan.js} +12 -12
- package/dist/node/vault-profile-scan.js.map +1 -0
- package/dist/node/{gitvault-prune.d.ts → vault-prune.d.ts} +61 -61
- package/dist/node/vault-prune.d.ts.map +1 -0
- package/dist/node/{gitvault-prune.js → vault-prune.js} +34 -34
- package/dist/node/vault-prune.js.map +1 -0
- package/dist/node/{gitvault-publication.d.ts → vault-publication.d.ts} +399 -399
- package/dist/node/vault-publication.d.ts.map +1 -0
- package/dist/node/{gitvault-publication.js → vault-publication.js} +584 -584
- package/dist/node/vault-publication.js.map +1 -0
- package/dist/node/{gitvault-push-to-create.d.ts → vault-push-to-create.d.ts} +16 -16
- package/dist/node/vault-push-to-create.d.ts.map +1 -0
- package/dist/node/{gitvault-push-to-create.js → vault-push-to-create.js} +9 -9
- package/dist/node/vault-push-to-create.js.map +1 -0
- package/dist/node/{gitvault-recover.d.ts → vault-recover.d.ts} +50 -50
- package/dist/node/vault-recover.d.ts.map +1 -0
- package/dist/node/{gitvault-recover.js → vault-recover.js} +84 -84
- package/dist/node/vault-recover.js.map +1 -0
- package/dist/node/{gitvault-restore.d.ts → vault-restore.d.ts} +8 -8
- package/dist/node/vault-restore.d.ts.map +1 -0
- package/dist/node/{gitvault-restore.js → vault-restore.js} +11 -11
- package/dist/node/vault-restore.js.map +1 -0
- package/dist/node/{gitvault-snapshot.d.ts → vault-snapshot.d.ts} +48 -48
- package/dist/node/vault-snapshot.d.ts.map +1 -0
- package/dist/node/{gitvault-snapshot.js → vault-snapshot.js} +61 -61
- package/dist/node/vault-snapshot.js.map +1 -0
- package/dist/node/{gitvault-writer-state.d.ts → vault-writer-state.d.ts} +8 -8
- package/dist/node/vault-writer-state.d.ts.map +1 -0
- package/dist/node/{gitvault-writer-state.js → vault-writer-state.js} +15 -15
- package/dist/node/vault-writer-state.js.map +1 -0
- package/dist/node/workflow-output.js +4 -4
- package/dist/node/workflow-output.js.map +1 -1
- package/dist/scoped.d.ts +8 -8
- package/dist/scoped.d.ts.map +1 -1
- package/dist/scoped.js +3 -3
- package/dist/scoped.js.map +1 -1
- package/package.json +1 -1
- package/dist/namespaces/gitvault.crypto.d.ts.map +0 -1
- package/dist/namespaces/gitvault.crypto.js.map +0 -1
- package/dist/namespaces/gitvault.d.ts.map +0 -1
- package/dist/namespaces/gitvault.js.map +0 -1
- package/dist/namespaces/gitvault.types.d.ts.map +0 -1
- package/dist/namespaces/gitvault.types.js.map +0 -1
- package/dist/node/gitvault-address.d.ts.map +0 -1
- package/dist/node/gitvault-address.js.map +0 -1
- package/dist/node/gitvault-apply.d.ts.map +0 -1
- package/dist/node/gitvault-apply.js.map +0 -1
- package/dist/node/gitvault-byo-config.d.ts +0 -29
- package/dist/node/gitvault-byo-config.d.ts.map +0 -1
- package/dist/node/gitvault-byo-config.js.map +0 -1
- package/dist/node/gitvault-byo-probe.d.ts +0 -20
- package/dist/node/gitvault-byo-probe.d.ts.map +0 -1
- package/dist/node/gitvault-byo-probe.js +0 -57
- package/dist/node/gitvault-byo-probe.js.map +0 -1
- package/dist/node/gitvault-creation-journal.d.ts.map +0 -1
- package/dist/node/gitvault-creation-journal.js.map +0 -1
- package/dist/node/gitvault-degraded-read.d.ts.map +0 -1
- package/dist/node/gitvault-degraded-read.js.map +0 -1
- package/dist/node/gitvault-deploy.d.ts.map +0 -1
- package/dist/node/gitvault-deploy.js.map +0 -1
- package/dist/node/gitvault-edge-fetch.d.ts.map +0 -1
- package/dist/node/gitvault-edge-fetch.js.map +0 -1
- package/dist/node/gitvault-handoff.d.ts.map +0 -1
- package/dist/node/gitvault-handoff.js.map +0 -1
- package/dist/node/gitvault-keystore.d.ts.map +0 -1
- package/dist/node/gitvault-keystore.js.map +0 -1
- package/dist/node/gitvault-member-bundle.d.ts.map +0 -1
- package/dist/node/gitvault-member-bundle.js.map +0 -1
- package/dist/node/gitvault-mirror-backend.d.ts.map +0 -1
- package/dist/node/gitvault-mirror-backend.js.map +0 -1
- package/dist/node/gitvault-mirror-config.d.ts.map +0 -1
- package/dist/node/gitvault-mirror-config.js.map +0 -1
- package/dist/node/gitvault-mirror.d.ts.map +0 -1
- package/dist/node/gitvault-mirror.js.map +0 -1
- package/dist/node/gitvault-native-crypto.d.ts.map +0 -1
- package/dist/node/gitvault-native-crypto.js.map +0 -1
- package/dist/node/gitvault-open-or-create.d.ts.map +0 -1
- package/dist/node/gitvault-open-or-create.js.map +0 -1
- package/dist/node/gitvault-prewarm.d.ts.map +0 -1
- package/dist/node/gitvault-prewarm.js.map +0 -1
- package/dist/node/gitvault-profile-scan.d.ts.map +0 -1
- package/dist/node/gitvault-profile-scan.js.map +0 -1
- package/dist/node/gitvault-prune.d.ts.map +0 -1
- package/dist/node/gitvault-prune.js.map +0 -1
- package/dist/node/gitvault-publication.d.ts.map +0 -1
- package/dist/node/gitvault-publication.js.map +0 -1
- package/dist/node/gitvault-push-to-create.d.ts.map +0 -1
- package/dist/node/gitvault-push-to-create.js.map +0 -1
- package/dist/node/gitvault-recover.d.ts.map +0 -1
- package/dist/node/gitvault-recover.js.map +0 -1
- package/dist/node/gitvault-restore.d.ts.map +0 -1
- package/dist/node/gitvault-restore.js.map +0 -1
- package/dist/node/gitvault-snapshot.d.ts.map +0 -1
- package/dist/node/gitvault-snapshot.js.map +0 -1
- package/dist/node/gitvault-writer-state.d.ts.map +0 -1
- package/dist/node/gitvault-writer-state.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-member-bundle.d.ts","sourceRoot":"","sources":["../../src/node/vault-member-bundle.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,eAAO,MAAM,0BAA0B,EAAG,iCAA0C,CAAC;AAErF,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,EAAG,0BAAmC,CAAC;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,EAAG,oBAA6B,CAAC;AAEhF,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,GAAG,eAAe,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sJAAsJ;AACtJ,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,0BAA0B,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sIAAsI;AACtI,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAmC,GAAG,yBAAyB,CAwB/H;AAED,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,UAAU,EAAE,UAAU,CAAC;IACvB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,MAAM,EAAE,yBAAyB,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iHAAiH;IACjH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,uBAAuB,CAuD1B;AAED,6HAA6H;AAC7H,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,2GAA2G;IAC3G,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG;IAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CA0B7J"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* vault-recovery-custody — the member recovery bundle
|
|
3
3
|
* (`r402s-member-recovery-bundle/v1`), the exported sidecar that makes a
|
|
4
4
|
* source recovery code work with NO run402 server.
|
|
5
5
|
*
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* A raw WebAuthn PRF output is NOT a supported recovery input — PRF
|
|
17
17
|
* evaluation is a live credential ceremony, not portable key material; the
|
|
18
18
|
* supported no-server path for a human is the source recovery code
|
|
19
|
-
* (
|
|
19
|
+
* (vault-offline-recovery spec, as modified by vault-recovery-custody).
|
|
20
20
|
*
|
|
21
21
|
* Mirror sidecar convention: a member who wants their bundle to travel WITH
|
|
22
22
|
* a vault mirror puts it under `member-recovery-bundles/<name>.json` in the
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
* as unverified availability hints; nothing ever writes it automatically).
|
|
26
26
|
*/
|
|
27
27
|
import { LocalError } from "../errors.js";
|
|
28
|
-
import { buildSourceWrapperContext, bytesToHex, ekFingerprint, fromBase64url, normalizeSourceRecoveryCode, openSourceWrapper, } from "../namespaces/
|
|
28
|
+
import { buildSourceWrapperContext, bytesToHex, ekFingerprint, fromBase64url, normalizeSourceRecoveryCode, openSourceWrapper, } from "../namespaces/vault.crypto.js";
|
|
29
29
|
import { x25519 } from "@noble/curves/ed25519.js";
|
|
30
30
|
import { utf8ToBytes } from "@noble/hashes/utils.js";
|
|
31
31
|
function fail(code, message, context, details, nextActions) {
|
|
32
32
|
throw new LocalError(message, context, { code, details, ...(nextActions ? { next_actions: nextActions } : {}) });
|
|
33
33
|
}
|
|
34
|
-
export const
|
|
34
|
+
export const VAULT_MEMBER_BUNDLE_FORMAT = "r402s-member-recovery-bundle/v1";
|
|
35
35
|
/** The mirrored-prefix sidecar directory recovery/verify scan for bundles. */
|
|
36
|
-
export const
|
|
36
|
+
export const VAULT_MEMBER_BUNDLE_MIRROR_PREFIX = "member-recovery-bundles/";
|
|
37
37
|
/**
|
|
38
38
|
* The seal-time ceremony host every wrapper in existence was sealed under
|
|
39
39
|
* (`location.hostname` of the sealing console page). Used only when neither
|
|
@@ -41,7 +41,7 @@ export const GITVAULT_MEMBER_BUNDLE_MIRROR_PREFIX = "member-recovery-bundles/";
|
|
|
41
41
|
* wrong value fails closed as `WRAPPER_DID_NOT_OPEN`, never a silent
|
|
42
42
|
* wrong-key open.
|
|
43
43
|
*/
|
|
44
|
-
export const
|
|
44
|
+
export const VAULT_DEFAULT_SOURCE_WRAPPER_RP_ID = "console.run402.com";
|
|
45
45
|
/** Parse + shape-check a member recovery bundle (a JSON string or an already-parsed value). Typed refusal, never a silent partial. */
|
|
46
46
|
export function parseMemberRecoveryBundle(input, context = "parsing member recovery bundle") {
|
|
47
47
|
let value = input;
|
|
@@ -56,8 +56,8 @@ export function parseMemberRecoveryBundle(input, context = "parsing member recov
|
|
|
56
56
|
const b = value;
|
|
57
57
|
if (!b || typeof b !== "object")
|
|
58
58
|
fail("RECOVERY_BUNDLE_INVALID", "bundle is not an object", context);
|
|
59
|
-
if (b.format !==
|
|
60
|
-
fail("RECOVERY_BUNDLE_INVALID", `unsupported bundle format ${JSON.stringify(b.format ?? null)} — expected ${
|
|
59
|
+
if (b.format !== VAULT_MEMBER_BUNDLE_FORMAT) {
|
|
60
|
+
fail("RECOVERY_BUNDLE_INVALID", `unsupported bundle format ${JSON.stringify(b.format ?? null)} — expected ${VAULT_MEMBER_BUNDLE_FORMAT}`, context, { format: b.format ?? null });
|
|
61
61
|
}
|
|
62
62
|
for (const field of ["principal_id", "encryption_key_id", "ek_fingerprint", "public_key"]) {
|
|
63
63
|
if (typeof b[field] !== "string" || b[field].length === 0)
|
|
@@ -86,7 +86,7 @@ export function parseMemberRecoveryBundle(input, context = "parsing member recov
|
|
|
86
86
|
export function unwrapMemberRecoveryBundle(input) {
|
|
87
87
|
const context = "opening member recovery bundle";
|
|
88
88
|
const bundle = input.bundle;
|
|
89
|
-
const rpId = input.rp_id ?? bundle.rp_id ??
|
|
89
|
+
const rpId = input.rp_id ?? bundle.rp_id ?? VAULT_DEFAULT_SOURCE_WRAPPER_RP_ID;
|
|
90
90
|
const core = normalizeSourceRecoveryCode(input.source_recovery_code); // throws RECOVERY_CODE_CHECKSUM_INVALID on a local typo
|
|
91
91
|
const ikm = utf8ToBytes(core);
|
|
92
92
|
const publishedPublicKey = fromBase64url(bundle.public_key, "bundle public_key");
|
|
@@ -138,7 +138,7 @@ export function unwrapMemberRecoveryBundle(input) {
|
|
|
138
138
|
export async function discoverMemberBundles(backend) {
|
|
139
139
|
let keys;
|
|
140
140
|
try {
|
|
141
|
-
keys = (await backend.list(
|
|
141
|
+
keys = (await backend.list(VAULT_MEMBER_BUNDLE_MIRROR_PREFIX)).filter((k) => k.endsWith(".json"));
|
|
142
142
|
}
|
|
143
143
|
catch {
|
|
144
144
|
return [];
|
|
@@ -165,4 +165,4 @@ export async function discoverMemberBundles(backend) {
|
|
|
165
165
|
}
|
|
166
166
|
return out;
|
|
167
167
|
}
|
|
168
|
-
//# sourceMappingURL=
|
|
168
|
+
//# sourceMappingURL=vault-member-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-member-bundle.js","sourceRoot":"","sources":["../../src/node/vault-member-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export interface
|
|
1
|
+
import type { VaultMirrorCredential, VaultMirrorDestination } from "./vault-mirror-config.js";
|
|
2
|
+
export interface VaultMirrorObjectMeta {
|
|
3
3
|
size_bytes: string;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* vault-byo-primary-bucket task 3.1 — allocation-time bucket probe
|
|
7
7
|
* (design D6): does this destination honor create-only `if-none-match`
|
|
8
8
|
* writes, is bucket versioning off, and is a write actually permitted? Every
|
|
9
9
|
* property is checked independently so a refusal names EXACTLY which one
|
|
@@ -11,7 +11,7 @@ export interface GitvaultMirrorObjectMeta {
|
|
|
11
11
|
* underlying HTTP/network fact for the property that failed — never a
|
|
12
12
|
* credential, never bytes.
|
|
13
13
|
*/
|
|
14
|
-
export interface
|
|
14
|
+
export interface VaultBucketProbeResult {
|
|
15
15
|
write_permitted: boolean;
|
|
16
16
|
create_only_honored: boolean;
|
|
17
17
|
versioning_off: boolean;
|
|
@@ -23,11 +23,11 @@ export interface GitvaultBucketProbeResult {
|
|
|
23
23
|
* key the gateway's objects listing names (§3 layout), so the mirror is a
|
|
24
24
|
* byte-for-byte replica of `source/<repo_id>/` under the destination.
|
|
25
25
|
*/
|
|
26
|
-
export interface
|
|
26
|
+
export interface VaultMirrorBackend {
|
|
27
27
|
/** A human-readable description of where this backend writes (for status/errors — never a credential). */
|
|
28
28
|
describe(): string;
|
|
29
29
|
/** `null` when the key is absent. */
|
|
30
|
-
head(key: string): Promise<
|
|
30
|
+
head(key: string): Promise<VaultMirrorObjectMeta | null>;
|
|
31
31
|
/** Read the full bytes, or `null` when absent. */
|
|
32
32
|
get(key: string): Promise<Uint8Array | null>;
|
|
33
33
|
/**
|
|
@@ -43,17 +43,17 @@ export interface GitvaultMirrorBackend {
|
|
|
43
43
|
/** Every key under `prefix` (default: every key in the mirror), sorted. */
|
|
44
44
|
list(prefix?: string): Promise<string[]>;
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* vault-byo-primary-bucket task 3.1 — the allocation-time bucket-policy
|
|
47
47
|
* probe (design D6): create-only `if-none-match` honored, versioning off,
|
|
48
48
|
* write permitted. Never throws on a failed property — it REPORTS the
|
|
49
|
-
* three independent facts; the caller ({@link
|
|
50
|
-
* in `
|
|
49
|
+
* three independent facts; the caller ({@link probeVaultByoDestination}
|
|
50
|
+
* in `vault-byo-probe.js`) decides whether to refuse and names which
|
|
51
51
|
* property failed. A backend implementation MAY throw for a genuinely
|
|
52
52
|
* unexpected transport failure (network/DNS) rather than reporting a
|
|
53
53
|
* property as false — the caller treats a thrown probe identically to a
|
|
54
54
|
* failed one.
|
|
55
55
|
*/
|
|
56
|
-
probeWritePolicy(): Promise<
|
|
56
|
+
probeWritePolicy(): Promise<VaultBucketProbeResult>;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* A local (or network-mounted) directory, laid out identically to the bucket
|
|
@@ -63,12 +63,12 @@ export interface GitvaultMirrorBackend {
|
|
|
63
63
|
* `wx` (`O_CREAT|O_EXCL`) — never a silent overwrite of a differently-keyed
|
|
64
64
|
* torn write.
|
|
65
65
|
*/
|
|
66
|
-
export declare class DirectoryMirrorBackend implements
|
|
66
|
+
export declare class DirectoryMirrorBackend implements VaultMirrorBackend {
|
|
67
67
|
private readonly root;
|
|
68
68
|
constructor(root: string);
|
|
69
69
|
describe(): string;
|
|
70
70
|
private resolve;
|
|
71
|
-
head(key: string): Promise<
|
|
71
|
+
head(key: string): Promise<VaultMirrorObjectMeta | null>;
|
|
72
72
|
get(key: string): Promise<Uint8Array | null>;
|
|
73
73
|
putCreateOnly(key: string, bytes: Uint8Array): Promise<{
|
|
74
74
|
created: boolean;
|
|
@@ -81,7 +81,7 @@ export declare class DirectoryMirrorBackend implements GitvaultMirrorBackend {
|
|
|
81
81
|
* EXERCISED (not assumed) — a read-only mount or missing permission fails
|
|
82
82
|
* it honestly rather than reporting a directory backend as always-write.
|
|
83
83
|
*/
|
|
84
|
-
probeWritePolicy(): Promise<
|
|
84
|
+
probeWritePolicy(): Promise<VaultBucketProbeResult>;
|
|
85
85
|
}
|
|
86
86
|
interface Sigv4Credentials {
|
|
87
87
|
access_key_id: string;
|
|
@@ -89,25 +89,25 @@ interface Sigv4Credentials {
|
|
|
89
89
|
session_token?: string;
|
|
90
90
|
}
|
|
91
91
|
/** Resolve a NAMED PROFILE (`~/.aws/credentials` + `~/.aws/config`) or the AMBIENT environment chain — see the module doc's documented scope limit. */
|
|
92
|
-
export declare function resolveMirrorCredentials(credential:
|
|
93
|
-
export declare class S3MirrorBackend implements
|
|
92
|
+
export declare function resolveMirrorCredentials(credential: VaultMirrorCredential): Sigv4Credentials;
|
|
93
|
+
export declare class S3MirrorBackend implements VaultMirrorBackend {
|
|
94
94
|
private readonly bucket;
|
|
95
95
|
private readonly prefix;
|
|
96
96
|
private readonly region;
|
|
97
97
|
private readonly credential;
|
|
98
98
|
private readonly endpoint?;
|
|
99
|
-
constructor(bucket: string, prefix: string, region: string, credential:
|
|
99
|
+
constructor(bucket: string, prefix: string, region: string, credential: VaultMirrorCredential, endpoint?: string | undefined);
|
|
100
100
|
describe(): string;
|
|
101
101
|
private fullKey;
|
|
102
102
|
private creds;
|
|
103
|
-
head(key: string): Promise<
|
|
103
|
+
head(key: string): Promise<VaultMirrorObjectMeta | null>;
|
|
104
104
|
get(key: string): Promise<Uint8Array | null>;
|
|
105
105
|
putCreateOnly(key: string, bytes: Uint8Array): Promise<{
|
|
106
106
|
created: boolean;
|
|
107
107
|
}>;
|
|
108
108
|
list(prefix?: string): Promise<string[]>;
|
|
109
109
|
/**
|
|
110
|
-
*
|
|
110
|
+
* vault-byo-primary-bucket task 3.1 (design D6). Deliberately does NOT
|
|
111
111
|
* reuse {@link putCreateOnly}'s own read-and-compare fallback for a bucket
|
|
112
112
|
* that rejects the `if-none-match` header (400/501): that fallback is a
|
|
113
113
|
* best-effort DEGRADATION for ordinary writes, and the whole point of the
|
|
@@ -129,13 +129,13 @@ export declare class S3MirrorBackend implements GitvaultMirrorBackend {
|
|
|
129
129
|
* guards against (a create-only PUT silently becoming a new object
|
|
130
130
|
* version instead of a real conflict) applies only to `Enabled`.
|
|
131
131
|
*/
|
|
132
|
-
probeWritePolicy(): Promise<
|
|
132
|
+
probeWritePolicy(): Promise<VaultBucketProbeResult>;
|
|
133
133
|
private probeVersioningOff;
|
|
134
134
|
}
|
|
135
135
|
/** Open the backend for one vault's mirror config — repo-scoped: the directory backend's root and the S3 prefix both already carry `source/<repo_id>`. */
|
|
136
|
-
export declare function
|
|
136
|
+
export declare function openVaultMirrorBackend(destination: VaultMirrorDestination, repoId: string, credential?: VaultMirrorCredential): VaultMirrorBackend;
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
138
|
+
* vault-byo-primary-bucket task 3.1 — open a backend at the DESTINATION
|
|
139
139
|
* ROOT, with no `source/<repo_id>` scoping. Two callers need this shape,
|
|
140
140
|
* both because `repo_id` is not (yet) in scope: the allocation-time probe
|
|
141
141
|
* (a fresh destination has no repo_id until allocation MINTS one — the
|
|
@@ -146,16 +146,16 @@ export declare function openGitvaultMirrorBackend(destination: GitvaultMirrorDes
|
|
|
146
146
|
* {@link discoverMirroredRepoIds} already used inline for mirror discovery,
|
|
147
147
|
* factored out here so it has one implementation instead of two.
|
|
148
148
|
*/
|
|
149
|
-
export declare function
|
|
149
|
+
export declare function openVaultDestinationBackend(destination: VaultMirrorDestination, credential?: VaultMirrorCredential): VaultMirrorBackend;
|
|
150
150
|
/**
|
|
151
151
|
* List every `repo_id` mirrored under a destination's root (`source/<repo_id>/…`),
|
|
152
152
|
* WITHOUT repo-scoping the backend first — the discovery step `recover
|
|
153
153
|
* <source>` needs before it can even open the repo-scoped backend {@link
|
|
154
|
-
*
|
|
154
|
+
* openVaultMirrorBackend} expects. Used only to resolve which vault a bare
|
|
155
155
|
* destination URL (no `--repo`) names.
|
|
156
156
|
*/
|
|
157
|
-
export declare function discoverMirroredRepoIds(destination:
|
|
157
|
+
export declare function discoverMirroredRepoIds(destination: VaultMirrorDestination, credential?: VaultMirrorCredential): Promise<string[]>;
|
|
158
158
|
/** Best-effort recursive delete of an empty (or now-empty) mirror root — used by `mirror remove --purge` semantics if ever added; NOT called by plain `mirror remove` (design: config removal never touches the customer's bytes). Exported for tests. */
|
|
159
|
-
export declare function _rmMirrorRoot(destination:
|
|
159
|
+
export declare function _rmMirrorRoot(destination: VaultMirrorDestination, repoId: string): void;
|
|
160
160
|
export {};
|
|
161
|
-
//# sourceMappingURL=
|
|
161
|
+
//# sourceMappingURL=vault-mirror-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-mirror-backend.d.ts","sourceRoot":"","sources":["../../src/node/vault-mirror-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* vault-mirror-and-recover — mirror storage backends (design D1/D2/D7,
|
|
3
3
|
* task 2.2).
|
|
4
4
|
*
|
|
5
5
|
* S3-or-directory behind ONE interface, so the writer/reconcile engine
|
|
6
|
-
* (`
|
|
6
|
+
* (`vault-mirror.ts`) and the recovery engine (`vault-recover.ts`)
|
|
7
7
|
* never know which one they are talking to.
|
|
8
8
|
*
|
|
9
9
|
* `@run402/sdk` deliberately carries no AWS SDK dependency (see the package's
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* the two mechanisms design D2 names: a NAMED PROFILE read from the
|
|
19
19
|
* standard `~/.aws/credentials` + `~/.aws/config` files, and the AMBIENT
|
|
20
20
|
* environment chain (`AWS_ACCESS_KEY_ID`/`AWS_SECRET_ACCESS_KEY`/
|
|
21
|
-
* `AWS_SESSION_TOKEN`). Multipart upload is out of scope too —
|
|
21
|
+
* `AWS_SESSION_TOKEN`). Multipart upload is out of scope too — vault
|
|
22
22
|
* objects are already capped well under S3's 5 GiB single-PUT limit by the
|
|
23
23
|
* protocol's own object-size bounds (§4.6/§4.7).
|
|
24
24
|
*/
|
|
@@ -49,7 +49,7 @@ export class DirectoryMirrorBackend {
|
|
|
49
49
|
}
|
|
50
50
|
resolve(key) {
|
|
51
51
|
if (key.includes("..") || key.startsWith("/"))
|
|
52
|
-
fail("
|
|
52
|
+
fail("VAULT_MIRROR_KEY_INVALID", `unsafe mirror key: ${key}`, "resolving vault mirror path", { key });
|
|
53
53
|
return join(this.root, ...key.split("/"));
|
|
54
54
|
}
|
|
55
55
|
async head(key) {
|
|
@@ -129,10 +129,10 @@ export class DirectoryMirrorBackend {
|
|
|
129
129
|
async probeWritePolicy() {
|
|
130
130
|
const key = `_byo-probe/${randomBytes(16).toString("hex")}`;
|
|
131
131
|
try {
|
|
132
|
-
const first = await this.putCreateOnly(key, new TextEncoder().encode("
|
|
132
|
+
const first = await this.putCreateOnly(key, new TextEncoder().encode("vault-byo-primary-bucket allocation probe"));
|
|
133
133
|
if (!first.created)
|
|
134
134
|
return { write_permitted: false, create_only_honored: false, versioning_off: true, detail: "probe key already existed (unexpected — a fresh random key collided)" };
|
|
135
|
-
const second = await this.putCreateOnly(key, new TextEncoder().encode("
|
|
135
|
+
const second = await this.putCreateOnly(key, new TextEncoder().encode("vault-byo-primary-bucket allocation probe — second write"));
|
|
136
136
|
return { write_permitted: true, create_only_honored: !second.created, versioning_off: true };
|
|
137
137
|
}
|
|
138
138
|
catch (e) {
|
|
@@ -196,7 +196,7 @@ export function resolveMirrorCredentials(credential) {
|
|
|
196
196
|
const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
|
|
197
197
|
const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY;
|
|
198
198
|
if (!accessKeyId || !secretAccessKey) {
|
|
199
|
-
fail("
|
|
199
|
+
fail("VAULT_MIRROR_CREDENTIALS_UNRESOLVED", "no ambient AWS credentials found (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY unset)", "resolving vault mirror credentials", undefined, [{ action: "export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, or configure a named profile with `run402 repos mirror <destination> --profile <name>`" }]);
|
|
200
200
|
}
|
|
201
201
|
return { access_key_id: accessKeyId, secret_access_key: secretAccessKey, ...(process.env.AWS_SESSION_TOKEN ? { session_token: process.env.AWS_SESSION_TOKEN } : {}) };
|
|
202
202
|
}
|
|
@@ -206,13 +206,13 @@ export function resolveMirrorCredentials(credential) {
|
|
|
206
206
|
text = readFileSync(credsPath, "utf8");
|
|
207
207
|
}
|
|
208
208
|
catch {
|
|
209
|
-
fail("
|
|
209
|
+
fail("VAULT_MIRROR_CREDENTIALS_UNRESOLVED", `no AWS credentials file at ${credsPath}`, "resolving vault mirror credentials", { profile: credential.profile }, [{ action: `run 'aws configure --profile ${credential.profile}', or configure the destination for --ambient credentials instead` }]);
|
|
210
210
|
}
|
|
211
211
|
const section = parseIniSection(text, credential.profile);
|
|
212
212
|
const accessKeyId = section.aws_access_key_id;
|
|
213
213
|
const secretAccessKey = section.aws_secret_access_key;
|
|
214
214
|
if (!accessKeyId || !secretAccessKey) {
|
|
215
|
-
fail("
|
|
215
|
+
fail("VAULT_MIRROR_CREDENTIALS_UNRESOLVED", `profile '${credential.profile}' is missing aws_access_key_id/aws_secret_access_key in ${credsPath}`, "resolving vault mirror credentials", { profile: credential.profile }, [{ action: `run 'aws configure --profile ${credential.profile}'` }]);
|
|
216
216
|
}
|
|
217
217
|
return { access_key_id: accessKeyId, secret_access_key: secretAccessKey, ...(section.aws_session_token ? { session_token: section.aws_session_token } : {}) };
|
|
218
218
|
}
|
|
@@ -265,7 +265,7 @@ export class S3MirrorBackend {
|
|
|
265
265
|
if (r.status === 404)
|
|
266
266
|
return null;
|
|
267
267
|
if (!r.ok)
|
|
268
|
-
fail("
|
|
268
|
+
fail("VAULT_MIRROR_S3_ERROR", `HEAD ${key} failed (HTTP ${r.status})`, "reading vault mirror object", { key, status: r.status });
|
|
269
269
|
const len = r.headers.get("content-length");
|
|
270
270
|
return { size_bytes: len ?? "0" };
|
|
271
271
|
}
|
|
@@ -274,7 +274,7 @@ export class S3MirrorBackend {
|
|
|
274
274
|
if (r.status === 404)
|
|
275
275
|
return null;
|
|
276
276
|
if (!r.ok)
|
|
277
|
-
fail("
|
|
277
|
+
fail("VAULT_MIRROR_S3_ERROR", `GET ${key} failed (HTTP ${r.status})`, "reading vault mirror object", { key, status: r.status });
|
|
278
278
|
return new Uint8Array(await r.arrayBuffer());
|
|
279
279
|
}
|
|
280
280
|
async putCreateOnly(key, bytes) {
|
|
@@ -306,10 +306,10 @@ export class S3MirrorBackend {
|
|
|
306
306
|
return { created: false };
|
|
307
307
|
const retry = await s3Request({ method: "PUT", bucket: this.bucket, region: this.region, endpoint: this.endpoint, key: this.fullKey(key), credentials: this.creds(), body: bytes, extraHeaders: { "content-length": String(bytes.length) } });
|
|
308
308
|
if (!retry.ok)
|
|
309
|
-
fail("
|
|
309
|
+
fail("VAULT_MIRROR_S3_ERROR", `PUT ${key} failed (HTTP ${retry.status})`, "writing vault mirror object", { key, status: retry.status });
|
|
310
310
|
return { created: true };
|
|
311
311
|
}
|
|
312
|
-
fail("
|
|
312
|
+
fail("VAULT_MIRROR_S3_ERROR", `PUT ${key} failed (HTTP ${r.status})`, "writing vault mirror object", { key, status: r.status });
|
|
313
313
|
}
|
|
314
314
|
async list(prefix = "") {
|
|
315
315
|
const out = [];
|
|
@@ -321,7 +321,7 @@ export class S3MirrorBackend {
|
|
|
321
321
|
query["continuation-token"] = continuationToken;
|
|
322
322
|
const r = await s3Request({ method: "GET", bucket: this.bucket, region: this.region, endpoint: this.endpoint, key: "", query, credentials: this.creds() });
|
|
323
323
|
if (!r.ok)
|
|
324
|
-
fail("
|
|
324
|
+
fail("VAULT_MIRROR_S3_ERROR", `ListObjectsV2 failed (HTTP ${r.status})`, "listing vault mirror objects", { status: r.status });
|
|
325
325
|
const xml = await r.text();
|
|
326
326
|
for (const m of xml.matchAll(/<Key>([^<]*)<\/Key>/g)) {
|
|
327
327
|
const full = decodeXmlEntities(m[1]);
|
|
@@ -338,7 +338,7 @@ export class S3MirrorBackend {
|
|
|
338
338
|
return out.sort();
|
|
339
339
|
}
|
|
340
340
|
/**
|
|
341
|
-
*
|
|
341
|
+
* vault-byo-primary-bucket task 3.1 (design D6). Deliberately does NOT
|
|
342
342
|
* reuse {@link putCreateOnly}'s own read-and-compare fallback for a bucket
|
|
343
343
|
* that rejects the `if-none-match` header (400/501): that fallback is a
|
|
344
344
|
* best-effort DEGRADATION for ordinary writes, and the whole point of the
|
|
@@ -369,7 +369,7 @@ export class S3MirrorBackend {
|
|
|
369
369
|
try {
|
|
370
370
|
const first = await s3Request({
|
|
371
371
|
method: "PUT", bucket: this.bucket, region: this.region, endpoint: this.endpoint, key: this.fullKey(key), credentials: creds,
|
|
372
|
-
body: new TextEncoder().encode("
|
|
372
|
+
body: new TextEncoder().encode("vault-byo-primary-bucket allocation probe"),
|
|
373
373
|
extraHeaders: { "if-none-match": "*" },
|
|
374
374
|
});
|
|
375
375
|
if (!first.ok) {
|
|
@@ -379,7 +379,7 @@ export class S3MirrorBackend {
|
|
|
379
379
|
writePermitted = true;
|
|
380
380
|
const second = await s3Request({
|
|
381
381
|
method: "PUT", bucket: this.bucket, region: this.region, endpoint: this.endpoint, key: this.fullKey(key), credentials: creds,
|
|
382
|
-
body: new TextEncoder().encode("
|
|
382
|
+
body: new TextEncoder().encode("vault-byo-primary-bucket allocation probe — second write"),
|
|
383
383
|
extraHeaders: { "if-none-match": "*" },
|
|
384
384
|
});
|
|
385
385
|
// 412/409: the condition was evaluated and correctly refused the
|
|
@@ -425,17 +425,17 @@ function decodeXmlEntities(s) {
|
|
|
425
425
|
}
|
|
426
426
|
// ─── Factory ──────────────────────────────────────────────────────────────────
|
|
427
427
|
/** Open the backend for one vault's mirror config — repo-scoped: the directory backend's root and the S3 prefix both already carry `source/<repo_id>`. */
|
|
428
|
-
export function
|
|
428
|
+
export function openVaultMirrorBackend(destination, repoId, credential) {
|
|
429
429
|
if (destination.kind === "directory") {
|
|
430
430
|
return new DirectoryMirrorBackend(join(destination.path, "source", repoId));
|
|
431
431
|
}
|
|
432
432
|
if (!credential)
|
|
433
|
-
fail("
|
|
433
|
+
fail("VAULT_MIRROR_CREDENTIAL_REQUIRED", "an s3 mirror destination needs a credential", "opening vault mirror backend");
|
|
434
434
|
const prefix = destination.prefix ? `${destination.prefix}/source/${repoId}` : `source/${repoId}`;
|
|
435
435
|
return new S3MirrorBackend(destination.bucket, prefix, destination.region, credential, destination.endpoint);
|
|
436
436
|
}
|
|
437
437
|
/**
|
|
438
|
-
*
|
|
438
|
+
* vault-byo-primary-bucket task 3.1 — open a backend at the DESTINATION
|
|
439
439
|
* ROOT, with no `source/<repo_id>` scoping. Two callers need this shape,
|
|
440
440
|
* both because `repo_id` is not (yet) in scope: the allocation-time probe
|
|
441
441
|
* (a fresh destination has no repo_id until allocation MINTS one — the
|
|
@@ -446,22 +446,22 @@ export function openGitvaultMirrorBackend(destination, repoId, credential) {
|
|
|
446
446
|
* {@link discoverMirroredRepoIds} already used inline for mirror discovery,
|
|
447
447
|
* factored out here so it has one implementation instead of two.
|
|
448
448
|
*/
|
|
449
|
-
export function
|
|
449
|
+
export function openVaultDestinationBackend(destination, credential) {
|
|
450
450
|
if (destination.kind === "directory")
|
|
451
451
|
return new DirectoryMirrorBackend(destination.path);
|
|
452
452
|
if (!credential)
|
|
453
|
-
fail("
|
|
453
|
+
fail("VAULT_MIRROR_CREDENTIAL_REQUIRED", "an s3 destination needs a credential", "opening vault destination backend");
|
|
454
454
|
return new S3MirrorBackend(destination.bucket, destination.prefix, destination.region, credential, destination.endpoint);
|
|
455
455
|
}
|
|
456
456
|
/**
|
|
457
457
|
* List every `repo_id` mirrored under a destination's root (`source/<repo_id>/…`),
|
|
458
458
|
* WITHOUT repo-scoping the backend first — the discovery step `recover
|
|
459
459
|
* <source>` needs before it can even open the repo-scoped backend {@link
|
|
460
|
-
*
|
|
460
|
+
* openVaultMirrorBackend} expects. Used only to resolve which vault a bare
|
|
461
461
|
* destination URL (no `--repo`) names.
|
|
462
462
|
*/
|
|
463
463
|
export async function discoverMirroredRepoIds(destination, credential) {
|
|
464
|
-
const root =
|
|
464
|
+
const root = openVaultDestinationBackend(destination, credential);
|
|
465
465
|
const keys = await root.list("source/");
|
|
466
466
|
const ids = new Set();
|
|
467
467
|
for (const key of keys) {
|
|
@@ -477,4 +477,4 @@ export function _rmMirrorRoot(destination, repoId) {
|
|
|
477
477
|
return;
|
|
478
478
|
rmSync(join(destination.path, "source", repoId), { recursive: true, force: true });
|
|
479
479
|
}
|
|
480
|
-
//# sourceMappingURL=
|
|
480
|
+
//# sourceMappingURL=vault-mirror-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-mirror-backend.js","sourceRoot":"","sources":["../../src/node/vault-mirror-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VaultKeystore } from "./vault-keystore.js";
|
|
2
2
|
/** Where the mirror writes objects. Directory is a plain local (or network-mounted) path; S3 is `s3://<bucket>/<prefix>`. */
|
|
3
|
-
export type
|
|
3
|
+
export type VaultMirrorDestination = {
|
|
4
4
|
kind: "directory";
|
|
5
5
|
path: string;
|
|
6
6
|
} | {
|
|
@@ -11,21 +11,21 @@ export type GitvaultMirrorDestination = {
|
|
|
11
11
|
endpoint?: string;
|
|
12
12
|
};
|
|
13
13
|
/** How the S3 destination authenticates. Never a raw key — see the module doc. */
|
|
14
|
-
export type
|
|
14
|
+
export type VaultMirrorCredential = {
|
|
15
15
|
kind: "profile";
|
|
16
16
|
profile: string;
|
|
17
17
|
} | {
|
|
18
18
|
kind: "ambient";
|
|
19
19
|
};
|
|
20
|
-
/** `mirrors/<repo_id>.json` — the ONLY thing this file persists: where, which named credential to resolve at use time, and (
|
|
21
|
-
export interface
|
|
20
|
+
/** `mirrors/<repo_id>.json` — the ONLY thing this file persists: where, which named credential to resolve at use time, and (vault-mirror-default) when a write/sync last fully succeeded. */
|
|
21
|
+
export interface VaultMirrorConfig {
|
|
22
22
|
version: 1;
|
|
23
23
|
repo_id: string;
|
|
24
|
-
destination:
|
|
24
|
+
destination: VaultMirrorDestination;
|
|
25
25
|
/** Present only for an `s3` destination — a directory destination needs no credential. */
|
|
26
|
-
credential?:
|
|
26
|
+
credential?: VaultMirrorCredential;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* vault-mirror-default: when a mirror write or sync last completed with
|
|
29
29
|
* zero failures against THIS destination — the local fact that clears the
|
|
30
30
|
* `vault_unmirrored` finding. Stamped by the sync engine, reset when the
|
|
31
31
|
* destination changes (a success against the old bucket says nothing about
|
|
@@ -35,35 +35,35 @@ export interface GitvaultMirrorConfig {
|
|
|
35
35
|
created_at: string;
|
|
36
36
|
updated_at: string;
|
|
37
37
|
}
|
|
38
|
-
export declare function mirrorsDir(keystore:
|
|
39
|
-
export declare function mirrorConfigPath(keystore:
|
|
38
|
+
export declare function mirrorsDir(keystore: VaultKeystore): string;
|
|
39
|
+
export declare function mirrorConfigPath(keystore: VaultKeystore, repoId: string): string;
|
|
40
40
|
/** Read the mirror config for one vault, or `null` when none is configured. */
|
|
41
|
-
export declare function readMirrorConfig(keystore:
|
|
41
|
+
export declare function readMirrorConfig(keystore: VaultKeystore, repoId: string): VaultMirrorConfig | null;
|
|
42
42
|
/** Every repo id with a mirror configured on this machine. */
|
|
43
|
-
export declare function listMirroredRepoIds(keystore:
|
|
43
|
+
export declare function listMirroredRepoIds(keystore: VaultKeystore): string[];
|
|
44
44
|
/** Set (create or replace) the mirror destination for one vault. */
|
|
45
|
-
export declare function saveMirrorConfig(keystore:
|
|
45
|
+
export declare function saveMirrorConfig(keystore: VaultKeystore, input: {
|
|
46
46
|
repo_id: string;
|
|
47
|
-
destination:
|
|
48
|
-
credential?:
|
|
49
|
-
}, now?: () => Date):
|
|
47
|
+
destination: VaultMirrorDestination;
|
|
48
|
+
credential?: VaultMirrorCredential;
|
|
49
|
+
}, now?: () => Date): VaultMirrorConfig;
|
|
50
50
|
/**
|
|
51
51
|
* Stamp `last_success_at` after a zero-failure mirror write/sync
|
|
52
|
-
* (
|
|
52
|
+
* (vault-mirror-default) — the local, never-transmitted fact that clears
|
|
53
53
|
* the `vault_unmirrored` finding. A no-op when no config exists (a
|
|
54
54
|
* test-injected backend can sync without one), or when the config was removed
|
|
55
55
|
* mid-sync.
|
|
56
56
|
*/
|
|
57
|
-
export declare function recordMirrorSuccess(keystore:
|
|
57
|
+
export declare function recordMirrorSuccess(keystore: VaultKeystore, repoId: string, now?: () => Date): VaultMirrorConfig | null;
|
|
58
58
|
/** Remove the mirror config for one vault. Never touches the mirror's own bytes — this only stops future pushes/syncs from targeting it. */
|
|
59
|
-
export declare function removeMirrorConfig(keystore:
|
|
59
|
+
export declare function removeMirrorConfig(keystore: VaultKeystore, repoId: string): {
|
|
60
60
|
removed: boolean;
|
|
61
61
|
};
|
|
62
|
-
/** Parse `s3://<bucket>/<prefix>` or a plain filesystem path into a {@link
|
|
62
|
+
/** Parse `s3://<bucket>/<prefix>` or a plain filesystem path into a {@link VaultMirrorDestination}. */
|
|
63
63
|
export declare function parseMirrorDestinationUrl(url: string, options?: {
|
|
64
64
|
region?: string;
|
|
65
65
|
endpoint?: string;
|
|
66
|
-
}):
|
|
66
|
+
}): VaultMirrorDestination;
|
|
67
67
|
/** Render a destination back to the address form a human typed (for `status`/errors). */
|
|
68
|
-
export declare function formatMirrorDestination(destination:
|
|
69
|
-
//# sourceMappingURL=
|
|
68
|
+
export declare function formatMirrorDestination(destination: VaultMirrorDestination): string;
|
|
69
|
+
//# sourceMappingURL=vault-mirror-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-mirror-config.d.ts","sourceRoot":"","sources":["../../src/node/vault-mirror-config.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,EAAyC,MAAM,qBAAqB,CAAC;AAM3F,6HAA6H;AAC7H,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,6LAA6L;AAC7L,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,sBAAsB,CAAC;IACpC,0FAA0F;IAC1F,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAalG;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,EAAE,CAQrE;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,sBAAsB,CAAC;IAAC,UAAU,CAAC,EAAE,qBAAqB,CAAA;CAAE,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,iBAAiB,CAqBpN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,iBAAiB,GAAG,IAAI,CAMzI;AAED,4IAA4I;AAC5I,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAShG;AAED,uGAAuG;AACvG,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,sBAAsB,CAYnI;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,sBAAsB,GAAG,MAAM,CAEnF"}
|