@geekmidas/cli 10.0.0-alpha.92 → 10.0.0-alpha.93
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/dist/{GoDaddyProvider-CJwg2r_9.cjs → GoDaddyProvider-BZb-V14e.cjs} +2 -2
- package/dist/{GoDaddyProvider-CJwg2r_9.cjs.map → GoDaddyProvider-BZb-V14e.cjs.map} +1 -1
- package/dist/{GoDaddyProvider-BqYGk9XT.mjs → GoDaddyProvider-Mi3vptSR.mjs} +2 -2
- package/dist/{GoDaddyProvider-BqYGk9XT.mjs.map → GoDaddyProvider-Mi3vptSR.mjs.map} +1 -1
- package/dist/{LegacyStateStore-CeEwayMB.cjs → LegacyStateStore-BlYXQQSE.cjs} +44 -10
- package/dist/LegacyStateStore-BlYXQQSE.cjs.map +1 -0
- package/dist/LegacyStateStore-CtwO7fwy.mjs +123 -0
- package/dist/LegacyStateStore-CtwO7fwy.mjs.map +1 -0
- package/dist/{LocalStateStore-Y8XHdoCR.mjs → LocalStateStore-D40_SDmJ.mjs} +2 -2
- package/dist/{LocalStateStore-Y8XHdoCR.mjs.map → LocalStateStore-D40_SDmJ.mjs.map} +1 -1
- package/dist/{LocalStateStore-BMfseje2.cjs → LocalStateStore-oX_zxj9V.cjs} +2 -2
- package/dist/{LocalStateStore-BMfseje2.cjs.map → LocalStateStore-oX_zxj9V.cjs.map} +1 -1
- package/dist/{S3StateStore-BfoY4MvD.mjs → S3StateStore-BzS0IeSt.mjs} +2 -2
- package/dist/{S3StateStore-BfoY4MvD.mjs.map → S3StateStore-BzS0IeSt.mjs.map} +1 -1
- package/dist/{S3StateStore-BmMt2HhW.cjs → S3StateStore-DeI7jtvi.cjs} +2 -2
- package/dist/{S3StateStore-BmMt2HhW.cjs.map → S3StateStore-DeI7jtvi.cjs.map} +1 -1
- package/dist/{SSMStateStore-D9K62wM4.cjs → SSMStateStore-CaCtrzFL.cjs} +2 -2
- package/dist/{SSMStateStore-D9K62wM4.cjs.map → SSMStateStore-CaCtrzFL.cjs.map} +1 -1
- package/dist/{SSMStateStore-Bdyw_0Jj.mjs → SSMStateStore-k_Ew7TWx.mjs} +2 -2
- package/dist/{SSMStateStore-Bdyw_0Jj.mjs.map → SSMStateStore-k_Ew7TWx.mjs.map} +1 -1
- package/dist/{add-2Opn2VVE.mjs → add-CP1podDH.mjs} +2 -3
- package/dist/{add-2Opn2VVE.mjs.map → add-CP1podDH.mjs.map} +1 -1
- package/dist/{add-oN0b18HN.cjs → add-VcyJnsPX.cjs} +3 -4
- package/dist/{add-oN0b18HN.cjs.map → add-VcyJnsPX.cjs.map} +1 -1
- package/dist/{bundler-C-AdesaG.mjs → bundler-BWrh-AJH.mjs} +3 -3
- package/dist/{bundler-C-AdesaG.mjs.map → bundler-BWrh-AJH.mjs.map} +1 -1
- package/dist/{bundler-CXQDrhzN.cjs → bundler-Dfsr6KXU.cjs} +3 -3
- package/dist/{bundler-CXQDrhzN.cjs.map → bundler-Dfsr6KXU.cjs.map} +1 -1
- package/dist/{cli-BjhaVObS.mjs → cli-B8otnZfX.mjs} +4 -4
- package/dist/{cli-BjhaVObS.mjs.map → cli-B8otnZfX.mjs.map} +1 -1
- package/dist/{cli-BRZFYvdb.cjs → cli-DL19w4OE.cjs} +2 -2
- package/dist/{cli-BRZFYvdb.cjs.map → cli-DL19w4OE.cjs.map} +1 -1
- package/dist/compose-BHVKLluX.cjs +1523 -0
- package/dist/compose-BHVKLluX.cjs.map +1 -0
- package/dist/compose-DrEB_4F-.mjs +1476 -0
- package/dist/compose-DrEB_4F-.mjs.map +1 -0
- package/dist/{config-BJo8Wggp.d.mts → config-CHX5GOo3.d.mts} +4 -4
- package/dist/{config-BJo8Wggp.d.mts.map → config-CHX5GOo3.d.mts.map} +1 -1
- package/dist/{config-C9zx7KsX.d.cts → config-DCCcrOSo.d.cts} +4 -4
- package/dist/{config-C9zx7KsX.d.cts.map → config-DCCcrOSo.d.cts.map} +1 -1
- package/dist/config.d.cts +3 -3
- package/dist/config.d.mts +3 -3
- package/dist/deploy/public.cjs +6 -5
- package/dist/deploy/public.d.cts +6 -6
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +6 -6
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +6 -6
- package/dist/{deploy-6ToUHJmM.cjs → deploy-C3Mhnmus.cjs} +4 -3
- package/dist/deploy-C3Mhnmus.cjs.map +1 -0
- package/dist/{deploy-yuJHlkY0.mjs → deploy-DYIyIUYd.mjs} +4 -3
- package/dist/deploy-DYIyIUYd.mjs.map +1 -0
- package/dist/{discover-CRMhvHG9.d.cts → discover-DqwlBVyY.d.mts} +2 -2
- package/dist/{discover-CRMhvHG9.d.cts.map → discover-DqwlBVyY.d.mts.map} +1 -1
- package/dist/{discover-G76EQ4vY.d.mts → discover-vk2r5giK.d.cts} +2 -2
- package/dist/{discover-G76EQ4vY.d.mts.map → discover-vk2r5giK.d.cts.map} +1 -1
- package/dist/{dokploy-BvbJ_A4Q.mjs → dokploy-o4I6vb9W.mjs} +2 -2
- package/dist/{dokploy-BvbJ_A4Q.mjs.map → dokploy-o4I6vb9W.mjs.map} +1 -1
- package/dist/{dokploy-Bvvfj2qe.cjs → dokploy-rivb1RFt.cjs} +2 -2
- package/dist/{dokploy-Bvvfj2qe.cjs.map → dokploy-rivb1RFt.cjs.map} +1 -1
- package/dist/{encryption-C9Jm9dfn.mjs → encryption-B6ilrT7p.mjs} +2 -2
- package/dist/{encryption-C9Jm9dfn.mjs.map → encryption-B6ilrT7p.mjs.map} +1 -1
- package/dist/{encryption-CgW167LO.cjs → encryption-D7zmwzWz.cjs} +2 -2
- package/dist/{encryption-CgW167LO.cjs.map → encryption-D7zmwzWz.cjs.map} +1 -1
- package/dist/{engine-Dj7ZKO8H.cjs → engine-Cfx8fEZU.cjs} +6 -5
- package/dist/engine-Cfx8fEZU.cjs.map +1 -0
- package/dist/{engine-C8Ye9MUm.mjs → engine-DjEcovm-.mjs} +6 -5
- package/dist/engine-DjEcovm-.mjs.map +1 -0
- package/dist/{github-B1k42hIt.mjs → github-CzBbs43W.mjs} +2 -2
- package/dist/{github-B1k42hIt.mjs.map → github-CzBbs43W.mjs.map} +1 -1
- package/dist/{github-BD051KZZ.cjs → github-zneTMvnO.cjs} +2 -2
- package/dist/{github-BD051KZZ.cjs.map → github-zneTMvnO.cjs.map} +1 -1
- package/dist/{index-D1pHwqkK.d.mts → index-BiYU7cUl.d.mts} +2 -2
- package/dist/{index-B5uuwx-Y.d.cts.map → index-BiYU7cUl.d.mts.map} +1 -1
- package/dist/{index-B5uuwx-Y.d.cts → index-Dm6V9bwh.d.cts} +2 -2
- package/dist/{index-D1pHwqkK.d.mts.map → index-Dm6V9bwh.d.cts.map} +1 -1
- package/dist/index.cjs +143 -184
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +141 -181
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-IZsYyZ5F.mjs → migrate-BaC4w0sb.mjs} +2 -2
- package/dist/{migrate-IZsYyZ5F.mjs.map → migrate-BaC4w0sb.mjs.map} +1 -1
- package/dist/{migrate-D3VVsiHp.cjs → migrate-C8wTpakT.cjs} +2 -2
- package/dist/{migrate-D3VVsiHp.cjs.map → migrate-C8wTpakT.cjs.map} +1 -1
- package/dist/{migrate-BSbZ7-9n.mjs → migrate-CsBZKALY.mjs} +3 -3
- package/dist/{migrate-BSbZ7-9n.mjs.map → migrate-CsBZKALY.mjs.map} +1 -1
- package/dist/{migrate-f6JDjyCp.cjs → migrate-DFjbGnSr.cjs} +2 -2
- package/dist/{migrate-f6JDjyCp.cjs.map → migrate-DFjbGnSr.cjs.map} +1 -1
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/reconcile/public.d.cts +2 -2
- package/dist/reconcile/public.d.mts +2 -2
- package/dist/{reconcile-Dh1Jk7WE.mjs → reconcile--I7V4Klj.mjs} +2 -2
- package/dist/{reconcile-Dh1Jk7WE.mjs.map → reconcile--I7V4Klj.mjs.map} +1 -1
- package/dist/{resolve-Be4bF1w4.mjs → resolve-Ccjlpnd9.mjs} +3 -3
- package/dist/{resolve-Be4bF1w4.mjs.map → resolve-Ccjlpnd9.mjs.map} +1 -1
- package/dist/{resolve-DUp65SnJ.cjs → resolve-g8htuR80.cjs} +3 -3
- package/dist/{resolve-DUp65SnJ.cjs.map → resolve-g8htuR80.cjs.map} +1 -1
- package/dist/{rollback-DDHtd0GJ.cjs → rollback--ympG9ss.cjs} +5 -4
- package/dist/rollback--ympG9ss.cjs.map +1 -0
- package/dist/{rollback-D1d-fW0r.mjs → rollback-Drbg0OeR.mjs} +5 -4
- package/dist/rollback-Drbg0OeR.mjs.map +1 -0
- package/dist/{runtime-Es1V4e9M.d.mts → runtime-D_J3ExJn.d.cts} +2 -2
- package/dist/{runtime-DDrHlYe5.d.cts.map → runtime-D_J3ExJn.d.cts.map} +1 -1
- package/dist/{runtime-DDrHlYe5.d.cts → runtime-_wEVtshH.d.mts} +2 -2
- package/dist/{runtime-Es1V4e9M.d.mts.map → runtime-_wEVtshH.d.mts.map} +1 -1
- package/dist/{sandbox-C3WsTa5m.d.mts → sandbox-CPJq1Kia.d.mts} +2 -2
- package/dist/{sandbox-C3WsTa5m.d.mts.map → sandbox-CPJq1Kia.d.mts.map} +1 -1
- package/dist/{sandbox-MaxSeU92.d.cts → sandbox-JwuPAl7I.d.cts} +2 -2
- package/dist/{sandbox-MaxSeU92.d.cts.map → sandbox-JwuPAl7I.d.cts.map} +1 -1
- package/dist/secrets-DJteijZo.cjs +47 -0
- package/dist/secrets-DJteijZo.cjs.map +1 -0
- package/dist/secrets-DbPmAS4k.mjs +36 -0
- package/dist/secrets-DbPmAS4k.mjs.map +1 -0
- package/dist/{seeds-CvGQJnPO.mjs → seeds-BSL55F6q.mjs} +897 -59
- package/dist/seeds-BSL55F6q.mjs.map +1 -0
- package/dist/{seeds-BKoJYsE7.cjs → seeds-c-ByX9je.cjs} +1014 -80
- package/dist/seeds-c-ByX9je.cjs.map +1 -0
- package/dist/stack-1PeLJS2j.cjs +1346 -0
- package/dist/stack-1PeLJS2j.cjs.map +1 -0
- package/dist/stack-Co4uZkAo.mjs +1239 -0
- package/dist/stack-Co4uZkAo.mjs.map +1 -0
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.d.cts +2 -2
- package/dist/target/public.d.mts +2 -2
- package/dist/target/public.mjs +1 -1
- package/dist/{terminal-Dtd6BZX9.mjs → terminal-C4XRdwnU.mjs} +2 -2
- package/dist/{terminal-Dtd6BZX9.mjs.map → terminal-C4XRdwnU.mjs.map} +1 -1
- package/dist/{types-Bk9st2cd.d.cts → types-B6lmD3en.d.mts} +77 -26
- package/dist/types-B6lmD3en.d.mts.map +1 -0
- package/dist/{types-B3Gqs175.d.mts → types-BibpiHKB.d.cts} +78 -25
- package/dist/types-BibpiHKB.d.cts.map +1 -0
- package/dist/workspace/index.d.cts +2 -2
- package/dist/workspace/index.d.mts +2 -2
- package/package.json +15 -15
- package/dist/LegacyStateStore-CeEwayMB.cjs.map +0 -1
- package/dist/LegacyStateStore-DdJ1bCRV.mjs +0 -89
- package/dist/LegacyStateStore-DdJ1bCRV.mjs.map +0 -1
- package/dist/compose-CTdVeeVk.mjs +0 -3151
- package/dist/compose-CTdVeeVk.mjs.map +0 -1
- package/dist/compose-fnYmPk_c.cjs +0 -3276
- package/dist/compose-fnYmPk_c.cjs.map +0 -1
- package/dist/deploy-6ToUHJmM.cjs.map +0 -1
- package/dist/deploy-yuJHlkY0.mjs.map +0 -1
- package/dist/engine-C8Ye9MUm.mjs.map +0 -1
- package/dist/engine-Dj7ZKO8H.cjs.map +0 -1
- package/dist/rollback-D1d-fW0r.mjs.map +0 -1
- package/dist/rollback-DDHtd0GJ.cjs.map +0 -1
- package/dist/seeds-BKoJYsE7.cjs.map +0 -1
- package/dist/seeds-CvGQJnPO.mjs.map +0 -1
- package/dist/types-B3Gqs175.d.mts.map +0 -1
- package/dist/types-Bk9st2cd.d.cts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -7,7 +7,7 @@ const require_discover = require("./discover-DPgu-ScS.cjs");
|
|
|
7
7
|
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
8
8
|
const require_workspace = require("./workspace-CHOB2Xg3.cjs");
|
|
9
9
|
const require_config = require("./config.cjs");
|
|
10
|
-
const require_seeds = require("./seeds-
|
|
10
|
+
const require_seeds = require("./seeds-c-ByX9je.cjs");
|
|
11
11
|
const require_EndpointGenerator = require("./EndpointGenerator-De03t1hd.cjs");
|
|
12
12
|
const require_openapi = require("./openapi.cjs");
|
|
13
13
|
const require_SubscriberGenerator = require("./SubscriberGenerator-Dvz7EzqK.cjs");
|
|
@@ -16,10 +16,11 @@ const require_drivers = require("./drivers-DDojgzz0.cjs");
|
|
|
16
16
|
const require_emit = require("./emit-Dmc1nvdS.cjs");
|
|
17
17
|
const require_local = require("./local-B61kUh0w.cjs");
|
|
18
18
|
const require_sniffer = require("./sniffer-Dq5BS98f.cjs");
|
|
19
|
-
const require_deploy = require("./deploy-
|
|
20
|
-
const require_compose = require("./compose-
|
|
19
|
+
const require_deploy = require("./deploy-C3Mhnmus.cjs");
|
|
20
|
+
const require_compose = require("./compose-BHVKLluX.cjs");
|
|
21
|
+
const require_stack = require("./stack-1PeLJS2j.cjs");
|
|
21
22
|
const require_credentialSchemas = require("./credentialSchemas-CAPKFkrG.cjs");
|
|
22
|
-
const require_LocalStateStore = require("./LocalStateStore-
|
|
23
|
+
const require_LocalStateStore = require("./LocalStateStore-oX_zxj9V.cjs");
|
|
23
24
|
const require_utils = require("./utils-D2Nk1Nv2.cjs");
|
|
24
25
|
require("./awsStore-B5We7bMg.cjs");
|
|
25
26
|
const require_ready = require("./ready-D3PIjx3S.cjs");
|
|
@@ -55,7 +56,7 @@ crypto = require_rolldown_runtime.__toESM(crypto, 1);
|
|
|
55
56
|
let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions");
|
|
56
57
|
let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
|
|
57
58
|
//#region package.json
|
|
58
|
-
var version = "10.0.0-alpha.
|
|
59
|
+
var version = "10.0.0-alpha.93";
|
|
59
60
|
//#endregion
|
|
60
61
|
//#region src/prompt.ts
|
|
61
62
|
/**
|
|
@@ -2332,9 +2333,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2332
2333
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2333
2334
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2334
2335
|
if (options.migrate || options.seed) {
|
|
2335
|
-
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-
|
|
2336
|
+
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs"));
|
|
2336
2337
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2337
|
-
} else await Promise.resolve().then(() => require("./migrate-
|
|
2338
|
+
} else await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2338
2339
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2339
2340
|
});
|
|
2340
2341
|
const appUrls = {};
|
|
@@ -3387,7 +3388,7 @@ async function buildApp(input) {
|
|
|
3387
3388
|
...production,
|
|
3388
3389
|
...telemetry ? { telemetry } : {}
|
|
3389
3390
|
});
|
|
3390
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3391
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-Dfsr6KXU.cjs"));
|
|
3391
3392
|
await bundleServer({
|
|
3392
3393
|
entryPoint,
|
|
3393
3394
|
outputDir: (0, node_path.join)(outputDir, "dist"),
|
|
@@ -3532,7 +3533,7 @@ async function buildWorkers(input) {
|
|
|
3532
3533
|
});
|
|
3533
3534
|
logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
|
|
3534
3535
|
if (!input.bundle) continue;
|
|
3535
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3536
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-Dfsr6KXU.cjs"));
|
|
3536
3537
|
const outfile = require_seeds.workerBundleName(worker.id);
|
|
3537
3538
|
await bundleServer({
|
|
3538
3539
|
entryPoint,
|
|
@@ -3618,7 +3619,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3618
3619
|
let masterKey;
|
|
3619
3620
|
if (context.production?.bundle && !skipBundle) {
|
|
3620
3621
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3621
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3622
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-Dfsr6KXU.cjs"));
|
|
3622
3623
|
const allConstructs = [
|
|
3623
3624
|
...endpoints.map((e) => e.construct),
|
|
3624
3625
|
...functions.map((f) => f.construct),
|
|
@@ -3864,7 +3865,7 @@ var ComposeModeConflict = class extends require_errors.GkmError {
|
|
|
3864
3865
|
};
|
|
3865
3866
|
/** Each pushed image as `<ref>@sha256:…`, by app. */
|
|
3866
3867
|
function pushedDigests(run) {
|
|
3867
|
-
return Object.fromEntries(Object.entries(run.images).filter(([, image]) => image.digest).sort(([a], [b]) => a.localeCompare(b)).map(([app, image]) => [app,
|
|
3868
|
+
return Object.fromEntries(Object.entries(run.images).filter(([, image]) => image.digest).sort(([a], [b]) => a.localeCompare(b)).map(([app, image]) => [app, require_stack.pinnedRef(image.ref, image.digest)]));
|
|
3868
3869
|
}
|
|
3869
3870
|
/** `gkm compose`. */
|
|
3870
3871
|
async function composeCommand(options, deps = {}) {
|
|
@@ -3878,12 +3879,12 @@ async function composeCommand(options, deps = {}) {
|
|
|
3878
3879
|
if (options.down) {
|
|
3879
3880
|
const override = require_compose.stackOverrideFile(workspace.root, stage);
|
|
3880
3881
|
const ref = {
|
|
3881
|
-
project:
|
|
3882
|
-
file: (0, node_path.join)(workspace.root,
|
|
3882
|
+
project: require_stack.composeProject(require_seeds.deployIdentity(workspace, stage)),
|
|
3883
|
+
file: (0, node_path.join)(workspace.root, require_stack.stackDir(stage), "docker-compose.yml"),
|
|
3883
3884
|
...(0, node_fs.existsSync)(override) ? { overrides: [override] } : {},
|
|
3884
3885
|
cwd: workspace.root
|
|
3885
3886
|
};
|
|
3886
|
-
if (await require_compose.removeEdgeRoutes(require_compose.edgeDir(deps.env ?? process.env), ref.project)) console.log(`🌐 Removed ${ref.project}'s routes from ${
|
|
3887
|
+
if (await require_compose.removeEdgeRoutes(require_compose.edgeDir(deps.env ?? process.env), ref.project)) console.log(`🌐 Removed ${ref.project}'s routes from ${require_stack.EDGE_PROJECT}.`);
|
|
3887
3888
|
await (deps.docker ?? require_compose.dockerCompose).down(ref);
|
|
3888
3889
|
console.log(`🛑 Stopped ${ref.project}. Its volumes are kept.`);
|
|
3889
3890
|
return;
|
|
@@ -3893,7 +3894,7 @@ async function composeCommand(options, deps = {}) {
|
|
|
3893
3894
|
const tag = options.tag ?? (options.pull ? "latest" : void 0);
|
|
3894
3895
|
const pin = options.digestsFile && pulls ? {
|
|
3895
3896
|
file: options.digestsFile,
|
|
3896
|
-
digests:
|
|
3897
|
+
digests: require_stack.parseDigests(options.digestsFile, await (0, node_fs_promises.readFile)((0, node_path.resolve)(cwd, options.digestsFile), "utf-8"))
|
|
3897
3898
|
} : void 0;
|
|
3898
3899
|
const result = await require_deploy.deploy({
|
|
3899
3900
|
cwd,
|
|
@@ -4139,6 +4140,7 @@ const MASKED = "********";
|
|
|
4139
4140
|
*/
|
|
4140
4141
|
function maskStateSecrets(state) {
|
|
4141
4142
|
const masked = structuredClone(state);
|
|
4143
|
+
if (masked.provider !== "dokploy") return masked;
|
|
4142
4144
|
for (const credentials of Object.values(masked.appCredentials ?? {})) credentials.dbPassword = MASKED;
|
|
4143
4145
|
for (const secrets of Object.values(masked.generatedSecrets ?? {})) for (const name of Object.keys(secrets)) secrets[name] = MASKED;
|
|
4144
4146
|
if (masked.backups) {
|
|
@@ -4194,6 +4196,7 @@ async function stateShowCommand(options) {
|
|
|
4194
4196
|
if (options.json) console.log(JSON.stringify(state, null, 2));
|
|
4195
4197
|
else {
|
|
4196
4198
|
printStateDetails(state);
|
|
4199
|
+
printDnsRecords(stored.resources);
|
|
4197
4200
|
printUnfinished(stored.resources);
|
|
4198
4201
|
}
|
|
4199
4202
|
}
|
|
@@ -4238,8 +4241,8 @@ async function stateDiffCommand(options) {
|
|
|
4238
4241
|
if (!remote) console.log("Remote: (none)");
|
|
4239
4242
|
else console.log(`Remote: Last deployed ${remote.lastDeployedAt}`);
|
|
4240
4243
|
console.log("");
|
|
4241
|
-
const localApps = local?.applications ?? {};
|
|
4242
|
-
const remoteApps = remote?.applications ?? {};
|
|
4244
|
+
const localApps = dokploy(local)?.applications ?? {};
|
|
4245
|
+
const remoteApps = dokploy(remote)?.applications ?? {};
|
|
4243
4246
|
const allApps = /* @__PURE__ */ new Set([...Object.keys(localApps), ...Object.keys(remoteApps)]);
|
|
4244
4247
|
if (allApps.size > 0) {
|
|
4245
4248
|
console.log("Applications:");
|
|
@@ -4252,8 +4255,8 @@ async function stateDiffCommand(options) {
|
|
|
4252
4255
|
else console.log(` ${app}: ${localId} (local) != ${remoteId} (remote) [MISMATCH]`);
|
|
4253
4256
|
}
|
|
4254
4257
|
}
|
|
4255
|
-
const localServices = local?.services ?? {};
|
|
4256
|
-
const remoteServices = remote?.services ?? {};
|
|
4258
|
+
const localServices = dokploy(local)?.services ?? {};
|
|
4259
|
+
const remoteServices = dokploy(remote)?.services ?? {};
|
|
4257
4260
|
if (Object.keys(localServices).length > 0 || Object.keys(remoteServices).length > 0) {
|
|
4258
4261
|
console.log("\nServices:");
|
|
4259
4262
|
const serviceKeys = /* @__PURE__ */ new Set([...Object.keys(localServices), ...Object.keys(remoteServices)]);
|
|
@@ -4318,6 +4321,10 @@ async function copyStage(from, to, stage) {
|
|
|
4318
4321
|
for (const { updatedAt: _stamped, ...record } of Object.values(source.resources)) version = await to.putResource(stage, record, { expectedVersion: version });
|
|
4319
4322
|
return source;
|
|
4320
4323
|
}
|
|
4324
|
+
/** `state` if Dokploy wrote it — the only shape with ids of its own. */
|
|
4325
|
+
function dokploy(state) {
|
|
4326
|
+
return state?.provider === "dokploy" ? state : null;
|
|
4327
|
+
}
|
|
4321
4328
|
function describeRecord(record) {
|
|
4322
4329
|
if (!record) return "(none)";
|
|
4323
4330
|
return record.id ? `${record.status} ${record.id}` : record.status;
|
|
@@ -4331,6 +4338,12 @@ function printUnfinished(resources) {
|
|
|
4331
4338
|
for (const record of pending) console.log(` ${record.key}`);
|
|
4332
4339
|
}
|
|
4333
4340
|
function printStateSummary(state) {
|
|
4341
|
+
if (state.provider !== "dokploy") {
|
|
4342
|
+
console.log(` Stage: ${state.stage} (${state.provider})`);
|
|
4343
|
+
console.log(` Apps released: ${Object.keys(state.releases ?? {}).length}`);
|
|
4344
|
+
console.log(` Last deployed: ${state.lastDeployedAt}`);
|
|
4345
|
+
return;
|
|
4346
|
+
}
|
|
4334
4347
|
const appCount = Object.keys(state.applications).length;
|
|
4335
4348
|
const hasPostgres = !!state.services.postgresId;
|
|
4336
4349
|
const hasRedis = !!state.services.redisId;
|
|
@@ -4341,6 +4354,14 @@ function printStateSummary(state) {
|
|
|
4341
4354
|
console.log(` Last deployed: ${state.lastDeployedAt}`);
|
|
4342
4355
|
}
|
|
4343
4356
|
function printStateDetails(state) {
|
|
4357
|
+
if (state.provider !== "dokploy") {
|
|
4358
|
+
console.log(`Stage: ${state.stage} (${state.provider})`);
|
|
4359
|
+
console.log(`Last Deployed: ${state.lastDeployedAt}`);
|
|
4360
|
+
if (state.identity) console.log(`Identity: ${state.identity}`);
|
|
4361
|
+
console.log("");
|
|
4362
|
+
printReleases(state.releases);
|
|
4363
|
+
return;
|
|
4364
|
+
}
|
|
4344
4365
|
console.log(`Stage: ${state.stage}`);
|
|
4345
4366
|
console.log(`Environment ID: ${state.environmentId}`);
|
|
4346
4367
|
console.log(`Last Deployed: ${state.lastDeployedAt}`);
|
|
@@ -4382,6 +4403,62 @@ function printStateDetails(state) {
|
|
|
4382
4403
|
for (const [hostname, info] of Object.entries(state.dnsVerified)) console.log(` ${hostname}: ${info.serverIp} (${info.verifiedAt})`);
|
|
4383
4404
|
}
|
|
4384
4405
|
}
|
|
4406
|
+
/** Each app's current release, and who released it. */
|
|
4407
|
+
function printReleases(releases) {
|
|
4408
|
+
console.log("Releases:");
|
|
4409
|
+
const apps = Object.entries(releases ?? {});
|
|
4410
|
+
if (apps.length === 0) {
|
|
4411
|
+
console.log(" (none)");
|
|
4412
|
+
return;
|
|
4413
|
+
}
|
|
4414
|
+
for (const [app, { current }] of apps) console.log(` ${app}: ${describeRelease(current)}`);
|
|
4415
|
+
}
|
|
4416
|
+
/** `ghcr.io/acme/api:v2 (sha256:…) · 2026-… · ada@laptop` */
|
|
4417
|
+
function describeRelease(release) {
|
|
4418
|
+
return [
|
|
4419
|
+
`${release.ref}${release.digest ? ` (${release.digest})` : ""}`,
|
|
4420
|
+
release.releasedAt,
|
|
4421
|
+
require_seeds.describeActor(release.releasedBy)
|
|
4422
|
+
].join(" · ");
|
|
4423
|
+
}
|
|
4424
|
+
/** The DNS records gkm wrote for the stage. */
|
|
4425
|
+
function printDnsRecords(resources) {
|
|
4426
|
+
const records = require_seeds.dnsResources(resources);
|
|
4427
|
+
if (records.length === 0) return;
|
|
4428
|
+
console.log("");
|
|
4429
|
+
console.log("DNS Records:");
|
|
4430
|
+
for (const record of records) console.log(` ${record.fqdn} ${record.type} ${record.value} (TTL ${record.ttl}${record.provider ? `, ${record.provider}` : ""})`);
|
|
4431
|
+
}
|
|
4432
|
+
/**
|
|
4433
|
+
* Who wrote a stage's state, newest first, and what each app runs.
|
|
4434
|
+
* `gkm state:history --stage=<stage>`
|
|
4435
|
+
*/
|
|
4436
|
+
async function stateHistoryCommand(options) {
|
|
4437
|
+
const { workspace } = await require_config.loadWorkspaceConfig();
|
|
4438
|
+
const stored = await (await require_seeds.createStateStore({
|
|
4439
|
+
config: workspace.state,
|
|
4440
|
+
workspaceRoot: workspace.root,
|
|
4441
|
+
workspaceName: workspace.name
|
|
4442
|
+
})).read(options.stage);
|
|
4443
|
+
if (!stored) {
|
|
4444
|
+
console.log(`No state found for stage: ${options.stage}`);
|
|
4445
|
+
return;
|
|
4446
|
+
}
|
|
4447
|
+
const history = {
|
|
4448
|
+
stage: options.stage,
|
|
4449
|
+
history: stored.history,
|
|
4450
|
+
releases: Object.fromEntries(Object.entries(stored.state.releases ?? {}).map(([app, releases]) => [app, releases.current]))
|
|
4451
|
+
};
|
|
4452
|
+
if (options.json) {
|
|
4453
|
+
console.log(JSON.stringify(history, null, 2));
|
|
4454
|
+
return;
|
|
4455
|
+
}
|
|
4456
|
+
console.log(`History of stage ${options.stage} (newest first):`);
|
|
4457
|
+
if (history.history.length === 0) console.log(" (none recorded)");
|
|
4458
|
+
for (const entry of history.history) console.log(` ${entry.serial} · ${entry.at} · ${require_seeds.describeActor(entry.by)} · ${entry.operation}`);
|
|
4459
|
+
console.log("");
|
|
4460
|
+
printReleases(stored.state.releases);
|
|
4461
|
+
}
|
|
4385
4462
|
//#endregion
|
|
4386
4463
|
//#region src/secrets/generator.ts
|
|
4387
4464
|
/**
|
|
@@ -5353,25 +5430,25 @@ function loadPackageJson() {
|
|
|
5353
5430
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5354
5431
|
*/
|
|
5355
5432
|
const GEEKMIDAS_VERSIONS = {
|
|
5356
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5357
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5358
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5359
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5360
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5361
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5362
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5363
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5364
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5365
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5366
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5367
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5368
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5369
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5370
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5371
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5372
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5373
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5374
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5433
|
+
"@geekmidas/audit": "~10.0.0-alpha.93",
|
|
5434
|
+
"@geekmidas/auth": "~10.0.0-alpha.93",
|
|
5435
|
+
"@geekmidas/cache": "~10.0.0-alpha.93",
|
|
5436
|
+
"@geekmidas/client": "~10.0.0-alpha.93",
|
|
5437
|
+
"@geekmidas/cloud": "~10.0.0-alpha.93",
|
|
5438
|
+
"@geekmidas/constructs": "~10.0.0-alpha.93",
|
|
5439
|
+
"@geekmidas/db": "~10.0.0-alpha.93",
|
|
5440
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.93",
|
|
5441
|
+
"@geekmidas/envkit": "~10.0.0-alpha.93",
|
|
5442
|
+
"@geekmidas/errors": "~10.0.0-alpha.93",
|
|
5443
|
+
"@geekmidas/events": "~10.0.0-alpha.93",
|
|
5444
|
+
"@geekmidas/logger": "~10.0.0-alpha.93",
|
|
5445
|
+
"@geekmidas/manifest": "~10.0.0-alpha.93",
|
|
5446
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.93",
|
|
5447
|
+
"@geekmidas/schema": "~10.0.0-alpha.93",
|
|
5448
|
+
"@geekmidas/services": "~10.0.0-alpha.93",
|
|
5449
|
+
"@geekmidas/storage": "~10.0.0-alpha.93",
|
|
5450
|
+
"@geekmidas/telescope": "~10.0.0-alpha.93",
|
|
5451
|
+
"@geekmidas/testkit": "~10.0.0-alpha.93",
|
|
5375
5452
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5376
5453
|
};
|
|
5377
5454
|
//#endregion
|
|
@@ -5772,7 +5849,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
|
|
|
5772
5849
|
* The `uses:` value for the stages action, with a comment saying which CLI
|
|
5773
5850
|
* release the pinned commit is.
|
|
5774
5851
|
*/
|
|
5775
|
-
function stagesActionUses(commit = "
|
|
5852
|
+
function stagesActionUses(commit = "a619ff213e362417b184dff08c8175a86f5d9d07", version = cliVersion()) {
|
|
5776
5853
|
return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
|
|
5777
5854
|
}
|
|
5778
5855
|
//#endregion
|
|
@@ -11054,135 +11131,6 @@ function maskUrl(url) {
|
|
|
11054
11131
|
}
|
|
11055
11132
|
}
|
|
11056
11133
|
//#endregion
|
|
11057
|
-
//#region src/providers/dns.ts
|
|
11058
|
-
/** Whether the workspace deploys through the compose target. */
|
|
11059
|
-
function deploysWithCompose(workspace) {
|
|
11060
|
-
return workspace.deploy?.default === "compose" || Object.values(workspace.apps).some((app) => app.resolvedDeployTarget === "compose");
|
|
11061
|
-
}
|
|
11062
|
-
/**
|
|
11063
|
-
* A compose stage that serves a domain has its server's address in its
|
|
11064
|
-
* secrets — checked before `gkm setup --stage` does anything else.
|
|
11065
|
-
*
|
|
11066
|
-
* @throws {ServerAddressMissing} for a compose stage with a domain and none
|
|
11067
|
-
* @throws {ServerAddressInvalid} for a value that is not an address
|
|
11068
|
-
*/
|
|
11069
|
-
function assertStageServer(workspace, stage, secrets) {
|
|
11070
|
-
if (stage === workspace.stages.local) return void 0;
|
|
11071
|
-
if (!deploysWithCompose(workspace)) return require_compose.serverAddress(stage, secrets?.custom);
|
|
11072
|
-
return require_compose.requiredServerAddress(stage, workspace.domains?.[stage], secrets?.custom);
|
|
11073
|
-
}
|
|
11074
|
-
/**
|
|
11075
|
-
* The hosts a compose stage serves: its stack composed as a deploy would —
|
|
11076
|
-
* with the secrets it would generate made up in memory, never written — and
|
|
11077
|
-
* every route's host read off it.
|
|
11078
|
-
*/
|
|
11079
|
-
async function composeStageHosts(options) {
|
|
11080
|
-
const { workspace, stage } = options;
|
|
11081
|
-
const runnables = options.runnables ?? {};
|
|
11082
|
-
const background = options.background ?? {};
|
|
11083
|
-
const manifest = options.manifest ?? await require_discover.discover({
|
|
11084
|
-
patterns: require_seeds.constructGlobs(workspace),
|
|
11085
|
-
cwd: workspace.root,
|
|
11086
|
-
runnables,
|
|
11087
|
-
background
|
|
11088
|
-
});
|
|
11089
|
-
const stored = await (await require_seeds.secretsStoreFor(workspace, stage, {
|
|
11090
|
-
...options.profile ? { profile: options.profile } : {},
|
|
11091
|
-
...options.home ? { home: options.home } : {}
|
|
11092
|
-
})).read(stage);
|
|
11093
|
-
const { deployedStackSecrets } = await Promise.resolve().then(() => require("./compose-fnYmPk_c.cjs")).then((n) => n.secrets_exports);
|
|
11094
|
-
const { composeStack } = await Promise.resolve().then(() => require("./compose-fnYmPk_c.cjs")).then((n) => n.stack_exports);
|
|
11095
|
-
const { secrets } = deployedStackSecrets(workspace, stage, stored, manifest);
|
|
11096
|
-
const stack = composeStack({
|
|
11097
|
-
workspace,
|
|
11098
|
-
manifest,
|
|
11099
|
-
runnables,
|
|
11100
|
-
background,
|
|
11101
|
-
stage,
|
|
11102
|
-
identity: require_seeds.deployIdentity(workspace, stage),
|
|
11103
|
-
images: {
|
|
11104
|
-
mode: "pull",
|
|
11105
|
-
tag: "dns",
|
|
11106
|
-
...workspace.deploy?.registry ? { registry: workspace.deploy.registry } : {}
|
|
11107
|
-
},
|
|
11108
|
-
secrets,
|
|
11109
|
-
buildOnly: true,
|
|
11110
|
-
allowDevServices: true
|
|
11111
|
-
});
|
|
11112
|
-
return require_compose.stackHosts(stack);
|
|
11113
|
-
}
|
|
11114
|
-
/**
|
|
11115
|
-
* `GKM_SERVER_IPV4` from the stage's secrets and `dns`: each public host's
|
|
11116
|
-
* records, created or corrected. A dry run reads and prints, and writes
|
|
11117
|
-
* nothing.
|
|
11118
|
-
*/
|
|
11119
|
-
async function provisionStageDns(options) {
|
|
11120
|
-
const { workspace, stage } = options;
|
|
11121
|
-
const log = options.log ?? ((line) => console.log(line));
|
|
11122
|
-
if (stage === workspace.stages.local || !workspace.dns || !deploysWithCompose(workspace)) return {
|
|
11123
|
-
mode: "none",
|
|
11124
|
-
hosts: [],
|
|
11125
|
-
changes: []
|
|
11126
|
-
};
|
|
11127
|
-
const store = await require_seeds.secretsStoreFor(workspace, stage, {
|
|
11128
|
-
...options.profile ? { profile: options.profile } : {},
|
|
11129
|
-
...options.home ? { home: options.home } : {}
|
|
11130
|
-
});
|
|
11131
|
-
const server = require_compose.serverAddress(stage, (await store.read(stage))?.custom);
|
|
11132
|
-
if (!server) {
|
|
11133
|
-
log(`\n🌐 DNS for '${stage}': no GKM_SERVER_IPV4 in its secrets, so no records — ${require_compose.serverAddressHint(stage)}`);
|
|
11134
|
-
return {
|
|
11135
|
-
mode: "none",
|
|
11136
|
-
hosts: [],
|
|
11137
|
-
changes: []
|
|
11138
|
-
};
|
|
11139
|
-
}
|
|
11140
|
-
const hosts = [...options.hosts ?? await composeStageHosts({
|
|
11141
|
-
workspace,
|
|
11142
|
-
stage,
|
|
11143
|
-
...options.profile ? { profile: options.profile } : {},
|
|
11144
|
-
...options.home ? { home: options.home } : {},
|
|
11145
|
-
...options.manifest ? { manifest: options.manifest } : {},
|
|
11146
|
-
...options.runnables ? { runnables: options.runnables } : {},
|
|
11147
|
-
...options.background ? { background: options.background } : {}
|
|
11148
|
-
})];
|
|
11149
|
-
log(`\n🌐 DNS for '${stage}' → ${server.ipv4}${server.ipv6 ? ` / ${server.ipv6}` : ""}${options.dryRun ? " (dry run — nothing is written)" : ""}`);
|
|
11150
|
-
const plan = require_compose.planStackDns({
|
|
11151
|
-
stage,
|
|
11152
|
-
hosts,
|
|
11153
|
-
server,
|
|
11154
|
-
dns: workspace.dns
|
|
11155
|
-
});
|
|
11156
|
-
try {
|
|
11157
|
-
return {
|
|
11158
|
-
mode: "records",
|
|
11159
|
-
hosts,
|
|
11160
|
-
changes: await require_compose.applyStackDns(plan, {
|
|
11161
|
-
...options.dryRun ? { dryRun: true } : {},
|
|
11162
|
-
log,
|
|
11163
|
-
credentials: {
|
|
11164
|
-
env: options.env ?? process.env,
|
|
11165
|
-
...options.home ? { home: options.home } : {},
|
|
11166
|
-
log
|
|
11167
|
-
},
|
|
11168
|
-
...options.providerFor ? { providerFor: options.providerFor } : {}
|
|
11169
|
-
})
|
|
11170
|
-
};
|
|
11171
|
-
} catch (error) {
|
|
11172
|
-
if (error instanceof require_credentials.MissingCredential) {
|
|
11173
|
-
log(` ⚠ ${error.message}`);
|
|
11174
|
-
log(" Until then, create these records yourself:");
|
|
11175
|
-
for (const domain of plan.domains) for (const r of domain.records) log(` ${r.host.padEnd(32)} ${r.type.padEnd(5)} ${r.value} (TTL ${r.ttl})`);
|
|
11176
|
-
return {
|
|
11177
|
-
mode: "records",
|
|
11178
|
-
hosts,
|
|
11179
|
-
changes: []
|
|
11180
|
-
};
|
|
11181
|
-
}
|
|
11182
|
-
throw error;
|
|
11183
|
-
}
|
|
11184
|
-
}
|
|
11185
|
-
//#endregion
|
|
11186
11134
|
//#region src/setup/index.ts
|
|
11187
11135
|
var setup_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
11188
11136
|
createFreshWorkspaceSecrets: () => createFreshWorkspaceSecrets,
|
|
@@ -11216,7 +11164,10 @@ async function setupCommand(options = {}) {
|
|
|
11216
11164
|
logger$1.log(`📦 Workspace: ${workspace.name}`);
|
|
11217
11165
|
logger$1.log(`📱 Apps: ${Object.keys(workspace.apps).join(", ")}`);
|
|
11218
11166
|
logger$1.log(`🔑 Stage: ${stage}\n`);
|
|
11219
|
-
if (!local)
|
|
11167
|
+
if (!local) {
|
|
11168
|
+
const store = await require_seeds.secretsStoreFor(workspace, stage, { ...options.profile ? { profile: options.profile } : {} });
|
|
11169
|
+
require_seeds.assertStageServer(workspace, stage, await store.read(stage));
|
|
11170
|
+
}
|
|
11220
11171
|
if (!local && options.dryRun) {
|
|
11221
11172
|
await provisionDeployed(workspace, stage, options);
|
|
11222
11173
|
return;
|
|
@@ -11251,7 +11202,7 @@ async function provisionDeployed(workspace, stage, options) {
|
|
|
11251
11202
|
log: (line) => logger$1.log(line)
|
|
11252
11203
|
})).filter((r) => r.mode === "provider");
|
|
11253
11204
|
if (configured.length === 0) logger$1.log(` None configured: '${stage}' takes every key from its secrets (gkm secrets:add --stage ${stage}). Name one in gkm.config.ts — deploy: { objects: { ${stage}: { provider: 's3' } } } — to have ${require_seeds.provisionCommand(stage)} create it.`);
|
|
11254
|
-
const dns = await provisionStageDns({
|
|
11205
|
+
const dns = await require_seeds.provisionStageDns({
|
|
11255
11206
|
workspace,
|
|
11256
11207
|
stage,
|
|
11257
11208
|
...options.dryRun ? { dryRun: true } : {},
|
|
@@ -11614,7 +11565,7 @@ function testDatabases(reconciled) {
|
|
|
11614
11565
|
* starts without the reference data the app needs.
|
|
11615
11566
|
*/
|
|
11616
11567
|
async function migrateTestStage(workspace, env) {
|
|
11617
|
-
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-
|
|
11568
|
+
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs"));
|
|
11618
11569
|
const { discover } = await Promise.resolve().then(() => require("./discover-DPgu-ScS.cjs")).then((n) => n.discover_exports);
|
|
11619
11570
|
const sources = {};
|
|
11620
11571
|
const manifest = await discover({
|
|
@@ -12050,7 +12001,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
12050
12001
|
try {
|
|
12051
12002
|
const globalOptions = program.opts();
|
|
12052
12003
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12053
|
-
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
12004
|
+
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs"));
|
|
12054
12005
|
await migrateCommand({
|
|
12055
12006
|
...options,
|
|
12056
12007
|
...construct ? { construct } : {}
|
|
@@ -12063,7 +12014,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
12063
12014
|
try {
|
|
12064
12015
|
const globalOptions = program.opts();
|
|
12065
12016
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12066
|
-
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
12017
|
+
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs"));
|
|
12067
12018
|
await seedCommand({
|
|
12068
12019
|
...options,
|
|
12069
12020
|
...construct ? { construct } : {}
|
|
@@ -12076,7 +12027,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
12076
12027
|
try {
|
|
12077
12028
|
const globalOptions = program.opts();
|
|
12078
12029
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12079
|
-
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
12030
|
+
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-C8wTpakT.cjs"));
|
|
12080
12031
|
await migrationCommand({
|
|
12081
12032
|
construct,
|
|
12082
12033
|
...name ? { name } : {}
|
|
@@ -12176,7 +12127,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
|
|
|
12176
12127
|
try {
|
|
12177
12128
|
const globalOptions = program.opts();
|
|
12178
12129
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12179
|
-
const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-
|
|
12130
|
+
const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-VcyJnsPX.cjs"));
|
|
12180
12131
|
await secretsAddCommand(options);
|
|
12181
12132
|
} catch (error) {
|
|
12182
12133
|
exitWithError(error);
|
|
@@ -12186,7 +12137,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
12186
12137
|
try {
|
|
12187
12138
|
const globalOptions = program.opts();
|
|
12188
12139
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12189
|
-
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
12140
|
+
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-D7zmwzWz.cjs"));
|
|
12190
12141
|
await encryptionRotateCommand(construct, options);
|
|
12191
12142
|
} catch (error) {
|
|
12192
12143
|
exitWithError(error);
|
|
@@ -12196,7 +12147,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
12196
12147
|
try {
|
|
12197
12148
|
const globalOptions = program.opts();
|
|
12198
12149
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12199
|
-
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
12150
|
+
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-D7zmwzWz.cjs"));
|
|
12200
12151
|
await encryptionRetireCommand(construct, key, options);
|
|
12201
12152
|
} catch (error) {
|
|
12202
12153
|
exitWithError(error);
|
|
@@ -12235,7 +12186,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12235
12186
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12236
12187
|
const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
|
|
12237
12188
|
const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
|
|
12238
|
-
const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-
|
|
12189
|
+
const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-c-ByX9je.cjs")).then((n) => n.store_exports);
|
|
12239
12190
|
const { workspace } = await loadWorkspaceConfig();
|
|
12240
12191
|
const stage = options.stage ?? workspace.stages.local;
|
|
12241
12192
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -12244,7 +12195,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12244
12195
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
12245
12196
|
process.exit(1);
|
|
12246
12197
|
}
|
|
12247
|
-
const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-
|
|
12198
|
+
const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-c-ByX9je.cjs")).then((n) => n.workspace_exports);
|
|
12248
12199
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
12249
12200
|
if (!result) {
|
|
12250
12201
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -12261,14 +12212,14 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
|
|
|
12261
12212
|
try {
|
|
12262
12213
|
const globalOptions = program.opts();
|
|
12263
12214
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12264
|
-
const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
12215
|
+
const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-DFjbGnSr.cjs"));
|
|
12265
12216
|
await secretsMigrateCommand(options);
|
|
12266
12217
|
} catch (error) {
|
|
12267
12218
|
exitWithError(error);
|
|
12268
12219
|
}
|
|
12269
12220
|
});
|
|
12270
12221
|
program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").option("--atomic", "If the release fails, roll back every app it released, not only the failed ones").option("--allow-dev-services", "Server targets: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns-check", "Compose: do not check that each public host resolves to GKM_SERVER_IPV4 in the stage secrets before starting (a CDN or proxy in front)").action(async (options) => {
|
|
12271
|
-
const { deployCli } = await Promise.resolve().then(() => require("./cli-
|
|
12222
|
+
const { deployCli } = await Promise.resolve().then(() => require("./cli-DL19w4OE.cjs"));
|
|
12272
12223
|
const globalOptions = program.opts();
|
|
12273
12224
|
const code = await deployCli({
|
|
12274
12225
|
cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
|
|
@@ -12286,7 +12237,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
12286
12237
|
});
|
|
12287
12238
|
program.command("deploy:rollback").description("Put a stage's app back on its previous release (Dokploy): one app with --app, every app with --atomic").requiredOption("--stage <stage>", "A deployed stage").option("--app <app>", "The app to roll back").option("--atomic", "Roll back every app that has an earlier release").action(async (options) => {
|
|
12288
12239
|
try {
|
|
12289
|
-
const { rollbackStage } = await Promise.resolve().then(() => require("./rollback
|
|
12240
|
+
const { rollbackStage } = await Promise.resolve().then(() => require("./rollback--ympG9ss.cjs")).then((n) => n.rollback_exports);
|
|
12290
12241
|
const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-8XngdSTo.cjs"));
|
|
12291
12242
|
const globalOptions = program.opts();
|
|
12292
12243
|
await rollbackStage({
|
|
@@ -12320,7 +12271,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
12320
12271
|
try {
|
|
12321
12272
|
const globalOptions = program.opts();
|
|
12322
12273
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12323
|
-
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-
|
|
12274
|
+
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-zneTMvnO.cjs"));
|
|
12324
12275
|
await deployGithubCommand(options);
|
|
12325
12276
|
} catch (error) {
|
|
12326
12277
|
exitWithError(error);
|
|
@@ -12429,6 +12380,15 @@ program.command("state:show").description("Show deployment state for a stage").r
|
|
|
12429
12380
|
exitWithError(error);
|
|
12430
12381
|
}
|
|
12431
12382
|
});
|
|
12383
|
+
program.command("state:history").description("Show who wrote a stage's deploy state, newest first, and what each app runs").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--json", "Output as JSON").action(async (options) => {
|
|
12384
|
+
try {
|
|
12385
|
+
const globalOptions = program.opts();
|
|
12386
|
+
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12387
|
+
await stateHistoryCommand(options);
|
|
12388
|
+
} catch (error) {
|
|
12389
|
+
exitWithError(error);
|
|
12390
|
+
}
|
|
12391
|
+
});
|
|
12432
12392
|
program.command("state:unlock").description("Release a stage deploy lock left behind by a run that crashed").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").action(async (options) => {
|
|
12433
12393
|
try {
|
|
12434
12394
|
const globalOptions = program.opts();
|
|
@@ -12464,7 +12424,6 @@ try {
|
|
|
12464
12424
|
program.parse();
|
|
12465
12425
|
//#endregion
|
|
12466
12426
|
exports.canPrompt = canPrompt;
|
|
12467
|
-
exports.deploysWithCompose = deploysWithCompose;
|
|
12468
12427
|
exports.formatError = formatError;
|
|
12469
12428
|
exports.generateFullstackCustomSecrets = generateFullstackCustomSecrets;
|
|
12470
12429
|
exports.prompt = prompt;
|