@envsync-cloud/deploy-cli 0.8.8 → 0.8.9
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/index.js +43 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4334,6 +4334,7 @@ function domainMap(rootDomain) {
|
|
|
4334
4334
|
landing: rootDomain,
|
|
4335
4335
|
app: `app.${rootDomain}`,
|
|
4336
4336
|
api: `api.${rootDomain}`,
|
|
4337
|
+
manage_api: `manage-api.${rootDomain}`,
|
|
4337
4338
|
auth: `auth.${rootDomain}`,
|
|
4338
4339
|
obs: `obs.${rootDomain}`,
|
|
4339
4340
|
mail: `mail.${rootDomain}`,
|
|
@@ -4411,6 +4412,7 @@ function buildRuntimeEnv2(config, generated) {
|
|
|
4411
4412
|
ENVSYNC_LICENSE_ROOT_CA_CERT_PATH: oss ? "" : "/etc/envsync/license/root-ca.pem",
|
|
4412
4413
|
DB_AUTO_MIGRATE: "false",
|
|
4413
4414
|
PORT: `${config.services.api_port}`,
|
|
4415
|
+
MANAGEMENT_API_PORT: `${config.services.management_api_port}`,
|
|
4414
4416
|
DATABASE_HOST: "postgres",
|
|
4415
4417
|
DATABASE_PORT: "5432",
|
|
4416
4418
|
DATABASE_USER: "postgres",
|
|
@@ -4452,6 +4454,7 @@ function buildRuntimeEnv2(config, generated) {
|
|
|
4452
4454
|
OPENFGA_STORE_ID: generated.openfga.store_id,
|
|
4453
4455
|
OPENFGA_MODEL_ID: generated.openfga.model_id,
|
|
4454
4456
|
OPENFGA_DB_PASSWORD: generated.secrets.openfga_db_password,
|
|
4457
|
+
MANAGEMENT_API_URL: oss ? "" : publicHttpsUrl(config, hosts.manage_api),
|
|
4455
4458
|
CLICKSTACK_OPERATOR_EMAIL: generated.clickstack.operator_email,
|
|
4456
4459
|
CLICKSTACK_OPERATOR_PASSWORD: generated.clickstack.operator_password,
|
|
4457
4460
|
CLICKSTACK_ACCESS_KEY: generated.clickstack.access_key,
|
|
@@ -4541,6 +4544,7 @@ function renderTraefikDynamicConfig(config, generated) {
|
|
|
4541
4544
|
const activeSlot = generated.deployment.active_slot;
|
|
4542
4545
|
const apiServiceName = generated.deployment.maintenance_mode ? "envsync-api-maintenance" : "envsync-api";
|
|
4543
4546
|
const landingEnabled = !isOssConfig(config);
|
|
4547
|
+
const managementEnabled = !isOssConfig(config);
|
|
4544
4548
|
const otelAllowedOrigins = [
|
|
4545
4549
|
...landingEnabled ? publicHttpsOriginVariants(config, hosts.landing) : [],
|
|
4546
4550
|
...publicHttpsOriginVariants(config, hosts.app)
|
|
@@ -4602,6 +4606,16 @@ function renderTraefikDynamicConfig(config, generated) {
|
|
|
4602
4606
|
" loadBalancer:",
|
|
4603
4607
|
" servers:",
|
|
4604
4608
|
" - url: http://api_maintenance:8080",
|
|
4609
|
+
...managementEnabled ? [
|
|
4610
|
+
" envsync-management-api:",
|
|
4611
|
+
" loadBalancer:",
|
|
4612
|
+
" healthCheck:",
|
|
4613
|
+
" path: /health",
|
|
4614
|
+
" interval: 5s",
|
|
4615
|
+
" timeout: 3s",
|
|
4616
|
+
" servers:",
|
|
4617
|
+
` - url: http://envsync-management-api:${config.services.management_api_port}`
|
|
4618
|
+
] : [],
|
|
4605
4619
|
...landingEnabled ? [
|
|
4606
4620
|
" landing:",
|
|
4607
4621
|
" loadBalancer:",
|
|
@@ -4629,6 +4643,14 @@ function renderTraefikDynamicConfig(config, generated) {
|
|
|
4629
4643
|
" tls:",
|
|
4630
4644
|
" certResolver: letsencrypt"
|
|
4631
4645
|
] : [],
|
|
4646
|
+
...managementEnabled ? [
|
|
4647
|
+
" management-api-router:",
|
|
4648
|
+
` rule: Host(\`${hosts.manage_api}\`)`,
|
|
4649
|
+
" service: envsync-management-api",
|
|
4650
|
+
" entryPoints: [websecure]",
|
|
4651
|
+
" tls:",
|
|
4652
|
+
" certResolver: letsencrypt"
|
|
4653
|
+
] : [],
|
|
4632
4654
|
" web-router:",
|
|
4633
4655
|
` rule: Host(\`${hosts.app}\`)`,
|
|
4634
4656
|
" service: web",
|
|
@@ -4707,10 +4729,12 @@ function renderFrontendRuntimeConfig(config, generated) {
|
|
|
4707
4729
|
const hosts = domainMap(config.domain.root_domain);
|
|
4708
4730
|
const otelEndpoint = publicHttpsUrl(config, hosts.obs);
|
|
4709
4731
|
const activeReleaseVersion = generated.deployment.slots[generated.deployment.active_slot].release_version || config.release.version;
|
|
4732
|
+
const managementApiUrl = config.edition === "enterprise" ? publicHttpsUrl(config, hosts.manage_api) : "";
|
|
4710
4733
|
return `window.__ENVSYNC_RUNTIME_CONFIG__ = ${JSON.stringify({
|
|
4711
4734
|
apiBaseUrl: publicHttpsUrl(config, hosts.api),
|
|
4712
4735
|
appBaseUrl: publicHttpsUrl(config, hosts.app),
|
|
4713
4736
|
authBaseUrl: publicHttpsUrl(config, hosts.auth),
|
|
4737
|
+
managementApiUrl,
|
|
4714
4738
|
keycloakRealm: config.auth.keycloak_realm,
|
|
4715
4739
|
webClientId: config.auth.web_client_id,
|
|
4716
4740
|
apiDocsUrl: publicHttpsUrl(config, hosts.api, "/docs"),
|
|
@@ -4772,6 +4796,7 @@ function renderStack(config, runtimeEnv, generated, mode, paths) {
|
|
|
4772
4796
|
const includeRuntimeInfra = mode !== "base";
|
|
4773
4797
|
const includeAppServices = mode === "full";
|
|
4774
4798
|
const landingEnabled = !isOssConfig(config);
|
|
4799
|
+
const managementEnabled = !isOssConfig(config);
|
|
4775
4800
|
const apiLicenseVolume = landingEnabled ? "\n volumes:\n - /etc/envsync/license:/etc/envsync/license:ro" : "";
|
|
4776
4801
|
const deployment = createSteadyApiDeploymentState(config, generated);
|
|
4777
4802
|
const stackName = config.services.stack_name;
|
|
@@ -4983,6 +5008,17 @@ ${renderEnvList({
|
|
|
4983
5008
|
- source: otel_agent_conf
|
|
4984
5009
|
target: /etc/otel-agent.yaml
|
|
4985
5010
|
networks: [envsync]
|
|
5011
|
+
${includeRuntimeInfra && managementEnabled ? `
|
|
5012
|
+
|
|
5013
|
+
envsync-management-api:
|
|
5014
|
+
image: ${config.images.management_api}
|
|
5015
|
+
environment:
|
|
5016
|
+
${renderEnvList({
|
|
5017
|
+
...apiEnvironment,
|
|
5018
|
+
PORT: `${config.services.management_api_port}`
|
|
5019
|
+
})}
|
|
5020
|
+
${apiLicenseVolume}
|
|
5021
|
+
networks: [envsync]` : ""}
|
|
4986
5022
|
${includeAppServices ? `
|
|
4987
5023
|
|
|
4988
5024
|
api_maintenance:
|
|
@@ -5218,6 +5254,7 @@ var DEFAULT_SOURCE_REPO_URL = "https://github.com/EnvSync-Cloud/envsync.git";
|
|
|
5218
5254
|
var DEFAULT_ENTERPRISE_LICENSE_SERVER_URL = "https://license.envsync.cloud";
|
|
5219
5255
|
var MANAGED_VERSIONED_IMAGE_PREFIXES = {
|
|
5220
5256
|
api: "ghcr.io/envsync-cloud/envsync-api:",
|
|
5257
|
+
management_api: "ghcr.io/envsync-cloud/envsync-management-api:",
|
|
5221
5258
|
keycloak: "envsync-keycloak:",
|
|
5222
5259
|
web: "ghcr.io/envsync-cloud/envsync-web-static:",
|
|
5223
5260
|
landing: "ghcr.io/envsync-cloud/envsync-landing-static:"
|
|
@@ -5424,6 +5461,7 @@ function domainMap2(rootDomain) {
|
|
|
5424
5461
|
landing: rootDomain,
|
|
5425
5462
|
app: `app.${rootDomain}`,
|
|
5426
5463
|
api: `api.${rootDomain}`,
|
|
5464
|
+
manage_api: `manage-api.${rootDomain}`,
|
|
5427
5465
|
auth: `auth.${rootDomain}`,
|
|
5428
5466
|
obs: `obs.${rootDomain}`,
|
|
5429
5467
|
mail: `mail.${rootDomain}`,
|
|
@@ -5599,6 +5637,7 @@ function versionedImages(version) {
|
|
|
5599
5637
|
assertSemverVersion(version);
|
|
5600
5638
|
return {
|
|
5601
5639
|
api: `ghcr.io/envsync-cloud/envsync-api:${version}`,
|
|
5640
|
+
management_api: `ghcr.io/envsync-cloud/envsync-management-api:${version}`,
|
|
5602
5641
|
keycloak: `envsync-keycloak:${version}`,
|
|
5603
5642
|
web: `ghcr.io/envsync-cloud/envsync-web-static:${version}`,
|
|
5604
5643
|
landing: `ghcr.io/envsync-cloud/envsync-landing-static:${version}`
|
|
@@ -5664,6 +5703,7 @@ function normalizeConfig(raw) {
|
|
|
5664
5703
|
},
|
|
5665
5704
|
images: {
|
|
5666
5705
|
api: !raw.images?.api || isManagedVersionedImage(raw.images.api, "api") ? derivedImages.api : raw.images.api,
|
|
5706
|
+
management_api: !raw.images?.management_api || isManagedVersionedImage(raw.images.management_api, "management_api") ? derivedImages.management_api : raw.images.management_api,
|
|
5667
5707
|
keycloak: !raw.images?.keycloak || isManagedVersionedImage(raw.images.keycloak, "keycloak") ? derivedImages.keycloak : raw.images.keycloak,
|
|
5668
5708
|
web: !raw.images?.web || isManagedVersionedImage(raw.images.web, "web") ? derivedImages.web : raw.images.web,
|
|
5669
5709
|
landing: !raw.images?.landing || isManagedVersionedImage(raw.images.landing, "landing") ? derivedImages.landing : raw.images.landing,
|
|
@@ -5674,6 +5714,7 @@ function normalizeConfig(raw) {
|
|
|
5674
5714
|
services: {
|
|
5675
5715
|
stack_name: stackName,
|
|
5676
5716
|
api_port: requireDefined(raw.services?.api_port, "services.api_port"),
|
|
5717
|
+
management_api_port: raw.services?.management_api_port ?? 4001,
|
|
5677
5718
|
public_http_port: raw.services?.public_http_port ?? 80,
|
|
5678
5719
|
public_https_port: raw.services?.public_https_port ?? 443,
|
|
5679
5720
|
clickstack_ui_port: requireDefined(raw.services?.clickstack_ui_port, "services.clickstack_ui_port"),
|
|
@@ -7148,6 +7189,7 @@ async function cmdSetup() {
|
|
|
7148
7189
|
domain: { root_domain: rootDomain, acme_email: acmeEmail },
|
|
7149
7190
|
images: {
|
|
7150
7191
|
api: releaseImages.api,
|
|
7192
|
+
management_api: releaseImages.management_api,
|
|
7151
7193
|
keycloak: releaseImages.keycloak,
|
|
7152
7194
|
web: releaseImages.web,
|
|
7153
7195
|
landing: releaseImages.landing,
|
|
@@ -7158,6 +7200,7 @@ async function cmdSetup() {
|
|
|
7158
7200
|
services: {
|
|
7159
7201
|
stack_name: "envsync",
|
|
7160
7202
|
api_port: 4e3,
|
|
7203
|
+
management_api_port: 4001,
|
|
7161
7204
|
public_http_port: 80,
|
|
7162
7205
|
public_https_port: 443,
|
|
7163
7206
|
clickstack_ui_port: 8080,
|