@geekmidas/cli 10.0.0-alpha.60 → 10.0.0-alpha.61
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/{HostingerProvider-BTZd2u0f.cjs → HostingerProvider-CgDaD8VR.cjs} +2 -2
- package/dist/{HostingerProvider-BTZd2u0f.cjs.map → HostingerProvider-CgDaD8VR.cjs.map} +1 -1
- package/dist/{HostingerProvider-DgzKa_Tj.mjs → HostingerProvider-DI_Pr2VE.mjs} +2 -2
- package/dist/{HostingerProvider-DgzKa_Tj.mjs.map → HostingerProvider-DI_Pr2VE.mjs.map} +1 -1
- package/dist/{LegacyStateStore-CToa2hga.mjs → LegacyStateStore-C7vFAxbu.mjs} +2 -2
- package/dist/{LegacyStateStore-CToa2hga.mjs.map → LegacyStateStore-C7vFAxbu.mjs.map} +1 -1
- package/dist/{LegacyStateStore-CidlPT0N.cjs → LegacyStateStore-JbBVFp_2.cjs} +2 -2
- package/dist/{LegacyStateStore-CidlPT0N.cjs.map → LegacyStateStore-JbBVFp_2.cjs.map} +1 -1
- package/dist/{LocalStateStore-Dpuqka1N.cjs → LocalStateStore-DHj_-CQB.cjs} +2 -2
- package/dist/{LocalStateStore-Dpuqka1N.cjs.map → LocalStateStore-DHj_-CQB.cjs.map} +1 -1
- package/dist/{LocalStateStore-BFLiOocU.mjs → LocalStateStore-DfUwQsL8.mjs} +2 -2
- package/dist/{LocalStateStore-BFLiOocU.mjs.map → LocalStateStore-DfUwQsL8.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-BTuUumsV.cjs → OpenApiTsGenerator-BSrgw7B0.cjs} +31 -2
- package/dist/OpenApiTsGenerator-BSrgw7B0.cjs.map +1 -0
- package/dist/{OpenApiTsGenerator-CvVr1Ilz.mjs → OpenApiTsGenerator-q5B0z8Xg.mjs} +31 -2
- package/dist/OpenApiTsGenerator-q5B0z8Xg.mjs.map +1 -0
- package/dist/{S3StateStore-aaGkjcxO.mjs → S3StateStore-Dq6hHtzY.mjs} +2 -2
- package/dist/{S3StateStore-aaGkjcxO.mjs.map → S3StateStore-Dq6hHtzY.mjs.map} +1 -1
- package/dist/{S3StateStore-cnm813Xn.cjs → S3StateStore-xqnpUrzy.cjs} +2 -2
- package/dist/{S3StateStore-cnm813Xn.cjs.map → S3StateStore-xqnpUrzy.cjs.map} +1 -1
- package/dist/{SSMStateStore-DwaGprVX.cjs → SSMStateStore-5dBRwVlJ.cjs} +2 -2
- package/dist/{SSMStateStore-DwaGprVX.cjs.map → SSMStateStore-5dBRwVlJ.cjs.map} +1 -1
- package/dist/{SSMStateStore-BllaJKGo.mjs → SSMStateStore-SUmvAbLi.mjs} +2 -2
- package/dist/{SSMStateStore-BllaJKGo.mjs.map → SSMStateStore-SUmvAbLi.mjs.map} +1 -1
- package/dist/{bundler-DJVR4QlW.mjs → bundler-B5VsKW-_.mjs} +2 -2
- package/dist/{bundler-DJVR4QlW.mjs.map → bundler-B5VsKW-_.mjs.map} +1 -1
- package/dist/{bundler-CzXZPSBJ.cjs → bundler-DXATpO1T.cjs} +2 -2
- package/dist/{bundler-CzXZPSBJ.cjs.map → bundler-DXATpO1T.cjs.map} +1 -1
- package/dist/{cli-DzR1hpum.mjs → cli-DEA_J3Sa.mjs} +2 -2
- package/dist/{cli-DzR1hpum.mjs.map → cli-DEA_J3Sa.mjs.map} +1 -1
- package/dist/{cli-D_qTl20Z.cjs → cli-DQdrVkj2.cjs} +2 -2
- package/dist/{cli-D_qTl20Z.cjs.map → cli-DQdrVkj2.cjs.map} +1 -1
- package/dist/deploy/public.cjs +2 -2
- package/dist/deploy/public.mjs +2 -2
- package/dist/{deploy-D6Q09OkA.mjs → deploy-BJcLmVTc.mjs} +6 -153
- package/dist/deploy-BJcLmVTc.mjs.map +1 -0
- package/dist/{deploy-0fBVeWO-.cjs → deploy-BbJdgQ2b.cjs} +17 -170
- package/dist/deploy-BbJdgQ2b.cjs.map +1 -0
- package/dist/{encryption-aDA2AzVx.mjs → encryption-DaA9gRXr.mjs} +2 -2
- package/dist/{encryption-aDA2AzVx.mjs.map → encryption-DaA9gRXr.mjs.map} +1 -1
- package/dist/{encryption-CML4UaPi.cjs → encryption-ojzUo7-z.cjs} +2 -2
- package/dist/{encryption-CML4UaPi.cjs.map → encryption-ojzUo7-z.cjs.map} +1 -1
- package/dist/index.cjs +1720 -139
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1712 -147
- package/dist/index.mjs.map +1 -1
- package/dist/migrate-5_J5JySj.mjs +265 -0
- package/dist/migrate-5_J5JySj.mjs.map +1 -0
- package/dist/migrate-BScRpCEx.cjs +270 -0
- package/dist/migrate-BScRpCEx.cjs.map +1 -0
- package/dist/openapi.cjs +1 -1
- package/dist/openapi.mjs +1 -1
- package/dist/{ready-CIHpnUc5.mjs → ready-DQIy21W5.mjs} +2 -2
- package/dist/{ready-CIHpnUc5.mjs.map → ready-DQIy21W5.mjs.map} +1 -1
- package/dist/{ready-CCLIAkwR.cjs → ready-XlNx-Gbo.cjs} +2 -2
- package/dist/{ready-CCLIAkwR.cjs.map → ready-XlNx-Gbo.cjs.map} +1 -1
- package/dist/{sniffer-DIv12ncU.cjs → sniffer-CQmJnNJM.cjs} +2569 -2161
- package/dist/sniffer-CQmJnNJM.cjs.map +1 -0
- package/dist/{sniffer-BM8fpCas.mjs → sniffer-bdleks5l.mjs} +2416 -2176
- package/dist/sniffer-bdleks5l.mjs.map +1 -0
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +1 -1
- package/package.json +13 -13
- package/dist/OpenApiTsGenerator-BTuUumsV.cjs.map +0 -1
- package/dist/OpenApiTsGenerator-CvVr1Ilz.mjs.map +0 -1
- package/dist/deploy-0fBVeWO-.cjs.map +0 -1
- package/dist/deploy-D6Q09OkA.mjs.map +0 -1
- package/dist/migrate-BTqIflwc.cjs +0 -743
- package/dist/migrate-BTqIflwc.cjs.map +0 -1
- package/dist/migrate-B_6KofUo.mjs +0 -736
- package/dist/migrate-B_6KofUo.mjs.map +0 -1
- package/dist/sniffer-BM8fpCas.mjs.map +0 -1
- package/dist/sniffer-DIv12ncU.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_sniffer = require("./sniffer-
|
|
1
|
+
const require_sniffer = require("./sniffer-CQmJnNJM.cjs");
|
|
2
2
|
const require_home = require("./home-DOzBaWaL.cjs");
|
|
3
3
|
const require_discover = require("./discover-Bc-4eA_p.cjs");
|
|
4
4
|
const require_config = require("./config-DXnkCEq0.cjs");
|
|
@@ -10,7 +10,6 @@ let node_fs_promises = require("node:fs/promises");
|
|
|
10
10
|
let node_os = require("node:os");
|
|
11
11
|
let _geekmidas_manifest = require("@geekmidas/manifest");
|
|
12
12
|
let node_crypto = require("node:crypto");
|
|
13
|
-
let _geekmidas_constructs_encryption = require("@geekmidas/constructs/encryption");
|
|
14
13
|
let _geekmidas_db_pg_roles = require("@geekmidas/db/pg/roles");
|
|
15
14
|
let pg = require("pg");
|
|
16
15
|
let _geekmidas_cache_postgres = require("@geekmidas/cache/postgres");
|
|
@@ -855,108 +854,6 @@ function surfaceAddresses(manifest, appUrls) {
|
|
|
855
854
|
return addresses;
|
|
856
855
|
}
|
|
857
856
|
//#endregion
|
|
858
|
-
//#region src/deploy/state.ts
|
|
859
|
-
/**
|
|
860
|
-
* Deploy state management for Dokploy deployments
|
|
861
|
-
*
|
|
862
|
-
* Stores resource IDs (applications, services) per stage to avoid
|
|
863
|
-
* re-creating resources on subsequent deploys.
|
|
864
|
-
*/
|
|
865
|
-
/**
|
|
866
|
-
* Create a new empty state for a stage
|
|
867
|
-
*/
|
|
868
|
-
function createEmptyState(stage, projectId, environmentId) {
|
|
869
|
-
return {
|
|
870
|
-
provider: "dokploy",
|
|
871
|
-
stage,
|
|
872
|
-
projectId,
|
|
873
|
-
environmentId,
|
|
874
|
-
applications: {},
|
|
875
|
-
services: {},
|
|
876
|
-
lastDeployedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
877
|
-
};
|
|
878
|
-
}
|
|
879
|
-
/**
|
|
880
|
-
* Set application ID in state (mutates state)
|
|
881
|
-
*/
|
|
882
|
-
function setApplicationId(state, appName, applicationId) {
|
|
883
|
-
state.applications[appName] = applicationId;
|
|
884
|
-
}
|
|
885
|
-
/**
|
|
886
|
-
* Record the image an app was deployed with (mutates state)
|
|
887
|
-
*/
|
|
888
|
-
function setDeployedImage(state, appName, image) {
|
|
889
|
-
state.images = {
|
|
890
|
-
...state.images,
|
|
891
|
-
[appName]: image
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
/**
|
|
895
|
-
* Get a generated secret for an app
|
|
896
|
-
*/
|
|
897
|
-
function getGeneratedSecret(state, appName, secretName) {
|
|
898
|
-
return state?.generatedSecrets?.[appName]?.[secretName];
|
|
899
|
-
}
|
|
900
|
-
/**
|
|
901
|
-
* Set a generated secret for an app (mutates state)
|
|
902
|
-
*/
|
|
903
|
-
function setGeneratedSecret(state, appName, secretName, value) {
|
|
904
|
-
if (!state.generatedSecrets) state.generatedSecrets = {};
|
|
905
|
-
if (!state.generatedSecrets[appName]) state.generatedSecrets[appName] = {};
|
|
906
|
-
state.generatedSecrets[appName][secretName] = value;
|
|
907
|
-
}
|
|
908
|
-
/**
|
|
909
|
-
* Set DNS verification record for a hostname (mutates state)
|
|
910
|
-
*/
|
|
911
|
-
function setDnsVerification(state, hostname, serverIp) {
|
|
912
|
-
if (!state.dnsVerified) state.dnsVerified = {};
|
|
913
|
-
state.dnsVerified[hostname] = {
|
|
914
|
-
serverIp,
|
|
915
|
-
verifiedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
916
|
-
};
|
|
917
|
-
}
|
|
918
|
-
/**
|
|
919
|
-
* Check if a hostname is already verified with the given IP
|
|
920
|
-
*/
|
|
921
|
-
function isDnsVerified(state, hostname, serverIp) {
|
|
922
|
-
return (state?.dnsVerified?.[hostname])?.serverIp === serverIp;
|
|
923
|
-
}
|
|
924
|
-
/**
|
|
925
|
-
* Get the key for a DNS record in state
|
|
926
|
-
*/
|
|
927
|
-
function getDnsRecordKey(name, type) {
|
|
928
|
-
return `${name}:${type}`;
|
|
929
|
-
}
|
|
930
|
-
/**
|
|
931
|
-
* Set a created DNS record in state (mutates state)
|
|
932
|
-
*/
|
|
933
|
-
function setDnsRecord(state, record) {
|
|
934
|
-
if (!state.dnsRecords) state.dnsRecords = {};
|
|
935
|
-
const key = getDnsRecordKey(record.name, record.type);
|
|
936
|
-
state.dnsRecords[key] = {
|
|
937
|
-
...record,
|
|
938
|
-
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
939
|
-
};
|
|
940
|
-
}
|
|
941
|
-
/**
|
|
942
|
-
* Get backup state from state
|
|
943
|
-
*/
|
|
944
|
-
function getBackupState(state) {
|
|
945
|
-
return state?.backups;
|
|
946
|
-
}
|
|
947
|
-
/**
|
|
948
|
-
* Set backup state (mutates state)
|
|
949
|
-
*/
|
|
950
|
-
function setBackupState(state, backupState) {
|
|
951
|
-
state.backups = backupState;
|
|
952
|
-
}
|
|
953
|
-
/**
|
|
954
|
-
* Set postgres backup ID in state (mutates state)
|
|
955
|
-
*/
|
|
956
|
-
function setPostgresBackupId(state, backupId) {
|
|
957
|
-
if (state.backups) state.backups.postgresBackupId = backupId;
|
|
958
|
-
}
|
|
959
|
-
//#endregion
|
|
960
857
|
//#region src/deploy/dns/DnsProvider.ts
|
|
961
858
|
/**
|
|
962
859
|
* Check if value is a DnsProvider implementation.
|
|
@@ -978,7 +875,7 @@ async function createDnsProvider(options) {
|
|
|
978
875
|
if (isDnsProvider(config.provider)) return config.provider;
|
|
979
876
|
const provider = config.provider;
|
|
980
877
|
if (provider === "hostinger") {
|
|
981
|
-
const { HostingerProvider } = await Promise.resolve().then(() => require("./HostingerProvider-
|
|
878
|
+
const { HostingerProvider } = await Promise.resolve().then(() => require("./HostingerProvider-CgDaD8VR.cjs"));
|
|
982
879
|
return new HostingerProvider();
|
|
983
880
|
}
|
|
984
881
|
if (provider === "route53") {
|
|
@@ -1248,7 +1145,7 @@ async function orchestrateDns(appHostnames, dnsConfig, dokployEndpoint, state) {
|
|
|
1248
1145
|
hasFailures = true;
|
|
1249
1146
|
}
|
|
1250
1147
|
if (state) {
|
|
1251
|
-
for (const record of domainRecords) if (record.created || record.existed) setDnsRecord(state, {
|
|
1148
|
+
for (const record of domainRecords) if (record.created || record.existed) require_sniffer.setDnsRecord(state, {
|
|
1252
1149
|
domain: rootDomain,
|
|
1253
1150
|
name: record.subdomain,
|
|
1254
1151
|
type: record.type,
|
|
@@ -1283,7 +1180,7 @@ async function verifyDnsRecords(appHostnames, serverIp, state) {
|
|
|
1283
1180
|
const results = [];
|
|
1284
1181
|
logger$3.log("\n🔍 Verifying DNS records...");
|
|
1285
1182
|
for (const [appName, hostname] of appHostnames) {
|
|
1286
|
-
if (isDnsVerified(state, hostname, serverIp)) {
|
|
1183
|
+
if (require_sniffer.isDnsVerified(state, hostname, serverIp)) {
|
|
1287
1184
|
logger$3.log(` ✓ ${hostname} (previously verified)`);
|
|
1288
1185
|
results.push({
|
|
1289
1186
|
hostname,
|
|
@@ -1297,7 +1194,7 @@ async function verifyDnsRecords(appHostnames, serverIp, state) {
|
|
|
1297
1194
|
try {
|
|
1298
1195
|
const resolvedIp = await resolveHostnameToIp(hostname);
|
|
1299
1196
|
if (resolvedIp === serverIp) {
|
|
1300
|
-
setDnsVerification(state, hostname, serverIp);
|
|
1197
|
+
require_sniffer.setDnsVerification(state, hostname, serverIp);
|
|
1301
1198
|
logger$3.log(` ✓ ${hostname} → ${resolvedIp}`);
|
|
1302
1199
|
results.push({
|
|
1303
1200
|
hostname,
|
|
@@ -1531,10 +1428,10 @@ function generateSecret() {
|
|
|
1531
1428
|
* Otherwise generates a new one and stores it.
|
|
1532
1429
|
*/
|
|
1533
1430
|
function getOrGenerateSecret(state, appName, secretName) {
|
|
1534
|
-
const existing = getGeneratedSecret(state, appName, secretName);
|
|
1431
|
+
const existing = require_sniffer.getGeneratedSecret(state, appName, secretName);
|
|
1535
1432
|
if (existing) return existing;
|
|
1536
1433
|
const generated = generateSecret();
|
|
1537
|
-
setGeneratedSecret(state, appName, secretName, generated);
|
|
1434
|
+
require_sniffer.setGeneratedSecret(state, appName, secretName, generated);
|
|
1538
1435
|
return generated;
|
|
1539
1436
|
}
|
|
1540
1437
|
/**
|
|
@@ -1597,57 +1494,6 @@ function validateEnvVars(requiredVars, context) {
|
|
|
1597
1494
|
};
|
|
1598
1495
|
}
|
|
1599
1496
|
//#endregion
|
|
1600
|
-
//#region src/deploy/generated.ts
|
|
1601
|
-
/**
|
|
1602
|
-
* The values a deployed stage generates once and keeps: what nothing can
|
|
1603
|
-
* provision and nobody else issues.
|
|
1604
|
-
*
|
|
1605
|
-
* - **A seed**, which salts every password a deploy derives — a database's
|
|
1606
|
-
* master and roles, a bucket's root user. Derived from repo facts alone
|
|
1607
|
-
* (project, stage, construct id), those passwords were computable by anyone
|
|
1608
|
-
* who could read the repo.
|
|
1609
|
-
* - **Each `secret` construct's value** — an auth server's signing secret —
|
|
1610
|
-
* random, rather than derived.
|
|
1611
|
-
* - **Each `encryption` construct's keyring** — one random key and an index
|
|
1612
|
-
* key. Later keys are added by `gkm encryption:rotate`, never by a deploy.
|
|
1613
|
-
*
|
|
1614
|
-
* Both are generated on the first deploy that needs them and written to the
|
|
1615
|
-
* stage's store, so every later deploy reads the same values: sessions survive
|
|
1616
|
-
* a redeploy, and a role's password does not move. A value set by hand with
|
|
1617
|
-
* `gkm secrets:set` is kept, never replaced.
|
|
1618
|
-
*/
|
|
1619
|
-
/**
|
|
1620
|
-
* The stage's secrets with its seed and every declared `secret`'s value
|
|
1621
|
-
* present, generating what is missing. Pure: the caller writes the result
|
|
1622
|
-
* back to the stage's store when `generated` is not empty.
|
|
1623
|
-
*/
|
|
1624
|
-
function withGeneratedSecrets(secrets, manifest) {
|
|
1625
|
-
const generated = [];
|
|
1626
|
-
const custom = { ...secrets.custom };
|
|
1627
|
-
for (const declaration of Object.values(manifest)) {
|
|
1628
|
-
if (declaration?.kind !== "secret" && declaration?.kind !== "encryption") continue;
|
|
1629
|
-
const key = declaration.provides?.[0];
|
|
1630
|
-
if (!key || custom[key]) continue;
|
|
1631
|
-
custom[key] = declaration.kind === "encryption" ? (0, _geekmidas_constructs_encryption.generateKeyring)() : random();
|
|
1632
|
-
generated.push(key);
|
|
1633
|
-
}
|
|
1634
|
-
const seed = secrets.seed ?? random();
|
|
1635
|
-
if (!secrets.seed) generated.push("seed");
|
|
1636
|
-
return {
|
|
1637
|
-
secrets: generated.length ? {
|
|
1638
|
-
...secrets,
|
|
1639
|
-
seed,
|
|
1640
|
-
custom,
|
|
1641
|
-
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
1642
|
-
} : secrets,
|
|
1643
|
-
generated
|
|
1644
|
-
};
|
|
1645
|
-
}
|
|
1646
|
-
/** 256 bits, URL-safe. */
|
|
1647
|
-
function random() {
|
|
1648
|
-
return (0, node_crypto.randomBytes)(32).toString("base64url");
|
|
1649
|
-
}
|
|
1650
|
-
//#endregion
|
|
1651
1497
|
//#region src/deploy/journal.ts
|
|
1652
1498
|
var DeployJournal = class DeployJournal {
|
|
1653
1499
|
store;
|
|
@@ -2551,7 +2397,7 @@ async function preflight({ workspace, manifest, stage, ctx }) {
|
|
|
2551
2397
|
const secretsStore = await require_store.secretsStoreFor(workspace, stage, { ...ctx.home ? { home: ctx.home } : {} });
|
|
2552
2398
|
const stored = await secretsStore.read(stage);
|
|
2553
2399
|
if (!stored) logger.log(` ⚠️ No secrets found for stage "${stage}"; starting them`);
|
|
2554
|
-
const { secrets: stageSecrets, generated } = withGeneratedSecrets(stored ?? require_storage.initStageSecrets(stage), manifest);
|
|
2400
|
+
const { secrets: stageSecrets, generated } = require_sniffer.withGeneratedSecrets(stored ?? require_storage.initStageSecrets(stage), manifest);
|
|
2555
2401
|
if (generated.length > 0) {
|
|
2556
2402
|
if (ctx.dryRun) logger.log(` 🔑 Would generate for "${stage}" (${secretsStore.name}): ${generated.join(", ")}`);
|
|
2557
2403
|
else {
|
|
@@ -2596,7 +2442,7 @@ async function deployLocked(run) {
|
|
|
2596
2442
|
});
|
|
2597
2443
|
const { api, endpoint } = await dokployApi(workspace, ctx);
|
|
2598
2444
|
logger.log("\n📋 Loading deploy state...");
|
|
2599
|
-
const journal = await DeployJournal.open(store, stage, () => createEmptyState(stage, "", ""));
|
|
2445
|
+
const journal = await DeployJournal.open(store, stage, () => require_sniffer.createEmptyState(stage, "", ""));
|
|
2600
2446
|
const state = journal.state;
|
|
2601
2447
|
if (journal.existed) logger.log(` Found existing state for stage "${stage}"`);
|
|
2602
2448
|
else logger.log(` Creating new state for stage "${stage}"`);
|
|
@@ -2728,15 +2574,15 @@ async function deployLocked(run) {
|
|
|
2728
2574
|
projectName: identity.scope,
|
|
2729
2575
|
stage,
|
|
2730
2576
|
config: workspace.deploy.backups,
|
|
2731
|
-
existingState: getBackupState(state),
|
|
2577
|
+
existingState: require_sniffer.getBackupState(state),
|
|
2732
2578
|
logger
|
|
2733
2579
|
});
|
|
2734
|
-
setBackupState(state, backupState);
|
|
2580
|
+
require_sniffer.setBackupState(state, backupState);
|
|
2735
2581
|
if (!backupState.postgresBackupId) {
|
|
2736
2582
|
const backupSchedule = workspace.deploy.backups.schedule ?? "0 2 * * *";
|
|
2737
2583
|
const backupRetention = workspace.deploy.backups.retention ?? 30;
|
|
2738
2584
|
logger.log(" Creating postgres backup schedule...");
|
|
2739
|
-
|
|
2585
|
+
const backup = await api.createPostgresBackup({
|
|
2740
2586
|
schedule: backupSchedule,
|
|
2741
2587
|
prefix: `${stage}/postgres`,
|
|
2742
2588
|
destinationId: backupState.destinationId,
|
|
@@ -2744,7 +2590,8 @@ async function deployLocked(run) {
|
|
|
2744
2590
|
postgresId: backupCluster.postgresId,
|
|
2745
2591
|
enabled: true,
|
|
2746
2592
|
keepLatestCount: backupRetention
|
|
2747
|
-
})
|
|
2593
|
+
});
|
|
2594
|
+
require_sniffer.setPostgresBackupId(state, backup.backupId);
|
|
2748
2595
|
logger.log(` ✓ Postgres backup schedule created (${backupSchedule})`);
|
|
2749
2596
|
} else logger.log(" ✓ Using existing postgres backup schedule");
|
|
2750
2597
|
}
|
|
@@ -2792,7 +2639,7 @@ async function deployLocked(run) {
|
|
|
2792
2639
|
};
|
|
2793
2640
|
/** An image is pushed: worth keeping even if what follows fails. */
|
|
2794
2641
|
const built = async (appName, image, ref) => {
|
|
2795
|
-
setDeployedImage(state, appName, {
|
|
2642
|
+
require_sniffer.setDeployedImage(state, appName, {
|
|
2796
2643
|
ref: image.imageRef ?? ref,
|
|
2797
2644
|
...image.digest ? { digest: image.digest } : {}
|
|
2798
2645
|
});
|
|
@@ -3071,7 +2918,7 @@ async function ensureApplication(api, journal, appName, dokployAppName, projectI
|
|
|
3071
2918
|
action: via === "created" ? "create" : "reuse",
|
|
3072
2919
|
id: resource.applicationId
|
|
3073
2920
|
}, via);
|
|
3074
|
-
setApplicationId(journal.state, appName, resource.applicationId);
|
|
2921
|
+
require_sniffer.setApplicationId(journal.state, appName, resource.applicationId);
|
|
3075
2922
|
return resource;
|
|
3076
2923
|
}
|
|
3077
2924
|
/**
|
|
@@ -3515,4 +3362,4 @@ Object.defineProperty(exports, "terminalCredentials", {
|
|
|
3515
3362
|
}
|
|
3516
3363
|
});
|
|
3517
3364
|
|
|
3518
|
-
//# sourceMappingURL=deploy-
|
|
3365
|
+
//# sourceMappingURL=deploy-BbJdgQ2b.cjs.map
|