@run402/sdk 4.95.0 → 4.97.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 +27 -27
- package/core-dist/keystore.d.ts +1 -1
- package/core-dist/keystore.js +1 -1
- package/dist/errors.d.ts +5 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/grant-key-credentials.d.ts +38 -0
- package/dist/grant-key-credentials.d.ts.map +1 -0
- package/dist/grant-key-credentials.js +42 -0
- package/dist/grant-key-credentials.js.map +1 -0
- package/dist/index.d.ts +16 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -21
- package/dist/index.js.map +1 -1
- package/dist/namespaces/billing.d.ts +1 -1
- package/dist/namespaces/billing.js +1 -1
- package/dist/namespaces/buzz.js +1 -1
- package/dist/namespaces/buzz.js.map +1 -1
- package/dist/namespaces/credentials.d.ts +4 -4
- package/dist/namespaces/credentials.js +4 -4
- package/dist/namespaces/deploy.d.ts +5 -5
- package/dist/namespaces/deploy.d.ts.map +1 -1
- package/dist/namespaces/deploy.js +25 -25
- package/dist/namespaces/deploy.js.map +1 -1
- package/dist/namespaces/deploy.types.d.ts +17 -17
- package/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/dist/namespaces/domains.d.ts +1 -1
- package/dist/namespaces/domains.js +1 -1
- package/dist/namespaces/errors.d.ts +1 -1
- package/dist/namespaces/errors.js +2 -2
- package/dist/namespaces/escalations.d.ts +2 -2
- package/dist/namespaces/escalations.js +2 -2
- package/dist/namespaces/escalations.types.d.ts +3 -3
- package/dist/namespaces/escalations.types.d.ts.map +1 -1
- package/dist/namespaces/events.d.ts +1 -1
- package/dist/namespaces/events.js +1 -1
- package/dist/namespaces/functions.js +1 -1
- package/dist/namespaces/functions.js.map +1 -1
- package/dist/namespaces/grants.d.ts +43 -9
- package/dist/namespaces/grants.d.ts.map +1 -1
- package/dist/namespaces/grants.js +99 -10
- package/dist/namespaces/grants.js.map +1 -1
- package/dist/namespaces/grants.types.d.ts +120 -15
- package/dist/namespaces/grants.types.d.ts.map +1 -1
- package/dist/namespaces/grants.types.js +12 -3
- package/dist/namespaces/grants.types.js.map +1 -1
- package/dist/namespaces/identity-links.types.d.ts +2 -2
- package/dist/namespaces/identity-links.types.d.ts.map +1 -1
- package/dist/namespaces/org.d.ts +3 -3
- package/dist/namespaces/org.js +3 -3
- package/dist/namespaces/org.types.d.ts +3 -3
- package/dist/namespaces/pay.js +1 -1
- package/dist/namespaces/projects.d.ts +1 -1
- package/dist/namespaces/projects.js +1 -1
- package/dist/namespaces/{gitvault.d.ts → repos.d.ts} +436 -449
- package/dist/namespaces/repos.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.js → repos.js} +452 -460
- package/dist/namespaces/repos.js.map +1 -0
- package/dist/namespaces/rooms.d.ts +3 -3
- package/dist/namespaces/rooms.js +5 -5
- 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 +3 -3
- package/dist/namespaces/tier.d.ts.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/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/credentials.d.ts +9 -9
- package/dist/node/credentials.d.ts.map +1 -1
- package/dist/node/credentials.js +12 -12
- package/dist/node/credentials.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 +34 -34
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +41 -41
- package/dist/node/index.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/project-auth-classification.d.ts +8 -8
- package/dist/project-auth-classification.d.ts.map +1 -1
- package/dist/project-auth-classification.js +7 -7
- package/dist/project-auth-classification.js.map +1 -1
- package/dist/scoped.d.ts +6 -14
- package/dist/scoped.d.ts.map +1 -1
- package/dist/scoped.js +10 -21
- package/dist/scoped.js.map +1 -1
- package/package.json +1 -1
- package/dist/delegate-credentials.d.ts +0 -37
- package/dist/delegate-credentials.d.ts.map +0 -1
- package/dist/delegate-credentials.js +0 -41
- package/dist/delegate-credentials.js.map +0 -1
- package/dist/namespaces/delegates.d.ts +0 -50
- package/dist/namespaces/delegates.d.ts.map +0 -1
- package/dist/namespaces/delegates.js +0 -99
- package/dist/namespaces/delegates.js.map +0 -1
- package/dist/namespaces/delegates.types.d.ts +0 -88
- package/dist/namespaces/delegates.types.d.ts.map +0 -1
- package/dist/namespaces/delegates.types.js +0 -10
- package/dist/namespaces/delegates.types.js.map +0 -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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* vault-mirror-and-recover — mirror destination config (design D1/D2,
|
|
3
3
|
* task 2.1).
|
|
4
4
|
*
|
|
5
5
|
* Per-vault mirror configuration lives BESIDE the keystore, in its own
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* share with every clone) and never containing a raw secret value. The
|
|
10
10
|
* credential field names an AWS profile OR selects the ambient environment
|
|
11
11
|
* chain (`AWS_ACCESS_KEY_ID`/`AWS_SECRET_ACCESS_KEY`/`AWS_SESSION_TOKEN`) —
|
|
12
|
-
* resolved at USE time by {@link ../node/
|
|
12
|
+
* resolved at USE time by {@link ../node/vault-mirror-backend.js}, never
|
|
13
13
|
* read or cached here. D1 is the reason this file exists at all: run402
|
|
14
14
|
* never holds a credential to the customer's bucket, so the credential must
|
|
15
15
|
* live somewhere run402 code never uploads or transmits — this config file,
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
import { existsSync, readdirSync, unlinkSync } from "node:fs";
|
|
19
19
|
import { join } from "node:path";
|
|
20
20
|
import { LocalError } from "../errors.js";
|
|
21
|
-
import {
|
|
22
|
-
import { readFileNoFollow, writeFileAtomic0600 } from "./
|
|
21
|
+
import { VAULT_SRC_RE } from "../namespaces/vault.crypto.js";
|
|
22
|
+
import { readFileNoFollow, writeFileAtomic0600 } from "./vault-keystore.js";
|
|
23
23
|
function fail(code, message, context, details, nextActions) {
|
|
24
24
|
throw new LocalError(message, context, { code, details, ...(nextActions ? { next_actions: nextActions } : {}) });
|
|
25
25
|
}
|
|
@@ -27,8 +27,8 @@ export function mirrorsDir(keystore) {
|
|
|
27
27
|
return join(keystore.rootDir, "mirrors");
|
|
28
28
|
}
|
|
29
29
|
export function mirrorConfigPath(keystore, repoId) {
|
|
30
|
-
if (!
|
|
31
|
-
fail("
|
|
30
|
+
if (!VAULT_SRC_RE.test(repoId))
|
|
31
|
+
fail("VAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving vault mirror config path");
|
|
32
32
|
return join(mirrorsDir(keystore), `${repoId}.json`);
|
|
33
33
|
}
|
|
34
34
|
/** Read the mirror config for one vault, or `null` when none is configured. */
|
|
@@ -41,10 +41,10 @@ export function readMirrorConfig(keystore, repoId) {
|
|
|
41
41
|
parsed = JSON.parse(text);
|
|
42
42
|
}
|
|
43
43
|
catch (e) {
|
|
44
|
-
fail("
|
|
44
|
+
fail("VAULT_MIRROR_CONFIG_CORRUPT", `mirror config for ${repoId} is not valid JSON: ${e.message}`, "reading vault mirror config", { repo_id: repoId });
|
|
45
45
|
}
|
|
46
46
|
if (parsed.version !== 1 || parsed.repo_id !== repoId || !parsed.destination) {
|
|
47
|
-
fail("
|
|
47
|
+
fail("VAULT_MIRROR_CONFIG_CORRUPT", `mirror config for ${repoId} is not a version-1 vault mirror config`, "reading vault mirror config", { repo_id: repoId });
|
|
48
48
|
}
|
|
49
49
|
return parsed;
|
|
50
50
|
}
|
|
@@ -56,13 +56,13 @@ export function listMirroredRepoIds(keystore) {
|
|
|
56
56
|
return readdirSync(dir)
|
|
57
57
|
.filter((n) => n.endsWith(".json"))
|
|
58
58
|
.map((n) => n.slice(0, -5))
|
|
59
|
-
.filter((id) =>
|
|
59
|
+
.filter((id) => VAULT_SRC_RE.test(id))
|
|
60
60
|
.sort();
|
|
61
61
|
}
|
|
62
62
|
/** Set (create or replace) the mirror destination for one vault. */
|
|
63
63
|
export function saveMirrorConfig(keystore, input, now = () => new Date()) {
|
|
64
64
|
if (input.destination.kind === "s3" && !input.credential) {
|
|
65
|
-
fail("
|
|
65
|
+
fail("VAULT_MIRROR_CREDENTIAL_REQUIRED", "an s3 mirror destination needs a credential — pass --profile <name> or --ambient", "configuring vault mirror");
|
|
66
66
|
}
|
|
67
67
|
const existing = readMirrorConfig(keystore, input.repo_id);
|
|
68
68
|
// A recorded success is a fact about ONE destination: carry it across an
|
|
@@ -84,7 +84,7 @@ export function saveMirrorConfig(keystore, input, now = () => new Date()) {
|
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Stamp `last_success_at` after a zero-failure mirror write/sync
|
|
87
|
-
* (
|
|
87
|
+
* (vault-mirror-default) — the local, never-transmitted fact that clears
|
|
88
88
|
* the `vault_unmirrored` finding. A no-op when no config exists (a
|
|
89
89
|
* test-injected backend can sync without one), or when the config was removed
|
|
90
90
|
* mid-sync.
|
|
@@ -106,11 +106,11 @@ export function removeMirrorConfig(keystore, repoId) {
|
|
|
106
106
|
unlinkSync(path);
|
|
107
107
|
}
|
|
108
108
|
catch (e) {
|
|
109
|
-
fail("
|
|
109
|
+
fail("VAULT_MIRROR_CONFIG_REMOVE_FAILED", `could not remove mirror config for ${repoId}: ${e.message}`, "removing vault mirror config", { repo_id: repoId });
|
|
110
110
|
}
|
|
111
111
|
return { removed: true };
|
|
112
112
|
}
|
|
113
|
-
/** Parse `s3://<bucket>/<prefix>` or a plain filesystem path into a {@link
|
|
113
|
+
/** Parse `s3://<bucket>/<prefix>` or a plain filesystem path into a {@link VaultMirrorDestination}. */
|
|
114
114
|
export function parseMirrorDestinationUrl(url, options = {}) {
|
|
115
115
|
if (url.startsWith("s3://")) {
|
|
116
116
|
const rest = url.slice("s3://".length);
|
|
@@ -118,10 +118,10 @@ export function parseMirrorDestinationUrl(url, options = {}) {
|
|
|
118
118
|
const bucket = slash === -1 ? rest : rest.slice(0, slash);
|
|
119
119
|
const prefix = slash === -1 ? "" : rest.slice(slash + 1).replace(/\/+$/, "");
|
|
120
120
|
if (!bucket)
|
|
121
|
-
fail("
|
|
121
|
+
fail("VAULT_MIRROR_DESTINATION_INVALID", `${url} names no bucket`, "parsing vault mirror destination", { url });
|
|
122
122
|
const region = options.region ?? process.env.AWS_REGION ?? process.env.AWS_DEFAULT_REGION;
|
|
123
123
|
if (!region)
|
|
124
|
-
fail("
|
|
124
|
+
fail("VAULT_MIRROR_REGION_REQUIRED", `an s3 destination needs a region — pass --region or set AWS_REGION`, "parsing vault mirror destination", { url });
|
|
125
125
|
return { kind: "s3", bucket, prefix, region, ...(options.endpoint ? { endpoint: options.endpoint } : {}) };
|
|
126
126
|
}
|
|
127
127
|
return { kind: "directory", path: url };
|
|
@@ -130,4 +130,4 @@ export function parseMirrorDestinationUrl(url, options = {}) {
|
|
|
130
130
|
export function formatMirrorDestination(destination) {
|
|
131
131
|
return destination.kind === "s3" ? `s3://${destination.bucket}/${destination.prefix}` : destination.path;
|
|
132
132
|
}
|
|
133
|
-
//# sourceMappingURL=
|
|
133
|
+
//# sourceMappingURL=vault-mirror-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-mirror-config.js","sourceRoot":"","sources":["../../src/node/vault-mirror-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import type { Client } from "../kernel.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { type
|
|
2
|
+
import { VAULT_MIRROR_KEYSTORE_STILL_REQUIRED_STATEMENT, VAULT_MIRROR_VALIDITY_NOT_FRESHNESS_STATEMENT } from "../namespaces/vault.crypto.js";
|
|
3
|
+
import { VaultKeystore } from "./vault-keystore.js";
|
|
4
|
+
import { type VaultMirrorBackend } from "./vault-mirror-backend.js";
|
|
5
5
|
/**
|
|
6
6
|
* REPO-RELATIVE — the `source/<repo_id>/` prefix has already been stripped
|
|
7
7
|
* (see the module doc's mirror-layout mapping). This is the shape every
|
|
8
|
-
* OTHER function in this module, `
|
|
8
|
+
* OTHER function in this module, `vault-recover.ts`, and the mirror
|
|
9
9
|
* backend interface all consume; nothing here ever sees the raw wire key
|
|
10
|
-
* except `
|
|
10
|
+
* except `listVaultObjectsAll` itself.
|
|
11
11
|
*
|
|
12
12
|
* `size_bytes` is an exact decimal string for EVERY kind, including the two
|
|
13
13
|
* generation-addressed chain kinds (`head`/`vault_genesis` at generation
|
|
14
14
|
* zero, `admission_record`) — never `null`.
|
|
15
15
|
*/
|
|
16
|
-
export interface
|
|
16
|
+
export interface VaultObjectEntry {
|
|
17
17
|
key: string;
|
|
18
18
|
object_kind: string;
|
|
19
19
|
sha256: string;
|
|
20
20
|
size_bytes: string;
|
|
21
21
|
}
|
|
22
|
-
/** Page through `GET /
|
|
23
|
-
export declare function
|
|
22
|
+
/** Page through `GET /vaults/v1/:vault_id/objects`, collecting every entry, stripped to repo-relative keys. Store-and-echo cursor per D3a — never parsed here either. */
|
|
23
|
+
export declare function listVaultObjectsAll(client: Client, repoId: string): Promise<VaultObjectEntry[]>;
|
|
24
24
|
/** Read one object's bytes by key, using the same wire identity every stored kind already carries (§3 layout). `null` when the gateway reports the object absent. */
|
|
25
|
-
export declare function
|
|
26
|
-
/** Exported for the key-shape conformance test (`
|
|
25
|
+
export declare function readVaultObjectBytes(client: Client, repoId: string, entry: VaultObjectEntry): Promise<Uint8Array | null>;
|
|
26
|
+
/** Exported for the key-shape conformance test (`vault-mirror-recover.test.ts`) — never called for its own sake outside this module. */
|
|
27
27
|
export declare function generationRouteForKey(key: string): {
|
|
28
28
|
route: "heads" | "admissions";
|
|
29
29
|
generation: string;
|
|
@@ -35,27 +35,27 @@ export declare function generationRouteForKey(key: string): {
|
|
|
35
35
|
* loose, unanchored fallback — see {@link NON_GENERATION_KEY_SPECS}).
|
|
36
36
|
* Exported for the key-shape conformance test.
|
|
37
37
|
*/
|
|
38
|
-
export declare function objectReadRequestForEntry(entry:
|
|
38
|
+
export declare function objectReadRequestForEntry(entry: VaultObjectEntry): {
|
|
39
39
|
object_kind: string;
|
|
40
40
|
object_id?: string;
|
|
41
41
|
epoch?: string;
|
|
42
42
|
recipient_fingerprint?: string;
|
|
43
43
|
};
|
|
44
|
-
export interface
|
|
44
|
+
export interface VaultMirrorWritePlan {
|
|
45
45
|
/** Every non-head, non-admission entry, in listing order — write these FIRST, in any order among themselves. */
|
|
46
|
-
objects:
|
|
46
|
+
objects: VaultObjectEntry[];
|
|
47
47
|
/** Then admission records and heads, interleaved, strictly ascending by generation (admission before its own head). */
|
|
48
|
-
admissionsAndHeads:
|
|
48
|
+
admissionsAndHeads: VaultObjectEntry[];
|
|
49
49
|
}
|
|
50
50
|
/** Sort a flat listing into the admission-order write plan (module doc above). */
|
|
51
|
-
export declare function planMirrorWrite(entries: readonly
|
|
52
|
-
export interface
|
|
51
|
+
export declare function planMirrorWrite(entries: readonly VaultObjectEntry[]): VaultMirrorWritePlan;
|
|
52
|
+
export interface VaultMirrorCopyResult {
|
|
53
53
|
key: string;
|
|
54
54
|
outcome: "copied" | "already_present" | "skipped_foreign_recipient" | "failed";
|
|
55
55
|
size_bytes?: string;
|
|
56
56
|
error?: string;
|
|
57
57
|
}
|
|
58
|
-
export interface
|
|
58
|
+
export interface VaultMirrorSyncSummary {
|
|
59
59
|
repo_id: string;
|
|
60
60
|
destination: string;
|
|
61
61
|
/** Faithful counts of what ACTUALLY happened this call — never an estimate (design D3a rider (e)). */
|
|
@@ -67,7 +67,7 @@ export interface GitvaultMirrorSyncSummary {
|
|
|
67
67
|
* than this machine's own identity — EXPECTED, not a problem. The
|
|
68
68
|
* recipient-only read gate means a mirror can only ever hold envelopes
|
|
69
69
|
* addressed to the local identity; a multi-recipient vault
|
|
70
|
-
* (
|
|
70
|
+
* (vault-human-envelopes) makes this the norm. Never counted toward
|
|
71
71
|
* `objects_failed`, and never causes `mirror sync` to report anything but
|
|
72
72
|
* success — named per-key in `skipped_foreign_recipient_keys` so a reader
|
|
73
73
|
* can tell "expected skip" from "silent gap" without cross-referencing.
|
|
@@ -80,25 +80,25 @@ export interface GitvaultMirrorSyncSummary {
|
|
|
80
80
|
key: string;
|
|
81
81
|
error: string;
|
|
82
82
|
}>;
|
|
83
|
-
validity_not_freshness: typeof
|
|
84
|
-
keystore_still_required: typeof
|
|
83
|
+
validity_not_freshness: typeof VAULT_MIRROR_VALIDITY_NOT_FRESHNESS_STATEMENT;
|
|
84
|
+
keystore_still_required: typeof VAULT_MIRROR_KEYSTORE_STILL_REQUIRED_STATEMENT;
|
|
85
85
|
}
|
|
86
|
-
export interface
|
|
87
|
-
keystore?:
|
|
86
|
+
export interface VaultMirrorSyncOptions {
|
|
87
|
+
keystore?: VaultKeystore;
|
|
88
88
|
/** Test/advanced hook: an already-opened backend, bypassing config resolution. */
|
|
89
|
-
backend?:
|
|
89
|
+
backend?: VaultMirrorBackend;
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
|
-
* `run402
|
|
92
|
+
* `run402 repos mirror sync` (task 2.3): list the vault's stored objects,
|
|
93
93
|
* diff against the mirror by key+size, fetch and hash-verify what's missing,
|
|
94
94
|
* write it in admission order. Resumable and idempotent — running it twice in
|
|
95
95
|
* a row with nothing new copies nothing the second time.
|
|
96
96
|
*/
|
|
97
|
-
export declare function mirrorSync(client: Client, repoId: string, options?:
|
|
98
|
-
export interface
|
|
97
|
+
export declare function mirrorSync(client: Client, repoId: string, options?: VaultMirrorSyncOptions): Promise<VaultMirrorSyncSummary>;
|
|
98
|
+
export interface VaultMirrorPushResult {
|
|
99
99
|
attempted: boolean;
|
|
100
100
|
outcome: "pushed" | "skipped_no_mirror" | "failed";
|
|
101
|
-
summary?:
|
|
101
|
+
summary?: VaultMirrorSyncSummary;
|
|
102
102
|
error?: string;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
@@ -116,7 +116,7 @@ export interface GitvaultMirrorPushResult {
|
|
|
116
116
|
* keeps the admission-order write discipline in exactly one place instead of
|
|
117
117
|
* a second, push-scoped code path that could drift from it.
|
|
118
118
|
*/
|
|
119
|
-
export declare function mirrorPushForGeneration(client: Client, repoId: string, options?:
|
|
119
|
+
export declare function mirrorPushForGeneration(client: Client, repoId: string, options?: VaultMirrorSyncOptions): Promise<VaultMirrorPushResult>;
|
|
120
120
|
/**
|
|
121
121
|
* `run402 repos create --byo`'s every-push dual-write (task 3.3, design
|
|
122
122
|
* D1): list the vault's stored objects, restrict to the signed CHAIN
|
|
@@ -128,7 +128,7 @@ export declare function mirrorPushForGeneration(client: Client, repoId: string,
|
|
|
128
128
|
* admission-order discipline the opt-in mirror uses — one implementation,
|
|
129
129
|
* not a second ordering to prove.
|
|
130
130
|
*/
|
|
131
|
-
export declare function byoChainCopySync(client: Client, repoId: string, options?:
|
|
131
|
+
export declare function byoChainCopySync(client: Client, repoId: string, options?: VaultMirrorSyncOptions): Promise<VaultMirrorSyncSummary>;
|
|
132
132
|
/**
|
|
133
133
|
* Fires after an ordinary vault push produces a new generation, mirroring
|
|
134
134
|
* {@link mirrorPushForGeneration}'s exact contract (NEVER throws, NEVER
|
|
@@ -136,16 +136,16 @@ export declare function byoChainCopySync(client: Client, repoId: string, options
|
|
|
136
136
|
* Gated on a LOCAL BYO write config existing for this repo — a managed
|
|
137
137
|
* vault (the common case) pays zero extra network calls, `skipped_no_byo`.
|
|
138
138
|
*/
|
|
139
|
-
export declare function byoChainCopyPushForGeneration(client: Client, repoId: string, options?:
|
|
140
|
-
export interface
|
|
139
|
+
export declare function byoChainCopyPushForGeneration(client: Client, repoId: string, options?: VaultMirrorSyncOptions): Promise<VaultMirrorPushResult>;
|
|
140
|
+
export interface VaultByoMissingObject {
|
|
141
141
|
key: string;
|
|
142
142
|
object_kind: string;
|
|
143
143
|
}
|
|
144
|
-
export interface
|
|
144
|
+
export interface VaultByoPresenceReport {
|
|
145
145
|
repo_id: string;
|
|
146
146
|
destination: string;
|
|
147
147
|
checked: number;
|
|
148
|
-
missing:
|
|
148
|
+
missing: VaultByoMissingObject[];
|
|
149
149
|
}
|
|
150
150
|
/**
|
|
151
151
|
* Adjudicates the BYO destination against run402's signed chain (task 3.3's
|
|
@@ -155,8 +155,8 @@ export interface GitvaultByoPresenceReport {
|
|
|
155
155
|
* direct write, chain via this file's dual-write above) — against the
|
|
156
156
|
* destination, by key + size. Never throws on an absence; it REPORTS every
|
|
157
157
|
* missing object by name so the caller (`repos fsck`) can refuse with
|
|
158
|
-
* `
|
|
158
|
+
* `VAULT_BYO_OBJECT_MISSING` naming exactly what the chain says should
|
|
159
159
|
* exist and does not.
|
|
160
160
|
*/
|
|
161
|
-
export declare function verifyByoObjectsPresent(client: Client, repoId: string, options?:
|
|
162
|
-
//# sourceMappingURL=
|
|
161
|
+
export declare function verifyByoObjectsPresent(client: Client, repoId: string, options?: VaultMirrorSyncOptions): Promise<VaultByoPresenceReport>;
|
|
162
|
+
//# sourceMappingURL=vault-mirror.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-mirror.d.ts","sourceRoot":"","sources":["../../src/node/vault-mirror.ts"],"names":[],"mappings":"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"}
|