@geekmidas/cli 1.10.9 → 1.10.10
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/CHANGELOG.md +6 -0
- package/dist/{fullstack-secrets-CtWIYuI0.cjs → fullstack-secrets-BC9t9wWB.cjs} +13 -1
- package/dist/{fullstack-secrets-CtWIYuI0.cjs.map → fullstack-secrets-BC9t9wWB.cjs.map} +1 -1
- package/dist/{fullstack-secrets-C2lbdbLZ.mjs → fullstack-secrets-DmUOfLeX.mjs} +2 -2
- package/dist/{fullstack-secrets-C2lbdbLZ.mjs.map → fullstack-secrets-DmUOfLeX.mjs.map} +1 -1
- package/dist/index.cjs +53 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +53 -17
- package/dist/index.mjs.map +1 -1
- package/dist/{reconcile-D6u4HSg8.cjs → reconcile-BZ8j_-0z.cjs} +2 -2
- package/dist/{reconcile-D6u4HSg8.cjs.map → reconcile-BZ8j_-0z.cjs.map} +1 -1
- package/dist/{reconcile-BnM6FA6g.mjs → reconcile-C0dsg-Gq.mjs} +2 -2
- package/dist/{reconcile-BnM6FA6g.mjs.map → reconcile-C0dsg-Gq.mjs.map} +1 -1
- package/package.json +5 -5
- package/src/setup/__tests__/reconcile-secrets.spec.ts +59 -0
- package/src/setup/index.ts +51 -16
package/dist/index.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { getKeyPath, maskPassword, readStageSecrets, secretsExist, setCustomSecr
|
|
|
8
8
|
import { DokployApi } from "./dokploy-api-2ldYoN3i.mjs";
|
|
9
9
|
import { encryptSecrets } from "./encryption-BOH5M-f-.mjs";
|
|
10
10
|
import { CachedStateProvider } from "./CachedStateProvider-BDq5WqSy.mjs";
|
|
11
|
-
import { createStageSecrets, generateDbPassword, generateDbUrl, generateFullstackCustomSecrets, rotateServicePassword, writeDockerEnvFromSecrets } from "./fullstack-secrets-
|
|
11
|
+
import { createStageSecrets, generateConnectionUrls, generateDbPassword, generateDbUrl, generateFullstackCustomSecrets, generateServiceCredentials, rotateServicePassword, writeDockerEnvFromSecrets } from "./fullstack-secrets-DmUOfLeX.mjs";
|
|
12
12
|
import { generateReactQueryCommand } from "./openapi-react-query-C4UdILaI.mjs";
|
|
13
13
|
import { isSSMConfigured, pullSecrets, pushSecrets } from "./sync-CzXruMzP.mjs";
|
|
14
14
|
import { createRequire } from "node:module";
|
|
@@ -35,7 +35,7 @@ import prompts from "prompts";
|
|
|
35
35
|
|
|
36
36
|
//#region package.json
|
|
37
37
|
var name = "@geekmidas/cli";
|
|
38
|
-
var version = "1.10.
|
|
38
|
+
var version = "1.10.9";
|
|
39
39
|
var description = "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs";
|
|
40
40
|
var private$1 = false;
|
|
41
41
|
var type = "module";
|
|
@@ -11380,20 +11380,56 @@ async function resolveSecrets(stage, workspace, options) {
|
|
|
11380
11380
|
* @internal Exported for testing
|
|
11381
11381
|
*/
|
|
11382
11382
|
function reconcileSecrets(secrets, workspace) {
|
|
11383
|
+
let changed = false;
|
|
11384
|
+
let result = { ...secrets };
|
|
11385
|
+
const serviceMap = [
|
|
11386
|
+
{
|
|
11387
|
+
key: "db",
|
|
11388
|
+
name: "postgres"
|
|
11389
|
+
},
|
|
11390
|
+
{
|
|
11391
|
+
key: "cache",
|
|
11392
|
+
name: "redis"
|
|
11393
|
+
},
|
|
11394
|
+
{
|
|
11395
|
+
key: "storage",
|
|
11396
|
+
name: "minio"
|
|
11397
|
+
}
|
|
11398
|
+
];
|
|
11399
|
+
for (const { key, name: name$1 } of serviceMap) if (workspace.services[key] && !result.services[name$1]) {
|
|
11400
|
+
const creds = generateServiceCredentials(name$1);
|
|
11401
|
+
result = {
|
|
11402
|
+
...result,
|
|
11403
|
+
services: {
|
|
11404
|
+
...result.services,
|
|
11405
|
+
[name$1]: creds
|
|
11406
|
+
}
|
|
11407
|
+
};
|
|
11408
|
+
result.urls = generateConnectionUrls(result.services);
|
|
11409
|
+
logger$1.log(` 🔄 Adding missing service credentials: ${name$1}`);
|
|
11410
|
+
changed = true;
|
|
11411
|
+
}
|
|
11383
11412
|
const isMultiApp = Object.keys(workspace.apps).length > 1;
|
|
11384
|
-
if (
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11413
|
+
if (isMultiApp) {
|
|
11414
|
+
const expected = generateFullstackCustomSecrets(workspace);
|
|
11415
|
+
const missing = {};
|
|
11416
|
+
for (const [key, value] of Object.entries(expected)) if (!(key in result.custom)) missing[key] = value;
|
|
11417
|
+
if (Object.keys(missing).length > 0) {
|
|
11418
|
+
logger$1.log(` 🔄 Adding missing secrets: ${Object.keys(missing).join(", ")}`);
|
|
11419
|
+
result = {
|
|
11420
|
+
...result,
|
|
11421
|
+
custom: {
|
|
11422
|
+
...result.custom,
|
|
11423
|
+
...missing
|
|
11424
|
+
}
|
|
11425
|
+
};
|
|
11426
|
+
changed = true;
|
|
11396
11427
|
}
|
|
11428
|
+
}
|
|
11429
|
+
if (!changed) return null;
|
|
11430
|
+
return {
|
|
11431
|
+
...result,
|
|
11432
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
11397
11433
|
};
|
|
11398
11434
|
}
|
|
11399
11435
|
/**
|
|
@@ -11948,7 +11984,7 @@ program.command("secrets:push").description("Push secrets to remote provider (SS
|
|
|
11948
11984
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11949
11985
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
11950
11986
|
const { pushSecrets: pushSecrets$1 } = await import("./sync-CyGe5f1I.mjs");
|
|
11951
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
11987
|
+
const { reconcileMissingSecrets } = await import("./reconcile-C0dsg-Gq.mjs");
|
|
11952
11988
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-C1FNm2EP.mjs");
|
|
11953
11989
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
11954
11990
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|
|
@@ -11974,7 +12010,7 @@ program.command("secrets:pull").description("Pull secrets from remote provider (
|
|
|
11974
12010
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
11975
12011
|
const { pullSecrets: pullSecrets$1 } = await import("./sync-CyGe5f1I.mjs");
|
|
11976
12012
|
const { writeStageSecrets: writeStageSecrets$1 } = await import("./storage-C1FNm2EP.mjs");
|
|
11977
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12013
|
+
const { reconcileMissingSecrets } = await import("./reconcile-C0dsg-Gq.mjs");
|
|
11978
12014
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
11979
12015
|
let secrets = await pullSecrets$1(options.stage, workspace);
|
|
11980
12016
|
if (!secrets) {
|
|
@@ -11999,7 +12035,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11999
12035
|
const globalOptions = program.opts();
|
|
12000
12036
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12001
12037
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12002
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12038
|
+
const { reconcileMissingSecrets } = await import("./reconcile-C0dsg-Gq.mjs");
|
|
12003
12039
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-C1FNm2EP.mjs");
|
|
12004
12040
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12005
12041
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|