@geekmidas/cli 10.0.0-alpha.83 → 10.0.0-alpha.84
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/{EndpointGenerator-DtnIGafh.mjs → EndpointGenerator-CVc6Oi1Y.mjs} +185 -82
- package/dist/EndpointGenerator-CVc6Oi1Y.mjs.map +1 -0
- package/dist/{EndpointGenerator-cKlnllIu.cjs → EndpointGenerator-CwLjBCFE.cjs} +203 -82
- package/dist/EndpointGenerator-CwLjBCFE.cjs.map +1 -0
- package/dist/{LegacyStateStore-DFO3aJgs.mjs → LegacyStateStore-CTsUFLNQ.mjs} +2 -2
- package/dist/{LegacyStateStore-DFO3aJgs.mjs.map → LegacyStateStore-CTsUFLNQ.mjs.map} +1 -1
- package/dist/{LegacyStateStore-iUWVxrXU.cjs → LegacyStateStore-EDT2TUSe.cjs} +2 -2
- package/dist/{LegacyStateStore-iUWVxrXU.cjs.map → LegacyStateStore-EDT2TUSe.cjs.map} +1 -1
- package/dist/{LocalStateStore-BsFHdSeA.cjs → LocalStateStore-CdpzTvPn.cjs} +2 -2
- package/dist/{LocalStateStore-BsFHdSeA.cjs.map → LocalStateStore-CdpzTvPn.cjs.map} +1 -1
- package/dist/{LocalStateStore-DIfuh0Z1.mjs → LocalStateStore-D1VfxRuK.mjs} +2 -2
- package/dist/{LocalStateStore-DIfuh0Z1.mjs.map → LocalStateStore-D1VfxRuK.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-CdUM6Hvv.cjs → OpenApiTsGenerator-B--HV-sW.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-CdUM6Hvv.cjs.map → OpenApiTsGenerator-B--HV-sW.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-ByRPMbBN.mjs → OpenApiTsGenerator-CkvsPdgg.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-ByRPMbBN.mjs.map → OpenApiTsGenerator-CkvsPdgg.mjs.map} +1 -1
- package/dist/{S3StateStore-ytvpIiv8.cjs → S3StateStore-BPM74zwv.cjs} +2 -2
- package/dist/{S3StateStore-ytvpIiv8.cjs.map → S3StateStore-BPM74zwv.cjs.map} +1 -1
- package/dist/{S3StateStore-DR2f78Dj.mjs → S3StateStore-DVZ1YuGJ.mjs} +2 -2
- package/dist/{S3StateStore-DR2f78Dj.mjs.map → S3StateStore-DVZ1YuGJ.mjs.map} +1 -1
- package/dist/{SSMStateStore-BZ3XL0Mr.mjs → SSMStateStore-DLvnGyyl.mjs} +2 -2
- package/dist/{SSMStateStore-BZ3XL0Mr.mjs.map → SSMStateStore-DLvnGyyl.mjs.map} +1 -1
- package/dist/{SSMStateStore-C1JruCD9.cjs → SSMStateStore-qerm5c36.cjs} +2 -2
- package/dist/{SSMStateStore-C1JruCD9.cjs.map → SSMStateStore-qerm5c36.cjs.map} +1 -1
- package/dist/{SubscriberGenerator-DQZeGkDW.mjs → SubscriberGenerator-BPqQf8fB.mjs} +2 -2
- package/dist/{SubscriberGenerator-DQZeGkDW.mjs.map → SubscriberGenerator-BPqQf8fB.mjs.map} +1 -1
- package/dist/{SubscriberGenerator-CYriX5BV.cjs → SubscriberGenerator-BVn7cQ-2.cjs} +2 -2
- package/dist/{SubscriberGenerator-CYriX5BV.cjs.map → SubscriberGenerator-BVn7cQ-2.cjs.map} +1 -1
- package/dist/{add-Bwddb4KD.cjs → add-BQ8v1ZII.cjs} +3 -3
- package/dist/{add-Bwddb4KD.cjs.map → add-BQ8v1ZII.cjs.map} +1 -1
- package/dist/{add-DkBEZ5_s.mjs → add-DbnzC7Kl.mjs} +3 -3
- package/dist/{add-DkBEZ5_s.mjs.map → add-DbnzC7Kl.mjs.map} +1 -1
- package/dist/{bundler-B8TGsunu.mjs → bundler-D4030Afw.mjs} +5 -5
- package/dist/{bundler-B8TGsunu.mjs.map → bundler-D4030Afw.mjs.map} +1 -1
- package/dist/{bundler-BkH1kPEX.cjs → bundler-DjrRffko.cjs} +5 -5
- package/dist/{bundler-BkH1kPEX.cjs.map → bundler-DjrRffko.cjs.map} +1 -1
- package/dist/{cli-DO7DQqCq.cjs → cli-D8YQAYUX.cjs} +3 -3
- package/dist/{cli-DO7DQqCq.cjs.map → cli-D8YQAYUX.cjs.map} +1 -1
- package/dist/{cli-BgDd4cZB.mjs → cli-DwTa9d_8.mjs} +3 -3
- package/dist/{cli-BgDd4cZB.mjs.map → cli-DwTa9d_8.mjs.map} +1 -1
- package/dist/{compose-BPJ9bUKp.mjs → compose-C5wz8mf9.mjs} +64 -24
- package/dist/compose-C5wz8mf9.mjs.map +1 -0
- package/dist/{compose-CGyxYe-h.cjs → compose-DqWh1TaO.cjs} +64 -24
- package/dist/compose-DqWh1TaO.cjs.map +1 -0
- package/dist/{config-DMdzdO5u.d.cts → config-BzIfP8a-.d.cts} +16 -3
- package/dist/config-BzIfP8a-.d.cts.map +1 -0
- package/dist/{config-BBFiH4qk.d.mts → config-DhdzmndX.d.mts} +16 -3
- package/dist/config-DhdzmndX.d.mts.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +3 -3
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -1
- package/dist/deploy/public.cjs +6 -6
- package/dist/deploy/public.d.cts +3 -3
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +3 -3
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +6 -6
- package/dist/{deploy-0XpZDYAr.mjs → deploy-BwIKGxWH.mjs} +14 -5
- package/dist/deploy-BwIKGxWH.mjs.map +1 -0
- package/dist/{deploy-BlZx6J5x.cjs → deploy-C8sWg81_.cjs} +14 -5
- package/dist/deploy-C8sWg81_.cjs.map +1 -0
- package/dist/{dokploy-rjXmkuwH.cjs → dokploy-BkRxJbfi.cjs} +2 -2
- package/dist/{dokploy-rjXmkuwH.cjs.map → dokploy-BkRxJbfi.cjs.map} +1 -1
- package/dist/{dokploy-Crh4uDmP.mjs → dokploy-ijjms1-h.mjs} +2 -2
- package/dist/{dokploy-Crh4uDmP.mjs.map → dokploy-ijjms1-h.mjs.map} +1 -1
- package/dist/{drivers-B4RP2B2O.mjs → drivers-DTZzxeIl.mjs} +2 -2
- package/dist/{drivers-B4RP2B2O.mjs.map → drivers-DTZzxeIl.mjs.map} +1 -1
- package/dist/{drivers-CJx76mcb.cjs → drivers-LYSdQDmd.cjs} +2 -2
- package/dist/{drivers-CJx76mcb.cjs.map → drivers-LYSdQDmd.cjs.map} +1 -1
- package/dist/{encryption-0eo9aY_H.mjs → encryption-BRcBAmjL.mjs} +3 -3
- package/dist/{encryption-0eo9aY_H.mjs.map → encryption-BRcBAmjL.mjs.map} +1 -1
- package/dist/{encryption-CxTfRx4h.cjs → encryption-g6PzwwfL.cjs} +3 -3
- package/dist/{encryption-CxTfRx4h.cjs.map → encryption-g6PzwwfL.cjs.map} +1 -1
- package/dist/{engine-DxWswfXe.mjs → engine-BP0CZ5fh.mjs} +33 -13
- package/dist/engine-BP0CZ5fh.mjs.map +1 -0
- package/dist/{engine-CMzSebbs.cjs → engine-DLEJsZ3i.cjs} +33 -13
- package/dist/engine-DLEJsZ3i.cjs.map +1 -0
- package/dist/{github-Dukt5cJe.cjs → github-B8YjwdLK.cjs} +3 -3
- package/dist/{github-Dukt5cJe.cjs.map → github-B8YjwdLK.cjs.map} +1 -1
- package/dist/{github-HOfOpFI_.mjs → github-Zs-dVJbR.mjs} +3 -3
- package/dist/{github-HOfOpFI_.mjs.map → github-Zs-dVJbR.mjs.map} +1 -1
- package/dist/{index-Wuqpf316.d.mts → index-D1ODeM9s.d.cts} +2 -2
- package/dist/{index-DFrbhRwg.d.cts.map → index-D1ODeM9s.d.cts.map} +1 -1
- package/dist/{index-DFrbhRwg.d.cts → index-f77HdqN5.d.mts} +2 -2
- package/dist/{index-Wuqpf316.d.mts.map → index-f77HdqN5.d.mts.map} +1 -1
- package/dist/index.cjs +173 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +173 -70
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-BgPWVnAZ.cjs → migrate-BfZN1S32.cjs} +3 -3
- package/dist/{migrate-BgPWVnAZ.cjs.map → migrate-BfZN1S32.cjs.map} +1 -1
- package/dist/{migrate-1dGEzuJ-.mjs → migrate-CdXcX0XR.mjs} +3 -3
- package/dist/{migrate-1dGEzuJ-.mjs.map → migrate-CdXcX0XR.mjs.map} +1 -1
- package/dist/{migrate-C14NNbFx.mjs → migrate-DOMU4uKe.mjs} +3 -3
- package/dist/{migrate-C14NNbFx.mjs.map → migrate-DOMU4uKe.mjs.map} +1 -1
- package/dist/{migrate-Bemd4tkz.cjs → migrate-FoL_mZIz.cjs} +3 -3
- package/dist/{migrate-Bemd4tkz.cjs.map → migrate-FoL_mZIz.cjs.map} +1 -1
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +3 -3
- package/dist/{ready-4kx2pAhm.cjs → ready-BpNbORRB.cjs} +5 -5
- package/dist/{ready-4kx2pAhm.cjs.map → ready-BpNbORRB.cjs.map} +1 -1
- package/dist/{ready-DhZbZtFw.mjs → ready-b6vm0-W-.mjs} +5 -5
- package/dist/{ready-DhZbZtFw.mjs.map → ready-b6vm0-W-.mjs.map} +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/{resolve-DCTcD823.cjs → resolve-T2I-5FcT.cjs} +3 -3
- package/dist/{resolve-DCTcD823.cjs.map → resolve-T2I-5FcT.cjs.map} +1 -1
- package/dist/{resolve-y1PkSZrF.mjs → resolve-r7PAs6ng.mjs} +3 -3
- package/dist/{resolve-y1PkSZrF.mjs.map → resolve-r7PAs6ng.mjs.map} +1 -1
- package/dist/{rollback-CwVhG_xa.mjs → rollback-BSdxnW3X.mjs} +5 -5
- package/dist/{rollback-CwVhG_xa.mjs.map → rollback-BSdxnW3X.mjs.map} +1 -1
- package/dist/{rollback-BVQFDjxr.cjs → rollback-CPSDjGse.cjs} +5 -5
- package/dist/{rollback-BVQFDjxr.cjs.map → rollback-CPSDjGse.cjs.map} +1 -1
- package/dist/{runtime-ekxfPNM-.d.mts → runtime-CNu2C2hB.d.mts} +2 -2
- package/dist/{runtime-D6A-C6zh.d.cts.map → runtime-CNu2C2hB.d.mts.map} +1 -1
- package/dist/{runtime-D6A-C6zh.d.cts → runtime-DMLgL26v.d.cts} +2 -2
- package/dist/{runtime-ekxfPNM-.d.mts.map → runtime-DMLgL26v.d.cts.map} +1 -1
- package/dist/{seeds-BoKQ74Od.mjs → seeds-BK8caVMm.mjs} +1707 -1612
- package/dist/seeds-BK8caVMm.mjs.map +1 -0
- package/dist/{seeds-Ccju3zGl.cjs → seeds-DQ0FG57Z.cjs} +2558 -2421
- package/dist/seeds-DQ0FG57Z.cjs.map +1 -0
- package/dist/{sniffer-6oYI-MpT.mjs → sniffer-CqE_KTTp.mjs} +6 -6
- package/dist/{sniffer-6oYI-MpT.mjs.map → sniffer-CqE_KTTp.mjs.map} +1 -1
- package/dist/{sniffer-DeyYI9Iv.cjs → sniffer-hSf5mRgV.cjs} +6 -6
- package/dist/{sniffer-DeyYI9Iv.cjs.map → sniffer-hSf5mRgV.cjs.map} +1 -1
- package/dist/{stages-CwrYVX9u.cjs → stages-CS1sjcRb.cjs} +2 -2
- package/dist/{stages-CwrYVX9u.cjs.map → stages-CS1sjcRb.cjs.map} +1 -1
- package/dist/{stages-CHF9RFog.mjs → stages-CSXt7N2b.mjs} +2 -2
- package/dist/{stages-CHF9RFog.mjs.map → stages-CSXt7N2b.mjs.map} +1 -1
- 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/{types-BzCavjGt.d.mts → types-BZn-8ssD.d.mts} +75 -21
- package/dist/types-BZn-8ssD.d.mts.map +1 -0
- package/dist/{types-DZtj9jeI.d.cts → types-DiZj6hqp.d.cts} +75 -21
- package/dist/types-DiZj6hqp.d.cts.map +1 -0
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +1 -1
- package/dist/workspace/index.cjs +1 -1
- package/dist/workspace/index.d.cts +3 -3
- package/dist/workspace/index.d.mts +3 -3
- package/dist/workspace/index.mjs +1 -1
- package/dist/{workspace-4i6Jwsoa.cjs → workspace-Bic_R3tz.cjs} +324 -98
- package/dist/workspace-Bic_R3tz.cjs.map +1 -0
- package/dist/{workspace-DD9mtPy8.mjs → workspace-Drz4jsvy.mjs} +305 -97
- package/dist/workspace-Drz4jsvy.mjs.map +1 -0
- package/package.json +15 -15
- package/dist/EndpointGenerator-DtnIGafh.mjs.map +0 -1
- package/dist/EndpointGenerator-cKlnllIu.cjs.map +0 -1
- package/dist/compose-BPJ9bUKp.mjs.map +0 -1
- package/dist/compose-CGyxYe-h.cjs.map +0 -1
- package/dist/config-BBFiH4qk.d.mts.map +0 -1
- package/dist/config-DMdzdO5u.d.cts.map +0 -1
- package/dist/deploy-0XpZDYAr.mjs.map +0 -1
- package/dist/deploy-BlZx6J5x.cjs.map +0 -1
- package/dist/engine-CMzSebbs.cjs.map +0 -1
- package/dist/engine-DxWswfXe.mjs.map +0 -1
- package/dist/seeds-BoKQ74Od.mjs.map +0 -1
- package/dist/seeds-Ccju3zGl.cjs.map +0 -1
- package/dist/types-BzCavjGt.d.mts.map +0 -1
- package/dist/types-DZtj9jeI.d.cts.map +0 -1
- package/dist/workspace-4i6Jwsoa.cjs.map +0 -1
- package/dist/workspace-DD9mtPy8.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -4,22 +4,22 @@ import { r as DEFAULT_TIMEOUT_MS, t as CommandFailed } from "./run-BJLIerMM.mjs"
|
|
|
4
4
|
import { c as getDokployCredentials, f as removeDokployCredentials, i as LocalSandbox, l as getDokployRegistryId, m as storeHostingerToken, p as storeDokployCredentials, s as getCredentialsPath, u as getDokployToken } from "./credentials-pAtB70k3.mjs";
|
|
5
5
|
import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BPelzeGW.mjs";
|
|
6
6
|
import { t as appKey } from "./derive-B4vDpzgP.mjs";
|
|
7
|
-
import { M as deployedProblems, N as stageProblems, O as InvalidStages,
|
|
7
|
+
import { I as stageSampleRate, M as deployedProblems, N as stageProblems, O as InvalidStages, c as getAppBuildOrder, k as TEST_STAGE, l as getAppGkmConfig, r as allConstructGlobs } from "./workspace-Drz4jsvy.mjs";
|
|
8
8
|
import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { $t as describeServices, An as maskPassword, B as WorkerGenerator, F as parseDevServices, Ft as cacheBackendFor, G as FAKE_ENV, H as workerEntryDir, Ht as TELEMETRY_CONTAINER, It as eventsBackendFor, J as derivedContainers, Jt as scopeTelemetryEnv, K as backendsOf$1, Kt as appTelemetry, Lt as providerOf, Mn as toEmbeddableSecrets, Nn as withCustomSecret, Nt as imageBuildCredentials, Pn as LOCAL_LOGS_EMAIL, Pt as isImageBuild, Sn as deployIdentity, U as QueueGenerator, V as workerBundleName, W as CronGenerator, Xt as telemetryOf, Y as reconcileWorkspace, Yt as surfaceClientTraced, _n as getKeyPath, an as createEntryWrapper, bt as pgClient, cn as loadEnvFiles, ct as LOCAL_CA_PATH, dn as prepareEntryCredentials, en as fakeKey, et as readLocalCredentials, gn as FileSecretsStore, gt as quoteIdentifier, in as createCredentialsPreload, ln as loadPortState, lt as forgetState, mt as postgresDatabaseNames, nn as portsOf, on as findAvailablePort, pn as secretsStoreFor, q as constructGlobs, rn as primaryPortKey, sn as isPortAvailable, un as loadSecretsForApp, x as dockerCommand, yn as projectKey, z as workerUnits, zt as CLUSTER_DATABASE } from "./seeds-BK8caVMm.mjs";
|
|
10
|
+
import { c as startTelemetryCode, l as telemetryFor, n as runtimeFor, o as mountRequestSpansCode, r as parseTelemetryFlag, s as routeTelemetry, t as EndpointGenerator, u as writeTelemetryModule } from "./EndpointGenerator-CVc6Oi1Y.mjs";
|
|
11
11
|
import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
|
|
12
|
-
import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-
|
|
12
|
+
import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-BPqQf8fB.mjs";
|
|
13
13
|
import { a as describeHolder, i as assignAppPorts, o as holderOf, r as appTag, s as withAppPorts, t as APP_TAG_ENV } from "./appPorts-C9z9Pzn9.mjs";
|
|
14
|
-
import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-
|
|
14
|
+
import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-DTZzxeIl.mjs";
|
|
15
15
|
import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
|
|
16
|
-
import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-
|
|
17
|
-
import { t as deploy$1 } from "./deploy-
|
|
18
|
-
import { a as stackOverrideFile, c as parseDigests, d as removeEdgeRoutes, f as EDGE_PROJECT, i as ComposePushNeedsBuild, l as pinnedRef, o as composeProject, p as dockerCompose, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as edgeDir } from "./compose-
|
|
16
|
+
import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-CqE_KTTp.mjs";
|
|
17
|
+
import { t as deploy$1 } from "./deploy-BwIKGxWH.mjs";
|
|
18
|
+
import { a as stackOverrideFile, c as parseDigests, d as removeEdgeRoutes, f as EDGE_PROJECT, i as ComposePushNeedsBuild, l as pinnedRef, o as composeProject, p as dockerCompose, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as edgeDir } from "./compose-C5wz8mf9.mjs";
|
|
19
19
|
import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
|
|
20
|
-
import { t as LocalStateStore } from "./LocalStateStore-
|
|
20
|
+
import { t as LocalStateStore } from "./LocalStateStore-D1VfxRuK.mjs";
|
|
21
21
|
import { a as getExecCommand, c as validateProjectName, i as findWorkspaceRoot, n as detectPackageManager$1, o as getInstallCommand, r as findWorkspacePackages, s as getRunCommand, t as checkDirectoryExists } from "./utils-D_fxUqvU.mjs";
|
|
22
|
-
import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-
|
|
22
|
+
import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-b6vm0-W-.mjs";
|
|
23
23
|
import { createRequire } from "node:module";
|
|
24
24
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
25
25
|
import { Command, Option } from "commander";
|
|
@@ -47,7 +47,7 @@ import crypto from "crypto";
|
|
|
47
47
|
import { Function } from "@geekmidas/constructs/functions";
|
|
48
48
|
import { Topic } from "@geekmidas/constructs/topic";
|
|
49
49
|
//#region package.json
|
|
50
|
-
var version = "10.0.0-alpha.
|
|
50
|
+
var version = "10.0.0-alpha.84";
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/prompt.ts
|
|
53
53
|
/**
|
|
@@ -130,7 +130,7 @@ const logger$8 = console;
|
|
|
130
130
|
* Validate Dokploy token by making a test API call
|
|
131
131
|
*/
|
|
132
132
|
async function validateDokployToken(endpoint, token) {
|
|
133
|
-
const { DokployApi } = await import("./sniffer-
|
|
133
|
+
const { DokployApi } = await import("./sniffer-CqE_KTTp.mjs").then((n) => n.c);
|
|
134
134
|
return new DokployApi({
|
|
135
135
|
baseUrl: endpoint,
|
|
136
136
|
token
|
|
@@ -530,10 +530,9 @@ var NoLocalCredentials = class extends Error {
|
|
|
530
530
|
/** The logins of every service the workspace last published. */
|
|
531
531
|
function devCredentials(workspace, credentials, ports) {
|
|
532
532
|
const containers = SIGNED_IN.filter((container) => portsOf(container).some((port) => ports[port.key] !== void 0));
|
|
533
|
-
const
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
via: `gkm compose --stage ${workspace.stages.local}`
|
|
533
|
+
const local = ports.openobserve !== void 0 ? {
|
|
534
|
+
url: `http://localhost:${ports.openobserve}`,
|
|
535
|
+
via: "gkm dev"
|
|
537
536
|
} : void 0;
|
|
538
537
|
return {
|
|
539
538
|
workspace: workspace.name,
|
|
@@ -753,6 +752,7 @@ async function collect(records) {
|
|
|
753
752
|
root,
|
|
754
753
|
stage: lead.workspace.stage,
|
|
755
754
|
manifest: group.find((r) => r.manifest)?.manifest ?? null,
|
|
755
|
+
telemetry: group.find((r) => r.telemetry)?.telemetry ?? null,
|
|
756
756
|
apps: discovered,
|
|
757
757
|
allowedOrigins: [...new Set(group.flatMap((r) => r.allowedOrigins))]
|
|
758
758
|
});
|
|
@@ -1097,6 +1097,7 @@ var DiscoverySession = class DiscoverySession {
|
|
|
1097
1097
|
workspace: options.workspace,
|
|
1098
1098
|
allowedOrigins: [...options.allowedOrigins ?? []],
|
|
1099
1099
|
...options.manifest ? { manifest: options.manifest } : {},
|
|
1100
|
+
...options.telemetry ? { telemetry: options.telemetry } : {},
|
|
1100
1101
|
apps: options.apps
|
|
1101
1102
|
};
|
|
1102
1103
|
writeRecord(registry, record);
|
|
@@ -1850,7 +1851,8 @@ async function devCommand(options) {
|
|
|
1850
1851
|
hooks,
|
|
1851
1852
|
skipBundle: true,
|
|
1852
1853
|
bustCache,
|
|
1853
|
-
serveEmpty: true
|
|
1854
|
+
serveEmpty: true,
|
|
1855
|
+
workspaceName: workspace.name
|
|
1854
1856
|
}));
|
|
1855
1857
|
logger$5.log(`🔨 Building ${workspaceAppName ?? "the app"}`);
|
|
1856
1858
|
const initial = await build();
|
|
@@ -1858,6 +1860,7 @@ async function devCommand(options) {
|
|
|
1858
1860
|
let secretsJsonPath;
|
|
1859
1861
|
let publicUrl;
|
|
1860
1862
|
let manifest;
|
|
1863
|
+
let telemetryUi;
|
|
1861
1864
|
const appSecrets = await loadSecretsForApp(workspace ? await secretsStoreFor(workspace, config.stages.local) : new FileSecretsStore(secretsRoot), config.stages.local);
|
|
1862
1865
|
if (workspace) {
|
|
1863
1866
|
const reconciled = await reconcileWorkspace(workspace, {
|
|
@@ -1869,10 +1872,25 @@ async function devCommand(options) {
|
|
|
1869
1872
|
logger$5.log("🐳 Services");
|
|
1870
1873
|
for (const line of describeServices(reconciled.services)) logger$5.log(line);
|
|
1871
1874
|
}
|
|
1875
|
+
if (!process.env["GKM_DISCOVERY_QUIET"] && reconciled.credentials && reconciled.ports) {
|
|
1876
|
+
const { services: logins } = devCredentials(workspace, reconciled.credentials, reconciled.ports);
|
|
1877
|
+
if (logins.length > 0) {
|
|
1878
|
+
logger$5.log("🔑 Logins (again any time: gkm dev:credentials)");
|
|
1879
|
+
for (const line of describeLogins(logins)) logger$5.log(line);
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1872
1882
|
Object.assign(appSecrets, reconciled.env);
|
|
1883
|
+
const scoped = scopeTelemetryEnv(appSecrets, {
|
|
1884
|
+
uses: reconciled.manifest !== void 0 && appTelemetry(reconciled.manifest, workspaceAppName) !== void 0,
|
|
1885
|
+
serviceName: workspaceAppName,
|
|
1886
|
+
telemetry: reconciled.env
|
|
1887
|
+
});
|
|
1888
|
+
for (const key of Object.keys(appSecrets)) if (!(key in scoped)) delete appSecrets[key];
|
|
1889
|
+
Object.assign(appSecrets, scoped);
|
|
1873
1890
|
const own = reconciled.plan.resources.find((r) => (r.kind === "rest-api" || r.kind === "site") && appKey(r.id) === workspaceAppName);
|
|
1874
1891
|
publicUrl = own ? reconciled.env[own.envKey] : void 0;
|
|
1875
1892
|
manifest = reconciled.manifest;
|
|
1893
|
+
telemetryUi = telemetryUiOf(reconciled.services);
|
|
1876
1894
|
}
|
|
1877
1895
|
if (Object.keys(appSecrets).length > 0) {
|
|
1878
1896
|
const secretsDir = join(secretsRoot, ".gkm");
|
|
@@ -1895,6 +1913,7 @@ async function devCommand(options) {
|
|
|
1895
1913
|
},
|
|
1896
1914
|
allowedOrigins: workspace.dev?.allowedOrigins ?? [],
|
|
1897
1915
|
...manifest ? { manifest } : {},
|
|
1916
|
+
...telemetryUi ? { telemetry: telemetryUi } : {},
|
|
1898
1917
|
apps: [{
|
|
1899
1918
|
name: workspaceAppName,
|
|
1900
1919
|
type: "backend",
|
|
@@ -2203,17 +2222,20 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2203
2222
|
logger$5.log("🔑 Logins (again any time: gkm dev:credentials)");
|
|
2204
2223
|
for (const line of describeLogins(logins)) logger$5.log(line);
|
|
2205
2224
|
}
|
|
2206
|
-
const secretsEnv = {
|
|
2225
|
+
const secretsEnv = scopeTelemetryEnv({
|
|
2207
2226
|
...rawSecrets,
|
|
2208
2227
|
...reconciled.env
|
|
2209
|
-
}
|
|
2228
|
+
}, {
|
|
2229
|
+
uses: false,
|
|
2230
|
+
serviceName: workspace.name
|
|
2231
|
+
});
|
|
2210
2232
|
const fakes = options.fake ? await serveFakes(reconciled.fakes, reconciled.ports) : [];
|
|
2211
2233
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2212
2234
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2213
2235
|
if (options.migrate || options.seed) {
|
|
2214
|
-
const { prepareDevDatabases } = await import("./migrate-
|
|
2236
|
+
const { prepareDevDatabases } = await import("./migrate-CdXcX0XR.mjs");
|
|
2215
2237
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2216
|
-
} else await import("./migrate-
|
|
2238
|
+
} else await import("./migrate-CdXcX0XR.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2217
2239
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2218
2240
|
});
|
|
2219
2241
|
const appUrls = {};
|
|
@@ -2268,6 +2290,7 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2268
2290
|
break;
|
|
2269
2291
|
}
|
|
2270
2292
|
}
|
|
2293
|
+
const workspaceTelemetry = telemetryUiOf(reconciled.services);
|
|
2271
2294
|
const discovery = await joinDiscovery({
|
|
2272
2295
|
role: "workspace",
|
|
2273
2296
|
port: discoveryPort(workspace.dev),
|
|
@@ -2278,6 +2301,7 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2278
2301
|
},
|
|
2279
2302
|
allowedOrigins: workspace.dev?.allowedOrigins ?? [],
|
|
2280
2303
|
...reconciled.manifest ? { manifest: reconciled.manifest } : {},
|
|
2304
|
+
...workspaceTelemetry ? { telemetry: workspaceTelemetry } : {},
|
|
2281
2305
|
apps: buildOrder.flatMap((name) => {
|
|
2282
2306
|
const app = workspace.apps[name];
|
|
2283
2307
|
if (!app) return [];
|
|
@@ -2475,6 +2499,18 @@ var EntryRunner = class {
|
|
|
2475
2499
|
}
|
|
2476
2500
|
};
|
|
2477
2501
|
/**
|
|
2502
|
+
* Where the local OpenObserve is, and who signs in to it, when reconcile runs
|
|
2503
|
+
* one — for the discovery endpoint, which is told no password.
|
|
2504
|
+
*/
|
|
2505
|
+
function telemetryUiOf(services) {
|
|
2506
|
+
const ui = services.find((s) => s.container === TELEMETRY_CONTAINER);
|
|
2507
|
+
if (!ui) return void 0;
|
|
2508
|
+
return {
|
|
2509
|
+
url: ui.address,
|
|
2510
|
+
email: LOCAL_LOGS_EMAIL
|
|
2511
|
+
};
|
|
2512
|
+
}
|
|
2513
|
+
/**
|
|
2478
2514
|
* Generate the content of the dev server entry file (server.ts).
|
|
2479
2515
|
* Uses dynamic import for createApp so Credentials are populated
|
|
2480
2516
|
* before any app modules evaluate.
|
|
@@ -2520,6 +2556,7 @@ if (existsSync(secretsPath)) {
|
|
|
2520
2556
|
injectWs(server);
|
|
2521
2557
|
console.log('🔌 Telescope real-time updates enabled');
|
|
2522
2558
|
}`;
|
|
2559
|
+
const telemetry = startTelemetryCode(["/health", "/ready"]);
|
|
2523
2560
|
if (selfServing) return `#!/usr/bin/env node
|
|
2524
2561
|
/**
|
|
2525
2562
|
* Development server entry point for a surface that serves itself
|
|
@@ -2529,8 +2566,17 @@ ${credentialsInjection}${parentWatch}const port = process.argv.includes('--port'
|
|
|
2529
2566
|
? Number.parseInt(process.argv[process.argv.indexOf('--port') + 1])
|
|
2530
2567
|
: 3000;
|
|
2531
2568
|
|
|
2569
|
+
${telemetry}
|
|
2532
2570
|
// Dynamic import so Credentials are populated before the surface evaluates
|
|
2533
|
-
const { app } = await import('${appImportPath}');
|
|
2571
|
+
const { app: surface } = await import('${appImportPath}');
|
|
2572
|
+
|
|
2573
|
+
// Behind the request spans when there are any, as the production server is.
|
|
2574
|
+
const { Hono } = await import('hono');
|
|
2575
|
+
const app = requestSpans ? new Hono() : surface;
|
|
2576
|
+
if (requestSpans) {
|
|
2577
|
+
${mountRequestSpansCode("app").trim().replace(/\n/g, "\n ")}
|
|
2578
|
+
app.route('/', surface);
|
|
2579
|
+
}
|
|
2534
2580
|
|
|
2535
2581
|
${serveCode.replace(/^ {4}/gm, "")}
|
|
2536
2582
|
`;
|
|
@@ -2543,11 +2589,16 @@ ${credentialsInjection}${parentWatch}const port = process.argv.includes('--port'
|
|
|
2543
2589
|
? Number.parseInt(process.argv[process.argv.indexOf('--port') + 1])
|
|
2544
2590
|
: 3000;
|
|
2545
2591
|
|
|
2592
|
+
${telemetry}
|
|
2546
2593
|
// Dynamic import so Credentials are populated before env.ts evaluates
|
|
2547
2594
|
const { createApp } = await import('${appImportPath}');
|
|
2548
2595
|
|
|
2596
|
+
// The span middleware first, as the production server mounts it.
|
|
2597
|
+
const { Hono } = await import('hono');
|
|
2598
|
+
const root = new Hono();
|
|
2599
|
+
${mountRequestSpansCode("root")}
|
|
2549
2600
|
// createApp is async to support optional WebSocket setup
|
|
2550
|
-
const { app, start } = await createApp(
|
|
2601
|
+
const { app, start } = await createApp(root, ${enableOpenApi});
|
|
2551
2602
|
|
|
2552
2603
|
// Start the server
|
|
2553
2604
|
start({
|
|
@@ -2989,6 +3040,7 @@ export default app;
|
|
|
2989
3040
|
*/
|
|
2990
3041
|
async function writeSurfaceServer(outputDir, options) {
|
|
2991
3042
|
await mkdir(outputDir, { recursive: true });
|
|
3043
|
+
await writeTelemetryModule(outputDir, options.telemetry);
|
|
2992
3044
|
const shutdown = options.gracefulShutdown ? `
|
|
2993
3045
|
// Stop taking requests, let in-flight ones finish, then close what the
|
|
2994
3046
|
// construct opened — bounded by GKM_SHUTDOWN_TIMEOUT_MS, under Docker's 10s
|
|
@@ -3015,12 +3067,14 @@ process.on('SIGINT', shutdown);
|
|
|
3015
3067
|
*/
|
|
3016
3068
|
import { serve } from '@hono/node-server';
|
|
3017
3069
|
import { Hono } from 'hono';
|
|
3018
|
-
${options.gracefulShutdown ? "import { runShutdownHooks } from '@geekmidas/constructs';\n" : ""}
|
|
3070
|
+
${options.gracefulShutdown ? "import { runShutdownHooks } from '@geekmidas/constructs';\n" : ""}
|
|
3071
|
+
${startTelemetryCode([options.healthCheck])}
|
|
3072
|
+
const { app: surface } = await import('./app.js');
|
|
3019
3073
|
|
|
3020
3074
|
const port = Number(process.env.PORT) || 3000;
|
|
3021
3075
|
|
|
3022
3076
|
const app = new Hono();
|
|
3023
|
-
// First, so a probe is answered without reaching the surface's own routes.
|
|
3077
|
+
${mountRequestSpansCode("app")}// First, so a probe is answered without reaching the surface's own routes.
|
|
3024
3078
|
app.get(${JSON.stringify(options.healthCheck)}, (c) =>
|
|
3025
3079
|
c.json({ status: 'ok', timestamp: Date.now() }),
|
|
3026
3080
|
);
|
|
@@ -3217,11 +3271,23 @@ async function buildApp(input) {
|
|
|
3217
3271
|
});
|
|
3218
3272
|
if (selfServing) {
|
|
3219
3273
|
await writeSurfaceEntry(join(appRoot, ".gkm", "server"), selfServing.source);
|
|
3274
|
+
const telemetry = telemetryFor({
|
|
3275
|
+
node: telemetryOf(declared, selfServing.id),
|
|
3276
|
+
appRoot,
|
|
3277
|
+
app: appNameOf(input),
|
|
3278
|
+
cwd: workspaceRoot,
|
|
3279
|
+
serviceName: selfServing.id,
|
|
3280
|
+
...input.workspaceName && { workspaceName: input.workspaceName }
|
|
3281
|
+
});
|
|
3282
|
+
await writeTelemetryModule(join(appRoot, ".gkm", "server"), telemetry);
|
|
3220
3283
|
logger$4.log(`Generated a server for ${selfServing.id} from its own declaration`);
|
|
3221
3284
|
if (production?.bundle && !input.skipBundle) {
|
|
3222
3285
|
const outputDir = join(appRoot, ".gkm", "server");
|
|
3223
|
-
const entryPoint = await writeSurfaceServer(outputDir,
|
|
3224
|
-
|
|
3286
|
+
const entryPoint = await writeSurfaceServer(outputDir, {
|
|
3287
|
+
...production,
|
|
3288
|
+
...telemetry ? { telemetry } : {}
|
|
3289
|
+
});
|
|
3290
|
+
const { bundleServer } = await import("./bundler-D4030Afw.mjs");
|
|
3225
3291
|
await bundleServer({
|
|
3226
3292
|
entryPoint,
|
|
3227
3293
|
outputDir: join(outputDir, "dist"),
|
|
@@ -3256,12 +3322,7 @@ async function buildApp(input) {
|
|
|
3256
3322
|
events: eventsBackends
|
|
3257
3323
|
}),
|
|
3258
3324
|
eventsBackends,
|
|
3259
|
-
markOptional: input.markOptional ?? false
|
|
3260
|
-
...production && { telemetry: telemetryFor({
|
|
3261
|
-
appRoot,
|
|
3262
|
-
surfaceId: derived.surface?.id,
|
|
3263
|
-
workspaceName: input.workspaceName
|
|
3264
|
-
}) }
|
|
3325
|
+
markOptional: input.markOptional ?? false
|
|
3265
3326
|
};
|
|
3266
3327
|
const endpointGenerator = new EndpointGenerator();
|
|
3267
3328
|
const functionGenerator = new FunctionGenerator();
|
|
@@ -3279,6 +3340,15 @@ async function buildApp(input) {
|
|
|
3279
3340
|
topicGenerator.load(code, appRoot, bustCache)
|
|
3280
3341
|
]);
|
|
3281
3342
|
const allEndpoints = servedBy(loadedEndpoints, derived.surface);
|
|
3343
|
+
if (target === "server") buildContext.telemetry = telemetryFor({
|
|
3344
|
+
node: derived.surface ? telemetryOf(declared, derived.surface.id) : void 0,
|
|
3345
|
+
appRoot,
|
|
3346
|
+
app: appNameOf(input),
|
|
3347
|
+
cwd: workspaceRoot,
|
|
3348
|
+
serviceName: derived.surface?.id ?? basename(appRoot),
|
|
3349
|
+
...input.workspaceName && { workspaceName: input.workspaceName },
|
|
3350
|
+
routes: routeTelemetry(allEndpoints.map(({ construct }) => construct))
|
|
3351
|
+
});
|
|
3282
3352
|
logger$4.log(`Found ${allEndpoints.length} endpoints`);
|
|
3283
3353
|
logger$4.log(`Found ${allFunctions.length} functions`);
|
|
3284
3354
|
logger$4.log(`Found ${allCrons.length} crons`);
|
|
@@ -3306,6 +3376,14 @@ async function buildApp(input) {
|
|
|
3306
3376
|
const appName = Object.entries(input.workspace.apps).find(([, app]) => resolve(input.workspace.root, app.path) === resolve(appRoot))?.[0];
|
|
3307
3377
|
await buildWorkers({
|
|
3308
3378
|
context: buildContext,
|
|
3379
|
+
telemetry: (workerId) => telemetryFor({
|
|
3380
|
+
node: telemetryOf(declared, workerId),
|
|
3381
|
+
appRoot,
|
|
3382
|
+
app: appNameOf(input),
|
|
3383
|
+
cwd: workspaceRoot,
|
|
3384
|
+
serviceName: workerId,
|
|
3385
|
+
...input.workspaceName && { workspaceName: input.workspaceName }
|
|
3386
|
+
}),
|
|
3309
3387
|
workers: workerUnits(input.workspace, declared, background).filter((unit) => unit.app === appName),
|
|
3310
3388
|
serverDir: join(appRoot, ".gkm", "server"),
|
|
3311
3389
|
crons: allCrons,
|
|
@@ -3317,7 +3395,14 @@ async function buildApp(input) {
|
|
|
3317
3395
|
}
|
|
3318
3396
|
await generateOpenApi(allEndpoints.map(({ construct }) => construct), {
|
|
3319
3397
|
openapi: config.openapi,
|
|
3320
|
-
root: workspaceRoot
|
|
3398
|
+
root: workspaceRoot,
|
|
3399
|
+
...derived.surface ? clientTelemetry({
|
|
3400
|
+
manifest: declared,
|
|
3401
|
+
surfaceId: derived.surface.id,
|
|
3402
|
+
telemetry: input.workspace?.deploy?.telemetry,
|
|
3403
|
+
stage: input.stage,
|
|
3404
|
+
localStage: input.workspace?.stages.local ?? config.stages?.local
|
|
3405
|
+
}) : {}
|
|
3321
3406
|
});
|
|
3322
3407
|
return {
|
|
3323
3408
|
...result,
|
|
@@ -3335,9 +3420,11 @@ async function buildWorkers(input) {
|
|
|
3335
3420
|
const crons = owned(input.crons);
|
|
3336
3421
|
const queues = owned(input.queues);
|
|
3337
3422
|
const subscribers = owned(input.subscribers);
|
|
3423
|
+
const telemetry = input.telemetry(worker.id);
|
|
3338
3424
|
const entryPoint = await generator.build({
|
|
3339
3425
|
context: input.context,
|
|
3340
3426
|
workerId: worker.id,
|
|
3427
|
+
...telemetry ? { telemetry } : {},
|
|
3341
3428
|
outputDir: workerEntryDir(input.serverDir, worker.id),
|
|
3342
3429
|
crons,
|
|
3343
3430
|
queues,
|
|
@@ -3345,7 +3432,7 @@ async function buildWorkers(input) {
|
|
|
3345
3432
|
});
|
|
3346
3433
|
logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
|
|
3347
3434
|
if (!input.bundle) continue;
|
|
3348
|
-
const { bundleServer } = await import("./bundler-
|
|
3435
|
+
const { bundleServer } = await import("./bundler-D4030Afw.mjs");
|
|
3349
3436
|
const outfile = workerBundleName(worker.id);
|
|
3350
3437
|
await bundleServer({
|
|
3351
3438
|
entryPoint,
|
|
@@ -3364,6 +3451,22 @@ async function buildWorkers(input) {
|
|
|
3364
3451
|
logger$4.log(`✅ Bundle complete: .gkm/server/dist/${outfile}`);
|
|
3365
3452
|
}
|
|
3366
3453
|
}
|
|
3454
|
+
/**
|
|
3455
|
+
* Whether the surface's generated client propagates trace context, and at
|
|
3456
|
+
* what rate: on when a site that calls it has an edge to a `Telemetry`
|
|
3457
|
+
* construct, at the stage's sample rate — every trace locally, and on a build
|
|
3458
|
+
* for no stage. Off for a stage that sends no telemetry.
|
|
3459
|
+
*/
|
|
3460
|
+
function clientTelemetry(options) {
|
|
3461
|
+
if (!surfaceClientTraced(options.manifest, options.surfaceId)) return {};
|
|
3462
|
+
const local = !options.stage || options.stage === options.localStage;
|
|
3463
|
+
const sampleRate = stageSampleRate(options.telemetry, options.stage ?? "", local);
|
|
3464
|
+
return sampleRate === void 0 ? {} : { telemetry: { sampleRate } };
|
|
3465
|
+
}
|
|
3466
|
+
/** The app being built, by its workspace name or its directory's. */
|
|
3467
|
+
function appNameOf(input) {
|
|
3468
|
+
return (input.workspace ? Object.entries(input.workspace.apps).find(([, app]) => resolve(input.workspace.root, app.path) === resolve(input.appRoot))?.[0] : void 0) ?? basename(input.appRoot);
|
|
3469
|
+
}
|
|
3367
3470
|
async function buildForTarget(target, context, appRoot, workspaceRoot, endpointGenerator, functionGenerator, cronGenerator, subscriberGenerator, queueGenerator, topicGenerator, endpoints, functions, crons, subscribers, queues, topics, enableOpenApi, skipBundle, stage) {
|
|
3368
3471
|
const outputDir = join(appRoot, ".gkm", target);
|
|
3369
3472
|
await Promise.all([...SUPERSEDED_OUTPUT.map((dir) => join(appRoot, ".gkm", dir)), ...appRoot === workspaceRoot ? [] : [join(appRoot, ".gkm", "manifest")]].map((dir) => rm(dir, {
|
|
@@ -3415,7 +3518,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3415
3518
|
let masterKey;
|
|
3416
3519
|
if (context.production?.bundle && !skipBundle) {
|
|
3417
3520
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3418
|
-
const { bundleServer } = await import("./bundler-
|
|
3521
|
+
const { bundleServer } = await import("./bundler-D4030Afw.mjs");
|
|
3419
3522
|
const allConstructs = [
|
|
3420
3523
|
...endpoints.map((e) => e.construct),
|
|
3421
3524
|
...functions.map((f) => f.construct),
|
|
@@ -5117,25 +5220,25 @@ function loadPackageJson() {
|
|
|
5117
5220
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5118
5221
|
*/
|
|
5119
5222
|
const GEEKMIDAS_VERSIONS = {
|
|
5120
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5121
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5122
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5123
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5124
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5125
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5126
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5127
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5128
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5129
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5130
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5131
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5132
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5133
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5134
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5135
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5136
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5137
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5138
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5223
|
+
"@geekmidas/audit": "~10.0.0-alpha.84",
|
|
5224
|
+
"@geekmidas/auth": "~10.0.0-alpha.84",
|
|
5225
|
+
"@geekmidas/cache": "~10.0.0-alpha.84",
|
|
5226
|
+
"@geekmidas/client": "~10.0.0-alpha.84",
|
|
5227
|
+
"@geekmidas/cloud": "~10.0.0-alpha.84",
|
|
5228
|
+
"@geekmidas/constructs": "~10.0.0-alpha.84",
|
|
5229
|
+
"@geekmidas/db": "~10.0.0-alpha.84",
|
|
5230
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.84",
|
|
5231
|
+
"@geekmidas/envkit": "~10.0.0-alpha.84",
|
|
5232
|
+
"@geekmidas/errors": "~10.0.0-alpha.84",
|
|
5233
|
+
"@geekmidas/events": "~10.0.0-alpha.84",
|
|
5234
|
+
"@geekmidas/logger": "~10.0.0-alpha.84",
|
|
5235
|
+
"@geekmidas/manifest": "~10.0.0-alpha.84",
|
|
5236
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.84",
|
|
5237
|
+
"@geekmidas/schema": "~10.0.0-alpha.84",
|
|
5238
|
+
"@geekmidas/services": "~10.0.0-alpha.84",
|
|
5239
|
+
"@geekmidas/storage": "~10.0.0-alpha.84",
|
|
5240
|
+
"@geekmidas/telescope": "~10.0.0-alpha.84",
|
|
5241
|
+
"@geekmidas/testkit": "~10.0.0-alpha.84",
|
|
5139
5242
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5140
5243
|
};
|
|
5141
5244
|
//#endregion
|
|
@@ -5536,7 +5639,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
|
|
|
5536
5639
|
* The `uses:` value for the stages action, with a comment saying which CLI
|
|
5537
5640
|
* release the pinned commit is.
|
|
5538
5641
|
*/
|
|
5539
|
-
function stagesActionUses(commit = "
|
|
5642
|
+
function stagesActionUses(commit = "1a6631b7e6dc71b7dd7b7afb8ca5b82225454826", version = cliVersion()) {
|
|
5540
5643
|
return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
|
|
5541
5644
|
}
|
|
5542
5645
|
//#endregion
|
|
@@ -11208,7 +11311,7 @@ function testDatabases(reconciled) {
|
|
|
11208
11311
|
* starts without the reference data the app needs.
|
|
11209
11312
|
*/
|
|
11210
11313
|
async function migrateTestStage(workspace, env) {
|
|
11211
|
-
const { migrateAndSeed } = await import("./migrate-
|
|
11314
|
+
const { migrateAndSeed } = await import("./migrate-CdXcX0XR.mjs");
|
|
11212
11315
|
const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
|
|
11213
11316
|
const sources = {};
|
|
11214
11317
|
const manifest = await discover({
|
|
@@ -11652,7 +11755,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
11652
11755
|
try {
|
|
11653
11756
|
const globalOptions = program.opts();
|
|
11654
11757
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11655
|
-
const { migrateCommand } = await import("./migrate-
|
|
11758
|
+
const { migrateCommand } = await import("./migrate-CdXcX0XR.mjs");
|
|
11656
11759
|
await migrateCommand({
|
|
11657
11760
|
...options,
|
|
11658
11761
|
...construct ? { construct } : {}
|
|
@@ -11666,7 +11769,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
11666
11769
|
try {
|
|
11667
11770
|
const globalOptions = program.opts();
|
|
11668
11771
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11669
|
-
const { seedCommand } = await import("./migrate-
|
|
11772
|
+
const { seedCommand } = await import("./migrate-CdXcX0XR.mjs");
|
|
11670
11773
|
await seedCommand({
|
|
11671
11774
|
...options,
|
|
11672
11775
|
...construct ? { construct } : {}
|
|
@@ -11680,7 +11783,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
11680
11783
|
try {
|
|
11681
11784
|
const globalOptions = program.opts();
|
|
11682
11785
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11683
|
-
const { migrationCommand } = await import("./migrate-
|
|
11786
|
+
const { migrationCommand } = await import("./migrate-CdXcX0XR.mjs");
|
|
11684
11787
|
await migrationCommand({
|
|
11685
11788
|
construct,
|
|
11686
11789
|
...name ? { name } : {}
|
|
@@ -11788,7 +11891,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
|
|
|
11788
11891
|
try {
|
|
11789
11892
|
const globalOptions = program.opts();
|
|
11790
11893
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11791
|
-
const { secretsAddCommand } = await import("./add-
|
|
11894
|
+
const { secretsAddCommand } = await import("./add-DbnzC7Kl.mjs");
|
|
11792
11895
|
await secretsAddCommand(options);
|
|
11793
11896
|
} catch (error) {
|
|
11794
11897
|
console.error(formatError(error));
|
|
@@ -11799,7 +11902,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
11799
11902
|
try {
|
|
11800
11903
|
const globalOptions = program.opts();
|
|
11801
11904
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11802
|
-
const { encryptionRotateCommand } = await import("./encryption-
|
|
11905
|
+
const { encryptionRotateCommand } = await import("./encryption-BRcBAmjL.mjs");
|
|
11803
11906
|
await encryptionRotateCommand(construct, options);
|
|
11804
11907
|
} catch (error) {
|
|
11805
11908
|
console.error(formatError(error));
|
|
@@ -11810,7 +11913,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
11810
11913
|
try {
|
|
11811
11914
|
const globalOptions = program.opts();
|
|
11812
11915
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11813
|
-
const { encryptionRetireCommand } = await import("./encryption-
|
|
11916
|
+
const { encryptionRetireCommand } = await import("./encryption-BRcBAmjL.mjs");
|
|
11814
11917
|
await encryptionRetireCommand(construct, key, options);
|
|
11815
11918
|
} catch (error) {
|
|
11816
11919
|
console.error(formatError(error));
|
|
@@ -11853,7 +11956,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11853
11956
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11854
11957
|
const { loadWorkspaceConfig } = await import("./config.mjs");
|
|
11855
11958
|
const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
|
|
11856
|
-
const { secretsStoreFor } = await import("./seeds-
|
|
11959
|
+
const { secretsStoreFor } = await import("./seeds-BK8caVMm.mjs").then((n) => n.hn);
|
|
11857
11960
|
const { workspace } = await loadWorkspaceConfig();
|
|
11858
11961
|
const stage = options.stage ?? workspace.stages.local;
|
|
11859
11962
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -11862,7 +11965,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11862
11965
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
11863
11966
|
process.exit(1);
|
|
11864
11967
|
}
|
|
11865
|
-
const { derivedContainers } = await import("./seeds-
|
|
11968
|
+
const { derivedContainers } = await import("./seeds-BK8caVMm.mjs").then((n) => n.X);
|
|
11866
11969
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
11867
11970
|
if (!result) {
|
|
11868
11971
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -11880,7 +11983,7 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
|
|
|
11880
11983
|
try {
|
|
11881
11984
|
const globalOptions = program.opts();
|
|
11882
11985
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11883
|
-
const { secretsMigrateCommand } = await import("./migrate-
|
|
11986
|
+
const { secretsMigrateCommand } = await import("./migrate-DOMU4uKe.mjs");
|
|
11884
11987
|
await secretsMigrateCommand(options);
|
|
11885
11988
|
} catch (error) {
|
|
11886
11989
|
console.error(formatError(error));
|
|
@@ -11888,7 +11991,7 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
|
|
|
11888
11991
|
}
|
|
11889
11992
|
});
|
|
11890
11993
|
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 <list>", "Server targets: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
|
|
11891
|
-
const { deployCli } = await import("./cli-
|
|
11994
|
+
const { deployCli } = await import("./cli-DwTa9d_8.mjs");
|
|
11892
11995
|
const globalOptions = program.opts();
|
|
11893
11996
|
const code = await deployCli({
|
|
11894
11997
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -11905,7 +12008,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
11905
12008
|
});
|
|
11906
12009
|
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) => {
|
|
11907
12010
|
try {
|
|
11908
|
-
const { rollbackStage } = await import("./rollback-
|
|
12011
|
+
const { rollbackStage } = await import("./rollback-BSdxnW3X.mjs").then((n) => n.a);
|
|
11909
12012
|
const { terminalCredentials } = await import("./terminal-BdvrmkaC.mjs");
|
|
11910
12013
|
const globalOptions = program.opts();
|
|
11911
12014
|
await rollbackStage({
|
|
@@ -11941,7 +12044,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
11941
12044
|
try {
|
|
11942
12045
|
const globalOptions = program.opts();
|
|
11943
12046
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11944
|
-
const { deployGithubCommand } = await import("./github-
|
|
12047
|
+
const { deployGithubCommand } = await import("./github-Zs-dVJbR.mjs");
|
|
11945
12048
|
await deployGithubCommand(options);
|
|
11946
12049
|
} catch (error) {
|
|
11947
12050
|
console.error(formatError(error));
|
|
@@ -11952,7 +12055,7 @@ program.command("stages").description("The workspace's stages from gkm.config.ts
|
|
|
11952
12055
|
try {
|
|
11953
12056
|
const globalOptions = program.opts();
|
|
11954
12057
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11955
|
-
const { stagesCommand } = await import("./stages-
|
|
12058
|
+
const { stagesCommand } = await import("./stages-CSXt7N2b.mjs");
|
|
11956
12059
|
await stagesCommand(options);
|
|
11957
12060
|
} catch (error) {
|
|
11958
12061
|
console.error(formatError(error));
|