@envsync-cloud/deploy 0.20.6 → 0.20.8
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/cli.js +32 -6
- package/dist/index.js +33 -7
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -293,6 +293,7 @@ function domainMap(rootDomain) {
|
|
|
293
293
|
api: `api.${rootDomain}`,
|
|
294
294
|
auth: `auth.${rootDomain}`,
|
|
295
295
|
obs: `obs.${rootDomain}`,
|
|
296
|
+
track: `t.${rootDomain}`,
|
|
296
297
|
mail: `mail.${rootDomain}`,
|
|
297
298
|
s3: `s3.${rootDomain}`,
|
|
298
299
|
s3Console: `console.s3.${rootDomain}`
|
|
@@ -438,6 +439,9 @@ function buildRuntimeEnv2(config, generated, options) {
|
|
|
438
439
|
OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-agent:4318",
|
|
439
440
|
OTEL_SERVICE_NAME: "envsync-api",
|
|
440
441
|
OTEL_SDK_DISABLED: "false",
|
|
442
|
+
POSTHOG_KEY: config.analytics?.posthog_key || process.env.POSTHOG_KEY || "",
|
|
443
|
+
POSTHOG_HOST: config.analytics?.posthog_host || process.env.POSTHOG_HOST || "https://eu.i.posthog.com",
|
|
444
|
+
ENVSYNC_POSTHOG_DISABLED: config.analytics?.disabled ? "true" : process.env.ENVSYNC_POSTHOG_DISABLED || "false",
|
|
441
445
|
CLICKSTACK_URL: publicHttpsUrl(config, hosts.obs),
|
|
442
446
|
KEYCLOAK_IMAGE_TAG: keycloakImageTag(config.images.keycloak),
|
|
443
447
|
// Is this too hacky? We go Shawn way.
|
|
@@ -639,6 +643,12 @@ function renderTraefikDynamicConfig(config, generated) {
|
|
|
639
643
|
` service: ${apiServiceName}`,
|
|
640
644
|
" entryPoints: [websecure]",
|
|
641
645
|
" tls:",
|
|
646
|
+
" certResolver: letsencrypt",
|
|
647
|
+
" track-router:",
|
|
648
|
+
` rule: Host(\`${hosts.track}\`)`,
|
|
649
|
+
` service: ${apiServiceName}`,
|
|
650
|
+
" entryPoints: [websecure]",
|
|
651
|
+
" tls:",
|
|
642
652
|
" certResolver: letsencrypt"
|
|
643
653
|
].join("\n") + "\n";
|
|
644
654
|
}
|
|
@@ -682,7 +692,8 @@ function renderApiMaintenanceConf() {
|
|
|
682
692
|
}
|
|
683
693
|
function renderFrontendRuntimeConfig(config, generated) {
|
|
684
694
|
const hosts = domainMap(config.domain.root_domain);
|
|
685
|
-
const otelEndpoint = publicHttpsUrl(config, hosts.obs);
|
|
695
|
+
const otelEndpoint = publicHttpsUrl(config, hosts.track, "/obs");
|
|
696
|
+
const posthogProxy = publicHttpsUrl(config, hosts.track, "/ph");
|
|
686
697
|
const managementApiEnabled = !isOssConfig(config);
|
|
687
698
|
const activeReleaseVersion = generated.deployment.slots[generated.deployment.active_slot].release_version || config.release.version;
|
|
688
699
|
const apiBaseUrl = publicHttpsUrl(config, hosts.api);
|
|
@@ -709,6 +720,9 @@ function renderFrontendRuntimeConfig(config, generated) {
|
|
|
709
720
|
hyperdxUrl: otelEndpoint,
|
|
710
721
|
hyperdxDisabled: generated.clickstack.browser_api_key.length === 0,
|
|
711
722
|
hyperdxAdvancedNetworkCapture: false,
|
|
723
|
+
posthogKey: config.analytics?.posthog_key || process.env.POSTHOG_KEY || void 0,
|
|
724
|
+
posthogHost: config.analytics?.posthog_host || process.env.POSTHOG_HOST || posthogProxy,
|
|
725
|
+
posthogDisabled: Boolean(config.analytics?.disabled) || process.env.ENVSYNC_POSTHOG_DISABLED === "true",
|
|
712
726
|
releaseVersion: activeReleaseVersion,
|
|
713
727
|
activeApiSlot: generated.deployment.active_slot
|
|
714
728
|
}, null, 2)};
|
|
@@ -1070,7 +1084,7 @@ ${renderEnvList({
|
|
|
1070
1084
|
networks: [envsync]
|
|
1071
1085
|
${includeRuntimeInfra ? `
|
|
1072
1086
|
minikms:
|
|
1073
|
-
image: ghcr.io/envsync-cloud/minikms:sha-
|
|
1087
|
+
image: ghcr.io/envsync-cloud/minikms:sha-9ffbf53
|
|
1074
1088
|
environment:
|
|
1075
1089
|
${renderEnvList({
|
|
1076
1090
|
MINIKMS_ROOT_KEY: runtimeEnv.MINIKMS_ROOT_KEY,
|
|
@@ -2073,6 +2087,7 @@ function domainMap2(rootDomain) {
|
|
|
2073
2087
|
api: `api.${rootDomain}`,
|
|
2074
2088
|
auth: `auth.${rootDomain}`,
|
|
2075
2089
|
obs: `obs.${rootDomain}`,
|
|
2090
|
+
track: `t.${rootDomain}`,
|
|
2076
2091
|
mail: `mail.${rootDomain}`,
|
|
2077
2092
|
s3: `s3.${rootDomain}`,
|
|
2078
2093
|
s3Console: `console.s3.${rootDomain}`
|
|
@@ -2428,7 +2443,12 @@ function normalizeConfig(raw) {
|
|
|
2428
2443
|
} : raw.edition === "oss" ? void 0 : {
|
|
2429
2444
|
install_fingerprint: deterministicInstallFingerprint(rootDomain, stackName),
|
|
2430
2445
|
certificate_validity_days: 1095
|
|
2431
|
-
}
|
|
2446
|
+
},
|
|
2447
|
+
analytics: raw.analytics ? {
|
|
2448
|
+
posthog_key: raw.analytics.posthog_key,
|
|
2449
|
+
posthog_host: raw.analytics.posthog_host,
|
|
2450
|
+
disabled: raw.analytics.disabled
|
|
2451
|
+
} : void 0
|
|
2432
2452
|
};
|
|
2433
2453
|
}
|
|
2434
2454
|
function emptyGeneratedState() {
|
|
@@ -3051,6 +3071,11 @@ function runOpenFgaMigrate(config, runtimeEnv) {
|
|
|
3051
3071
|
]);
|
|
3052
3072
|
logSuccess("OpenFGA datastore migrations completed");
|
|
3053
3073
|
}
|
|
3074
|
+
var MINIKMS_MIGRATE_SQL = [
|
|
3075
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/001_initial_schema.sql",
|
|
3076
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/002_vault_storage.sql",
|
|
3077
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/003_escrow_recovery.sql"
|
|
3078
|
+
].join(" && ");
|
|
3054
3079
|
function runMiniKmsMigrate(config, runtimeEnv) {
|
|
3055
3080
|
logStep("Running miniKMS datastore migrations");
|
|
3056
3081
|
if (currentOptions.dryRun) {
|
|
@@ -3067,7 +3092,7 @@ function runMiniKmsMigrate(config, runtimeEnv) {
|
|
|
3067
3092
|
"postgres:17",
|
|
3068
3093
|
"sh",
|
|
3069
3094
|
"-lc",
|
|
3070
|
-
|
|
3095
|
+
MINIKMS_MIGRATE_SQL
|
|
3071
3096
|
]);
|
|
3072
3097
|
return;
|
|
3073
3098
|
}
|
|
@@ -3083,7 +3108,7 @@ function runMiniKmsMigrate(config, runtimeEnv) {
|
|
|
3083
3108
|
"postgres:17",
|
|
3084
3109
|
"sh",
|
|
3085
3110
|
"-lc",
|
|
3086
|
-
|
|
3111
|
+
MINIKMS_MIGRATE_SQL
|
|
3087
3112
|
]);
|
|
3088
3113
|
logSuccess("miniKMS datastore migrations completed");
|
|
3089
3114
|
}
|
|
@@ -4566,7 +4591,8 @@ async function cmdHealth(asJson) {
|
|
|
4566
4591
|
app: publicHttpsUrl2(config, hosts.app),
|
|
4567
4592
|
api: publicHttpsUrl2(config, hosts.api, "/health"),
|
|
4568
4593
|
auth: publicHttpsUrl2(config, hosts.auth, `/realms/${config.auth.keycloak_realm}/.well-known/openid-configuration`),
|
|
4569
|
-
obs: publicHttpsUrl2(config, hosts.obs)
|
|
4594
|
+
obs: publicHttpsUrl2(config, hosts.obs),
|
|
4595
|
+
track: publicHttpsUrl2(config, hosts.track)
|
|
4570
4596
|
},
|
|
4571
4597
|
frontend_runtime: {
|
|
4572
4598
|
web: {
|
package/dist/index.js
CHANGED
|
@@ -294,6 +294,7 @@ function domainMap(rootDomain) {
|
|
|
294
294
|
api: `api.${rootDomain}`,
|
|
295
295
|
auth: `auth.${rootDomain}`,
|
|
296
296
|
obs: `obs.${rootDomain}`,
|
|
297
|
+
track: `t.${rootDomain}`,
|
|
297
298
|
mail: `mail.${rootDomain}`,
|
|
298
299
|
s3: `s3.${rootDomain}`,
|
|
299
300
|
s3Console: `console.s3.${rootDomain}`
|
|
@@ -439,6 +440,9 @@ function buildRuntimeEnv2(config, generated, options) {
|
|
|
439
440
|
OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-agent:4318",
|
|
440
441
|
OTEL_SERVICE_NAME: "envsync-api",
|
|
441
442
|
OTEL_SDK_DISABLED: "false",
|
|
443
|
+
POSTHOG_KEY: config.analytics?.posthog_key || process.env.POSTHOG_KEY || "",
|
|
444
|
+
POSTHOG_HOST: config.analytics?.posthog_host || process.env.POSTHOG_HOST || "https://eu.i.posthog.com",
|
|
445
|
+
ENVSYNC_POSTHOG_DISABLED: config.analytics?.disabled ? "true" : process.env.ENVSYNC_POSTHOG_DISABLED || "false",
|
|
442
446
|
CLICKSTACK_URL: publicHttpsUrl(config, hosts.obs),
|
|
443
447
|
KEYCLOAK_IMAGE_TAG: keycloakImageTag(config.images.keycloak),
|
|
444
448
|
// Is this too hacky? We go Shawn way.
|
|
@@ -640,6 +644,12 @@ function renderTraefikDynamicConfig(config, generated) {
|
|
|
640
644
|
` service: ${apiServiceName}`,
|
|
641
645
|
" entryPoints: [websecure]",
|
|
642
646
|
" tls:",
|
|
647
|
+
" certResolver: letsencrypt",
|
|
648
|
+
" track-router:",
|
|
649
|
+
` rule: Host(\`${hosts.track}\`)`,
|
|
650
|
+
` service: ${apiServiceName}`,
|
|
651
|
+
" entryPoints: [websecure]",
|
|
652
|
+
" tls:",
|
|
643
653
|
" certResolver: letsencrypt"
|
|
644
654
|
].join("\n") + "\n";
|
|
645
655
|
}
|
|
@@ -683,7 +693,8 @@ function renderApiMaintenanceConf() {
|
|
|
683
693
|
}
|
|
684
694
|
function renderFrontendRuntimeConfig(config, generated) {
|
|
685
695
|
const hosts = domainMap(config.domain.root_domain);
|
|
686
|
-
const otelEndpoint = publicHttpsUrl(config, hosts.obs);
|
|
696
|
+
const otelEndpoint = publicHttpsUrl(config, hosts.track, "/obs");
|
|
697
|
+
const posthogProxy = publicHttpsUrl(config, hosts.track, "/ph");
|
|
687
698
|
const managementApiEnabled = !isOssConfig(config);
|
|
688
699
|
const activeReleaseVersion = generated.deployment.slots[generated.deployment.active_slot].release_version || config.release.version;
|
|
689
700
|
const apiBaseUrl = publicHttpsUrl(config, hosts.api);
|
|
@@ -710,6 +721,9 @@ function renderFrontendRuntimeConfig(config, generated) {
|
|
|
710
721
|
hyperdxUrl: otelEndpoint,
|
|
711
722
|
hyperdxDisabled: generated.clickstack.browser_api_key.length === 0,
|
|
712
723
|
hyperdxAdvancedNetworkCapture: false,
|
|
724
|
+
posthogKey: config.analytics?.posthog_key || process.env.POSTHOG_KEY || void 0,
|
|
725
|
+
posthogHost: config.analytics?.posthog_host || process.env.POSTHOG_HOST || posthogProxy,
|
|
726
|
+
posthogDisabled: Boolean(config.analytics?.disabled) || process.env.ENVSYNC_POSTHOG_DISABLED === "true",
|
|
713
727
|
releaseVersion: activeReleaseVersion,
|
|
714
728
|
activeApiSlot: generated.deployment.active_slot
|
|
715
729
|
}, null, 2)};
|
|
@@ -1067,7 +1081,7 @@ ${renderEnvList({
|
|
|
1067
1081
|
networks: [envsync]
|
|
1068
1082
|
${includeRuntimeInfra ? `
|
|
1069
1083
|
minikms:
|
|
1070
|
-
image: ghcr.io/envsync-cloud/minikms:sha-
|
|
1084
|
+
image: ghcr.io/envsync-cloud/minikms:sha-9ffbf53
|
|
1071
1085
|
environment:
|
|
1072
1086
|
${renderEnvList({
|
|
1073
1087
|
MINIKMS_ROOT_KEY: runtimeEnv.MINIKMS_ROOT_KEY,
|
|
@@ -1935,6 +1949,7 @@ function domainMap2(rootDomain) {
|
|
|
1935
1949
|
api: `api.${rootDomain}`,
|
|
1936
1950
|
auth: `auth.${rootDomain}`,
|
|
1937
1951
|
obs: `obs.${rootDomain}`,
|
|
1952
|
+
track: `t.${rootDomain}`,
|
|
1938
1953
|
mail: `mail.${rootDomain}`,
|
|
1939
1954
|
s3: `s3.${rootDomain}`,
|
|
1940
1955
|
s3Console: `console.s3.${rootDomain}`
|
|
@@ -2290,7 +2305,12 @@ function normalizeConfig(raw) {
|
|
|
2290
2305
|
} : raw.edition === "oss" ? void 0 : {
|
|
2291
2306
|
install_fingerprint: deterministicInstallFingerprint(rootDomain, stackName),
|
|
2292
2307
|
certificate_validity_days: 1095
|
|
2293
|
-
}
|
|
2308
|
+
},
|
|
2309
|
+
analytics: raw.analytics ? {
|
|
2310
|
+
posthog_key: raw.analytics.posthog_key,
|
|
2311
|
+
posthog_host: raw.analytics.posthog_host,
|
|
2312
|
+
disabled: raw.analytics.disabled
|
|
2313
|
+
} : void 0
|
|
2294
2314
|
};
|
|
2295
2315
|
}
|
|
2296
2316
|
function emptyGeneratedState() {
|
|
@@ -2929,7 +2949,7 @@ function runMiniKmsMigrate(config, runtimeEnv) {
|
|
|
2929
2949
|
"postgres:17",
|
|
2930
2950
|
"sh",
|
|
2931
2951
|
"-lc",
|
|
2932
|
-
|
|
2952
|
+
MINIKMS_MIGRATE_SQL
|
|
2933
2953
|
]);
|
|
2934
2954
|
return;
|
|
2935
2955
|
}
|
|
@@ -2945,7 +2965,7 @@ function runMiniKmsMigrate(config, runtimeEnv) {
|
|
|
2945
2965
|
"postgres:17",
|
|
2946
2966
|
"sh",
|
|
2947
2967
|
"-lc",
|
|
2948
|
-
|
|
2968
|
+
MINIKMS_MIGRATE_SQL
|
|
2949
2969
|
]);
|
|
2950
2970
|
logSuccess("miniKMS datastore migrations completed");
|
|
2951
2971
|
}
|
|
@@ -4428,7 +4448,8 @@ async function cmdHealth(asJson) {
|
|
|
4428
4448
|
app: publicHttpsUrl2(config, hosts.app),
|
|
4429
4449
|
api: publicHttpsUrl2(config, hosts.api, "/health"),
|
|
4430
4450
|
auth: publicHttpsUrl2(config, hosts.auth, `/realms/${config.auth.keycloak_realm}/.well-known/openid-configuration`),
|
|
4431
|
-
obs: publicHttpsUrl2(config, hosts.obs)
|
|
4451
|
+
obs: publicHttpsUrl2(config, hosts.obs),
|
|
4452
|
+
track: publicHttpsUrl2(config, hosts.track)
|
|
4432
4453
|
},
|
|
4433
4454
|
frontend_runtime: {
|
|
4434
4455
|
web: {
|
|
@@ -5134,7 +5155,7 @@ async function main() {
|
|
|
5134
5155
|
process.exit(1);
|
|
5135
5156
|
}
|
|
5136
5157
|
}
|
|
5137
|
-
var NETUTILS_EXPOSE_ALL_START_PORT, NETUTILS_EXPOSE_ALL_PORTS, HOST_ROOT, ETC_ROOT, TRAEFIK_STATE_ROOT, DEPLOY_ROOT, RELEASES_ROOT, BACKUPS_ROOT, REPO_ROOT, DEPLOY_ENV, DEPLOY_YAML, WIREGUARD_ROOT, LICENSE_ROOT, SETUP_TOKEN_FILE, LICENSE_BUNDLE_FILE, LICENSE_CERT_FILE, LICENSE_KEY_FILE, LICENSE_ROOT_CA_FILE, LICENSE_FILE_MODE, LICENSE_DIR_MODE, VERSIONS_LOCK, STACK_FILE, BOOTSTRAP_BASE_STACK_FILE, BOOTSTRAP_STACK_FILE, TRAEFIK_DYNAMIC_FILE, KEYCLOAK_REALM_FILE, NGINX_WEB_CONF, NGINX_LANDING_CONF, NGINX_API_MAINTENANCE_CONF, NGINX_VPN_CONF, OTEL_AGENT_CONF, CLICKSTACK_CLICKHOUSE_CONF, INTERNAL_CONFIG_JSON, UPGRADE_BACKUPS_ROOT, WIREGUARD_STATE_FILE, WIREGUARD_PRIVATE_KEY_FILE, WIREGUARD_PUBLIC_KEY_FILE, WIREGUARD_CONFIG_FILE, DEPLOY_RENDER_PATHS, REMOVE_TARGETS, REMOVE_CONFIRMATION_TOKEN, STACK_VOLUMES, REQUIRED_BOOTSTRAP_ENV_KEYS, REQUIRED_CLICKSTACK_SAVED_SEARCHES, REQUIRED_CLICKSTACK_TAGS, CLICKSTACK_SELFHOST_TEAM_NAME, SEMVER_VERSION_RE, currentOptions, DEFAULT_SOURCE_REPO_URL, DEFAULT_ENTERPRISE_LICENSE_SERVER_URL, MANAGED_VERSIONED_IMAGE_PREFIXES;
|
|
5158
|
+
var NETUTILS_EXPOSE_ALL_START_PORT, NETUTILS_EXPOSE_ALL_PORTS, HOST_ROOT, ETC_ROOT, TRAEFIK_STATE_ROOT, DEPLOY_ROOT, RELEASES_ROOT, BACKUPS_ROOT, REPO_ROOT, DEPLOY_ENV, DEPLOY_YAML, WIREGUARD_ROOT, LICENSE_ROOT, SETUP_TOKEN_FILE, LICENSE_BUNDLE_FILE, LICENSE_CERT_FILE, LICENSE_KEY_FILE, LICENSE_ROOT_CA_FILE, LICENSE_FILE_MODE, LICENSE_DIR_MODE, VERSIONS_LOCK, STACK_FILE, BOOTSTRAP_BASE_STACK_FILE, BOOTSTRAP_STACK_FILE, TRAEFIK_DYNAMIC_FILE, KEYCLOAK_REALM_FILE, NGINX_WEB_CONF, NGINX_LANDING_CONF, NGINX_API_MAINTENANCE_CONF, NGINX_VPN_CONF, OTEL_AGENT_CONF, CLICKSTACK_CLICKHOUSE_CONF, INTERNAL_CONFIG_JSON, UPGRADE_BACKUPS_ROOT, WIREGUARD_STATE_FILE, WIREGUARD_PRIVATE_KEY_FILE, WIREGUARD_PUBLIC_KEY_FILE, WIREGUARD_CONFIG_FILE, DEPLOY_RENDER_PATHS, REMOVE_TARGETS, REMOVE_CONFIRMATION_TOKEN, STACK_VOLUMES, REQUIRED_BOOTSTRAP_ENV_KEYS, REQUIRED_CLICKSTACK_SAVED_SEARCHES, REQUIRED_CLICKSTACK_TAGS, CLICKSTACK_SELFHOST_TEAM_NAME, SEMVER_VERSION_RE, currentOptions, DEFAULT_SOURCE_REPO_URL, DEFAULT_ENTERPRISE_LICENSE_SERVER_URL, MANAGED_VERSIONED_IMAGE_PREFIXES, MINIKMS_MIGRATE_SQL;
|
|
5138
5159
|
var init_cli = __esm({
|
|
5139
5160
|
"src/cli.ts"() {
|
|
5140
5161
|
"use strict";
|
|
@@ -5306,6 +5327,11 @@ var init_cli = __esm({
|
|
|
5306
5327
|
web_oss: "ghcr.io/envsync-cloud/envsync-web-oss-static:",
|
|
5307
5328
|
landing: "ghcr.io/envsync-cloud/envsync-landing-static:"
|
|
5308
5329
|
};
|
|
5330
|
+
MINIKMS_MIGRATE_SQL = [
|
|
5331
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/001_initial_schema.sql",
|
|
5332
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/002_vault_storage.sql",
|
|
5333
|
+
"psql -h minikms_db -U postgres -d minikms -f /migrations/003_escrow_recovery.sql"
|
|
5334
|
+
].join(" && ");
|
|
5309
5335
|
main().catch((err) => {
|
|
5310
5336
|
console.error(err instanceof Error ? err.message : err);
|
|
5311
5337
|
process.exit(1);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@envsync-cloud/deploy",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.8",
|
|
4
4
|
"description": "OSS CLI for self-hosted EnvSync deployment on Docker Swarm",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"zod": "^3.25.76"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@envsync-cloud/deploy-core": "0.20.
|
|
49
|
+
"@envsync-cloud/deploy-core": "0.20.8",
|
|
50
50
|
"tsup": "^8.5.0",
|
|
51
51
|
"typescript": "^5.9.2"
|
|
52
52
|
},
|