run402-mcp 1.60.1 → 1.60.3
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 +1 -1
- package/dist/tools/deploy.d.ts.map +1 -1
- package/dist/tools/deploy.js +7 -111
- package/dist/tools/deploy.js.map +1 -1
- package/package.json +1 -1
- package/sdk/README.md +19 -1
- package/sdk/dist/namespaces/deploy.js +258 -2
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/node/deploy-manifest.d.ts +80 -0
- package/sdk/dist/node/deploy-manifest.d.ts.map +1 -0
- package/sdk/dist/node/deploy-manifest.js +356 -0
- package/sdk/dist/node/deploy-manifest.js.map +1 -0
- package/sdk/dist/node/index.d.ts +2 -0
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +1 -0
- package/sdk/dist/node/index.js.map +1 -1
package/README.md
CHANGED
|
@@ -217,7 +217,7 @@ npm install @run402/sdk
|
|
|
217
217
|
Two entry points:
|
|
218
218
|
|
|
219
219
|
- **`@run402/sdk`** — isomorphic. Bring your own `CredentialsProvider` (a session-token shim, a remote vault, anything that resolves project keys + auth headers). Works in Node 22, Deno, Bun, V8 isolates.
|
|
220
|
-
- **`@run402/sdk/node`** — Node-only convenience. Reads `~/.config/run402/projects.json`, signs x402 payments from the local allowance, exposes `sites.deployDir(...)
|
|
220
|
+
- **`@run402/sdk/node`** — Node-only convenience. Reads `~/.config/run402/projects.json`, signs x402 payments from the local allowance, exposes `sites.deployDir(...)`, `fileSetFromDir(...)`, and typed deploy-manifest helpers (`loadDeployManifest`, `normalizeDeployManifest`).
|
|
221
221
|
|
|
222
222
|
```ts
|
|
223
223
|
import { run402 } from "@run402/sdk/node";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AAgCjC,QAAA,MAAM,OAAO;;;;;;;;;;;;KAAsB,CAAC;AAEpC,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBT,CAAC;AAEZ,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BP,CAAC;AAIZ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FxB,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAC5C,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACtD,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACxC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACH,CAAC;IACF,IAAI,CAAC,EACD;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,GACzB;QAAE,KAAK,EAAE;YAAE,GAAG,CAAC,EAAE,YAAY,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IACzD,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA8GhF"}
|
package/dist/tools/deploy.js
CHANGED
|
@@ -4,6 +4,7 @@ import { formatCanonicalErrorContext, mapSdkError, projectNotFound } from "../er
|
|
|
4
4
|
import { requireAllowanceAuth } from "../allowance-auth.js";
|
|
5
5
|
import { updateProject } from "../keystore.js";
|
|
6
6
|
import { PaymentRequired, Run402DeployError, } from "../../sdk/dist/index.js";
|
|
7
|
+
import { normalizeDeployManifest } from "../../sdk/dist/node/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* MCP `deploy` tool — exposes the unified `r.deploy.apply` primitive.
|
|
9
10
|
*
|
|
@@ -168,8 +169,12 @@ export async function handleDeploy(args) {
|
|
|
168
169
|
events.push(e);
|
|
169
170
|
};
|
|
170
171
|
let spec;
|
|
172
|
+
let idempotencyKey;
|
|
171
173
|
try {
|
|
172
|
-
|
|
174
|
+
const { allow_warnings: _allowWarnings, ...manifestArgs } = args;
|
|
175
|
+
const normalized = await normalizeDeployManifest(manifestArgs);
|
|
176
|
+
spec = normalized.spec;
|
|
177
|
+
idempotencyKey = normalized.idempotencyKey;
|
|
173
178
|
}
|
|
174
179
|
catch (err) {
|
|
175
180
|
return mapSdkError(err, "validating deploy spec");
|
|
@@ -177,7 +182,7 @@ export async function handleDeploy(args) {
|
|
|
177
182
|
try {
|
|
178
183
|
const result = await getSdk().deploy.apply(spec, {
|
|
179
184
|
onEvent,
|
|
180
|
-
idempotencyKey
|
|
185
|
+
idempotencyKey,
|
|
181
186
|
allowWarnings: args.allow_warnings === true,
|
|
182
187
|
});
|
|
183
188
|
if (result.urls.deployment_id) {
|
|
@@ -298,113 +303,4 @@ function renderEventsBlock(events) {
|
|
|
298
303
|
"```",
|
|
299
304
|
].join("\n");
|
|
300
305
|
}
|
|
301
|
-
// ─── MCP → ReleaseSpec translator ────────────────────────────────────────────
|
|
302
|
-
function translateMcpToReleaseSpec(args) {
|
|
303
|
-
const spec = { project: args.project_id };
|
|
304
|
-
if (args.base)
|
|
305
|
-
spec.base = args.base;
|
|
306
|
-
if (args.subdomains)
|
|
307
|
-
spec.subdomains = args.subdomains;
|
|
308
|
-
if (args.secrets)
|
|
309
|
-
spec.secrets = args.secrets;
|
|
310
|
-
if (args.database) {
|
|
311
|
-
spec.database = {};
|
|
312
|
-
if (args.database.expose)
|
|
313
|
-
spec.database.expose = args.database.expose;
|
|
314
|
-
if (args.database.zero_downtime !== undefined) {
|
|
315
|
-
spec.database.zero_downtime = args.database.zero_downtime;
|
|
316
|
-
}
|
|
317
|
-
if (args.database.migrations && args.database.migrations.length > 0) {
|
|
318
|
-
spec.database.migrations = args.database.migrations.map((m) => ({
|
|
319
|
-
id: m.id,
|
|
320
|
-
...(m.sql !== undefined ? { sql: m.sql } : {}),
|
|
321
|
-
...(m.sql_ref ? { sql_ref: m.sql_ref } : {}),
|
|
322
|
-
...(m.checksum ? { checksum: m.checksum } : {}),
|
|
323
|
-
...(m.transaction ? { transaction: m.transaction } : {}),
|
|
324
|
-
}));
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
if (args.functions) {
|
|
328
|
-
spec.functions = {};
|
|
329
|
-
if (args.functions.replace) {
|
|
330
|
-
spec.functions.replace = mapFunctions(args.functions.replace);
|
|
331
|
-
}
|
|
332
|
-
if (args.functions.patch) {
|
|
333
|
-
spec.functions.patch = {};
|
|
334
|
-
if (args.functions.patch.set) {
|
|
335
|
-
spec.functions.patch.set = mapFunctions(args.functions.patch.set);
|
|
336
|
-
}
|
|
337
|
-
if (args.functions.patch.delete) {
|
|
338
|
-
spec.functions.patch.delete = args.functions.patch.delete;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
if (args.site) {
|
|
343
|
-
if ("replace" in args.site) {
|
|
344
|
-
spec.site = { replace: mapFiles(args.site.replace) };
|
|
345
|
-
}
|
|
346
|
-
else if ("patch" in args.site) {
|
|
347
|
-
const patch = {};
|
|
348
|
-
if (args.site.patch.put)
|
|
349
|
-
patch.put = mapFiles(args.site.patch.put);
|
|
350
|
-
if (args.site.patch.delete)
|
|
351
|
-
patch.delete = args.site.patch.delete;
|
|
352
|
-
spec.site = { patch };
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
return spec;
|
|
356
|
-
}
|
|
357
|
-
function mapFunctions(map) {
|
|
358
|
-
const out = {};
|
|
359
|
-
for (const [name, fn] of Object.entries(map)) {
|
|
360
|
-
out[name] = mapFunction(fn);
|
|
361
|
-
}
|
|
362
|
-
return out;
|
|
363
|
-
}
|
|
364
|
-
function mapFunction(fn) {
|
|
365
|
-
const out = {};
|
|
366
|
-
if (fn.runtime)
|
|
367
|
-
out.runtime = fn.runtime;
|
|
368
|
-
if (fn.source)
|
|
369
|
-
out.source = fileEntryToContentSource(fn.source);
|
|
370
|
-
if (fn.files)
|
|
371
|
-
out.files = mapFiles(fn.files);
|
|
372
|
-
if (fn.entrypoint)
|
|
373
|
-
out.entrypoint = fn.entrypoint;
|
|
374
|
-
if (fn.config)
|
|
375
|
-
out.config = fn.config;
|
|
376
|
-
if (fn.schedule !== undefined)
|
|
377
|
-
out.schedule = fn.schedule;
|
|
378
|
-
return out;
|
|
379
|
-
}
|
|
380
|
-
function mapFiles(map) {
|
|
381
|
-
const out = {};
|
|
382
|
-
for (const [path, entry] of Object.entries(map)) {
|
|
383
|
-
out[path] = fileEntryToContentSource(entry);
|
|
384
|
-
}
|
|
385
|
-
return out;
|
|
386
|
-
}
|
|
387
|
-
function fileEntryToContentSource(entry) {
|
|
388
|
-
// Bare string — the natural shape. Forward as-is; the SDK's
|
|
389
|
-
// resolveContent accepts strings polymorphically.
|
|
390
|
-
if (typeof entry === "string")
|
|
391
|
-
return entry;
|
|
392
|
-
if (entry.encoding === "base64") {
|
|
393
|
-
const bytes = base64ToBytes(entry.data);
|
|
394
|
-
return entry.contentType ? { data: bytes, contentType: entry.contentType } : bytes;
|
|
395
|
-
}
|
|
396
|
-
// utf-8 (default)
|
|
397
|
-
return entry.contentType ? { data: entry.data, contentType: entry.contentType } : entry.data;
|
|
398
|
-
}
|
|
399
|
-
function base64ToBytes(b64) {
|
|
400
|
-
if (typeof Buffer !== "undefined") {
|
|
401
|
-
const buf = Buffer.from(b64, "base64");
|
|
402
|
-
return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
403
|
-
}
|
|
404
|
-
const bin = atob(b64);
|
|
405
|
-
const out = new Uint8Array(bin.length);
|
|
406
|
-
for (let i = 0; i < bin.length; i++)
|
|
407
|
-
out[i] = bin.charCodeAt(i);
|
|
408
|
-
return out;
|
|
409
|
-
}
|
|
410
306
|
//# sourceMappingURL=deploy.js.map
|
package/dist/tools/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "run402-mcp",
|
|
3
|
-
"version": "1.60.
|
|
3
|
+
"version": "1.60.3",
|
|
4
4
|
"description": "MCP server for Run402 — AI-native Postgres databases with REST API, auth, storage, and row-level security. Pay with x402 USDC micropayments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/sdk/README.md
CHANGED
|
@@ -10,7 +10,7 @@ npm install @run402/sdk
|
|
|
10
10
|
|
|
11
11
|
| Import | Use when |
|
|
12
12
|
|---|---|
|
|
13
|
-
| `@run402/sdk/node` | Running in Node 22 with the local keystore + allowance. Auto-loads `~/.config/run402/projects.json` and signs x402 payments from `~/.config/run402/allowance.json`. Includes
|
|
13
|
+
| `@run402/sdk/node` | Running in Node 22 with the local keystore + allowance. Auto-loads `~/.config/run402/projects.json` and signs x402 payments from `~/.config/run402/allowance.json`. Includes `r.sites.deployDir(dir)`, `fileSetFromDir(dir)`, `loadDeployManifest(path)`, and `normalizeDeployManifest(input)`. |
|
|
14
14
|
| `@run402/sdk` | Isomorphic — works in Node, Deno, Bun, V8 isolates. No filesystem access. Bring your own `CredentialsProvider` (a session-token shim, a remote vault, anything that resolves project keys + auth headers). |
|
|
15
15
|
|
|
16
16
|
## Quick start (Node)
|
|
@@ -147,6 +147,7 @@ const resumed = await r.deploy.resume(operationId);
|
|
|
147
147
|
|
|
148
148
|
- **All bytes ride through CAS.** The plan request body never carries inline bytes — only `ContentRef` objects. When the spec exceeds 5 MB JSON, the SDK uploads the manifest itself as a CAS object (`manifest_ref` escape hatch).
|
|
149
149
|
- **Per-resource semantics on the spec.** `site.replace` = "this is the whole site" (files absent are removed). `site.patch.put` / `patch.delete` are surgical updates. `functions.replace` / `functions.patch.set` / `functions.patch.delete` mirror that. Secrets are value-free: set values first with `r.secrets.set(project, key, value)`, then deploy with `secrets.require` and/or `secrets.delete`. `subdomains.set` / `subdomains.add` / `subdomains.remove` use their own shape. Top-level absence = leave untouched.
|
|
150
|
+
- **Strict spec validation happens before network calls.** Raw `ReleaseSpec` objects reject unknown fields (for example `project_id` or `subdomain`) instead of silently dropping them during normalization, and project/base-only or empty nested specs fail with `Run402DeployError.code === "MANIFEST_EMPTY"`. Use the Node manifest helpers when starting from CLI/MCP-style JSON.
|
|
150
151
|
- **Warnings are structured.** `DeployResult.warnings` contains `WarningEntry[]` (`code`, `severity`, `requires_confirmation`, `message`, optional `affected`/`details`/`confidence`); the type preserves legacy low/medium/high plan warnings and modern deploy-observability info/warn/high warnings. `apply()` emits `plan.warnings` and stops before upload/commit on confirmation-required warnings unless `allowWarnings` is set. For `MISSING_REQUIRED_SECRET`, set the affected keys with `r.secrets.set`, then retry.
|
|
151
152
|
- **Planning supports dry-runs.** `r.deploy.plan(spec, { dryRun: true })` calls the server-authoritative dry-run route and returns the normalized v2 plan envelope without uploading bytes or creating plan/operation rows (`plan_id` and `operation_id` are `null`).
|
|
152
153
|
- **Release observability is typed.** Use `r.deploy.getRelease({ project, releaseId, siteLimit? })`, `r.deploy.getActiveRelease({ project, siteLimit? })`, and `r.deploy.diff({ project, from, to, limit? })` to inspect release inventory and release-to-release diffs. `diff` returns `ReleaseToReleaseDiff` with `migrations.applied_between_releases`; secret diffs expose keys only.
|
|
@@ -163,6 +164,23 @@ const resumed = await r.deploy.resume(operationId);
|
|
|
163
164
|
});
|
|
164
165
|
```
|
|
165
166
|
|
|
167
|
+
- The Node entry also has the typed manifest adapter shared by CLI/MCP:
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
import { loadDeployManifest, run402 } from "@run402/sdk/node";
|
|
171
|
+
|
|
172
|
+
const r = run402();
|
|
173
|
+
const { spec, idempotencyKey } = await loadDeployManifest("./run402.deploy.json");
|
|
174
|
+
await r.deploy.apply(spec, { idempotencyKey });
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
`loadDeployManifest(path)` parses JSON relative to the manifest file, maps
|
|
178
|
+
agent-friendly `project_id` into `ReleaseSpec.project`, decodes base64 file
|
|
179
|
+
entries, turns `{ path }` entries into lazy `FsFileSource` values, and reads
|
|
180
|
+
migration `sql_path` / `sql_file`. It rejects unknown manifest fields before
|
|
181
|
+
they can become partial deploys. Use `normalizeDeployManifest(input)` when the
|
|
182
|
+
manifest object is already in memory.
|
|
183
|
+
|
|
166
184
|
### GitHub Actions OIDC — CI credentials drive deploy
|
|
167
185
|
|
|
168
186
|
The v1 CI path keeps the deploy primitive simple: link a GitHub repository once, then call the existing `r.deploy.apply` with CI-marked credentials. There is no separate `r.ci.deployApply` method and no public `ci: true` deploy option.
|
|
@@ -764,6 +764,43 @@ async function startInternal(client, spec, opts) {
|
|
|
764
764
|
},
|
|
765
765
|
};
|
|
766
766
|
}
|
|
767
|
+
const RELEASE_SPEC_FIELDS = new Set([
|
|
768
|
+
"project",
|
|
769
|
+
"base",
|
|
770
|
+
"database",
|
|
771
|
+
"secrets",
|
|
772
|
+
"functions",
|
|
773
|
+
"site",
|
|
774
|
+
"subdomains",
|
|
775
|
+
"routes",
|
|
776
|
+
"checks",
|
|
777
|
+
]);
|
|
778
|
+
const DEPLOYABLE_SPEC_FIELDS = [
|
|
779
|
+
"database",
|
|
780
|
+
"site",
|
|
781
|
+
"functions",
|
|
782
|
+
"secrets",
|
|
783
|
+
"subdomains",
|
|
784
|
+
"routes",
|
|
785
|
+
"checks",
|
|
786
|
+
];
|
|
787
|
+
const BASE_SPEC_FIELDS = new Set(["release", "release_id"]);
|
|
788
|
+
const DATABASE_SPEC_FIELDS = new Set(["migrations", "expose", "zero_downtime"]);
|
|
789
|
+
const MIGRATION_SPEC_FIELDS = new Set(["id", "checksum", "sql", "sql_ref", "transaction"]);
|
|
790
|
+
const FUNCTIONS_SPEC_FIELDS = new Set(["replace", "patch"]);
|
|
791
|
+
const FUNCTIONS_PATCH_FIELDS = new Set(["set", "delete"]);
|
|
792
|
+
const FUNCTION_SPEC_FIELDS = new Set([
|
|
793
|
+
"runtime",
|
|
794
|
+
"source",
|
|
795
|
+
"files",
|
|
796
|
+
"entrypoint",
|
|
797
|
+
"config",
|
|
798
|
+
"schedule",
|
|
799
|
+
]);
|
|
800
|
+
const FUNCTION_CONFIG_FIELDS = new Set(["timeoutSeconds", "memoryMb"]);
|
|
801
|
+
const SITE_SPEC_FIELDS = new Set(["replace", "patch"]);
|
|
802
|
+
const SITE_PATCH_FIELDS = new Set(["put", "delete"]);
|
|
803
|
+
const SUBDOMAINS_SPEC_FIELDS = new Set(["set", "add", "remove"]);
|
|
767
804
|
function validateSpec(spec) {
|
|
768
805
|
if (!spec || typeof spec !== "object") {
|
|
769
806
|
throw new Run402DeployError("ReleaseSpec must be an object", {
|
|
@@ -775,6 +812,11 @@ function validateSpec(spec) {
|
|
|
775
812
|
context: "validating spec",
|
|
776
813
|
});
|
|
777
814
|
}
|
|
815
|
+
const raw = spec;
|
|
816
|
+
validateKnownFields(raw, "spec", RELEASE_SPEC_FIELDS, {
|
|
817
|
+
project_id: "Use `project` in ReleaseSpec, or call `loadDeployManifest()` / `normalizeDeployManifest()` for MCP/CLI-style manifests.",
|
|
818
|
+
subdomain: "Use `subdomains: { set: [name] }`.",
|
|
819
|
+
});
|
|
778
820
|
if (!spec.project || typeof spec.project !== "string") {
|
|
779
821
|
throw new Run402DeployError("ReleaseSpec.project is required", {
|
|
780
822
|
code: "INVALID_SPEC",
|
|
@@ -785,7 +827,17 @@ function validateSpec(spec) {
|
|
|
785
827
|
context: "validating spec",
|
|
786
828
|
});
|
|
787
829
|
}
|
|
788
|
-
|
|
830
|
+
validateBaseSpec(raw.base);
|
|
831
|
+
validateDatabaseSpec(raw.database);
|
|
832
|
+
validateFunctionsSpec(raw.functions);
|
|
833
|
+
validateSiteSpec(raw.site);
|
|
834
|
+
validateSubdomainsSpec(raw.subdomains);
|
|
835
|
+
validateRoutesSpec(raw.routes);
|
|
836
|
+
validateChecksSpec(raw.checks);
|
|
837
|
+
validateSecretsSpec(raw.secrets);
|
|
838
|
+
const subdomains = raw.subdomains;
|
|
839
|
+
const set = subdomains?.set;
|
|
840
|
+
if (set && set.length > 1) {
|
|
789
841
|
throw new Run402DeployError("subdomains.set accepts at most one subdomain per project; multi-subdomain support is not yet available", {
|
|
790
842
|
code: "SUBDOMAIN_MULTI_NOT_SUPPORTED",
|
|
791
843
|
phase: "validate",
|
|
@@ -795,7 +847,211 @@ function validateSpec(spec) {
|
|
|
795
847
|
context: "validating spec",
|
|
796
848
|
});
|
|
797
849
|
}
|
|
798
|
-
|
|
850
|
+
if (!hasDeployableContent(raw)) {
|
|
851
|
+
throw new Run402DeployError(`ReleaseSpec contains no deployable sections. Expected at least one non-empty section: ${DEPLOYABLE_SPEC_FIELDS.join(", ")}`, {
|
|
852
|
+
code: "MANIFEST_EMPTY",
|
|
853
|
+
phase: "validate",
|
|
854
|
+
resource: "spec",
|
|
855
|
+
retryable: false,
|
|
856
|
+
fix: { action: "set_field", path: "site.replace" },
|
|
857
|
+
body: { deployable_fields: DEPLOYABLE_SPEC_FIELDS },
|
|
858
|
+
context: "validating spec",
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
function validateBaseSpec(base) {
|
|
863
|
+
if (base === undefined)
|
|
864
|
+
return;
|
|
865
|
+
const obj = requireObject(base, "base");
|
|
866
|
+
validateKnownFields(obj, "base", BASE_SPEC_FIELDS);
|
|
867
|
+
if (hasOwn(obj, "release") && hasOwn(obj, "release_id")) {
|
|
868
|
+
throw invalidSpec("ReleaseSpec.base must use either release or release_id, not both", "base");
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
function validateDatabaseSpec(database) {
|
|
872
|
+
if (database === undefined)
|
|
873
|
+
return;
|
|
874
|
+
const obj = requireObject(database, "database");
|
|
875
|
+
validateKnownFields(obj, "database", DATABASE_SPEC_FIELDS);
|
|
876
|
+
if (obj.migrations !== undefined) {
|
|
877
|
+
if (!Array.isArray(obj.migrations)) {
|
|
878
|
+
throw invalidSpec("ReleaseSpec.database.migrations must be an array", "database.migrations");
|
|
879
|
+
}
|
|
880
|
+
for (const [index, migration] of obj.migrations.entries()) {
|
|
881
|
+
const m = requireObject(migration, `database.migrations.${index}`);
|
|
882
|
+
validateKnownFields(m, `database.migrations.${index}`, MIGRATION_SPEC_FIELDS);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
if (obj.expose !== undefined) {
|
|
886
|
+
requireObject(obj.expose, "database.expose");
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
function validateFunctionsSpec(functions) {
|
|
890
|
+
if (functions === undefined)
|
|
891
|
+
return;
|
|
892
|
+
const obj = requireObject(functions, "functions");
|
|
893
|
+
validateKnownFields(obj, "functions", FUNCTIONS_SPEC_FIELDS);
|
|
894
|
+
if (obj.replace !== undefined) {
|
|
895
|
+
validateFunctionMap(obj.replace, "functions.replace");
|
|
896
|
+
}
|
|
897
|
+
if (obj.patch !== undefined) {
|
|
898
|
+
const patch = requireObject(obj.patch, "functions.patch");
|
|
899
|
+
validateKnownFields(patch, "functions.patch", FUNCTIONS_PATCH_FIELDS);
|
|
900
|
+
if (patch.set !== undefined)
|
|
901
|
+
validateFunctionMap(patch.set, "functions.patch.set");
|
|
902
|
+
if (patch.delete !== undefined)
|
|
903
|
+
validateStringArray(patch.delete, "functions.patch.delete");
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
function validateFunctionMap(value, resource) {
|
|
907
|
+
const map = requireObject(value, resource);
|
|
908
|
+
for (const [name, fn] of Object.entries(map)) {
|
|
909
|
+
const entry = requireObject(fn, `${resource}.${name}`);
|
|
910
|
+
validateKnownFields(entry, `${resource}.${name}`, FUNCTION_SPEC_FIELDS);
|
|
911
|
+
if (entry.config !== undefined) {
|
|
912
|
+
const config = requireObject(entry.config, `${resource}.${name}.config`);
|
|
913
|
+
validateKnownFields(config, `${resource}.${name}.config`, FUNCTION_CONFIG_FIELDS);
|
|
914
|
+
}
|
|
915
|
+
if (entry.files !== undefined) {
|
|
916
|
+
requireObject(entry.files, `${resource}.${name}.files`);
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
function validateSiteSpec(site) {
|
|
921
|
+
if (site === undefined)
|
|
922
|
+
return;
|
|
923
|
+
const obj = requireObject(site, "site");
|
|
924
|
+
validateKnownFields(obj, "site", SITE_SPEC_FIELDS, {
|
|
925
|
+
file: "Use `site.replace` or `site.patch.put` with a path-keyed file map.",
|
|
926
|
+
files: "Use `site.replace` or `site.patch.put` with a path-keyed file map.",
|
|
927
|
+
});
|
|
928
|
+
if (hasOwn(obj, "replace") && hasOwn(obj, "patch")) {
|
|
929
|
+
throw invalidSpec("ReleaseSpec.site must use either replace or patch, not both", "site");
|
|
930
|
+
}
|
|
931
|
+
if (obj.replace !== undefined) {
|
|
932
|
+
requireObject(obj.replace, "site.replace");
|
|
933
|
+
}
|
|
934
|
+
if (obj.patch !== undefined) {
|
|
935
|
+
const patch = requireObject(obj.patch, "site.patch");
|
|
936
|
+
validateKnownFields(patch, "site.patch", SITE_PATCH_FIELDS);
|
|
937
|
+
if (patch.put !== undefined)
|
|
938
|
+
requireObject(patch.put, "site.patch.put");
|
|
939
|
+
if (patch.delete !== undefined)
|
|
940
|
+
validateStringArray(patch.delete, "site.patch.delete");
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
function validateSubdomainsSpec(subdomains) {
|
|
944
|
+
if (subdomains === undefined)
|
|
945
|
+
return;
|
|
946
|
+
const obj = requireObject(subdomains, "subdomains");
|
|
947
|
+
validateKnownFields(obj, "subdomains", SUBDOMAINS_SPEC_FIELDS);
|
|
948
|
+
if (obj.set !== undefined)
|
|
949
|
+
validateStringArray(obj.set, "subdomains.set");
|
|
950
|
+
if (obj.add !== undefined)
|
|
951
|
+
validateStringArray(obj.add, "subdomains.add");
|
|
952
|
+
if (obj.remove !== undefined)
|
|
953
|
+
validateStringArray(obj.remove, "subdomains.remove");
|
|
954
|
+
}
|
|
955
|
+
function validateRoutesSpec(routes) {
|
|
956
|
+
if (routes === undefined)
|
|
957
|
+
return;
|
|
958
|
+
requireObject(routes, "routes");
|
|
959
|
+
}
|
|
960
|
+
function validateChecksSpec(checks) {
|
|
961
|
+
if (checks === undefined)
|
|
962
|
+
return;
|
|
963
|
+
if (!Array.isArray(checks)) {
|
|
964
|
+
throw invalidSpec("ReleaseSpec.checks must be an array", "checks");
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
function validateKnownFields(obj, resource, allowed, hints = {}) {
|
|
968
|
+
for (const key of Object.keys(obj)) {
|
|
969
|
+
if (allowed.has(key))
|
|
970
|
+
continue;
|
|
971
|
+
const field = resource === "spec" ? `spec.${key}` : `${resource}.${key}`;
|
|
972
|
+
const hint = hints[key] ? ` ${hints[key]}` : "";
|
|
973
|
+
throw invalidSpec(`Unknown ReleaseSpec field: ${field}.${hint}`, field);
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
function requireObject(value, resource) {
|
|
977
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
978
|
+
throw invalidSpec(`ReleaseSpec.${resource} must be an object`, resource);
|
|
979
|
+
}
|
|
980
|
+
return value;
|
|
981
|
+
}
|
|
982
|
+
function validateStringArray(value, resource) {
|
|
983
|
+
if (!Array.isArray(value)) {
|
|
984
|
+
throw invalidSpec(`ReleaseSpec.${resource} must be an array`, resource);
|
|
985
|
+
}
|
|
986
|
+
if (value.some((entry) => typeof entry !== "string")) {
|
|
987
|
+
throw invalidSpec(`ReleaseSpec.${resource} entries must be strings`, resource);
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
function hasDeployableContent(spec) {
|
|
991
|
+
return (hasDatabaseContent(spec.database) ||
|
|
992
|
+
hasSiteContent(spec.site) ||
|
|
993
|
+
hasFunctionsContent(spec.functions) ||
|
|
994
|
+
hasSecretsContent(spec.secrets) ||
|
|
995
|
+
hasSubdomainsContent(spec.subdomains) ||
|
|
996
|
+
hasRecordEntries(spec.routes) ||
|
|
997
|
+
hasArrayEntries(spec.checks));
|
|
998
|
+
}
|
|
999
|
+
function hasDatabaseContent(database) {
|
|
1000
|
+
if (!isRecord(database))
|
|
1001
|
+
return false;
|
|
1002
|
+
return hasArrayEntries(database.migrations) || hasRecordEntries(database.expose);
|
|
1003
|
+
}
|
|
1004
|
+
function hasSiteContent(site) {
|
|
1005
|
+
if (!isRecord(site))
|
|
1006
|
+
return false;
|
|
1007
|
+
if (hasRecordEntries(site.replace))
|
|
1008
|
+
return true;
|
|
1009
|
+
if (!isRecord(site.patch))
|
|
1010
|
+
return false;
|
|
1011
|
+
return hasRecordEntries(site.patch.put) || hasArrayEntries(site.patch.delete);
|
|
1012
|
+
}
|
|
1013
|
+
function hasFunctionsContent(functions) {
|
|
1014
|
+
if (!isRecord(functions))
|
|
1015
|
+
return false;
|
|
1016
|
+
if (hasRecordEntries(functions.replace))
|
|
1017
|
+
return true;
|
|
1018
|
+
if (!isRecord(functions.patch))
|
|
1019
|
+
return false;
|
|
1020
|
+
return hasRecordEntries(functions.patch.set) || hasArrayEntries(functions.patch.delete);
|
|
1021
|
+
}
|
|
1022
|
+
function hasSecretsContent(secrets) {
|
|
1023
|
+
if (!isRecord(secrets))
|
|
1024
|
+
return false;
|
|
1025
|
+
return hasArrayEntries(secrets.require) || hasArrayEntries(secrets.delete);
|
|
1026
|
+
}
|
|
1027
|
+
function hasSubdomainsContent(subdomains) {
|
|
1028
|
+
if (!isRecord(subdomains))
|
|
1029
|
+
return false;
|
|
1030
|
+
return (hasArrayEntries(subdomains.set) ||
|
|
1031
|
+
hasArrayEntries(subdomains.add) ||
|
|
1032
|
+
hasArrayEntries(subdomains.remove));
|
|
1033
|
+
}
|
|
1034
|
+
function hasRecordEntries(value) {
|
|
1035
|
+
return isRecord(value) && Object.keys(value).length > 0;
|
|
1036
|
+
}
|
|
1037
|
+
function hasArrayEntries(value) {
|
|
1038
|
+
return Array.isArray(value) && value.length > 0;
|
|
1039
|
+
}
|
|
1040
|
+
function hasOwn(obj, key) {
|
|
1041
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
1042
|
+
}
|
|
1043
|
+
function isRecord(value) {
|
|
1044
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
1045
|
+
}
|
|
1046
|
+
function invalidSpec(message, resource) {
|
|
1047
|
+
return new Run402DeployError(message, {
|
|
1048
|
+
code: "INVALID_SPEC",
|
|
1049
|
+
phase: "validate",
|
|
1050
|
+
resource,
|
|
1051
|
+
retryable: false,
|
|
1052
|
+
fix: { action: "set_field", path: resource.replace(/^spec\./, "") },
|
|
1053
|
+
context: "validating spec",
|
|
1054
|
+
});
|
|
799
1055
|
}
|
|
800
1056
|
function normalizePlanResponse(plan) {
|
|
801
1057
|
const raw = plan;
|