@catladder/cli 0.0.0-main-2e888690 → 0.0.0-main-8dbb6c76
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/bundles/catenv/index.js +51 -29
- package/dist/bundles/cli/index.js +51 -29
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/context/getEnvironmentVariables.js +15 -7
- package/dist/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/index.js +2 -2
- package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/utils/database.d.ts +6 -5
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js +20 -15
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js.map +1 -1
- package/dist/pipeline/src/deploy/index.d.ts +2 -2
- package/dist/pipeline/src/variables/VariableValueContainingReferences.d.ts +6 -0
- package/dist/pipeline/src/variables/VariableValueContainingReferences.js +8 -0
- package/dist/pipeline/src/variables/VariableValueContainingReferences.js.map +1 -1
- package/dist/pipeline/src/variables/resolveAllReferences.d.ts +1 -2
- package/dist/pipeline/src/variables/resolveAllReferences.js +3 -2
- package/dist/pipeline/src/variables/resolveAllReferences.js.map +1 -1
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.d.ts +1 -4
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.js +2 -2
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2824,7 +2824,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
2824
2824
|
value: true
|
|
2825
2825
|
}));
|
|
2826
2826
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
2827
|
-
exports.PIPELINE_IMAGE_TAG = "main-
|
|
2827
|
+
exports.PIPELINE_IMAGE_TAG = "main-8dbb6c76" || 0;
|
|
2828
2828
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
2829
2829
|
|
|
2830
2830
|
/***/ }),
|
|
@@ -3279,6 +3279,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
3279
3279
|
};
|
|
3280
3280
|
} else {
|
|
3281
3281
|
const additionalEnvVars = deployConfigRaw ? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext) : {};
|
|
3282
|
+
// deploy types provide HOSTNAME_INTERNAL as a plain string or bash
|
|
3283
|
+
// expression (never containing references)
|
|
3282
3284
|
const HOSTNAME_INTERNAL = (_b = additionalEnvVars.HOSTNAME_INTERNAL) !== null && _b !== void 0 ? _b : "unknown-host.example.com";
|
|
3283
3285
|
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c : HOSTNAME_INTERNAL;
|
|
3284
3286
|
url = (0, BashExpression_1.joinBashExpressions)(["https://", host]);
|
|
@@ -3299,7 +3301,17 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
3299
3301
|
const publicEnvVarsUnresolved = Object.fromEntries(Object.entries(publicEnvVarsRawSanitized).map(([key, value]) => [key, (0, VariableValueContainingReferences_1.createVariableValueContainingReferencesFromString)(value, {
|
|
3300
3302
|
componentName: ctx.componentName
|
|
3301
3303
|
})]));
|
|
3302
|
-
|
|
3304
|
+
// predefined variables may contain references too (e.g. the embedded
|
|
3305
|
+
// database connection string references the component's own DB_* vars), so
|
|
3306
|
+
// we resolve references over the merged map. This way public var overrides
|
|
3307
|
+
// (like DB_PASSWORD: "${otherComponent:DB_PASSWORD}") are picked up by the
|
|
3308
|
+
// predefined variables that reference them
|
|
3309
|
+
const mergedEnvVars = {
|
|
3310
|
+
...predefinedVariables,
|
|
3311
|
+
...secretEnvVars,
|
|
3312
|
+
...publicEnvVarsUnresolved
|
|
3313
|
+
};
|
|
3314
|
+
const resolvedEnvVars = ((_h = options.shouldResolveReferences) !== null && _h !== void 0 ? _h : true) ? await (0, resolveAllReferences_1.resolveAllReferences)(mergedEnvVars, async otherComponentName => {
|
|
3303
3315
|
const {
|
|
3304
3316
|
envVars: otherEnvVars
|
|
3305
3317
|
} = await (0, exports.getEnvironmentVariables)({
|
|
@@ -3309,12 +3321,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
3309
3321
|
shouldResolveReferences: false // we already do this here with replaceAllReferences recursivly until re replaced all
|
|
3310
3322
|
});
|
|
3311
3323
|
return otherEnvVars;
|
|
3312
|
-
}) :
|
|
3313
|
-
const envVars = addIndexVar(
|
|
3314
|
-
...predefinedVariables,
|
|
3315
|
-
...secretEnvVars,
|
|
3316
|
-
...publicEnvVars
|
|
3317
|
-
});
|
|
3324
|
+
}) : mergedEnvVars;
|
|
3325
|
+
const envVars = addIndexVar(resolvedEnvVars);
|
|
3318
3326
|
return {
|
|
3319
3327
|
envVars,
|
|
3320
3328
|
secretEnvVarKeys,
|
|
@@ -4700,8 +4708,8 @@ const getCloudSqlVariables = ({
|
|
|
4700
4708
|
};
|
|
4701
4709
|
return {
|
|
4702
4710
|
...dbVars,
|
|
4703
|
-
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
|
|
4704
|
-
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE)
|
|
4711
|
+
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars, componentName).concat(additionalQueryParamsString),
|
|
4712
|
+
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE, componentName)
|
|
4705
4713
|
};
|
|
4706
4714
|
}
|
|
4707
4715
|
return {};
|
|
@@ -4837,6 +4845,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
4837
4845
|
exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
4838
4846
|
const bash_1 = __nccwpck_require__(8016);
|
|
4839
4847
|
const gitlab_1 = __nccwpck_require__(3468);
|
|
4848
|
+
const VariableValueContainingReferences_1 = __nccwpck_require__(4396);
|
|
4840
4849
|
const getDatabaseDeleteScript = (context, deployConfig) => {
|
|
4841
4850
|
if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
|
|
4842
4851
|
throw new Error("not possible");
|
|
@@ -4867,35 +4876,39 @@ const getDatabaseCreateScript = (context, deployConfig) => {
|
|
|
4867
4876
|
};
|
|
4868
4877
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
4869
4878
|
exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
|
|
4870
|
-
const getVariableOrValue = (key,
|
|
4871
|
-
|
|
4879
|
+
const getVariableOrValue = (key, mode, componentName) => {
|
|
4880
|
+
// in embedded mode we reference the component's own env var, which gets
|
|
4881
|
+
// resolved to its final value (including vars.public overrides) after all
|
|
4882
|
+
// env vars have been merged
|
|
4883
|
+
return mode === "legacy" ? `$${key}` : new VariableValueContainingReferences_1.VariableReference(componentName, key);
|
|
4872
4884
|
};
|
|
4873
|
-
const
|
|
4874
|
-
|
|
4875
|
-
|
|
4885
|
+
const joinDbUrlParts = (parts, mode) => mode === "legacy" ? (0, bash_1.joinBashExpressions)(parts) : new VariableValueContainingReferences_1.VariableValueContainingReferences(parts);
|
|
4886
|
+
const getDatabaseJdbcUrl = (variables, mode, componentName) => {
|
|
4887
|
+
const parts = ["jdbc:postgresql:///", getVariableOrValue("DB_NAME", mode, componentName), "?cloudSqlInstance=", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName), "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=", getVariableOrValue("DB_USER", mode, componentName), "&password=", getVariableOrValue("DB_PASSWORD", mode, componentName)];
|
|
4888
|
+
return joinDbUrlParts(parts, mode);
|
|
4876
4889
|
};
|
|
4877
4890
|
exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
|
|
4878
|
-
const getRailsDatabaseConnectionString = (variables, mode) => {
|
|
4879
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
4880
|
-
return (
|
|
4891
|
+
const getRailsDatabaseConnectionString = (variables, mode, componentName) => {
|
|
4892
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@", encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`), "/", getVariableOrValue("DB_NAME", mode, componentName), "?"];
|
|
4893
|
+
return joinDbUrlParts(parts, mode);
|
|
4881
4894
|
};
|
|
4882
4895
|
exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
|
|
4883
|
-
const getPrismaDatabaseConnectionString = (variables, mode) => {
|
|
4884
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
4885
|
-
return (
|
|
4896
|
+
const getPrismaDatabaseConnectionString = (variables, mode, componentName) => {
|
|
4897
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@localhost/", getVariableOrValue("DB_NAME", mode, componentName), "?host=/cloudsql/", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName)];
|
|
4898
|
+
return joinDbUrlParts(parts, mode);
|
|
4886
4899
|
};
|
|
4887
4900
|
exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
|
|
4888
|
-
const getDatabaseConnectionString = (config, variables) => {
|
|
4901
|
+
const getDatabaseConnectionString = (config, variables, componentName) => {
|
|
4889
4902
|
var _a;
|
|
4890
4903
|
const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
|
|
4891
4904
|
switch (config.dbConnectionStringFormat) {
|
|
4892
4905
|
case "jdbc":
|
|
4893
|
-
return (0, exports.getDatabaseJdbcUrl)(variables, mode);
|
|
4906
|
+
return (0, exports.getDatabaseJdbcUrl)(variables, mode, componentName);
|
|
4894
4907
|
case "rails":
|
|
4895
|
-
return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
|
|
4908
|
+
return (0, exports.getRailsDatabaseConnectionString)(variables, mode, componentName);
|
|
4896
4909
|
default:
|
|
4897
4910
|
// prisma
|
|
4898
|
-
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
|
|
4911
|
+
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode, componentName);
|
|
4899
4912
|
}
|
|
4900
4913
|
};
|
|
4901
4914
|
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
@@ -7948,6 +7961,14 @@ class VariableValueContainingReferences {
|
|
|
7948
7961
|
constructor(parts) {
|
|
7949
7962
|
this.parts = (Array.isArray(parts) ? parts : [parts]).flatMap(part => part instanceof VariableValueContainingReferences ? part.parts : part === "" ? [] : [part]);
|
|
7950
7963
|
}
|
|
7964
|
+
/**
|
|
7965
|
+
* concats values to this one and returns a new VariableValueContainingReferences.
|
|
7966
|
+
* mirrors String.prototype.concat / BashExpression.concat so a VariableValue
|
|
7967
|
+
* can be extended regardless of its concrete type
|
|
7968
|
+
*/
|
|
7969
|
+
concat(...values) {
|
|
7970
|
+
return new VariableValueContainingReferences([...this.parts, ...values]);
|
|
7971
|
+
}
|
|
7951
7972
|
toString(options = {
|
|
7952
7973
|
quotes: false
|
|
7953
7974
|
}) {
|
|
@@ -7995,16 +8016,17 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
7995
8016
|
exports.resolveAllReferences = void 0;
|
|
7996
8017
|
const VariableValueContainingReferences_1 = __nccwpck_require__(4396);
|
|
7997
8018
|
const resolveAllReferencesOnce_1 = __nccwpck_require__(8843);
|
|
8019
|
+
const hasUnresolvedReferences = value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences && value.parts.some(part => part instanceof VariableValueContainingReferences_1.VariableReference);
|
|
7998
8020
|
const resolveAllReferences = async (values, getEnvVars) => {
|
|
7999
8021
|
// replace until there aren't any references left
|
|
8000
8022
|
let result = values;
|
|
8001
8023
|
let i = 0;
|
|
8002
|
-
while (Object.values(result).some(
|
|
8024
|
+
while (Object.values(result).some(hasUnresolvedReferences)) {
|
|
8003
8025
|
const replaced = await (0, resolveAllReferencesOnce_1.resolveAllReferencesOnce)(result, getEnvVars);
|
|
8004
8026
|
result = replaced;
|
|
8005
8027
|
i++;
|
|
8006
8028
|
if (i > 1000) {
|
|
8007
|
-
const unresolved = Object.entries(result).filter(([key, value]) => value
|
|
8029
|
+
const unresolved = Object.entries(result).filter(([key, value]) => hasUnresolvedReferences(value));
|
|
8008
8030
|
throw new Error("Infinite loop detected in these variables: " + unresolved.map(([key, value]) => `${key} (last reference: ${value.parts.find(part => part instanceof VariableValueContainingReferences_1.VariableReference)})`).join(", "));
|
|
8009
8031
|
}
|
|
8010
8032
|
}
|
|
@@ -8027,10 +8049,10 @@ exports.resolveAllReferencesOnce = void 0;
|
|
|
8027
8049
|
const VariableValueContainingReferences_1 = __nccwpck_require__(4396);
|
|
8028
8050
|
const resolveReferencesOnce_1 = __nccwpck_require__(6080);
|
|
8029
8051
|
const resolveAllReferencesOnce = async (values, getEnvVars) => {
|
|
8030
|
-
const allReferences = Object.values(values).flatMap(value => value
|
|
8052
|
+
const allReferences = Object.values(values).flatMap(value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? value.parts.filter(part => part instanceof VariableValueContainingReferences_1.VariableReference) : []);
|
|
8031
8053
|
const allComponentsUnique = Array.from(new Set(allReferences.map(reference => reference.componentName)));
|
|
8032
8054
|
const allEnvVarsInComponents = Object.fromEntries(await Promise.all(allComponentsUnique.map(async componentName => [componentName, await getEnvVars(componentName)])));
|
|
8033
|
-
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value
|
|
8055
|
+
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? (0, resolveReferencesOnce_1.resolveReferencesOnce)(value, ({
|
|
8034
8056
|
componentName,
|
|
8035
8057
|
variableName
|
|
8036
8058
|
}) => {
|
|
@@ -7725,7 +7725,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
7725
7725
|
value: true
|
|
7726
7726
|
}));
|
|
7727
7727
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
7728
|
-
exports.PIPELINE_IMAGE_TAG = "main-
|
|
7728
|
+
exports.PIPELINE_IMAGE_TAG = "main-8dbb6c76" || 0;
|
|
7729
7729
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
7730
7730
|
|
|
7731
7731
|
/***/ }),
|
|
@@ -8180,6 +8180,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
8180
8180
|
};
|
|
8181
8181
|
} else {
|
|
8182
8182
|
const additionalEnvVars = deployConfigRaw ? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext) : {};
|
|
8183
|
+
// deploy types provide HOSTNAME_INTERNAL as a plain string or bash
|
|
8184
|
+
// expression (never containing references)
|
|
8183
8185
|
const HOSTNAME_INTERNAL = (_b = additionalEnvVars.HOSTNAME_INTERNAL) !== null && _b !== void 0 ? _b : "unknown-host.example.com";
|
|
8184
8186
|
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c : HOSTNAME_INTERNAL;
|
|
8185
8187
|
url = (0, BashExpression_1.joinBashExpressions)(["https://", host]);
|
|
@@ -8200,7 +8202,17 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
8200
8202
|
const publicEnvVarsUnresolved = Object.fromEntries(Object.entries(publicEnvVarsRawSanitized).map(([key, value]) => [key, (0, VariableValueContainingReferences_1.createVariableValueContainingReferencesFromString)(value, {
|
|
8201
8203
|
componentName: ctx.componentName
|
|
8202
8204
|
})]));
|
|
8203
|
-
|
|
8205
|
+
// predefined variables may contain references too (e.g. the embedded
|
|
8206
|
+
// database connection string references the component's own DB_* vars), so
|
|
8207
|
+
// we resolve references over the merged map. This way public var overrides
|
|
8208
|
+
// (like DB_PASSWORD: "${otherComponent:DB_PASSWORD}") are picked up by the
|
|
8209
|
+
// predefined variables that reference them
|
|
8210
|
+
const mergedEnvVars = {
|
|
8211
|
+
...predefinedVariables,
|
|
8212
|
+
...secretEnvVars,
|
|
8213
|
+
...publicEnvVarsUnresolved
|
|
8214
|
+
};
|
|
8215
|
+
const resolvedEnvVars = ((_h = options.shouldResolveReferences) !== null && _h !== void 0 ? _h : true) ? await (0, resolveAllReferences_1.resolveAllReferences)(mergedEnvVars, async otherComponentName => {
|
|
8204
8216
|
const {
|
|
8205
8217
|
envVars: otherEnvVars
|
|
8206
8218
|
} = await (0, exports.getEnvironmentVariables)({
|
|
@@ -8210,12 +8222,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
8210
8222
|
shouldResolveReferences: false // we already do this here with replaceAllReferences recursivly until re replaced all
|
|
8211
8223
|
});
|
|
8212
8224
|
return otherEnvVars;
|
|
8213
|
-
}) :
|
|
8214
|
-
const envVars = addIndexVar(
|
|
8215
|
-
...predefinedVariables,
|
|
8216
|
-
...secretEnvVars,
|
|
8217
|
-
...publicEnvVars
|
|
8218
|
-
});
|
|
8225
|
+
}) : mergedEnvVars;
|
|
8226
|
+
const envVars = addIndexVar(resolvedEnvVars);
|
|
8219
8227
|
return {
|
|
8220
8228
|
envVars,
|
|
8221
8229
|
secretEnvVarKeys,
|
|
@@ -9601,8 +9609,8 @@ const getCloudSqlVariables = ({
|
|
|
9601
9609
|
};
|
|
9602
9610
|
return {
|
|
9603
9611
|
...dbVars,
|
|
9604
|
-
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
|
|
9605
|
-
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE)
|
|
9612
|
+
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars, componentName).concat(additionalQueryParamsString),
|
|
9613
|
+
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE, componentName)
|
|
9606
9614
|
};
|
|
9607
9615
|
}
|
|
9608
9616
|
return {};
|
|
@@ -9738,6 +9746,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
9738
9746
|
exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
9739
9747
|
const bash_1 = __nccwpck_require__(38016);
|
|
9740
9748
|
const gitlab_1 = __nccwpck_require__(13468);
|
|
9749
|
+
const VariableValueContainingReferences_1 = __nccwpck_require__(24396);
|
|
9741
9750
|
const getDatabaseDeleteScript = (context, deployConfig) => {
|
|
9742
9751
|
if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
|
|
9743
9752
|
throw new Error("not possible");
|
|
@@ -9768,35 +9777,39 @@ const getDatabaseCreateScript = (context, deployConfig) => {
|
|
|
9768
9777
|
};
|
|
9769
9778
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
9770
9779
|
exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
|
|
9771
|
-
const getVariableOrValue = (key,
|
|
9772
|
-
|
|
9780
|
+
const getVariableOrValue = (key, mode, componentName) => {
|
|
9781
|
+
// in embedded mode we reference the component's own env var, which gets
|
|
9782
|
+
// resolved to its final value (including vars.public overrides) after all
|
|
9783
|
+
// env vars have been merged
|
|
9784
|
+
return mode === "legacy" ? `$${key}` : new VariableValueContainingReferences_1.VariableReference(componentName, key);
|
|
9773
9785
|
};
|
|
9774
|
-
const
|
|
9775
|
-
|
|
9776
|
-
|
|
9786
|
+
const joinDbUrlParts = (parts, mode) => mode === "legacy" ? (0, bash_1.joinBashExpressions)(parts) : new VariableValueContainingReferences_1.VariableValueContainingReferences(parts);
|
|
9787
|
+
const getDatabaseJdbcUrl = (variables, mode, componentName) => {
|
|
9788
|
+
const parts = ["jdbc:postgresql:///", getVariableOrValue("DB_NAME", mode, componentName), "?cloudSqlInstance=", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName), "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=", getVariableOrValue("DB_USER", mode, componentName), "&password=", getVariableOrValue("DB_PASSWORD", mode, componentName)];
|
|
9789
|
+
return joinDbUrlParts(parts, mode);
|
|
9777
9790
|
};
|
|
9778
9791
|
exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
|
|
9779
|
-
const getRailsDatabaseConnectionString = (variables, mode) => {
|
|
9780
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
9781
|
-
return (
|
|
9792
|
+
const getRailsDatabaseConnectionString = (variables, mode, componentName) => {
|
|
9793
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@", encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`), "/", getVariableOrValue("DB_NAME", mode, componentName), "?"];
|
|
9794
|
+
return joinDbUrlParts(parts, mode);
|
|
9782
9795
|
};
|
|
9783
9796
|
exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
|
|
9784
|
-
const getPrismaDatabaseConnectionString = (variables, mode) => {
|
|
9785
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
9786
|
-
return (
|
|
9797
|
+
const getPrismaDatabaseConnectionString = (variables, mode, componentName) => {
|
|
9798
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@localhost/", getVariableOrValue("DB_NAME", mode, componentName), "?host=/cloudsql/", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName)];
|
|
9799
|
+
return joinDbUrlParts(parts, mode);
|
|
9787
9800
|
};
|
|
9788
9801
|
exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
|
|
9789
|
-
const getDatabaseConnectionString = (config, variables) => {
|
|
9802
|
+
const getDatabaseConnectionString = (config, variables, componentName) => {
|
|
9790
9803
|
var _a;
|
|
9791
9804
|
const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
|
|
9792
9805
|
switch (config.dbConnectionStringFormat) {
|
|
9793
9806
|
case "jdbc":
|
|
9794
|
-
return (0, exports.getDatabaseJdbcUrl)(variables, mode);
|
|
9807
|
+
return (0, exports.getDatabaseJdbcUrl)(variables, mode, componentName);
|
|
9795
9808
|
case "rails":
|
|
9796
|
-
return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
|
|
9809
|
+
return (0, exports.getRailsDatabaseConnectionString)(variables, mode, componentName);
|
|
9797
9810
|
default:
|
|
9798
9811
|
// prisma
|
|
9799
|
-
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
|
|
9812
|
+
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode, componentName);
|
|
9800
9813
|
}
|
|
9801
9814
|
};
|
|
9802
9815
|
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
@@ -12849,6 +12862,14 @@ class VariableValueContainingReferences {
|
|
|
12849
12862
|
constructor(parts) {
|
|
12850
12863
|
this.parts = (Array.isArray(parts) ? parts : [parts]).flatMap(part => part instanceof VariableValueContainingReferences ? part.parts : part === "" ? [] : [part]);
|
|
12851
12864
|
}
|
|
12865
|
+
/**
|
|
12866
|
+
* concats values to this one and returns a new VariableValueContainingReferences.
|
|
12867
|
+
* mirrors String.prototype.concat / BashExpression.concat so a VariableValue
|
|
12868
|
+
* can be extended regardless of its concrete type
|
|
12869
|
+
*/
|
|
12870
|
+
concat(...values) {
|
|
12871
|
+
return new VariableValueContainingReferences([...this.parts, ...values]);
|
|
12872
|
+
}
|
|
12852
12873
|
toString(options = {
|
|
12853
12874
|
quotes: false
|
|
12854
12875
|
}) {
|
|
@@ -12896,16 +12917,17 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
12896
12917
|
exports.resolveAllReferences = void 0;
|
|
12897
12918
|
const VariableValueContainingReferences_1 = __nccwpck_require__(24396);
|
|
12898
12919
|
const resolveAllReferencesOnce_1 = __nccwpck_require__(68843);
|
|
12920
|
+
const hasUnresolvedReferences = value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences && value.parts.some(part => part instanceof VariableValueContainingReferences_1.VariableReference);
|
|
12899
12921
|
const resolveAllReferences = async (values, getEnvVars) => {
|
|
12900
12922
|
// replace until there aren't any references left
|
|
12901
12923
|
let result = values;
|
|
12902
12924
|
let i = 0;
|
|
12903
|
-
while (Object.values(result).some(
|
|
12925
|
+
while (Object.values(result).some(hasUnresolvedReferences)) {
|
|
12904
12926
|
const replaced = await (0, resolveAllReferencesOnce_1.resolveAllReferencesOnce)(result, getEnvVars);
|
|
12905
12927
|
result = replaced;
|
|
12906
12928
|
i++;
|
|
12907
12929
|
if (i > 1000) {
|
|
12908
|
-
const unresolved = Object.entries(result).filter(([key, value]) => value
|
|
12930
|
+
const unresolved = Object.entries(result).filter(([key, value]) => hasUnresolvedReferences(value));
|
|
12909
12931
|
throw new Error("Infinite loop detected in these variables: " + unresolved.map(([key, value]) => `${key} (last reference: ${value.parts.find(part => part instanceof VariableValueContainingReferences_1.VariableReference)})`).join(", "));
|
|
12910
12932
|
}
|
|
12911
12933
|
}
|
|
@@ -12928,10 +12950,10 @@ exports.resolveAllReferencesOnce = void 0;
|
|
|
12928
12950
|
const VariableValueContainingReferences_1 = __nccwpck_require__(24396);
|
|
12929
12951
|
const resolveReferencesOnce_1 = __nccwpck_require__(76080);
|
|
12930
12952
|
const resolveAllReferencesOnce = async (values, getEnvVars) => {
|
|
12931
|
-
const allReferences = Object.values(values).flatMap(value => value
|
|
12953
|
+
const allReferences = Object.values(values).flatMap(value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? value.parts.filter(part => part instanceof VariableValueContainingReferences_1.VariableReference) : []);
|
|
12932
12954
|
const allComponentsUnique = Array.from(new Set(allReferences.map(reference => reference.componentName)));
|
|
12933
12955
|
const allEnvVarsInComponents = Object.fromEntries(await Promise.all(allComponentsUnique.map(async componentName => [componentName, await getEnvVars(componentName)])));
|
|
12934
|
-
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value
|
|
12956
|
+
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? (0, resolveReferencesOnce_1.resolveReferencesOnce)(value, ({
|
|
12935
12957
|
componentName,
|
|
12936
12958
|
variableName
|
|
12937
12959
|
}) => {
|
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
7
|
-
exports.PIPELINE_IMAGE_TAG = "main-
|
|
7
|
+
exports.PIPELINE_IMAGE_TAG = "main-8dbb6c76" || "latest";
|
|
8
8
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
|
|
@@ -65,6 +65,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
65
65
|
};
|
|
66
66
|
} else {
|
|
67
67
|
const additionalEnvVars = deployConfigRaw ? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext) : {};
|
|
68
|
+
// deploy types provide HOSTNAME_INTERNAL as a plain string or bash
|
|
69
|
+
// expression (never containing references)
|
|
68
70
|
const HOSTNAME_INTERNAL = (_b = additionalEnvVars.HOSTNAME_INTERNAL) !== null && _b !== void 0 ? _b : "unknown-host.example.com";
|
|
69
71
|
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c : HOSTNAME_INTERNAL;
|
|
70
72
|
url = (0, BashExpression_1.joinBashExpressions)(["https://", host]);
|
|
@@ -85,7 +87,17 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
85
87
|
const publicEnvVarsUnresolved = Object.fromEntries(Object.entries(publicEnvVarsRawSanitized).map(([key, value]) => [key, (0, VariableValueContainingReferences_1.createVariableValueContainingReferencesFromString)(value, {
|
|
86
88
|
componentName: ctx.componentName
|
|
87
89
|
})]));
|
|
88
|
-
|
|
90
|
+
// predefined variables may contain references too (e.g. the embedded
|
|
91
|
+
// database connection string references the component's own DB_* vars), so
|
|
92
|
+
// we resolve references over the merged map. This way public var overrides
|
|
93
|
+
// (like DB_PASSWORD: "${otherComponent:DB_PASSWORD}") are picked up by the
|
|
94
|
+
// predefined variables that reference them
|
|
95
|
+
const mergedEnvVars = {
|
|
96
|
+
...predefinedVariables,
|
|
97
|
+
...secretEnvVars,
|
|
98
|
+
...publicEnvVarsUnresolved
|
|
99
|
+
};
|
|
100
|
+
const resolvedEnvVars = ((_h = options.shouldResolveReferences) !== null && _h !== void 0 ? _h : true) ? await (0, resolveAllReferences_1.resolveAllReferences)(mergedEnvVars, async otherComponentName => {
|
|
89
101
|
const {
|
|
90
102
|
envVars: otherEnvVars
|
|
91
103
|
} = await (0, exports.getEnvironmentVariables)({
|
|
@@ -95,12 +107,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
95
107
|
shouldResolveReferences: false // we already do this here with replaceAllReferences recursivly until re replaced all
|
|
96
108
|
});
|
|
97
109
|
return otherEnvVars;
|
|
98
|
-
}) :
|
|
99
|
-
const envVars = addIndexVar(
|
|
100
|
-
...predefinedVariables,
|
|
101
|
-
...secretEnvVars,
|
|
102
|
-
...publicEnvVars
|
|
103
|
-
});
|
|
110
|
+
}) : mergedEnvVars;
|
|
111
|
+
const envVars = addIndexVar(resolvedEnvVars);
|
|
104
112
|
return {
|
|
105
113
|
envVars,
|
|
106
114
|
secretEnvVarKeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnvironmentVariables.js","sourceRoot":"","sources":["../../../../../pipeline/src/context/getEnvironmentVariables.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AASzC,2DAA6D;AAC7D,0CAAyD;AAEzD,sGAAmH;AACnH,4EAAyE;AACzE,mEAAgE;AAChE,mEAAgE;AAChE,iEAA8D;AAC9D,6CAIyB;AAQzB,MAAM,0BAA0B,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC7D,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,GAAG;QAClB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG;QAC7B,QAAQ,EAAE,GAAG,CAAC,OAAO;QACrB,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAA,6CAAqB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC,CAAC;AAYK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,GAAkC,EAClC,UAAiD,EAAE,EACpB,EAAE;;IACjC,MAAM,kBAAkB,GAAG,IAAA,6CAAqB,EAAC,GAAG,CAAC,CAAC;IAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,GAC9D,kBAAkB,CAAC;IAErB,MAAM,uBAAuB,GAC3B,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;IAEjD,IAAI,mBAA6D,CAAC;IAClE,IAAI,IAAmC,CAAC;IACxC,IAAI,GAAkC,CAAC;IAEvC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,cAAc,GAAsB,YAAY,CAAC;QACvD,MAAM,IAAI,GACR,cAAc,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,cAAc,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,mBAAmB,GAAG;YACpB,GAAG,uBAAuB;YAC1B,SAAS,EAAE,OAAO;YAClB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,eAAe;YACvC,CAAC,CAAC,qBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACrD,kBAA2B,CAC5B;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"getEnvironmentVariables.js","sourceRoot":"","sources":["../../../../../pipeline/src/context/getEnvironmentVariables.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,8 @@ const getCloudSqlVariables = ({
|
|
|
34
34
|
};
|
|
35
35
|
return {
|
|
36
36
|
...dbVars,
|
|
37
|
-
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
|
|
38
|
-
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE)
|
|
37
|
+
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars, componentName).concat(additionalQueryParamsString),
|
|
38
|
+
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE, componentName)
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":";;;AACA,8DAGmC;AAEnC,2CAAiD;AAEjD,+CAG4B;AAC5B,6CAAkD;AAClD,6CAA8D;AAC9D,uEAAwE;AACxE,+CAI0B;AAC1B,2DAAqE;AAExD,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAE5E,4HAA4H;AAC/G,QAAA,gCAAgC,GAC3C,gCAAgC,CAAC;AAEnC,MAAM,oBAAoB,GAAG,CAAC,EAC5B,eAAe,EACf,qBAAqB,EACrB,GAAG,EACH,aAAa,EACb,UAAU,GAC4C,EAAE,EAAE;;IAC1D,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,qBAAa,EAC3B,eAAe,CAAC,QAAQ,EACxB,UAAU,EACV,qBAAqB,EACrB,aAAa,CACd,CAAC;QAEF,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAChD,MAAA,eAAe,CAAC,QAAQ,CAAC,uBAAuB,mCAAI,EAAE,CACvD;aACE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,MAAM,MAAM,GAAG;YACb,kCAAkC,EAChC,eAAe,CAAC,QAAQ,CAAC,sBAAsB;YACjD,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,MAAA,eAAe,CAAC,QAAQ,CAAC,MAAM,mCAAI,UAAU;YACtD,WAAW,EAAE,GAAG,GAAG,IAAA,0BAAgB,EAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC;SACvE,CAAC;QACF,OAAO;YACL,GAAG,MAAM;YACT,YAAY,EAAE,IAAA,sCAA2B,EACvC,eAAe,CAAC,QAAQ,EACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type StringOrBashExpression } from "../../../bash";
|
|
2
2
|
import type { ComponentContext } from "../../../types";
|
|
3
|
+
import type { VariableValue } from "../../../variables/VariableValue";
|
|
3
4
|
import type { DeployConfigCloudRun, DeployConfigCloudRunCloudSql } from "../../types";
|
|
4
5
|
export declare const getDatabaseDeleteScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
|
|
5
6
|
export declare const getDatabaseCreateScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
|
|
@@ -13,13 +14,13 @@ export type DBVariables = {
|
|
|
13
14
|
* controls how variables in the connection string are handled
|
|
14
15
|
*
|
|
15
16
|
* - legacy: variables like $DB_USER will be kept as environment variables to be replaced at runtime (default). It is not using BashExpressions as this was not the case in the past.
|
|
16
|
-
* - embedded: variables will be replaced with
|
|
17
|
+
* - embedded: variables will be replaced with the component's final values in the connection string. This makes the connection string usable from other components (e.g. via ${otherComponent:DATABASE_URL}) and respects overrides of DB_USER, DB_PASSWORD, etc. in vars.public (e.g. DB_PASSWORD: "${otherComponent:DB_PASSWORD}" when reusing another component's database)
|
|
17
18
|
*
|
|
18
19
|
* We will remove the legacy mode in the future, as it is confusing. But its unclear whether its a breaking change in some edge cases
|
|
19
20
|
*/
|
|
20
21
|
export type DBVariablesMode = "legacy" | "embedded";
|
|
21
22
|
export declare const DEFAULT_DB_VARIABLES_MODE: DBVariablesMode;
|
|
22
|
-
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
23
|
-
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
24
|
-
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
25
|
-
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables) =>
|
|
23
|
+
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
24
|
+
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
25
|
+
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
26
|
+
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables, componentName: string) => VariableValue;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
7
7
|
const bash_1 = require("../../../bash");
|
|
8
8
|
const gitlab_1 = require("../../../utils/gitlab");
|
|
9
|
+
const VariableValueContainingReferences_1 = require("../../../variables/VariableValueContainingReferences");
|
|
9
10
|
const getDatabaseDeleteScript = (context, deployConfig) => {
|
|
10
11
|
if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
|
|
11
12
|
throw new Error("not possible");
|
|
@@ -36,35 +37,39 @@ const getDatabaseCreateScript = (context, deployConfig) => {
|
|
|
36
37
|
};
|
|
37
38
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
38
39
|
exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
|
|
39
|
-
const getVariableOrValue = (key,
|
|
40
|
-
|
|
40
|
+
const getVariableOrValue = (key, mode, componentName) => {
|
|
41
|
+
// in embedded mode we reference the component's own env var, which gets
|
|
42
|
+
// resolved to its final value (including vars.public overrides) after all
|
|
43
|
+
// env vars have been merged
|
|
44
|
+
return mode === "legacy" ? `$${key}` : new VariableValueContainingReferences_1.VariableReference(componentName, key);
|
|
41
45
|
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
const joinDbUrlParts = (parts, mode) => mode === "legacy" ? (0, bash_1.joinBashExpressions)(parts) : new VariableValueContainingReferences_1.VariableValueContainingReferences(parts);
|
|
47
|
+
const getDatabaseJdbcUrl = (variables, mode, componentName) => {
|
|
48
|
+
const parts = ["jdbc:postgresql:///", getVariableOrValue("DB_NAME", mode, componentName), "?cloudSqlInstance=", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName), "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=", getVariableOrValue("DB_USER", mode, componentName), "&password=", getVariableOrValue("DB_PASSWORD", mode, componentName)];
|
|
49
|
+
return joinDbUrlParts(parts, mode);
|
|
45
50
|
};
|
|
46
51
|
exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
|
|
47
|
-
const getRailsDatabaseConnectionString = (variables, mode) => {
|
|
48
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
49
|
-
return (
|
|
52
|
+
const getRailsDatabaseConnectionString = (variables, mode, componentName) => {
|
|
53
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@", encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`), "/", getVariableOrValue("DB_NAME", mode, componentName), "?"];
|
|
54
|
+
return joinDbUrlParts(parts, mode);
|
|
50
55
|
};
|
|
51
56
|
exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
|
|
52
|
-
const getPrismaDatabaseConnectionString = (variables, mode) => {
|
|
53
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
54
|
-
return (
|
|
57
|
+
const getPrismaDatabaseConnectionString = (variables, mode, componentName) => {
|
|
58
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@localhost/", getVariableOrValue("DB_NAME", mode, componentName), "?host=/cloudsql/", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName)];
|
|
59
|
+
return joinDbUrlParts(parts, mode);
|
|
55
60
|
};
|
|
56
61
|
exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
|
|
57
|
-
const getDatabaseConnectionString = (config, variables) => {
|
|
62
|
+
const getDatabaseConnectionString = (config, variables, componentName) => {
|
|
58
63
|
var _a;
|
|
59
64
|
const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
|
|
60
65
|
switch (config.dbConnectionStringFormat) {
|
|
61
66
|
case "jdbc":
|
|
62
|
-
return (0, exports.getDatabaseJdbcUrl)(variables, mode);
|
|
67
|
+
return (0, exports.getDatabaseJdbcUrl)(variables, mode, componentName);
|
|
63
68
|
case "rails":
|
|
64
|
-
return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
|
|
69
|
+
return (0, exports.getRailsDatabaseConnectionString)(variables, mode, componentName);
|
|
65
70
|
default:
|
|
66
71
|
// prisma
|
|
67
|
-
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
|
|
72
|
+
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode, componentName);
|
|
68
73
|
}
|
|
69
74
|
};
|
|
70
75
|
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AAAA,wCAIuB;AAEvB,kDAA+E;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { BuildConfig, SecretEnvVar } from "..";
|
|
2
|
-
import type { BashExpression } from "../bash/BashExpression";
|
|
3
2
|
import type { ComponentContext } from "../types/context";
|
|
4
3
|
import type { EnvironmentContext } from "../types/environmentContext";
|
|
5
4
|
import type { CatladderJob } from "../types/jobs";
|
|
6
5
|
import type { PartialDeep } from "../types/utils";
|
|
6
|
+
import type { VariableValue } from "../variables/VariableValue";
|
|
7
7
|
import type { DeployConfig, DeployConfigGeneric, DeployConfigType } from "./types";
|
|
8
8
|
export * from "./cloudRun";
|
|
9
9
|
export * from "./kubernetes";
|
|
@@ -13,7 +13,7 @@ export type DeployTypeDefinition<D extends DeployConfig> = {
|
|
|
13
13
|
jobs: (context: ComponentContext) => CatladderJob[] | Promise<CatladderJob[]>;
|
|
14
14
|
defaults: (envContext: EnvironmentContext<BuildConfig, D>) => PartialDeep<D>;
|
|
15
15
|
additionalSecretKeys: (envContext: EnvironmentContext<BuildConfig, D>) => SecretEnvVar[];
|
|
16
|
-
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string,
|
|
16
|
+
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string, VariableValue | undefined | null>;
|
|
17
17
|
/**
|
|
18
18
|
* script lines the deploy type contributes to the start of the verify job,
|
|
19
19
|
* e.g. to authenticate against a non-public service
|