percher 0.5.24 → 1.0.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/LICENSE +132 -0
- package/THIRD-PARTY-NOTICES.txt +1228 -0
- package/dist/bin/percher.js +64485 -72730
- package/dist/package.json +10 -8
- package/dist/src/commands/account.js +5 -5
- package/dist/src/commands/account.js.map +1 -1
- package/dist/src/commands/admin.d.ts.map +1 -1
- package/dist/src/commands/admin.js +180 -15
- package/dist/src/commands/admin.js.map +1 -1
- package/dist/src/commands/analytics.js +1 -1
- package/dist/src/commands/apps.js +2 -2
- package/dist/src/commands/auth.js +1 -1
- package/dist/src/commands/data.js +1 -1
- package/dist/src/commands/deploys.d.ts.map +1 -1
- package/dist/src/commands/deploys.js +24 -2
- package/dist/src/commands/deploys.js.map +1 -1
- package/dist/src/commands/env.js +3 -3
- package/dist/src/commands/export.js +1 -1
- package/dist/src/commands/github.js +1 -1
- package/dist/src/commands/hooks.js +1 -1
- package/dist/src/commands/migrate.js +1 -1
- package/dist/src/commands/sharing.js +1 -1
- package/dist/src/commands/status.js +1 -1
- package/dist/src/commands/token.js +1 -1
- package/dist/src/commands/transfers.js +1 -1
- package/dist/src/context.js +3 -3
- package/dist/src/index.js +21 -21
- package/dist/src/version-check.d.ts +2 -0
- package/dist/src/version-check.d.ts.map +1 -1
- package/dist/src/version-check.js +23 -2
- package/dist/src/version-check.js.map +1 -1
- package/dist/templates/LICENSE +14 -0
- package/dist/templates/astro/Dockerfile +51 -35
- package/dist/templates/astro/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/bun/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/capsule/Dockerfile +30 -12
- package/dist/templates/capsule/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/django/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/django/percher.toml +1 -0
- package/dist/templates/dotnet/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/eleventy/Dockerfile +51 -35
- package/dist/templates/eleventy/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/elysia/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/express/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/express/package.json +2 -1
- package/dist/templates/fastify/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/fastify/package.json +2 -1
- package/dist/templates/flask/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/flask/percher.toml +1 -0
- package/dist/templates/flask/requirements.txt +1 -0
- package/dist/templates/go/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/hono/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/hono/index.ts +4 -2
- package/dist/templates/hono/package.json +3 -1
- package/dist/templates/htmx/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/htmx/package.json +1 -1
- package/dist/templates/hugo/Dockerfile +49 -33
- package/dist/templates/hugo/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/java/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/laravel/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/nextjs/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/node/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/nuxt/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/phoenix/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/preact/Dockerfile +51 -35
- package/dist/templates/preact/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/python/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/rails/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/remix/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/remix/app/routes/health.tsx +3 -1
- package/dist/templates/rust/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/solid/Dockerfile +51 -35
- package/dist/templates/solid/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/static/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/sveltekit/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/sveltekit/package.json +1 -1
- package/dist/templates/vite-react/Dockerfile +51 -35
- package/dist/templates/vite-react/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/vite-vue/Dockerfile +51 -35
- package/dist/templates/vite-vue/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/package.json +10 -8
- package/dist/context.d.ts +0 -3
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -31
- package/dist/context.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -385
- package/dist/index.js.map +0 -1
- package/dist/open.d.ts +0 -2
- package/dist/open.d.ts.map +0 -1
- package/dist/open.js +0 -16
- package/dist/open.js.map +0 -1
- package/dist/output.d.ts +0 -2
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -44
- package/dist/output.js.map +0 -1
- package/dist/prompt.d.ts +0 -4
- package/dist/prompt.d.ts.map +0 -1
- package/dist/prompt.js +0 -14
- package/dist/prompt.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "percher",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "CLI for the Percher hosting platform — publish apps with one command",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -16,31 +16,33 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
|
-
"dist"
|
|
19
|
+
"dist",
|
|
20
|
+
"THIRD-PARTY-NOTICES.txt"
|
|
20
21
|
],
|
|
21
22
|
"publishConfig": {
|
|
22
23
|
"access": "public"
|
|
23
24
|
},
|
|
24
25
|
"scripts": {
|
|
25
|
-
"build": "tsc -p tsconfig.json && bun build bin/percher.ts --outfile dist/bin/percher.js --target node --format esm && node scripts/copy-templates.mjs && node -e \"require('fs').chmodSync('dist/bin/percher.js',0o755)\"",
|
|
26
|
+
"build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json && bun build bin/percher.ts --outfile dist/bin/percher.js --target node --format esm --metafile=bundle-meta.json && node ../../scripts/bundle-notices.mjs . bundle-meta.json && node scripts/copy-templates.mjs && node -e \"require('fs').chmodSync('dist/bin/percher.js',0o755)\"",
|
|
26
27
|
"test": "bun test",
|
|
27
28
|
"typecheck": "tsc --noEmit"
|
|
28
29
|
},
|
|
29
30
|
"dependencies": {
|
|
30
|
-
"@percher/client": "^0.
|
|
31
|
-
"@percher/core": "^0.
|
|
32
|
-
"@percher/toml": "^0.
|
|
31
|
+
"@percher/client": "^1.0.0",
|
|
32
|
+
"@percher/core": "^1.0.0",
|
|
33
|
+
"@percher/toml": "^1.0.0",
|
|
33
34
|
"cac": "^7.0.0",
|
|
34
35
|
"picocolors": "^1.1.1"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
|
-
"bun-types": "^1.1.0"
|
|
38
|
+
"bun-types": "^1.1.0",
|
|
39
|
+
"tsc-alias": "^1.8.17"
|
|
38
40
|
},
|
|
39
41
|
"engines": {
|
|
40
42
|
"bun": ">=1.0.0",
|
|
41
43
|
"node": ">=22.0.0"
|
|
42
44
|
},
|
|
43
|
-
"license": "MIT",
|
|
45
|
+
"license": "FSL-1.1-MIT",
|
|
44
46
|
"author": "Mattias Malmborg",
|
|
45
47
|
"repository": {
|
|
46
48
|
"type": "git",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { SilentExitError, writeLine } from "../cli-utils";
|
|
3
|
+
import { SilentExitError, writeLine } from "../cli-utils.js";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* the account-deletion-guards plan, Fas 4 — human-readable next-action
|
|
6
6
|
* per blocker kind. Mirrors the plan's "Recovery (Fas 4 MCP)" table
|
|
7
|
-
* (
|
|
7
|
+
* (account-deletion-guards plan in docs/plans/, §2.2) so the CLI's
|
|
8
8
|
* exit messaging matches what the MCP recovery contract will surface
|
|
9
9
|
* once those tools land.
|
|
10
10
|
*/
|
|
@@ -133,7 +133,7 @@ export function registerAccountCommands(cli, ctx) {
|
|
|
133
133
|
// Unreachable — handled by parent `account [action] ...` action.
|
|
134
134
|
});
|
|
135
135
|
cli
|
|
136
|
-
.command("mcp", "Print
|
|
136
|
+
.command("mcp", "Print local and hosted MCP setup for AI assistants")
|
|
137
137
|
.option("--json", "Output JSON only (paste-ready)")
|
|
138
138
|
.action(async (options) => {
|
|
139
139
|
const result = core.mcp(ctx, {});
|
|
@@ -161,7 +161,7 @@ export function registerAccountCommands(cli, ctx) {
|
|
|
161
161
|
await writeLine(ctx, pc.dim(note));
|
|
162
162
|
}
|
|
163
163
|
await writeLine(ctx, "");
|
|
164
|
-
await writeLine(ctx, pc.dim("Once installed, your assistant
|
|
164
|
+
await writeLine(ctx, pc.dim("Once installed, your assistant can publish and manage apps with Percher tools."));
|
|
165
165
|
});
|
|
166
166
|
cli
|
|
167
167
|
.command("ai-files <action>", "Manage AI-assistant rules files (install | update | status | remove)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/commands/account.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/commands/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/B;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/B;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CA0VlE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { SilentExitError, writeLine } from "../cli-utils";
|
|
3
|
+
import { SilentExitError, writeLine } from "../cli-utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* FUTURE18 Fas 4 — operator-only `percher admin reconcile-routes`.
|
|
6
6
|
*
|
|
@@ -21,12 +21,134 @@ export function registerAdminCommands(cli, ctx) {
|
|
|
21
21
|
// `admin [action]` and add help-only registrations below for
|
|
22
22
|
// discoverability.
|
|
23
23
|
cli
|
|
24
|
-
.command("admin [action] [...rest]", "Operator commands (admin only): reconcile-routes")
|
|
24
|
+
.command("admin [action] [...rest]", "Operator commands (admin only): reconcile-routes | migrate-networks | legacy-inventory | legacy-audit")
|
|
25
25
|
.option("--app <name>", "(reconcile-routes) Limit to a single app by name")
|
|
26
26
|
.option("--app-id <id>", "(reconcile-routes) Limit to a single app by id")
|
|
27
27
|
.option("--dry-run", "(reconcile-routes) Read-only diff — no Caddy mutations, returns missing/extra/host drift")
|
|
28
28
|
.option("--json", "(reconcile-routes) Output JSON instead of formatted text")
|
|
29
|
+
.option("--app-ids <ids>", "(migrate-networks) Comma-separated immutable app ids; required with --rollback")
|
|
30
|
+
.option("--limit <n>", "(migrate-networks) Maximum apps, 1..20 (default 5)")
|
|
31
|
+
.option("--rollback", "(migrate-networks) Move explicit --app-ids back to shared networking")
|
|
29
32
|
.action(async (action, _rest, options) => {
|
|
33
|
+
if (action === "legacy-audit") {
|
|
34
|
+
if (!ctx.client.token) {
|
|
35
|
+
await writeLine(ctx, `${pc.red("✗")} Not logged in. Run: percher login`);
|
|
36
|
+
throw new SilentExitError();
|
|
37
|
+
}
|
|
38
|
+
const result = await core.adminLegacyAudit(ctx);
|
|
39
|
+
const green = core.legacyAuditIsGreen(result);
|
|
40
|
+
if (options.json)
|
|
41
|
+
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
42
|
+
else {
|
|
43
|
+
await writeLine(ctx, green
|
|
44
|
+
? `${pc.green("✓")} Zero-legacy audit is green.`
|
|
45
|
+
: `${pc.red("✗")} Zero-legacy audit is RED — the launch gate is not closed.`);
|
|
46
|
+
for (const term of result.conjuncts ?? []) {
|
|
47
|
+
const icon = !term.measured ? pc.red("?") : term.ok ? pc.green("✓") : pc.red("✗");
|
|
48
|
+
const detail = !term.measured
|
|
49
|
+
? "not measured"
|
|
50
|
+
: term.reasons.length > 0
|
|
51
|
+
? term.reasons.join(", ")
|
|
52
|
+
: "ok";
|
|
53
|
+
await writeLine(ctx, ` ${icon} ${term.name.padEnd(28)} ${detail}`);
|
|
54
|
+
// A note qualifies a term that PASSED. Printing it under the
|
|
55
|
+
// green tick is the whole point: an exception that only shows up
|
|
56
|
+
// in --json is an exception that was silently subtracted.
|
|
57
|
+
for (const note of term.notes ?? []) {
|
|
58
|
+
await writeLine(ctx, ` ${pc.yellow("!")} ${note}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const c = result.counters;
|
|
62
|
+
if (c) {
|
|
63
|
+
await writeLine(ctx, pc.dim(` counters: runtimes ${c.legacyRuntimeCount}, sidecars ${c.legacyPocketBaseSidecarCount}, topology ${c.legacyTopologyCount}, rollback images ${c.incompatibleRollbackImageCount}, unknown ${c.unknownGenerationCount}`));
|
|
64
|
+
}
|
|
65
|
+
// Owner exceptions are printed whether the audit is green or red,
|
|
66
|
+
// and every entry is named. §11: listed, never silently subtracted.
|
|
67
|
+
for (const entry of result.ownerExceptions?.entries ?? []) {
|
|
68
|
+
const label = entry.matched
|
|
69
|
+
? pc.yellow("EXCEPTED")
|
|
70
|
+
: pc.dim("STALE (excuses nothing)");
|
|
71
|
+
await writeLine(ctx, ` ${label} ${entry.deployId} — ${entry.reason} (${entry.recordedAt})`);
|
|
72
|
+
}
|
|
73
|
+
for (const id of result.ownerExceptions?.unexcusedDeployIds ?? []) {
|
|
74
|
+
await writeLine(ctx, ` ${pc.red("✗")} incompatible rollback image, no exception: ${id}`);
|
|
75
|
+
}
|
|
76
|
+
for (const name of result.volumes?.unattributed ?? []) {
|
|
77
|
+
await writeLine(ctx, ` ${pc.red("?")} unattributed volume: ${name}`);
|
|
78
|
+
}
|
|
79
|
+
for (const app of result.desiredLiveApps?.missing ?? []) {
|
|
80
|
+
await writeLine(ctx, ` ${pc.red("✗")} desired live app not running: ${app}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!green)
|
|
84
|
+
throw new SilentExitError(1);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (action === "legacy-inventory") {
|
|
88
|
+
if (!ctx.client.token) {
|
|
89
|
+
await writeLine(ctx, `${pc.red("✗")} Not logged in. Run: percher login`);
|
|
90
|
+
throw new SilentExitError();
|
|
91
|
+
}
|
|
92
|
+
const result = await core.adminLegacyInventory(ctx);
|
|
93
|
+
if (options.json)
|
|
94
|
+
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
95
|
+
else {
|
|
96
|
+
const c = result.counters;
|
|
97
|
+
const line = (label, value) => writeLine(ctx, ` ${value === 0 ? pc.green("✓") : pc.red("✗")} ${label} ${value}`);
|
|
98
|
+
await writeLine(ctx, `Fleet inventory (evidence ${result.complete ? "complete" : pc.red("INCOMPLETE")})`);
|
|
99
|
+
await line("legacy runtimes ", c.legacyRuntimeCount);
|
|
100
|
+
await line("legacy PocketBase sidecars", c.legacyPocketBaseSidecarCount);
|
|
101
|
+
await line("legacy topology (apps) ", c.legacyTopologyCount);
|
|
102
|
+
await line("incompatible rollback imgs", c.incompatibleRollbackImageCount);
|
|
103
|
+
await line("unknown / unattributed ", c.unknownGenerationCount);
|
|
104
|
+
// Only the unknown class is enumerated by default. It is the one an
|
|
105
|
+
// operator has to act on before any other number can be believed —
|
|
106
|
+
// and the legacy classes run to hundreds of rows on a full box,
|
|
107
|
+
// which is what --json is for.
|
|
108
|
+
for (const resource of result.resources.filter((r) => r.class === "unknown_unattributed")) {
|
|
109
|
+
await writeLine(ctx, ` ${pc.red("?")} ${resource.kind} ${resource.id} — ${resource.reasons.join(", ")}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (core.legacyInventoryIsRed(result))
|
|
113
|
+
throw new SilentExitError(1);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (action === "migrate-networks") {
|
|
117
|
+
if (!ctx.client.token) {
|
|
118
|
+
await writeLine(ctx, `${pc.red("✗")} Not logged in. Run: percher login`);
|
|
119
|
+
throw new SilentExitError();
|
|
120
|
+
}
|
|
121
|
+
const appIds = options.appIds
|
|
122
|
+
?.split(",")
|
|
123
|
+
.map((value) => value.trim())
|
|
124
|
+
.filter(Boolean);
|
|
125
|
+
if (options.rollback && (!appIds || appIds.length === 0)) {
|
|
126
|
+
await writeLine(ctx, `${pc.red("✗")} --rollback requires --app-ids <id,...>; automatic rollback scope is forbidden`);
|
|
127
|
+
throw new SilentExitError(1);
|
|
128
|
+
}
|
|
129
|
+
const result = await core.adminMigrateNetworks(ctx, {
|
|
130
|
+
appIds,
|
|
131
|
+
limit: options.limit === undefined ? undefined : Number(options.limit),
|
|
132
|
+
dryRun: Boolean(options.dryRun),
|
|
133
|
+
direction: options.rollback ? "to-shared" : "to-per-app",
|
|
134
|
+
});
|
|
135
|
+
if (options.json)
|
|
136
|
+
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
137
|
+
else {
|
|
138
|
+
for (const item of result.results) {
|
|
139
|
+
const icon = ["migrated", "already", "eligible"].includes(item.status)
|
|
140
|
+
? pc.green("✓")
|
|
141
|
+
: item.status === "skipped"
|
|
142
|
+
? pc.yellow("!")
|
|
143
|
+
: pc.red("✗");
|
|
144
|
+
await writeLine(ctx, `${icon} [${item.appName}] ${item.status}${item.reason ? ` — ${item.reason}` : ""}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (result.results.some((item) => item.status === "failed" || item.status === "uncertain")) {
|
|
148
|
+
throw new SilentExitError(1);
|
|
149
|
+
}
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
30
152
|
if (action === "reconcile-routes") {
|
|
31
153
|
if (!ctx.client.token) {
|
|
32
154
|
await writeLine(ctx, `${pc.red("✗")} Not logged in. Run: percher login`);
|
|
@@ -39,6 +161,9 @@ export function registerAdminCommands(cli, ctx) {
|
|
|
39
161
|
});
|
|
40
162
|
if (options.json) {
|
|
41
163
|
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
164
|
+
if (options.dryRun && result.launchGateReady !== true) {
|
|
165
|
+
throw new SilentExitError(1);
|
|
166
|
+
}
|
|
42
167
|
return;
|
|
43
168
|
}
|
|
44
169
|
if (options.dryRun) {
|
|
@@ -46,24 +171,48 @@ export function registerAdminCommands(cli, ctx) {
|
|
|
46
171
|
const hostDrift = result.missingHost ?? 0;
|
|
47
172
|
const extra = result.extraRoute ?? 0;
|
|
48
173
|
const drift = result.dryRunDrift ?? [];
|
|
49
|
-
if (
|
|
50
|
-
await writeLine(ctx, `${pc.
|
|
174
|
+
if (result.tenantDenyAtIndexZero !== true) {
|
|
175
|
+
await writeLine(ctx, `${pc.red("✗")} tenant-supernet deny is missing, displaced or unverified at Caddy route index 0 — no launch all-clear.`);
|
|
176
|
+
}
|
|
177
|
+
const topology = result.tenantTopologyAudit;
|
|
178
|
+
if (topology?.topologyReady !== true) {
|
|
179
|
+
await writeLine(ctx, `${pc.red("✗")} tenant topology audit is red or unavailable — no launch all-clear.`);
|
|
180
|
+
for (const finding of topology?.findings ?? []) {
|
|
181
|
+
const target = finding.network ?? finding.containerId ?? finding.appId ?? "fleet";
|
|
182
|
+
await writeLine(ctx, ` ${pc.red("✗")} ${finding.code} [${target}] — ${finding.detail}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (options.app || options.appId) {
|
|
186
|
+
await writeLine(ctx, `${pc.red("✗")} a filtered route diff cannot prove the whole-fleet launch gate.`);
|
|
187
|
+
}
|
|
188
|
+
if (result.launchGateReady === true) {
|
|
189
|
+
await writeLine(ctx, `${pc.green("✓")} Whole-fleet launch audit is clean.`);
|
|
51
190
|
return;
|
|
52
191
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
192
|
+
if (missing > 0 || hostDrift > 0 || extra > 0) {
|
|
193
|
+
await writeLine(ctx, `${pc.yellow("!")} drift: ${missing} missing route(s), ${hostDrift} missing host(s), ${extra} extra route(s)`);
|
|
194
|
+
for (const d of drift) {
|
|
195
|
+
const label = d.kind === "missing_route"
|
|
196
|
+
? pc.red("MISSING")
|
|
197
|
+
: d.kind === "missing_host"
|
|
198
|
+
? pc.yellow("HOST_DRIFT")
|
|
199
|
+
: pc.dim("EXTRA");
|
|
200
|
+
const target = d.appName ? `[${d.appName}] ` : "";
|
|
201
|
+
await writeLine(ctx, ` ${label} ${target}${d.routeId} (${d.routeType}) — ${d.hosts.join(", ")}`);
|
|
202
|
+
}
|
|
62
203
|
}
|
|
63
204
|
await writeLine(ctx, pc.dim(`Repair: percher admin reconcile-routes${options.app ? ` --app ${options.app}` : ""}`));
|
|
64
|
-
|
|
205
|
+
throw new SilentExitError(1);
|
|
65
206
|
}
|
|
66
207
|
// Live reconcile.
|
|
208
|
+
const skipped = result.skippedApps?.length ?? 0;
|
|
209
|
+
if (skipped > 0) {
|
|
210
|
+
await writeLine(ctx, `${pc.yellow("!")} ${skipped} app(s) skipped this tick (mutation lock held) — re-run to cover them`);
|
|
211
|
+
}
|
|
212
|
+
const uncertain = result.uncertainRoutes?.length ?? 0;
|
|
213
|
+
if (uncertain > 0) {
|
|
214
|
+
await writeLine(ctx, `${pc.yellow("!")} ${uncertain} route(s) unchecked this tick (multi-instance membership could not be verified) — re-run to cover them`);
|
|
215
|
+
}
|
|
67
216
|
if (result.errors === 0) {
|
|
68
217
|
await writeLine(ctx, `${pc.green("✓")} reconciled ${result.reconciled}, recovered ${result.recovered}, stale ${result.stale}, errors 0`);
|
|
69
218
|
return;
|
|
@@ -74,7 +223,7 @@ export function registerAdminCommands(cli, ctx) {
|
|
|
74
223
|
}
|
|
75
224
|
throw new SilentExitError(1);
|
|
76
225
|
}
|
|
77
|
-
throw new Error(`Unknown admin action "${action ?? ""}". Use: reconcile-routes.`);
|
|
226
|
+
throw new Error(`Unknown admin action "${action ?? ""}". Use: reconcile-routes, migrate-networks, legacy-inventory or legacy-audit.`);
|
|
78
227
|
});
|
|
79
228
|
// Help-only registration so `percher --help` advertises the
|
|
80
229
|
// subcommand. cac falls through to the parent `admin [action] ...`
|
|
@@ -88,5 +237,21 @@ export function registerAdminCommands(cli, ctx) {
|
|
|
88
237
|
.action(async () => {
|
|
89
238
|
// Unreachable — handled by parent `admin [action] ...`.
|
|
90
239
|
});
|
|
240
|
+
cli
|
|
241
|
+
.command("admin migrate-networks", "(admin only) Audit or migrate standing apps to worker-owned tenant networks")
|
|
242
|
+
.option("--app-ids <ids>", "Comma-separated immutable app ids; required with --rollback")
|
|
243
|
+
.option("--limit <n>", "Maximum apps, 1..20")
|
|
244
|
+
.option("--dry-run", "Read-only eligibility report")
|
|
245
|
+
.option("--rollback", "Move explicit --app-ids back to shared networking")
|
|
246
|
+
.option("--json", "Output JSON")
|
|
247
|
+
.action(async () => { });
|
|
248
|
+
cli
|
|
249
|
+
.command("admin legacy-inventory", "(admin only) Classify every Percher-owned runtime resource as current, legacy or unknown")
|
|
250
|
+
.option("--json", "Output JSON instead of the five counters")
|
|
251
|
+
.action(async () => { });
|
|
252
|
+
cli
|
|
253
|
+
.command("admin legacy-audit", "(admin only) The zero-legacy launch gate — exits 1 unless every term is measured and green")
|
|
254
|
+
.option("--json", "Output JSON instead of the conjunction")
|
|
255
|
+
.action(async () => { });
|
|
91
256
|
}
|
|
92
257
|
//# sourceMappingURL=admin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/commands/admin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/commands/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { writeLine } from "../cli-utils";
|
|
3
|
+
import { writeLine } from "../cli-utils.js";
|
|
4
4
|
export function registerAnalyticsCommands(cli, ctx) {
|
|
5
5
|
cli
|
|
6
6
|
.command("analytics [app]", "Show visitor analytics for an app")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { formatBytes, SilentExitError, writeLine } from "../cli-utils";
|
|
3
|
+
import { formatBytes, SilentExitError, writeLine } from "../cli-utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* FUTURE12 Phase 8 — exhaustiveness tripwire for the publish-handler
|
|
6
6
|
* switch. Adding a new value to `PublishStatus` without a matching
|
|
@@ -334,7 +334,7 @@ export function registerAppsCommands(cli, ctx) {
|
|
|
334
334
|
.option("--no-cache", "Skip image-cache lookup and force a fresh build (use when you suspect cached image is stale)")
|
|
335
335
|
.option("--anonymous", "Publish without an account — a 72h sandbox you can claim later (where enabled)")
|
|
336
336
|
.action(async (options) => {
|
|
337
|
-
const { detectCiBranchMessage } = await import("../ci-env");
|
|
337
|
+
const { detectCiBranchMessage } = await import("../ci-env.js");
|
|
338
338
|
let messageOverride = options.message;
|
|
339
339
|
if (options.preview && !options.message) {
|
|
340
340
|
const ci = detectCiBranchMessage(process.env);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { SilentExitError, writeLine } from "../cli-utils";
|
|
3
|
+
import { SilentExitError, writeLine } from "../cli-utils.js";
|
|
4
4
|
export function registerAuthCommands(cli, ctx) {
|
|
5
5
|
cli
|
|
6
6
|
.command("login", "Authenticate with Percher")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { firstNonFlagAfter, printSuperuserResetResult, writeLine } from "../cli-utils";
|
|
3
|
+
import { firstNonFlagAfter, printSuperuserResetResult, writeLine } from "../cli-utils.js";
|
|
4
4
|
export function registerDataCommands(cli, ctx, argv) {
|
|
5
5
|
cli
|
|
6
6
|
// The trailing `[...rest]` is a variadic absorber that exists only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploys.d.ts","sourceRoot":"","sources":["../../../src/commands/deploys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAW/B,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"deploys.d.ts","sourceRoot":"","sources":["../../../src/commands/deploys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAW/B,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA+ZpF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from "@percher/core";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { firstNonFlagAfter, formatDeployTimestamp, formatStatus, runDeploysInspect, SilentExitError, writeLine, } from "../cli-utils";
|
|
3
|
+
import { firstNonFlagAfter, formatDeployTimestamp, formatStatus, runDeploysInspect, SilentExitError, writeLine, } from "../cli-utils.js";
|
|
4
4
|
export function registerDeploysCommands(cli, ctx, argv) {
|
|
5
5
|
cli
|
|
6
6
|
// The trailing `[...rest]` is a variadic absorber that exists only
|
|
@@ -76,12 +76,14 @@ export function registerDeploysCommands(cli, ctx, argv) {
|
|
|
76
76
|
cli
|
|
77
77
|
.command("rollback [sha] [app]", "Roll back to a previous version (bare: pick from the 5 most recent)")
|
|
78
78
|
.option("--last-good", "Roll back to the most recent version that went live without crash-looping")
|
|
79
|
+
.option("--rebuild", "Build this version again from its source when its image is no longer kept")
|
|
79
80
|
.option("--app <name>", "App name (defaults to percher.toml in cwd)")
|
|
80
81
|
.action(async (sha, app, options) => {
|
|
81
82
|
const result = await core.rollback(ctx, {
|
|
82
83
|
app: options.app ?? app,
|
|
83
84
|
commitSha: sha,
|
|
84
85
|
toLastGood: Boolean(options.lastGood),
|
|
86
|
+
rebuild: Boolean(options.rebuild),
|
|
85
87
|
});
|
|
86
88
|
await writeLine(ctx, `${pc.green("✓")} rolled back to ${result.rolledBackTo.slice(0, 10)} (status: ${result.status})`);
|
|
87
89
|
});
|
|
@@ -172,6 +174,12 @@ export function registerDeploysCommands(cli, ctx, argv) {
|
|
|
172
174
|
.command("versions [app]", "List deployed versions for an app")
|
|
173
175
|
.action(async (app) => {
|
|
174
176
|
const list = await core.versions(ctx, { app });
|
|
177
|
+
// The rollback boundary's verdict, marked per row and explained once per
|
|
178
|
+
// distinct reason underneath. Inline explanations would repeat the same
|
|
179
|
+
// sentence on every expired row — a retention window of three makes most
|
|
180
|
+
// of a listing expired — so the reasons are collected and printed as a
|
|
181
|
+
// key, which still leaves no marker on the page without its meaning.
|
|
182
|
+
const reasons = new Map();
|
|
175
183
|
for (const v of list) {
|
|
176
184
|
// Print FULL SHA — `percher rollback <sha>` passes the
|
|
177
185
|
// input straight through to Forgejo's `git fetch <ref>`,
|
|
@@ -193,7 +201,18 @@ export function registerDeploysCommands(cli, ctx, argv) {
|
|
|
193
201
|
};
|
|
194
202
|
const label = v.channel ? (channelLabels[v.channel] ?? v.channel) : null;
|
|
195
203
|
const suffix = label ? ` · via ${label}` : "";
|
|
196
|
-
|
|
204
|
+
const target = v.rollbackTarget;
|
|
205
|
+
const marker = target && target.mode !== "in-window"
|
|
206
|
+
? target.mode === "rebuild"
|
|
207
|
+
? "[rebuild required]"
|
|
208
|
+
: "[not a rollback target]"
|
|
209
|
+
: null;
|
|
210
|
+
if (marker && target)
|
|
211
|
+
reasons.set(marker, target.explanation);
|
|
212
|
+
await writeLine(ctx, `${v.sha} ${v.timestamp} ${message}${suffix}${marker ? ` ${marker}` : ""}`);
|
|
213
|
+
}
|
|
214
|
+
for (const [marker, explanation] of reasons) {
|
|
215
|
+
await writeLine(ctx, `\n${marker} ${explanation}`);
|
|
197
216
|
}
|
|
198
217
|
});
|
|
199
218
|
// FUTURE25 Fas 2 — file diff between two deploy versions.
|
|
@@ -244,6 +263,9 @@ export function registerDeploysCommands(cli, ctx, argv) {
|
|
|
244
263
|
throw new Error("Deploy ID required. Usage: percher preview promote <id>");
|
|
245
264
|
const result = await ctx.client.apps.promotePreview(appRef, arg);
|
|
246
265
|
await writeLine(ctx, `${pc.green("✓")} Preview promoted to live. Status: ${result.status}`);
|
|
266
|
+
if (result.routeSwapDeferred) {
|
|
267
|
+
await writeLine(ctx, `${pc.yellow("!")} The live route could not move yet - the promotion is committed and the route converges via reconcile within minutes; until then the previous version keeps serving.`);
|
|
268
|
+
}
|
|
247
269
|
}
|
|
248
270
|
else if (action === "discard") {
|
|
249
271
|
if (!arg)
|