@geekmidas/cli 10.0.0-alpha.118 → 10.0.0-alpha.119
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-BwbYTMtB.cjs → EndpointGenerator-BDa6pPgE.cjs} +2 -2
- package/dist/{EndpointGenerator-BwbYTMtB.cjs.map → EndpointGenerator-BDa6pPgE.cjs.map} +1 -1
- package/dist/{EndpointGenerator-CvLX8bpx.mjs → EndpointGenerator-CP_z_E3e.mjs} +2 -2
- package/dist/{EndpointGenerator-CvLX8bpx.mjs.map → EndpointGenerator-CP_z_E3e.mjs.map} +1 -1
- package/dist/{GoDaddyProvider-CcjbFkLt.mjs → GoDaddyProvider-B4JKSuX-.mjs} +2 -2
- package/dist/{GoDaddyProvider-CcjbFkLt.mjs.map → GoDaddyProvider-B4JKSuX-.mjs.map} +1 -1
- package/dist/{GoDaddyProvider-B6SPHBCU.cjs → GoDaddyProvider-DMLcXGTd.cjs} +2 -2
- package/dist/{GoDaddyProvider-B6SPHBCU.cjs.map → GoDaddyProvider-DMLcXGTd.cjs.map} +1 -1
- package/dist/{LegacyStateStore-2l5jw_VI.cjs → LegacyStateStore-88Etk3M3.cjs} +3 -3
- package/dist/{LegacyStateStore-2l5jw_VI.cjs.map → LegacyStateStore-88Etk3M3.cjs.map} +1 -1
- package/dist/{LegacyStateStore-D-D6r_JT.mjs → LegacyStateStore-ByNEjBbh.mjs} +3 -3
- package/dist/{LegacyStateStore-D-D6r_JT.mjs.map → LegacyStateStore-ByNEjBbh.mjs.map} +1 -1
- package/dist/{LocalStateStore-DIAY7j1O.mjs → LocalStateStore-BoHhG3tu.mjs} +2 -2
- package/dist/{LocalStateStore-DIAY7j1O.mjs.map → LocalStateStore-BoHhG3tu.mjs.map} +1 -1
- package/dist/{LocalStateStore-Dg3rvwwe.cjs → LocalStateStore-D1I3DJu2.cjs} +2 -2
- package/dist/{LocalStateStore-Dg3rvwwe.cjs.map → LocalStateStore-D1I3DJu2.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-DXXFXSbO.mjs → OpenApiTsGenerator-CsrukCE-.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-DXXFXSbO.mjs.map → OpenApiTsGenerator-CsrukCE-.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-BD6ZOQ51.cjs → OpenApiTsGenerator-FNhY7Ssz.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-BD6ZOQ51.cjs.map → OpenApiTsGenerator-FNhY7Ssz.cjs.map} +1 -1
- package/dist/{S3StateStore-BKi1eamw.mjs → S3StateStore-BE1Fl_cm.mjs} +2 -2
- package/dist/{S3StateStore-BKi1eamw.mjs.map → S3StateStore-BE1Fl_cm.mjs.map} +1 -1
- package/dist/{S3StateStore-BdcgQNhO.cjs → S3StateStore-DTLmfO3U.cjs} +2 -2
- package/dist/{S3StateStore-BdcgQNhO.cjs.map → S3StateStore-DTLmfO3U.cjs.map} +1 -1
- package/dist/{SSMStateStore-CS-pAKT9.cjs → SSMStateStore-BaKk8zeI.cjs} +2 -2
- package/dist/{SSMStateStore-CS-pAKT9.cjs.map → SSMStateStore-BaKk8zeI.cjs.map} +1 -1
- package/dist/{SSMStateStore-DHgaNW75.mjs → SSMStateStore-kEogq4Wx.mjs} +2 -2
- package/dist/{SSMStateStore-DHgaNW75.mjs.map → SSMStateStore-kEogq4Wx.mjs.map} +1 -1
- package/dist/{SubscriberGenerator-CeH7wbYt.cjs → SubscriberGenerator-C8CPxrCK.cjs} +25 -4
- package/dist/SubscriberGenerator-C8CPxrCK.cjs.map +1 -0
- package/dist/{SubscriberGenerator-DHnIYwUU.mjs → SubscriberGenerator-y3pncae_.mjs} +20 -5
- package/dist/SubscriberGenerator-y3pncae_.mjs.map +1 -0
- package/dist/{add-BcZXHa3Z.mjs → add-BZr_o-Xm.mjs} +5 -5
- package/dist/{add-BcZXHa3Z.mjs.map → add-BZr_o-Xm.mjs.map} +1 -1
- package/dist/{add-6VPdRbRT.cjs → add-C8mRgq2x.cjs} +5 -5
- package/dist/{add-6VPdRbRT.cjs.map → add-C8mRgq2x.cjs.map} +1 -1
- package/dist/{bundler-jjWtQ882.cjs → bundler-7-pO7L0X.cjs} +5 -5
- package/dist/{bundler-jjWtQ882.cjs.map → bundler-7-pO7L0X.cjs.map} +1 -1
- package/dist/{bundler-Ciim6amq.mjs → bundler-USaMrVEO.mjs} +5 -5
- package/dist/{bundler-Ciim6amq.mjs.map → bundler-USaMrVEO.mjs.map} +1 -1
- package/dist/{cli-CQ2ij0Mi.cjs → cli-Bdf7CdQB.cjs} +3 -3
- package/dist/{cli-CQ2ij0Mi.cjs.map → cli-Bdf7CdQB.cjs.map} +1 -1
- package/dist/{cli-BkxlWYfI.mjs → cli-DWRYbsA2.mjs} +3 -3
- package/dist/{cli-BkxlWYfI.mjs.map → cli-DWRYbsA2.mjs.map} +1 -1
- package/dist/{compose-qLTNYJAY.mjs → compose-DAPoyiny.mjs} +101 -19
- package/dist/compose-DAPoyiny.mjs.map +1 -0
- package/dist/{compose-JOasAHcd.cjs → compose-tZLAZZp6.cjs} +101 -19
- package/dist/compose-tZLAZZp6.cjs.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.mjs +1 -1
- package/dist/{credentialSchemas-D_VUCDUh.cjs → credentialSchemas-B67WJOOm.cjs} +2 -2
- package/dist/{credentialSchemas-D_VUCDUh.cjs.map → credentialSchemas-B67WJOOm.cjs.map} +1 -1
- package/dist/{credentialSchemas-Cf5Pf8VE.mjs → credentialSchemas-DDOLRCLF.mjs} +2 -2
- package/dist/{credentialSchemas-Cf5Pf8VE.mjs.map → credentialSchemas-DDOLRCLF.mjs.map} +1 -1
- package/dist/deploy/public.cjs +7 -7
- package/dist/deploy/public.d.cts +2 -1
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +2 -1
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +7 -7
- package/dist/{deploy-_g-2dX38.mjs → deploy-CyQ36GSx.mjs} +20 -9
- package/dist/deploy-CyQ36GSx.mjs.map +1 -0
- package/dist/{deploy-D-liNXfx.cjs → deploy-rwfdH_Uw.cjs} +20 -9
- package/dist/deploy-rwfdH_Uw.cjs.map +1 -0
- package/dist/{discover-Ca8U75dl.mjs → discover-C5roJuc9.mjs} +25 -2
- package/dist/discover-C5roJuc9.mjs.map +1 -0
- package/dist/{discover-CvTtV5ZD.d.cts → discover-CSW_BMWa.d.cts} +18 -1
- package/dist/discover-CSW_BMWa.d.cts.map +1 -0
- package/dist/{discover-Bsr7HjqJ.cjs → discover-DozUKs8f.cjs} +25 -2
- package/dist/discover-DozUKs8f.cjs.map +1 -0
- package/dist/{discover-W2kab9Lc.d.mts → discover-xtT7fgWg.d.mts} +18 -1
- package/dist/discover-xtT7fgWg.d.mts.map +1 -0
- package/dist/{dns-DGq4xkJT.mjs → dns-BHveRzd8.mjs} +2 -2
- package/dist/{dns-DGq4xkJT.mjs.map → dns-BHveRzd8.mjs.map} +1 -1
- package/dist/{dns-DfQKqAyt.cjs → dns-CJ3izGTo.cjs} +2 -2
- package/dist/{dns-DfQKqAyt.cjs.map → dns-CJ3izGTo.cjs.map} +1 -1
- package/dist/{dokploy-ClIPZaPH.mjs → dokploy-BaaNWN-B.mjs} +2 -2
- package/dist/{dokploy-ClIPZaPH.mjs.map → dokploy-BaaNWN-B.mjs.map} +1 -1
- package/dist/{dokploy-D17I2BCE.cjs → dokploy-BmlMt2Rb.cjs} +2 -2
- package/dist/{dokploy-D17I2BCE.cjs.map → dokploy-BmlMt2Rb.cjs.map} +1 -1
- package/dist/{drivers-3klmg9Sk.mjs → drivers-BjGDYfnC.mjs} +2 -2
- package/dist/{drivers-3klmg9Sk.mjs.map → drivers-BjGDYfnC.mjs.map} +1 -1
- package/dist/{drivers-CoqD5zYP.cjs → drivers-DbjiYpW6.cjs} +2 -2
- package/dist/{drivers-CoqD5zYP.cjs.map → drivers-DbjiYpW6.cjs.map} +1 -1
- package/dist/{eas-DJXhARYb.mjs → eas-CKS1YxT3.mjs} +2 -2
- package/dist/{eas-DJXhARYb.mjs.map → eas-CKS1YxT3.mjs.map} +1 -1
- package/dist/{eas-b95MCG14.cjs → eas-ClEvznV9.cjs} +2 -2
- package/dist/{eas-b95MCG14.cjs.map → eas-ClEvznV9.cjs.map} +1 -1
- package/dist/{encryption-C_NRQ9cY.cjs → encryption-CpydNX0B.cjs} +2 -2
- package/dist/{encryption-C_NRQ9cY.cjs.map → encryption-CpydNX0B.cjs.map} +1 -1
- package/dist/{encryption-CldvLtip.mjs → encryption-DxKJLlYn.mjs} +2 -2
- package/dist/{encryption-CldvLtip.mjs.map → encryption-DxKJLlYn.mjs.map} +1 -1
- package/dist/{engine-CKfdvEVt.cjs → engine-C9qO5k6r.cjs} +4 -4
- package/dist/{engine-CKfdvEVt.cjs.map → engine-C9qO5k6r.cjs.map} +1 -1
- package/dist/{engine-BBnTj8OD.mjs → engine-tmvpAPHz.mjs} +4 -4
- package/dist/{engine-BBnTj8OD.mjs.map → engine-tmvpAPHz.mjs.map} +1 -1
- package/dist/{github-D5Ck3srU.cjs → github-BdVRMNzc.cjs} +8 -6
- package/dist/github-BdVRMNzc.cjs.map +1 -0
- package/dist/{github-BMPci2wg.mjs → github-vA9jAJjI.mjs} +8 -6
- package/dist/github-vA9jAJjI.mjs.map +1 -0
- package/dist/{googlePlay-C-GBRDMp.cjs → googlePlay-BafFoF13.cjs} +3 -3
- package/dist/{googlePlay-C-GBRDMp.cjs.map → googlePlay-BafFoF13.cjs.map} +1 -1
- package/dist/{googlePlay-fw0VWly7.mjs → googlePlay-Kr2etW2y.mjs} +3 -3
- package/dist/{googlePlay-fw0VWly7.mjs.map → googlePlay-Kr2etW2y.mjs.map} +1 -1
- package/dist/index.cjs +59 -59
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +59 -59
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-WyWhSivN.mjs → migrate-4EdfUpjQ.mjs} +3 -3
- package/dist/{migrate-WyWhSivN.mjs.map → migrate-4EdfUpjQ.mjs.map} +1 -1
- package/dist/{migrate-rke2Qvj2.cjs → migrate-BMGpVvFg.cjs} +3 -3
- package/dist/{migrate-rke2Qvj2.cjs.map → migrate-BMGpVvFg.cjs.map} +1 -1
- package/dist/{migrate-1bHqjfIe.mjs → migrate-C_IaJz8A.mjs} +2 -2
- package/dist/{migrate-1bHqjfIe.mjs.map → migrate-C_IaJz8A.mjs.map} +1 -1
- package/dist/{migrate-BndHuwqw.cjs → migrate-DeIkRsXm.cjs} +2 -2
- package/dist/{migrate-BndHuwqw.cjs.map → migrate-DeIkRsXm.cjs.map} +1 -1
- package/dist/openapi.cjs +2 -2
- package/dist/openapi.mjs +2 -2
- package/dist/{publish-BBG4zx8E.mjs → publish-AdbhYxX6.mjs} +2 -2
- package/dist/{publish-BBG4zx8E.mjs.map → publish-AdbhYxX6.mjs.map} +1 -1
- package/dist/{publish-B22IhdS9.cjs → publish-BWVQ9PZy.cjs} +2 -2
- package/dist/{publish-B22IhdS9.cjs.map → publish-BWVQ9PZy.cjs.map} +1 -1
- package/dist/{ready-gc9IFByS.cjs → ready-BFFP838V.cjs} +6 -6
- package/dist/{ready-gc9IFByS.cjs.map → ready-BFFP838V.cjs.map} +1 -1
- package/dist/{ready-4hEoQ_cr.mjs → ready-BOfogqzr.mjs} +6 -6
- package/dist/{ready-4hEoQ_cr.mjs.map → ready-BOfogqzr.mjs.map} +1 -1
- package/dist/reconcile/public.cjs +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/reconcile/public.mjs +1 -1
- package/dist/{resolve-CC6ndodR.mjs → resolve-CJwadE_F.mjs} +3 -3
- package/dist/{resolve-CC6ndodR.mjs.map → resolve-CJwadE_F.mjs.map} +1 -1
- package/dist/{resolve-isFTuJp4.cjs → resolve-Dtrp53jt.cjs} +3 -3
- package/dist/{resolve-isFTuJp4.cjs.map → resolve-Dtrp53jt.cjs.map} +1 -1
- package/dist/{rollback-DaEmEC2Y.mjs → rollback-Cx89OK9S.mjs} +4 -4
- package/dist/{rollback-DaEmEC2Y.mjs.map → rollback-Cx89OK9S.mjs.map} +1 -1
- package/dist/{rollback-Lj9bQvHq.cjs → rollback-DAKtcSCy.cjs} +4 -4
- package/dist/{rollback-Lj9bQvHq.cjs.map → rollback-DAKtcSCy.cjs.map} +1 -1
- package/dist/sandbox/credentials-worker.cjs +2 -2
- package/dist/sandbox/credentials-worker.mjs +2 -2
- package/dist/sandbox/discover-worker.cjs +6 -3
- package/dist/sandbox/discover-worker.cjs.map +1 -1
- package/dist/sandbox/discover-worker.mjs +6 -3
- package/dist/sandbox/discover-worker.mjs.map +1 -1
- package/dist/sandbox/migrate-worker.cjs +1 -1
- package/dist/sandbox/migrate-worker.mjs +1 -1
- package/dist/{seeds-CYzoBDg2.mjs → seeds-BBnvSEgG.mjs} +134 -21
- package/dist/seeds-BBnvSEgG.mjs.map +1 -0
- package/dist/{seeds-CF9Nx6_g.cjs → seeds-CPFoexOv.cjs} +150 -19
- package/dist/seeds-CPFoexOv.cjs.map +1 -0
- package/dist/{serverSetup-CbuJK4zg.cjs → serverSetup-BHoXbPit.cjs} +5 -5
- package/dist/{serverSetup-CbuJK4zg.cjs.map → serverSetup-BHoXbPit.cjs.map} +1 -1
- package/dist/{serverSetup-0h1Vh5un.mjs → serverSetup-BoD9Vp4B.mjs} +5 -5
- package/dist/{serverSetup-0h1Vh5un.mjs.map → serverSetup-BoD9Vp4B.mjs.map} +1 -1
- package/dist/{sniffer-CRJHtBaK.mjs → sniffer-DDUAlVqp.mjs} +7 -7
- package/dist/{sniffer-CRJHtBaK.mjs.map → sniffer-DDUAlVqp.mjs.map} +1 -1
- package/dist/{sniffer-Dz3Va1Jo.cjs → sniffer-DIVpELrO.cjs} +7 -7
- package/dist/{sniffer-Dz3Va1Jo.cjs.map → sniffer-DIVpELrO.cjs.map} +1 -1
- package/dist/{stage-CIo8s2WT.mjs → stage-D9R5j5Xa.mjs} +5 -5
- package/dist/{stage-CIo8s2WT.mjs.map → stage-D9R5j5Xa.mjs.map} +1 -1
- package/dist/{stage-y9qFelxT.cjs → stage-ElqMbLNH.cjs} +5 -5
- package/dist/{stage-y9qFelxT.cjs.map → stage-ElqMbLNH.cjs.map} +1 -1
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.mjs +1 -1
- package/dist/{terminal-CybB-cjk.mjs → terminal-CW_dWeTe.mjs} +2 -2
- package/dist/{terminal-CybB-cjk.mjs.map → terminal-CW_dWeTe.mjs.map} +1 -1
- package/dist/{terminal-D_NRPW4W.cjs → terminal-DJlqcW_U.cjs} +2 -2
- package/dist/{terminal-D_NRPW4W.cjs.map → terminal-DJlqcW_U.cjs.map} +1 -1
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +1 -1
- package/package.json +15 -15
- package/dist/SubscriberGenerator-CeH7wbYt.cjs.map +0 -1
- package/dist/SubscriberGenerator-DHnIYwUU.mjs.map +0 -1
- package/dist/compose-JOasAHcd.cjs.map +0 -1
- package/dist/compose-qLTNYJAY.mjs.map +0 -1
- package/dist/deploy-D-liNXfx.cjs.map +0 -1
- package/dist/deploy-_g-2dX38.mjs.map +0 -1
- package/dist/discover-Bsr7HjqJ.cjs.map +0 -1
- package/dist/discover-Ca8U75dl.mjs.map +0 -1
- package/dist/discover-CvTtV5ZD.d.cts.map +0 -1
- package/dist/discover-W2kab9Lc.d.mts.map +0 -1
- package/dist/github-BMPci2wg.mjs.map +0 -1
- package/dist/github-D5Ck3srU.cjs.map +0 -1
- package/dist/seeds-CF9Nx6_g.cjs.map +0 -1
- package/dist/seeds-CYzoBDg2.mjs.map +0 -1
|
@@ -2,14 +2,14 @@ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
|
|
|
2
2
|
const require_errors = require("./errors-DMC4Umsb.cjs");
|
|
3
3
|
const require_run = require("./run-fVZ-rLnc.cjs");
|
|
4
4
|
const require_workspace = require("./workspace-BwqQnool.cjs");
|
|
5
|
-
const require_dns = require("./dns-
|
|
5
|
+
const require_dns = require("./dns-CJ3izGTo.cjs");
|
|
6
6
|
const require_define = require("./define-crmMcXFS.cjs");
|
|
7
|
-
const require_seeds = require("./seeds-
|
|
7
|
+
const require_seeds = require("./seeds-CPFoexOv.cjs");
|
|
8
8
|
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
9
|
-
const require_SubscriberGenerator = require("./SubscriberGenerator-
|
|
9
|
+
const require_SubscriberGenerator = require("./SubscriberGenerator-C8CPxrCK.cjs");
|
|
10
10
|
const require_identity = require("./identity-CbLfgQNT.cjs");
|
|
11
|
-
const require_discover = require("./discover-
|
|
12
|
-
const require_drivers = require("./drivers-
|
|
11
|
+
const require_discover = require("./discover-DozUKs8f.cjs");
|
|
12
|
+
const require_drivers = require("./drivers-DbjiYpW6.cjs");
|
|
13
13
|
const require_databases = require("./databases-DGALFDG3.cjs");
|
|
14
14
|
let node_path = require("node:path");
|
|
15
15
|
let node_fs = require("node:fs");
|
|
@@ -684,7 +684,7 @@ function edgeCaddyfile(routes, options) {
|
|
|
684
684
|
` : tls.kind === "files" ? `
|
|
685
685
|
tls ${tls.certFile} ${tls.keyFile}
|
|
686
686
|
` : "";
|
|
687
|
-
const blocks = routes.map(({ host, upstreams, prefix, allow, streaming }) => `https://${host} {${certificate}
|
|
687
|
+
const blocks = routes.map(({ host, upstreams, prefix, allow, paths, streaming }) => `https://${host} {${certificate}
|
|
688
688
|
# gkm's own header, which only a service of this stack may send: the auth
|
|
689
689
|
# server rate-limits by the client address it carries.
|
|
690
690
|
request_header -${_geekmidas_manifest.CLIENT_IP_HEADER}
|
|
@@ -693,6 +693,11 @@ ${allow ? `
|
|
|
693
693
|
# could set. Everything else is refused before it reaches the upstream.
|
|
694
694
|
@denied not remote_ip ${allow.join(" ")}
|
|
695
695
|
respond @denied 403
|
|
696
|
+
` : ""}${paths ? `
|
|
697
|
+
# Only these paths answer. Everything else on this host is refused before
|
|
698
|
+
# it reaches the upstream.
|
|
699
|
+
@elsewhere not path ${paths.join(" ")}
|
|
700
|
+
respond @elsewhere 404
|
|
696
701
|
` : ""}${prefix ? `
|
|
697
702
|
# A bucket, served at a host of its own: the bucket is a prefix on MinIO,
|
|
698
703
|
# which routes and signs on the Host header — so it is sent the upstream's.
|
|
@@ -713,8 +718,9 @@ ${allow ? `
|
|
|
713
718
|
const HEADER = `# Generated by gkm compose from the construct manifest — do not edit.
|
|
714
719
|
#
|
|
715
720
|
# One host per API and site, each in front of its own container, one per
|
|
716
|
-
# file server in front of the stack's MinIO,
|
|
717
|
-
#
|
|
721
|
+
# file server in front of the stack's MinIO, one per worker SNS pushes to,
|
|
722
|
+
# answering only those routes, and — when its logs are served publicly — one
|
|
723
|
+
# for OpenObserve, to the addresses it allows.
|
|
718
724
|
`;
|
|
719
725
|
//#endregion
|
|
720
726
|
//#region src/compose/images.ts
|
|
@@ -1013,8 +1019,9 @@ function traefikDynamic(routes, options) {
|
|
|
1013
1019
|
middlewares[name(route, "prefix")] = { addPrefix: { prefix: route.prefix } };
|
|
1014
1020
|
chain.push(name(route, "prefix"));
|
|
1015
1021
|
}
|
|
1022
|
+
const paths = route.paths ? ` && (${route.paths.map((path) => `Path(\`${path}\`)`).join(" || ")})` : "";
|
|
1016
1023
|
routers[name(route)] = {
|
|
1017
|
-
rule: `Host(\`${route.host}\`)`,
|
|
1024
|
+
rule: `Host(\`${route.host}\`)${paths}`,
|
|
1018
1025
|
entryPoints: ["websecure"],
|
|
1019
1026
|
service: name(route),
|
|
1020
1027
|
middlewares: chain,
|
|
@@ -1425,7 +1432,8 @@ function composeStack(input) {
|
|
|
1425
1432
|
return {
|
|
1426
1433
|
...credential.containers.minio,
|
|
1427
1434
|
buckets,
|
|
1428
|
-
policies: require_seeds.bucketPolicies(plan).filter((p) => buckets.includes(p.bucket))
|
|
1435
|
+
policies: require_seeds.bucketPolicies(plan).filter((p) => buckets.includes(p.bucket)),
|
|
1436
|
+
lifecycles: require_seeds.bucketLifecycles(plan).filter((l) => buckets.includes(l.bucket))
|
|
1429
1437
|
};
|
|
1430
1438
|
})() : void 0;
|
|
1431
1439
|
const fileServers = /* @__PURE__ */ new Map();
|
|
@@ -1572,16 +1580,26 @@ function composeStack(input) {
|
|
|
1572
1580
|
}
|
|
1573
1581
|
for (const worker of input.buildOnly ? [] : workers) {
|
|
1574
1582
|
const keys = require_seeds.workerEnvKeys(manifest, worker.id, input.runnables) ?? /* @__PURE__ */ new Set();
|
|
1583
|
+
const resolved = valuesFor({
|
|
1584
|
+
name: worker.name,
|
|
1585
|
+
id: worker.id,
|
|
1586
|
+
kind: "rest-api"
|
|
1587
|
+
}, keys);
|
|
1588
|
+
const push = local ? void 0 : workerPush(worker, input.subscribers?.[worker.id] ?? [], resolved, {
|
|
1589
|
+
stage,
|
|
1590
|
+
...domain ? { domain } : {}
|
|
1591
|
+
});
|
|
1592
|
+
if (push) {
|
|
1593
|
+
worker.push = push;
|
|
1594
|
+
if (proxy === "traefik") edgeServices.add(worker.name);
|
|
1595
|
+
}
|
|
1575
1596
|
worker.env = {
|
|
1576
|
-
...require_seeds.scopeTelemetryEnv(
|
|
1577
|
-
name: worker.name,
|
|
1578
|
-
id: worker.id,
|
|
1579
|
-
kind: "rest-api"
|
|
1580
|
-
}, keys), {
|
|
1597
|
+
...require_seeds.scopeTelemetryEnv(resolved, {
|
|
1581
1598
|
uses: require_seeds.telemetryOf(manifest, worker.id) !== void 0,
|
|
1582
1599
|
serviceName: worker.name,
|
|
1583
1600
|
...telemetryValues ? { telemetry: telemetryValues } : {}
|
|
1584
1601
|
}),
|
|
1602
|
+
...push ? { [SUBSCRIBER_PUSH_URL_KEY]: push.url } : {},
|
|
1585
1603
|
NODE_ENV: "production",
|
|
1586
1604
|
PORT: String(worker.port),
|
|
1587
1605
|
STAGE: stage
|
|
@@ -1641,6 +1659,17 @@ function composeStack(input) {
|
|
|
1641
1659
|
health: app.kind === "site" ? "/" : "/health"
|
|
1642
1660
|
})),
|
|
1643
1661
|
...[...fileServers.values()].map(({ route }) => route),
|
|
1662
|
+
...workers.flatMap(({ name, port, push }) => push ? [{
|
|
1663
|
+
name,
|
|
1664
|
+
host: push.host,
|
|
1665
|
+
upstreams: [{
|
|
1666
|
+
service: name,
|
|
1667
|
+
port
|
|
1668
|
+
}],
|
|
1669
|
+
streaming: false,
|
|
1670
|
+
paths: push.paths,
|
|
1671
|
+
health: "/health"
|
|
1672
|
+
}] : []),
|
|
1644
1673
|
...logs?.host && logs.public ? [{
|
|
1645
1674
|
name: require_seeds.LOGS_SERVICE,
|
|
1646
1675
|
host: logs.host,
|
|
@@ -1652,6 +1681,7 @@ function composeStack(input) {
|
|
|
1652
1681
|
allow: logs.public.allow
|
|
1653
1682
|
}] : []
|
|
1654
1683
|
];
|
|
1684
|
+
assertHostsUnique(routes);
|
|
1655
1685
|
const dockerfiles = {};
|
|
1656
1686
|
for (const app of apps) {
|
|
1657
1687
|
if (!app.build) continue;
|
|
@@ -1746,6 +1776,51 @@ function stackApps(workspace, manifest, plan, options) {
|
|
|
1746
1776
|
}
|
|
1747
1777
|
return apps.sort((a, b) => a.name.localeCompare(b.name));
|
|
1748
1778
|
}
|
|
1779
|
+
/** What the worker reads the public base of its push routes from. */
|
|
1780
|
+
const SUBSCRIBER_PUSH_URL_KEY = "GKM_SUBSCRIBER_PUSH_URL";
|
|
1781
|
+
/**
|
|
1782
|
+
* Where SNS pushes to a worker on a deployed stage, or nothing when it pushes
|
|
1783
|
+
* to none of its subscribers.
|
|
1784
|
+
*
|
|
1785
|
+
* A subscriber is pushed to when its topic's connection string, as this stage
|
|
1786
|
+
* resolved it for the worker, is an SNS one — the same test the worker's own
|
|
1787
|
+
* startup makes, so the edge exposes a route exactly when the worker mounts
|
|
1788
|
+
* it. Each such route, and nothing else the worker serves, answers on
|
|
1789
|
+
* `<worker>.<domain>`.
|
|
1790
|
+
*/
|
|
1791
|
+
function workerPush(worker, subscribers, env, options) {
|
|
1792
|
+
const paths = subscribers.filter(({ topic }) => env[(0, _geekmidas_manifest.provideKey)(topic, "publisherConnectionString")]?.startsWith("sns:")).map(({ name }) => require_SubscriberGenerator.subscriberRoute(name)).sort();
|
|
1793
|
+
if (paths.length === 0) return void 0;
|
|
1794
|
+
if (!options.domain) throw new require_seeds.NoDomainForStage(options.stage);
|
|
1795
|
+
const host = `${worker.name}.${options.domain}`;
|
|
1796
|
+
return {
|
|
1797
|
+
host,
|
|
1798
|
+
url: `https://${host}`,
|
|
1799
|
+
paths: [...new Set(paths)]
|
|
1800
|
+
};
|
|
1801
|
+
}
|
|
1802
|
+
/** Two constructs the edge would answer on one host. */
|
|
1803
|
+
var EdgeHostTaken = class extends require_errors.GkmError {
|
|
1804
|
+
host;
|
|
1805
|
+
first;
|
|
1806
|
+
second;
|
|
1807
|
+
constructor(host, first, second) {
|
|
1808
|
+
super(`'${first}' and '${second}' would both answer on ${host}, and the edge can send a host to only one of them. Give one a subdomain of its own, or rename it.`);
|
|
1809
|
+
this.host = host;
|
|
1810
|
+
this.first = first;
|
|
1811
|
+
this.second = second;
|
|
1812
|
+
this.name = "EdgeHostTaken";
|
|
1813
|
+
}
|
|
1814
|
+
};
|
|
1815
|
+
/** Refuse a stack where one host would be routed to two services. */
|
|
1816
|
+
function assertHostsUnique(routes) {
|
|
1817
|
+
const claimed = /* @__PURE__ */ new Map();
|
|
1818
|
+
for (const { host, name } of routes) {
|
|
1819
|
+
const first = claimed.get(host);
|
|
1820
|
+
if (first !== void 0) throw new EdgeHostTaken(host, first, name);
|
|
1821
|
+
claimed.set(host, name);
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1749
1824
|
/** Each worker's image, and where it is built from. */
|
|
1750
1825
|
function stackWorkers(units, options) {
|
|
1751
1826
|
return units.map((unit) => ({
|
|
@@ -1852,7 +1927,7 @@ function stackFile(options) {
|
|
|
1852
1927
|
restart: "unless-stopped",
|
|
1853
1928
|
ports: [`${options.https}:443`, `${options.http}:80`],
|
|
1854
1929
|
volumes: ["caddy-data:/data", "caddy-config:/config"],
|
|
1855
|
-
depends_on: Object.fromEntries(apps.map((app) =>
|
|
1930
|
+
depends_on: Object.fromEntries([...apps.map((app) => app.name), ...options.workers.filter((w) => w.push).map((w) => w.name)].map((name) => [name, HEALTHY])),
|
|
1856
1931
|
healthcheck: {
|
|
1857
1932
|
test: [
|
|
1858
1933
|
"CMD",
|
|
@@ -2307,11 +2382,13 @@ async function validateCompose(ctx, deps, options = {}) {
|
|
|
2307
2382
|
if (!registry && (push || mode === "pull")) throw new RegistryRequired(push ? "push" : "pull", require_identity.imageRef(identity, ctx.apps[0] ?? workspace.name, void 0, tag));
|
|
2308
2383
|
const runnables = {};
|
|
2309
2384
|
const background = {};
|
|
2385
|
+
const subscribers = {};
|
|
2310
2386
|
const manifest = await require_discover.discover({
|
|
2311
2387
|
patterns: require_seeds.constructGlobs(workspace),
|
|
2312
2388
|
cwd: root,
|
|
2313
2389
|
runnables,
|
|
2314
|
-
background
|
|
2390
|
+
background,
|
|
2391
|
+
subscribers
|
|
2315
2392
|
});
|
|
2316
2393
|
const { secrets, generated } = await stageSecrets(ctx, manifest);
|
|
2317
2394
|
const layout = mode === "build" ? require_seeds.imageLayout(workspace) : void 0;
|
|
@@ -2320,6 +2397,7 @@ async function validateCompose(ctx, deps, options = {}) {
|
|
|
2320
2397
|
manifest,
|
|
2321
2398
|
runnables,
|
|
2322
2399
|
background,
|
|
2400
|
+
subscribers,
|
|
2323
2401
|
stage,
|
|
2324
2402
|
identity,
|
|
2325
2403
|
images: {
|
|
@@ -2652,7 +2730,11 @@ async function prepareBuckets(ctx, run, deps) {
|
|
|
2652
2730
|
let done;
|
|
2653
2731
|
try {
|
|
2654
2732
|
const client = deps.buckets(tunnel.port, storage);
|
|
2655
|
-
done = [
|
|
2733
|
+
done = [
|
|
2734
|
+
...await require_seeds.applyBuckets(client, storage.buckets),
|
|
2735
|
+
...await require_seeds.applyPolicies(client, storage.policies),
|
|
2736
|
+
...await require_seeds.applyLifecycles(client, storage.lifecycles)
|
|
2737
|
+
];
|
|
2656
2738
|
} finally {
|
|
2657
2739
|
await tunnel.close();
|
|
2658
2740
|
}
|
|
@@ -3342,4 +3424,4 @@ Object.defineProperty(exports, "stackPlan", {
|
|
|
3342
3424
|
}
|
|
3343
3425
|
});
|
|
3344
3426
|
|
|
3345
|
-
//# sourceMappingURL=compose-
|
|
3427
|
+
//# sourceMappingURL=compose-tZLAZZp6.cjs.map
|