run402 4.37.1 → 4.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/core-dist/keystore.js +56 -4
- package/git-remote-run402.mjs +136 -14
- package/lib/command-manifest.mjs +7 -0
- package/lib/doctor.mjs +19 -6
- package/lib/gitvault-target.mjs +145 -0
- package/lib/gitvault.mjs +81 -18
- package/lib/next-actions.mjs +25 -0
- package/lib/org.mjs +70 -0
- package/lib/repos.mjs +130 -5
- package/lib/up.mjs +19 -2
- package/lib/wallet-context.mjs +88 -12
- package/package.json +1 -1
- package/sdk/core-dist/keystore.js +56 -4
- package/sdk/dist/errors.d.ts +6 -2
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/index.d.ts +1 -1
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +1 -1
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/namespaces/gitvault.crypto.d.ts +11 -2
- package/sdk/dist/namespaces/gitvault.crypto.d.ts.map +1 -1
- package/sdk/dist/namespaces/gitvault.crypto.js +11 -2
- package/sdk/dist/namespaces/gitvault.crypto.js.map +1 -1
- package/sdk/dist/namespaces/gitvault.d.ts +109 -3
- package/sdk/dist/namespaces/gitvault.d.ts.map +1 -1
- package/sdk/dist/namespaces/gitvault.js +161 -12
- package/sdk/dist/namespaces/gitvault.js.map +1 -1
- package/sdk/dist/namespaces/org.d.ts +18 -1
- package/sdk/dist/namespaces/org.d.ts.map +1 -1
- package/sdk/dist/namespaces/org.js +38 -0
- package/sdk/dist/namespaces/org.js.map +1 -1
- package/sdk/dist/namespaces/org.types.d.ts +16 -0
- package/sdk/dist/namespaces/org.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts +11 -1
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +16 -0
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/projects.types.d.ts +7 -0
- package/sdk/dist/namespaces/projects.types.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-address.d.ts +89 -0
- package/sdk/dist/node/gitvault-address.d.ts.map +1 -0
- package/sdk/dist/node/gitvault-address.js +113 -0
- package/sdk/dist/node/gitvault-address.js.map +1 -0
- package/sdk/dist/node/gitvault-creation-journal.d.ts +81 -9
- package/sdk/dist/node/gitvault-creation-journal.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-creation-journal.js +93 -17
- package/sdk/dist/node/gitvault-creation-journal.js.map +1 -1
- package/sdk/dist/node/gitvault-publication.d.ts +13 -0
- package/sdk/dist/node/gitvault-publication.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-publication.js +1 -0
- package/sdk/dist/node/gitvault-publication.js.map +1 -1
- package/sdk/dist/node/gitvault-push-to-create.d.ts +75 -0
- package/sdk/dist/node/gitvault-push-to-create.d.ts.map +1 -0
- package/sdk/dist/node/gitvault-push-to-create.js +132 -0
- package/sdk/dist/node/gitvault-push-to-create.js.map +1 -0
- package/sdk/dist/node/index.d.ts +6 -2
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +8 -1
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/scoped.d.ts +2 -1
- package/sdk/dist/scoped.d.ts.map +1 -1
- package/sdk/dist/scoped.js +3 -0
- package/sdk/dist/scoped.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitvault-address.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D;AAcD,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOhG;AAED,kGAAkG;AAClG,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3I;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,uGAAuG;IACvG,GAAG,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,iGAAiG;IACjG,OAAO,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACjI;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6GAA6G;IAC7G,OAAO,EAAE,qBAAqB,CAAC;IAC/B,8JAA8J;IAC9J,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0KAA0K;IAC1K,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,wGAAwG;IACxG,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvG;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA4CvH"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gitvault D6 — named addressing resolution + id-pinning (repo-first-onramp
|
|
3
|
+
* task 4.5).
|
|
4
|
+
*
|
|
5
|
+
* Two things live here, both Node-only (local git state):
|
|
6
|
+
*
|
|
7
|
+
* - PIN read/write: `r402.repoId` (+ `r402.repoAddress`, the human name it
|
|
8
|
+
* was resolved from) in the repository's LOCAL git config
|
|
9
|
+
* (`git config --local` — this checkout's own `.git/config`, never
|
|
10
|
+
* global). "Local git state" per design D6's id-pinning paragraph.
|
|
11
|
+
* - `resolveGitvaultAddress`: the orchestrator the remote helper and
|
|
12
|
+
* `gitvault snapshot` drive — pinned id first, then dispatch on the
|
|
13
|
+
* address's form (id vs slug — {@link gitvaultRemoteAddressForm}), then
|
|
14
|
+
* (slug-form only, opt-in via `allow_create`) push-to-create on a miss.
|
|
15
|
+
*
|
|
16
|
+
* ID-PINNING RATIONALE (design D6, "resolved"): "on first contact the helper
|
|
17
|
+
* resolves slug/name → repo_id and pins the immutable id in local git state.
|
|
18
|
+
* Names are sugar for humans and first-time clones; every existing checkout
|
|
19
|
+
* follows the id and survives any rename." Concretely: an id-form address
|
|
20
|
+
* (`org_id`/`prj_...`) already survives a rename (project ids never change),
|
|
21
|
+
* so pinning buys it nothing and this module never pins one. A SLUG-form
|
|
22
|
+
* address re-resolves `org-slug/name → repo_id` over the network on every
|
|
23
|
+
* open unless pinned — and a rename of either half would silently break that
|
|
24
|
+
* resolution for an EXISTING checkout the moment it takes effect. Pinning
|
|
25
|
+
* `repo_id` the first time a slug-form address resolves means every later
|
|
26
|
+
* open on this checkout goes straight to `repo_id` (no resolution round-trip,
|
|
27
|
+
* and no exposure to a later rename at all) — structurally better than a
|
|
28
|
+
* redirect, per the design's own framing.
|
|
29
|
+
*/
|
|
30
|
+
import { hardenedGit } from "./gitvault-snapshot.js";
|
|
31
|
+
import { gitvaultRemoteAddressForm } from "../namespaces/gitvault.js";
|
|
32
|
+
import { pushToCreateGitvault } from "./gitvault-push-to-create.js";
|
|
33
|
+
const CONFIG_KEY_REPO_ID = "r402.repoId";
|
|
34
|
+
/** The `org-slug/name` text the pin was resolved from — diagnostic only; resolution never reads it back. */
|
|
35
|
+
const CONFIG_KEY_ADDRESS = "r402.repoAddress";
|
|
36
|
+
async function readLocalGitConfig(repoDir, key) {
|
|
37
|
+
try {
|
|
38
|
+
const out = (await hardenedGit(repoDir, ["config", "--local", "--get", key])).text().trim();
|
|
39
|
+
return out.length > 0 ? out : null;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// `git config --get` exits non-zero both when the key is absent and when
|
|
43
|
+
// this is not a repository at all — either way, "nothing pinned" is the
|
|
44
|
+
// correct read for a resolver that must degrade gracefully.
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Read this checkout's pinned `repo_id`, or `null` when nothing is pinned. */
|
|
49
|
+
export async function readPinnedGitvaultRepo(repoDir) {
|
|
50
|
+
const repoId = await readLocalGitConfig(repoDir, CONFIG_KEY_REPO_ID);
|
|
51
|
+
if (!repoId)
|
|
52
|
+
return null;
|
|
53
|
+
const address = await readLocalGitConfig(repoDir, CONFIG_KEY_ADDRESS);
|
|
54
|
+
const parts = address ? address.split("/") : [];
|
|
55
|
+
const resolvedFrom = parts.length === 2 && parts[0] && parts[1] ? { org_slug: parts[0], repo_name: parts.slice(1).join("/") } : null;
|
|
56
|
+
return { repo_id: repoId, resolved_from: resolvedFrom };
|
|
57
|
+
}
|
|
58
|
+
/** Pin `repo_id` (and the address it was resolved from) into this checkout's LOCAL git config. */
|
|
59
|
+
export async function pinGitvaultRepo(repoDir, repoId, resolvedFrom) {
|
|
60
|
+
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_REPO_ID, repoId]);
|
|
61
|
+
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_ADDRESS, `${resolvedFrom.org_slug}/${resolvedFrom.repo_name}`]);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Resolve a parsed remote address to `{repo_id, project_id, org_id}`,
|
|
65
|
+
* pinning `repo_id` in local git state on the first successful SLUG-form
|
|
66
|
+
* resolution (task 4.5), and — when `allow_create` is set and resolution
|
|
67
|
+
* misses — push-to-create it (task 4.4/4.5, design D6).
|
|
68
|
+
*/
|
|
69
|
+
export async function resolveGitvaultAddress(options) {
|
|
70
|
+
if (options.repo_dir) {
|
|
71
|
+
const pinned = await readPinnedGitvaultRepo(options.repo_dir);
|
|
72
|
+
if (pinned) {
|
|
73
|
+
const record = await options.transport.getVaultRecord({ repo_id: pinned.repo_id });
|
|
74
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "pin", address: pinned.resolved_from, created: null };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const form = gitvaultRemoteAddressForm(options.address);
|
|
78
|
+
if (form === "id") {
|
|
79
|
+
// Id-form is already rename-proof (a project id never changes) — no pin,
|
|
80
|
+
// per the design's own instruction ("pin only resolves names").
|
|
81
|
+
const record = await options.transport.findVaultByProject({ project_id: options.address.project_id });
|
|
82
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "id", via: "resolved", address: null, created: null };
|
|
83
|
+
}
|
|
84
|
+
const orgSlug = options.address.org_id;
|
|
85
|
+
const repoName = options.address.project_id;
|
|
86
|
+
// `allow_create` delegates straight to `pushToCreateGitvault`, which
|
|
87
|
+
// already opens with its OWN fast-path `findVaultByRepo` read (step 1 of
|
|
88
|
+
// its own doc comment) — probing here first too would just double the
|
|
89
|
+
// network read on every ordinary (non-creating) push.
|
|
90
|
+
if (options.allow_create) {
|
|
91
|
+
const result = await pushToCreateGitvault({
|
|
92
|
+
keystore: options.keystore,
|
|
93
|
+
transport: options.transport,
|
|
94
|
+
org_slug: orgSlug,
|
|
95
|
+
repo_name: repoName,
|
|
96
|
+
...(options.client_creation_id !== undefined ? { client_creation_id: options.client_creation_id } : {}),
|
|
97
|
+
...(options.service_public_key !== undefined ? { service_public_key: options.service_public_key } : {}),
|
|
98
|
+
});
|
|
99
|
+
if (options.repo_dir)
|
|
100
|
+
await pinGitvaultRepo(options.repo_dir, result.repo_id, { org_slug: orgSlug, repo_name: repoName });
|
|
101
|
+
if (!result.found && result.created)
|
|
102
|
+
await options.onVaultCreated?.(result.created);
|
|
103
|
+
return { repo_id: result.repo_id, project_id: result.project_id, org_id: result.org_id, form: "slug", via: result.found ? "resolved" : "created", address: { org_slug: orgSlug, repo_name: repoName }, created: result.created };
|
|
104
|
+
}
|
|
105
|
+
// Read-only path (`list`/`fetch`, plain `status`): a miss is an ordinary
|
|
106
|
+
// not-found refusal — including `SLUG_RELEASED`, which is NEVER
|
|
107
|
+
// auto-followed and rethrows unchanged either way.
|
|
108
|
+
const record = await options.transport.findVaultByRepo({ org_slug: orgSlug, repo_name: repoName });
|
|
109
|
+
if (options.repo_dir)
|
|
110
|
+
await pinGitvaultRepo(options.repo_dir, record.repo_id, { org_slug: orgSlug, repo_name: repoName });
|
|
111
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "resolved", address: { org_slug: orgSlug, repo_name: repoName }, created: null };
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=gitvault-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitvault-address.js","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAA8B,MAAM,2BAA2B,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,4GAA4G;AAC5G,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAQ9C,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5F,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,wEAAwE;QACxE,4DAA4D;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAC1D,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,YAAqD;IAC1H,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC9H,CAAC;AA8BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAsC;IACjF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnK,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,MAAM,GAAwB,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAE5C,qEAAqE;IACrE,yEAAyE;IACzE,sEAAsE;IACtE,sDAAsD;IACtD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,QAAQ;YACnB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1H,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACnO,CAAC;IAED,yEAAyE;IACzE,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnG,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9L,CAAC"}
|
|
@@ -51,13 +51,42 @@ export interface GitvaultJournaledObject {
|
|
|
51
51
|
/** Set once the server receipt was compared equal to the local manifest. */
|
|
52
52
|
finalized: boolean;
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Push-to-create addressing (repo-first-onramp task 4.5; design D6). A journal
|
|
56
|
+
* opened this way does not know its `org_id`/`project_id` until the ALLOCATED
|
|
57
|
+
* stage's response tells it (the gateway resolves `org_slug` and creates the
|
|
58
|
+
* project atomically inside the SAME allocate call — see routes/gitvault.ts's
|
|
59
|
+
* `resolveAllocationAuthz` in run402-private) — see `GitvaultCreationJournal`'s
|
|
60
|
+
* doc comment on why `org_id`/`project_id` are nullable.
|
|
61
|
+
*/
|
|
62
|
+
export interface GitvaultPushToCreateAddress {
|
|
63
|
+
org_slug: string;
|
|
64
|
+
repo_name: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* `journal/<client_creation_id>.json`. Stage-monotonic; every field from an
|
|
68
|
+
* earlier stage survives.
|
|
69
|
+
*
|
|
70
|
+
* `org_id` / `project_id` are `string | null` because of push-to-create
|
|
71
|
+
* (repo-first-onramp task 4.5, design D6): a journal opened with
|
|
72
|
+
* `push_to_create` set does not know either value until the ALLOCATED stage's
|
|
73
|
+
* response names them (trust-on-first-use — `checkAllocation` skips those two
|
|
74
|
+
* comparisons while they are `null` and this module pins them from the
|
|
75
|
+
* allocation the FIRST time, then treats the pin as authoritative on every
|
|
76
|
+
* later call for this same journal, same as an ordinary `project_id`-addressed
|
|
77
|
+
* journal always has been). Exactly one of `project_id` or `push_to_create` is
|
|
78
|
+
* set at open time; `push_to_create` itself never changes across the journal's
|
|
79
|
+
* life — it is the RESUMABILITY KEY for a push-to-create attempt, the way
|
|
80
|
+
* `(org_id, project_id)` is for the ordinary path.
|
|
81
|
+
*/
|
|
55
82
|
export interface GitvaultCreationJournal {
|
|
56
83
|
version: 1;
|
|
57
84
|
stage: GitvaultCreationStage;
|
|
58
85
|
client_creation_id: string;
|
|
59
|
-
org_id: string;
|
|
60
|
-
project_id: string;
|
|
86
|
+
org_id: string | null;
|
|
87
|
+
project_id: string | null;
|
|
88
|
+
/** Set only for a push-to-create journal (task 4.5); `null` otherwise. */
|
|
89
|
+
push_to_create: GitvaultPushToCreateAddress | null;
|
|
61
90
|
creator_signing_fingerprint: string;
|
|
62
91
|
creator_encryption_fingerprint: string;
|
|
63
92
|
created_at: string;
|
|
@@ -72,9 +101,17 @@ export interface GitvaultCreationJournal {
|
|
|
72
101
|
genesis_sha256: string | null;
|
|
73
102
|
/** ACTIVE — the emitted recovery receipt. */
|
|
74
103
|
recovery_receipt: GitvaultRecoveryReceipt | null;
|
|
75
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* A terminal refusal, if reconciliation hit one (the journal is kept for
|
|
106
|
+
* diagnosis, never retried destructively). `REPO_CREATION_CONFLICT` (task
|
|
107
|
+
* 4.5) marks a push-to-create journal that lost the atomic name-claim race
|
|
108
|
+
* — `details.project_id` names the winner, exactly what
|
|
109
|
+
* `pushToCreateGitvault` needs to resolve to it and proceed as an ordinary
|
|
110
|
+
* push (design D6: "the loser's work is not lost — it just wasn't the
|
|
111
|
+
* creator").
|
|
112
|
+
*/
|
|
76
113
|
refusal: {
|
|
77
|
-
code: "VAULT_CREATION_CONFLICT" | "ALLOCATION_SUPERSEDED";
|
|
114
|
+
code: "VAULT_CREATION_CONFLICT" | "ALLOCATION_SUPERSEDED" | "REPO_CREATION_CONFLICT";
|
|
78
115
|
at: string;
|
|
79
116
|
details?: Record<string, unknown>;
|
|
80
117
|
} | null;
|
|
@@ -97,7 +134,7 @@ export interface GitvaultCreationJournal {
|
|
|
97
134
|
* `checkAllocation` compares the record's fingerprints back against this
|
|
98
135
|
* principal's — which is what proves the keys we sent are the keys it stored.
|
|
99
136
|
*/
|
|
100
|
-
export
|
|
137
|
+
export type GitvaultAllocateRequest = {
|
|
101
138
|
client_creation_id: string;
|
|
102
139
|
org_id: string;
|
|
103
140
|
project_id: string;
|
|
@@ -105,7 +142,20 @@ export interface GitvaultAllocateRequest {
|
|
|
105
142
|
creator_signing_pubkey: string;
|
|
106
143
|
/** Raw X25519 public key, canonical base64url (43 chars, decodes to 32 bytes). */
|
|
107
144
|
creator_encryption_pubkey: string;
|
|
108
|
-
}
|
|
145
|
+
} | {
|
|
146
|
+
/**
|
|
147
|
+
* Push-to-create (repo-first-onramp task 4.4/4.5, design D6):
|
|
148
|
+
* `{org_slug, repo_name}` in place of `{org_id, project_id}`. The
|
|
149
|
+
* gateway resolves the slug, atomically claims the name, creates the
|
|
150
|
+
* project, and allocates the vault — all inside this one call
|
|
151
|
+
* (`POST /gitvault/v1/vaults`, same route, alternate body shape).
|
|
152
|
+
*/
|
|
153
|
+
client_creation_id: string;
|
|
154
|
+
org_slug: string;
|
|
155
|
+
repo_name: string;
|
|
156
|
+
creator_signing_pubkey: string;
|
|
157
|
+
creator_encryption_pubkey: string;
|
|
158
|
+
};
|
|
109
159
|
export interface GitvaultPutObjectRequest {
|
|
110
160
|
repo_id: string;
|
|
111
161
|
path: string;
|
|
@@ -160,8 +210,16 @@ export interface GitvaultCreationTransport {
|
|
|
160
210
|
export interface GitvaultCreationOptions {
|
|
161
211
|
keystore: GitvaultKeystore;
|
|
162
212
|
transport: GitvaultCreationTransport;
|
|
163
|
-
|
|
164
|
-
|
|
213
|
+
/**
|
|
214
|
+
* Exactly ONE addressing form: either `{org_id, project_id}` (the ordinary
|
|
215
|
+
* path — a project already exists) or `push_to_create` (task 4.5 — the
|
|
216
|
+
* project does not exist yet; the gateway creates it atomically alongside
|
|
217
|
+
* the vault). Passing both, or neither, is a local validation error.
|
|
218
|
+
*/
|
|
219
|
+
org_id?: string;
|
|
220
|
+
project_id?: string;
|
|
221
|
+
/** Push-to-create addressing (repo-first-onramp task 4.5, design D6) — mutually exclusive with `{org_id, project_id}`. */
|
|
222
|
+
push_to_create?: GitvaultPushToCreateAddress;
|
|
165
223
|
/** Resume an existing journal, or pin the idempotency key (tests). Fresh CSPRNG when omitted. */
|
|
166
224
|
client_creation_id?: string;
|
|
167
225
|
/** Clock injection. */
|
|
@@ -173,6 +231,9 @@ export interface GitvaultCreationOptions {
|
|
|
173
231
|
}
|
|
174
232
|
export interface GitvaultCreationResult {
|
|
175
233
|
repo_id: string;
|
|
234
|
+
/** The owning org/project, resolved by ACTIVE either way — trust-on-first-use for a push-to-create journal (task 4.5). */
|
|
235
|
+
org_id: string;
|
|
236
|
+
project_id: string;
|
|
176
237
|
genesis_sha256: string;
|
|
177
238
|
recovery_receipt: GitvaultRecoveryReceipt;
|
|
178
239
|
journal: GitvaultCreationJournal;
|
|
@@ -206,6 +267,17 @@ export declare function listIncompleteGitvaultJournals(keystore: GitvaultKeystor
|
|
|
206
267
|
* preferred, on the theory that it is the attempt most likely still moving.
|
|
207
268
|
*/
|
|
208
269
|
export declare function findResumableGitvaultJournal(keystore: GitvaultKeystore, orgId: string, projectId: string): GitvaultCreationJournal | null;
|
|
270
|
+
/**
|
|
271
|
+
* The push-to-create sibling of {@link findResumableGitvaultJournal} (task
|
|
272
|
+
* 4.5): find an in-progress LOCAL push-to-create attempt for this exact
|
|
273
|
+
* `(org_slug, repo_name)` address, so a retry after a crash resumes it rather
|
|
274
|
+
* than starting a second competing attempt. A journal that already lost the
|
|
275
|
+
* name-claim race (`REPO_CREATION_CONFLICT`) is excluded — resuming it would
|
|
276
|
+
* only reproduce the same refusal; `pushToCreateGitvault` starts a fresh
|
|
277
|
+
* attempt in that case (and typically does not even reach here, since its
|
|
278
|
+
* own fast-path read resolves the winner's repo directly).
|
|
279
|
+
*/
|
|
280
|
+
export declare function findResumablePushToCreateJournal(keystore: GitvaultKeystore, orgSlug: string, repoName: string): GitvaultCreationJournal | null;
|
|
209
281
|
export declare class GitvaultCreation {
|
|
210
282
|
private readonly keystore;
|
|
211
283
|
private readonly transport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-creation-journal.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,EAEL,kCAAkC,EAClC,gCAAgC,EAajC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,kBAAkB,EAElB,0BAA0B,EAC1B,uBAAuB,EAEvB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAyC,MAAM,wBAAwB,CAAC;AAIjG,eAAO,MAAM,wBAAwB,sHAO3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,cAAc,CAAC;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,EAAE,0BAA0B,CAAC;IACpC,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"gitvault-creation-journal.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,7 +107,24 @@ export function listIncompleteGitvaultJournals(keystore) {
|
|
|
107
107
|
* preferred, on the theory that it is the attempt most likely still moving.
|
|
108
108
|
*/
|
|
109
109
|
export function findResumableGitvaultJournal(keystore, orgId, projectId) {
|
|
110
|
-
const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.org_id === orgId && j.project_id === projectId && j.refusal === null);
|
|
110
|
+
const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.push_to_create === null && j.org_id === orgId && j.project_id === projectId && j.refusal === null);
|
|
111
|
+
if (candidates.length === 0)
|
|
112
|
+
return null;
|
|
113
|
+
candidates.sort((a, b) => (a.updated_at < b.updated_at ? 1 : a.updated_at > b.updated_at ? -1 : 0));
|
|
114
|
+
return candidates[0];
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The push-to-create sibling of {@link findResumableGitvaultJournal} (task
|
|
118
|
+
* 4.5): find an in-progress LOCAL push-to-create attempt for this exact
|
|
119
|
+
* `(org_slug, repo_name)` address, so a retry after a crash resumes it rather
|
|
120
|
+
* than starting a second competing attempt. A journal that already lost the
|
|
121
|
+
* name-claim race (`REPO_CREATION_CONFLICT`) is excluded — resuming it would
|
|
122
|
+
* only reproduce the same refusal; `pushToCreateGitvault` starts a fresh
|
|
123
|
+
* attempt in that case (and typically does not even reach here, since its
|
|
124
|
+
* own fast-path read resolves the winner's repo directly).
|
|
125
|
+
*/
|
|
126
|
+
export function findResumablePushToCreateJournal(keystore, orgSlug, repoName) {
|
|
127
|
+
const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.push_to_create !== null && j.push_to_create.org_slug === orgSlug && j.push_to_create.repo_name === repoName && j.refusal === null);
|
|
111
128
|
if (candidates.length === 0)
|
|
112
129
|
return null;
|
|
113
130
|
candidates.sort((a, b) => (a.updated_at < b.updated_at ? 1 : a.updated_at > b.updated_at ? -1 : 0));
|
|
@@ -134,6 +151,10 @@ export class GitvaultCreation {
|
|
|
134
151
|
* network; no ciphertext exists yet.
|
|
135
152
|
*/
|
|
136
153
|
static open(options) {
|
|
154
|
+
const usingPushToCreate = options.push_to_create !== undefined;
|
|
155
|
+
if (usingPushToCreate === (options.org_id !== undefined || options.project_id !== undefined)) {
|
|
156
|
+
fail("GITVAULT_BAD_ADDRESS", "pass exactly one of {org_id, project_id} or push_to_create, never both or neither", "opening gitvault creation");
|
|
157
|
+
}
|
|
137
158
|
const ks = options.keystore;
|
|
138
159
|
const identity = ks.ensureIdentity();
|
|
139
160
|
const signing = ks.signingKeypair(identity);
|
|
@@ -144,8 +165,18 @@ export class GitvaultCreation {
|
|
|
144
165
|
const id = options.client_creation_id ?? newHex32();
|
|
145
166
|
const existing = readGitvaultJournal(ks, id);
|
|
146
167
|
if (existing) {
|
|
147
|
-
|
|
148
|
-
|
|
168
|
+
// Addressing-key mismatch refuses a destructive retry — the ordinary
|
|
169
|
+
// (org_id, project_id) form and push-to-create's (org_slug, repo_name)
|
|
170
|
+
// form are each other's cross-check: a journal opened one way must
|
|
171
|
+
// never silently resume under the other, and a push-to-create journal
|
|
172
|
+
// compares its OWN address (`push_to_create` never changes across a
|
|
173
|
+
// journal's life, unlike `org_id`/`project_id`, which start null there
|
|
174
|
+
// and get pinned from the allocation response).
|
|
175
|
+
const mismatch = usingPushToCreate
|
|
176
|
+
? existing.push_to_create === null || existing.push_to_create.org_slug !== options.push_to_create.org_slug || existing.push_to_create.repo_name !== options.push_to_create.repo_name
|
|
177
|
+
: existing.push_to_create !== null || existing.org_id !== options.org_id || existing.project_id !== options.project_id;
|
|
178
|
+
if (mismatch) {
|
|
179
|
+
fail("VAULT_CREATION_CONFLICT", "journal belongs to a different org/project (or addressing form)", "resuming gitvault creation", { client_creation_id: id });
|
|
149
180
|
}
|
|
150
181
|
if (existing.creator_signing_fingerprint !== identity.signing_fingerprint || existing.creator_encryption_fingerprint !== identity.encryption_fingerprint) {
|
|
151
182
|
fail("VAULT_CREATION_CONFLICT", "journal was prepared by a different identity; refusing the destructive retry", "resuming gitvault creation", { client_creation_id: id });
|
|
@@ -157,8 +188,9 @@ export class GitvaultCreation {
|
|
|
157
188
|
version: 1,
|
|
158
189
|
stage: "LOCAL_KEYS_PREPARED",
|
|
159
190
|
client_creation_id: id,
|
|
160
|
-
org_id: options.org_id,
|
|
161
|
-
project_id: options.project_id,
|
|
191
|
+
org_id: usingPushToCreate ? null : options.org_id,
|
|
192
|
+
project_id: usingPushToCreate ? null : options.project_id,
|
|
193
|
+
push_to_create: options.push_to_create ?? null,
|
|
162
194
|
creator_signing_fingerprint: identity.signing_fingerprint,
|
|
163
195
|
creator_encryption_fingerprint: identity.encryption_fingerprint,
|
|
164
196
|
created_at: at,
|
|
@@ -210,17 +242,53 @@ export class GitvaultCreation {
|
|
|
210
242
|
const encryption = this.keystore.encryptionKeypair(identity);
|
|
211
243
|
// ── 2. ALLOCATED ──
|
|
212
244
|
if (this.journal.stage === "LOCAL_KEYS_PREPARED") {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
245
|
+
// PUBKEYS on the request; the returned record carries the fingerprints
|
|
246
|
+
// the gateway derives from them. See GitvaultAllocateRequest.
|
|
247
|
+
const request = this.journal.push_to_create
|
|
248
|
+
? {
|
|
249
|
+
client_creation_id: this.journal.client_creation_id,
|
|
250
|
+
org_slug: this.journal.push_to_create.org_slug,
|
|
251
|
+
repo_name: this.journal.push_to_create.repo_name,
|
|
252
|
+
creator_signing_pubkey: identity.signing_pubkey,
|
|
253
|
+
creator_encryption_pubkey: identity.encryption_pubkey,
|
|
254
|
+
}
|
|
255
|
+
: {
|
|
256
|
+
client_creation_id: this.journal.client_creation_id,
|
|
257
|
+
org_id: this.journal.org_id,
|
|
258
|
+
project_id: this.journal.project_id,
|
|
259
|
+
creator_signing_pubkey: identity.signing_pubkey,
|
|
260
|
+
creator_encryption_pubkey: identity.encryption_pubkey,
|
|
261
|
+
};
|
|
262
|
+
let allocation;
|
|
263
|
+
try {
|
|
264
|
+
allocation = await this.transport.allocate(request);
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
// Push-to-create's race (task 4.4/4.5, design D6): the atomic
|
|
268
|
+
// name-claim was lost to a concurrent pusher. Mark the journal
|
|
269
|
+
// refused with the winner's project_id so `pushToCreateGitvault` can
|
|
270
|
+
// resolve to it and proceed as an ordinary push — "the loser's work
|
|
271
|
+
// is not lost, it just wasn't the creator." Never retried
|
|
272
|
+
// destructively from here; a fresh push-to-create attempt (if one is
|
|
273
|
+
// ever made) starts its own journal.
|
|
274
|
+
const code = e?.code;
|
|
275
|
+
if (this.journal.push_to_create && code === "REPO_CREATION_CONFLICT") {
|
|
276
|
+
const details = e?.details;
|
|
277
|
+
this.refuse("REPO_CREATION_CONFLICT", "lost the push-to-create name-claim race to a concurrent pusher", details);
|
|
278
|
+
}
|
|
279
|
+
throw e;
|
|
280
|
+
}
|
|
281
|
+
// Trust-on-first-use (task 4.5): a push-to-create journal has no
|
|
282
|
+
// org_id/project_id to check the allocation against yet — `checkAllocation`
|
|
283
|
+
// skips those two comparisons while `expected.org_id`/`project_id` are
|
|
284
|
+
// `undefined`, and the (owner-authorized, signature-verified)
|
|
285
|
+
// allocation's own values become the pin from here on.
|
|
222
286
|
this.verifyAllocation(allocation);
|
|
223
|
-
await this.advance("ALLOCATED", {
|
|
287
|
+
await this.advance("ALLOCATED", {
|
|
288
|
+
allocation,
|
|
289
|
+
org_id: this.journal.org_id ?? allocation.org_id,
|
|
290
|
+
project_id: this.journal.project_id ?? allocation.project_id,
|
|
291
|
+
});
|
|
224
292
|
}
|
|
225
293
|
const allocation = this.journal.allocation;
|
|
226
294
|
const repoId = allocation.repo_id;
|
|
@@ -280,6 +348,8 @@ export class GitvaultCreation {
|
|
|
280
348
|
this.refuse("VAULT_CREATION_CONFLICT", "journal has no finalized key_envelope");
|
|
281
349
|
const genesis = buildVaultGenesis({
|
|
282
350
|
repo_id: repoId,
|
|
351
|
+
// Guaranteed non-null past ALLOCATED, which pins both from the
|
|
352
|
+
// allocation response either way (ordinary or push-to-create).
|
|
283
353
|
org_id: this.journal.org_id,
|
|
284
354
|
project_id: this.journal.project_id,
|
|
285
355
|
allocation_nonce: allocation.allocation_nonce,
|
|
@@ -342,6 +412,8 @@ export class GitvaultCreation {
|
|
|
342
412
|
}
|
|
343
413
|
return {
|
|
344
414
|
repo_id: repoId,
|
|
415
|
+
org_id: this.journal.org_id,
|
|
416
|
+
project_id: this.journal.project_id,
|
|
345
417
|
genesis_sha256: this.journal.genesis_sha256,
|
|
346
418
|
recovery_receipt: this.journal.recovery_receipt,
|
|
347
419
|
journal: this.journal,
|
|
@@ -353,8 +425,12 @@ export class GitvaultCreation {
|
|
|
353
425
|
client_creation_id: this.journal.client_creation_id,
|
|
354
426
|
creator_signing_fingerprint: this.journal.creator_signing_fingerprint,
|
|
355
427
|
creator_encryption_fingerprint: this.journal.creator_encryption_fingerprint,
|
|
356
|
-
|
|
357
|
-
|
|
428
|
+
// `undefined`, not `null`, is what tells checkAllocation to skip a
|
|
429
|
+
// comparison — trust-on-first-use for a fresh push-to-create journal
|
|
430
|
+
// (task 4.5). A resumed journal past its first ALLOCATED call already
|
|
431
|
+
// has these pinned and compares them normally.
|
|
432
|
+
org_id: this.journal.org_id ?? undefined,
|
|
433
|
+
project_id: this.journal.project_id ?? undefined,
|
|
358
434
|
}, this.options.service_public_key);
|
|
359
435
|
if (problems.length > 0) {
|
|
360
436
|
fail("GITVAULT_ALLOCATION_INVALID", "allocation does not match this creation attempt", "verifying gitvault allocation", { problems });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-creation-journal.js","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gitvault-creation-journal.js","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -338,6 +338,19 @@ export interface GitvaultTransport extends GitvaultCreationTransport {
|
|
|
338
338
|
findVaultByProject(request: {
|
|
339
339
|
project_id: string;
|
|
340
340
|
}): Promise<GitvaultVaultRecord>;
|
|
341
|
+
/**
|
|
342
|
+
* Resolve a vault by its address-form `org-slug/name` (repo-first-onramp
|
|
343
|
+
* task 4.3, design D6) — `GET /gitvault/v1/vaults?repo=<org-slug>/<name>`.
|
|
344
|
+
* `RESOURCE_NOT_FOUND` for no such org OR no such name within it (the two
|
|
345
|
+
* collapse deliberately, so slug-namespace probing learns nothing extra);
|
|
346
|
+
* `SLUG_RELEASED` (with `successor_slug`/`released_at`/`cooldown_until` on
|
|
347
|
+
* the error) while the slug is in its post-rename cooldown — never
|
|
348
|
+
* auto-followed.
|
|
349
|
+
*/
|
|
350
|
+
findVaultByRepo(request: {
|
|
351
|
+
org_slug: string;
|
|
352
|
+
repo_name: string;
|
|
353
|
+
}): Promise<GitvaultVaultRecord>;
|
|
341
354
|
acquireMaintenanceLease(request: GitvaultMaintenanceLeaseRequest): Promise<GitvaultMaintenanceLease>;
|
|
342
355
|
heartbeatMaintenanceLease(request: {
|
|
343
356
|
repo_id: string;
|