@catladder/cli 0.0.0-main-13602ca4 → 0.0.0-main-1befbbee

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.
@@ -2585,7 +2585,7 @@ const createRailsTestJobs = (context) => {
2585
2585
  `cd ${context.build.dir}`,
2586
2586
  ...bundlerInstall,
2587
2587
  ...((_q = (0, utils_1.ensureArrayOrNull)((_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.command)) !== null && _q !== void 0 ? _q : [
2588
- "bundle exec rake db:setup",
2588
+ "bundle exec rake db:test:prepare",
2589
2589
  "bundle exec rake assets:precompile assets:clean",
2590
2590
  "bundle exec rspec",
2591
2591
  ]),
@@ -4633,19 +4633,22 @@ exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
4633
4633
  // FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
4634
4634
  exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
4635
4635
  const getCloudSqlVariables = ({ deployConfigRaw, environmentSlugPrefix, env, componentName, fullConfig, }) => {
4636
- var _a, _b;
4636
+ var _a, _b, _c;
4637
4637
  if (deployConfigRaw && deployConfigRaw.cloudSql) {
4638
4638
  const DB_NAME = (0, utils_1.getFullDbName)(deployConfigRaw.cloudSql, fullConfig, environmentSlugPrefix, componentName);
4639
4639
  const additionalQueryParamsString = Object.entries((_a = deployConfigRaw.cloudSql.dbAdditionalQueryParams) !== null && _a !== void 0 ? _a : {})
4640
4640
  .map(([key, value]) => `&${key}=${value}`)
4641
4641
  .join("");
4642
- return {
4642
+ const dbVars = {
4643
4643
  CLOUD_SQL_INSTANCE_CONNECTION_NAME: deployConfigRaw.cloudSql.instanceConnectionName,
4644
4644
  DB_NAME: DB_NAME,
4645
4645
  DB_USER: (_b = deployConfigRaw.cloudSql.dbUser) !== null && _b !== void 0 ? _b : "postgres",
4646
4646
  DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
4647
- DATABASE_URL: `${(0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql)}${additionalQueryParamsString}`,
4648
- DATABASE_JDBC_URL: database_1.DATABASE_JDBC_URL,
4647
+ };
4648
+ return {
4649
+ ...dbVars,
4650
+ DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
4651
+ DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE),
4649
4652
  };
4650
4653
  }
4651
4654
  return {};
@@ -4769,7 +4772,8 @@ exports.createArgsString = createArgsString;
4769
4772
  "use strict";
4770
4773
 
4771
4774
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4772
- exports.getDatabaseConnectionString = exports.DATABASE_JDBC_URL = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
4775
+ exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
4776
+ const bash_1 = __nccwpck_require__(2990);
4773
4777
  const gitlab_1 = __nccwpck_require__(8490);
4774
4778
  const getDatabaseDeleteScript = (context, deployConfig) => {
4775
4779
  if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
@@ -4807,16 +4811,64 @@ const getDatabaseCreateScript = (context, deployConfig) => {
4807
4811
  ]);
4808
4812
  };
4809
4813
  exports.getDatabaseCreateScript = getDatabaseCreateScript;
4810
- exports.DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
4811
- const getDatabaseConnectionString = (config) => {
4814
+ exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
4815
+ const getVariableOrValue = (key, variables, mode) => {
4816
+ return mode === "legacy" ? `$${key}` : variables[key];
4817
+ };
4818
+ const getDatabaseJdbcUrl = (variables, mode) => {
4819
+ const parts = [
4820
+ "jdbc:postgresql:///",
4821
+ getVariableOrValue("DB_NAME", variables, mode),
4822
+ "?cloudSqlInstance=",
4823
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
4824
+ "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=",
4825
+ getVariableOrValue("DB_USER", variables, mode),
4826
+ "&password=",
4827
+ getVariableOrValue("DB_PASSWORD", variables, mode),
4828
+ ];
4829
+ return (0, bash_1.joinBashExpressions)(parts);
4830
+ };
4831
+ exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
4832
+ const getRailsDatabaseConnectionString = (variables, mode) => {
4833
+ const parts = [
4834
+ "postgresql://",
4835
+ getVariableOrValue("DB_USER", variables, mode),
4836
+ ":",
4837
+ getVariableOrValue("DB_PASSWORD", variables, mode),
4838
+ "@",
4839
+ encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`),
4840
+ "/",
4841
+ getVariableOrValue("DB_NAME", variables, mode),
4842
+ "?",
4843
+ ];
4844
+ return (0, bash_1.joinBashExpressions)(parts);
4845
+ };
4846
+ exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
4847
+ const getPrismaDatabaseConnectionString = (variables, mode) => {
4848
+ const parts = [
4849
+ "postgresql://",
4850
+ getVariableOrValue("DB_USER", variables, mode),
4851
+ ":",
4852
+ getVariableOrValue("DB_PASSWORD", variables, mode),
4853
+ "@localhost/",
4854
+ getVariableOrValue("DB_NAME", variables, mode),
4855
+ "?host=/cloudsql/",
4856
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
4857
+ ];
4858
+ return (0, bash_1.joinBashExpressions)(parts);
4859
+ };
4860
+ exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
4861
+ const getDatabaseConnectionString = (config, variables) => {
4862
+ var _a;
4863
+ const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
4812
4864
  switch (config.dbConnectionStringFormat) {
4813
4865
  case "jdbc":
4814
- return exports.DATABASE_JDBC_URL;
4866
+ return (0, exports.getDatabaseJdbcUrl)(variables, mode);
4815
4867
  case "rails":
4816
- return `postgresql://$DB_USER:$DB_PASSWORD@${encodeURIComponent(`/cloudsql/${config.instanceConnectionName}`)}/$DB_NAME?`;
4868
+ return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
4817
4869
  default:
4818
4870
  // prisma
4819
- return "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME";
4871
+ return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
4820
4872
  }
4821
4873
  };
4822
4874
  exports.getDatabaseConnectionString = getDatabaseConnectionString;
@@ -5603,7 +5603,7 @@ const createRailsTestJobs = (context) => {
5603
5603
  `cd ${context.build.dir}`,
5604
5604
  ...bundlerInstall,
5605
5605
  ...((_q = (0, utils_1.ensureArrayOrNull)((_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.command)) !== null && _q !== void 0 ? _q : [
5606
- "bundle exec rake db:setup",
5606
+ "bundle exec rake db:test:prepare",
5607
5607
  "bundle exec rake assets:precompile assets:clean",
5608
5608
  "bundle exec rspec",
5609
5609
  ]),
@@ -7651,19 +7651,22 @@ exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
7651
7651
  // FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
7652
7652
  exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
7653
7653
  const getCloudSqlVariables = ({ deployConfigRaw, environmentSlugPrefix, env, componentName, fullConfig, }) => {
7654
- var _a, _b;
7654
+ var _a, _b, _c;
7655
7655
  if (deployConfigRaw && deployConfigRaw.cloudSql) {
7656
7656
  const DB_NAME = (0, utils_1.getFullDbName)(deployConfigRaw.cloudSql, fullConfig, environmentSlugPrefix, componentName);
7657
7657
  const additionalQueryParamsString = Object.entries((_a = deployConfigRaw.cloudSql.dbAdditionalQueryParams) !== null && _a !== void 0 ? _a : {})
7658
7658
  .map(([key, value]) => `&${key}=${value}`)
7659
7659
  .join("");
7660
- return {
7660
+ const dbVars = {
7661
7661
  CLOUD_SQL_INSTANCE_CONNECTION_NAME: deployConfigRaw.cloudSql.instanceConnectionName,
7662
7662
  DB_NAME: DB_NAME,
7663
7663
  DB_USER: (_b = deployConfigRaw.cloudSql.dbUser) !== null && _b !== void 0 ? _b : "postgres",
7664
7664
  DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
7665
- DATABASE_URL: `${(0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql)}${additionalQueryParamsString}`,
7666
- DATABASE_JDBC_URL: database_1.DATABASE_JDBC_URL,
7665
+ };
7666
+ return {
7667
+ ...dbVars,
7668
+ DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
7669
+ DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE),
7667
7670
  };
7668
7671
  }
7669
7672
  return {};
@@ -7787,7 +7790,8 @@ exports.createArgsString = createArgsString;
7787
7790
  "use strict";
7788
7791
 
7789
7792
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7790
- exports.getDatabaseConnectionString = exports.DATABASE_JDBC_URL = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
7793
+ exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
7794
+ const bash_1 = __nccwpck_require__(22990);
7791
7795
  const gitlab_1 = __nccwpck_require__(38490);
7792
7796
  const getDatabaseDeleteScript = (context, deployConfig) => {
7793
7797
  if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
@@ -7825,16 +7829,64 @@ const getDatabaseCreateScript = (context, deployConfig) => {
7825
7829
  ]);
7826
7830
  };
7827
7831
  exports.getDatabaseCreateScript = getDatabaseCreateScript;
7828
- exports.DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
7829
- const getDatabaseConnectionString = (config) => {
7832
+ exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
7833
+ const getVariableOrValue = (key, variables, mode) => {
7834
+ return mode === "legacy" ? `$${key}` : variables[key];
7835
+ };
7836
+ const getDatabaseJdbcUrl = (variables, mode) => {
7837
+ const parts = [
7838
+ "jdbc:postgresql:///",
7839
+ getVariableOrValue("DB_NAME", variables, mode),
7840
+ "?cloudSqlInstance=",
7841
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
7842
+ "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=",
7843
+ getVariableOrValue("DB_USER", variables, mode),
7844
+ "&password=",
7845
+ getVariableOrValue("DB_PASSWORD", variables, mode),
7846
+ ];
7847
+ return (0, bash_1.joinBashExpressions)(parts);
7848
+ };
7849
+ exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
7850
+ const getRailsDatabaseConnectionString = (variables, mode) => {
7851
+ const parts = [
7852
+ "postgresql://",
7853
+ getVariableOrValue("DB_USER", variables, mode),
7854
+ ":",
7855
+ getVariableOrValue("DB_PASSWORD", variables, mode),
7856
+ "@",
7857
+ encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`),
7858
+ "/",
7859
+ getVariableOrValue("DB_NAME", variables, mode),
7860
+ "?",
7861
+ ];
7862
+ return (0, bash_1.joinBashExpressions)(parts);
7863
+ };
7864
+ exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
7865
+ const getPrismaDatabaseConnectionString = (variables, mode) => {
7866
+ const parts = [
7867
+ "postgresql://",
7868
+ getVariableOrValue("DB_USER", variables, mode),
7869
+ ":",
7870
+ getVariableOrValue("DB_PASSWORD", variables, mode),
7871
+ "@localhost/",
7872
+ getVariableOrValue("DB_NAME", variables, mode),
7873
+ "?host=/cloudsql/",
7874
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
7875
+ ];
7876
+ return (0, bash_1.joinBashExpressions)(parts);
7877
+ };
7878
+ exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
7879
+ const getDatabaseConnectionString = (config, variables) => {
7880
+ var _a;
7881
+ const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
7830
7882
  switch (config.dbConnectionStringFormat) {
7831
7883
  case "jdbc":
7832
- return exports.DATABASE_JDBC_URL;
7884
+ return (0, exports.getDatabaseJdbcUrl)(variables, mode);
7833
7885
  case "rails":
7834
- return `postgresql://$DB_USER:$DB_PASSWORD@${encodeURIComponent(`/cloudsql/${config.instanceConnectionName}`)}/$DB_NAME?`;
7886
+ return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
7835
7887
  default:
7836
7888
  // prisma
7837
- return "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME";
7889
+ return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
7838
7890
  }
7839
7891
  };
7840
7892
  exports.getDatabaseConnectionString = getDatabaseConnectionString;
@@ -77,7 +77,7 @@ const createRailsTestJobs = (context) => {
77
77
  `cd ${context.build.dir}`,
78
78
  ...bundlerInstall,
79
79
  ...((_q = (0, utils_1.ensureArrayOrNull)((_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.command)) !== null && _q !== void 0 ? _q : [
80
- "bundle exec rake db:setup",
80
+ "bundle exec rake db:test:prepare",
81
81
  "bundle exec rake assets:precompile assets:clean",
82
82
  "bundle exec rspec",
83
83
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../pipeline/src/build/rails/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../pipeline/src/build/rails/test.ts"],"names":[],"mappings":"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"}
@@ -12,19 +12,22 @@ exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
12
12
  // FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
13
13
  exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
14
14
  const getCloudSqlVariables = ({ deployConfigRaw, environmentSlugPrefix, env, componentName, fullConfig, }) => {
15
- var _a, _b;
15
+ var _a, _b, _c;
16
16
  if (deployConfigRaw && deployConfigRaw.cloudSql) {
17
17
  const DB_NAME = (0, utils_1.getFullDbName)(deployConfigRaw.cloudSql, fullConfig, environmentSlugPrefix, componentName);
18
18
  const additionalQueryParamsString = Object.entries((_a = deployConfigRaw.cloudSql.dbAdditionalQueryParams) !== null && _a !== void 0 ? _a : {})
19
19
  .map(([key, value]) => `&${key}=${value}`)
20
20
  .join("");
21
- return {
21
+ const dbVars = {
22
22
  CLOUD_SQL_INSTANCE_CONNECTION_NAME: deployConfigRaw.cloudSql.instanceConnectionName,
23
23
  DB_NAME: DB_NAME,
24
24
  DB_USER: (_b = deployConfigRaw.cloudSql.dbUser) !== null && _b !== void 0 ? _b : "postgres",
25
25
  DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
26
- DATABASE_URL: `${(0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql)}${additionalQueryParamsString}`,
27
- DATABASE_JDBC_URL: database_1.DATABASE_JDBC_URL,
26
+ };
27
+ return {
28
+ ...dbVars,
29
+ DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
30
+ DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE),
28
31
  };
29
32
  }
30
33
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,25 @@
1
+ import { type StringOrBashExpression } from "../../../bash";
1
2
  import type { ComponentContext } from "../../../types";
2
3
  import type { DeployConfigCloudRun, DeployConfigCloudRunCloudSql } from "../../types";
3
4
  export declare const getDatabaseDeleteScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
4
5
  export declare const getDatabaseCreateScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
5
- export declare const DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
6
- export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql) => string;
6
+ export type DBVariables = {
7
+ CLOUD_SQL_INSTANCE_CONNECTION_NAME: StringOrBashExpression;
8
+ DB_NAME: StringOrBashExpression;
9
+ DB_USER: StringOrBashExpression;
10
+ DB_PASSWORD: StringOrBashExpression;
11
+ };
12
+ /**
13
+ * controls how variables in the connection string are handled
14
+ *
15
+ * - 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 their actual values in the connection string
17
+ *
18
+ * 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
+ export type DBVariablesMode = "legacy" | "embedded";
21
+ export declare const DEFAULT_DB_VARIABLES_MODE: DBVariablesMode;
22
+ export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode) => StringOrBashExpression;
23
+ export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) => StringOrBashExpression;
24
+ export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) => StringOrBashExpression;
25
+ export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables) => StringOrBashExpression;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDatabaseConnectionString = exports.DATABASE_JDBC_URL = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
3
+ exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
4
+ const bash_1 = require("../../../bash");
4
5
  const gitlab_1 = require("../../../utils/gitlab");
5
6
  const getDatabaseDeleteScript = (context, deployConfig) => {
6
7
  if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
@@ -38,16 +39,64 @@ const getDatabaseCreateScript = (context, deployConfig) => {
38
39
  ]);
39
40
  };
40
41
  exports.getDatabaseCreateScript = getDatabaseCreateScript;
41
- exports.DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
42
- const getDatabaseConnectionString = (config) => {
42
+ exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
43
+ const getVariableOrValue = (key, variables, mode) => {
44
+ return mode === "legacy" ? `$${key}` : variables[key];
45
+ };
46
+ const getDatabaseJdbcUrl = (variables, mode) => {
47
+ const parts = [
48
+ "jdbc:postgresql:///",
49
+ getVariableOrValue("DB_NAME", variables, mode),
50
+ "?cloudSqlInstance=",
51
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
52
+ "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=",
53
+ getVariableOrValue("DB_USER", variables, mode),
54
+ "&password=",
55
+ getVariableOrValue("DB_PASSWORD", variables, mode),
56
+ ];
57
+ return (0, bash_1.joinBashExpressions)(parts);
58
+ };
59
+ exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
60
+ const getRailsDatabaseConnectionString = (variables, mode) => {
61
+ const parts = [
62
+ "postgresql://",
63
+ getVariableOrValue("DB_USER", variables, mode),
64
+ ":",
65
+ getVariableOrValue("DB_PASSWORD", variables, mode),
66
+ "@",
67
+ encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`),
68
+ "/",
69
+ getVariableOrValue("DB_NAME", variables, mode),
70
+ "?",
71
+ ];
72
+ return (0, bash_1.joinBashExpressions)(parts);
73
+ };
74
+ exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
75
+ const getPrismaDatabaseConnectionString = (variables, mode) => {
76
+ const parts = [
77
+ "postgresql://",
78
+ getVariableOrValue("DB_USER", variables, mode),
79
+ ":",
80
+ getVariableOrValue("DB_PASSWORD", variables, mode),
81
+ "@localhost/",
82
+ getVariableOrValue("DB_NAME", variables, mode),
83
+ "?host=/cloudsql/",
84
+ getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", variables, mode),
85
+ ];
86
+ return (0, bash_1.joinBashExpressions)(parts);
87
+ };
88
+ exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
89
+ const getDatabaseConnectionString = (config, variables) => {
90
+ var _a;
91
+ const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
43
92
  switch (config.dbConnectionStringFormat) {
44
93
  case "jdbc":
45
- return exports.DATABASE_JDBC_URL;
94
+ return (0, exports.getDatabaseJdbcUrl)(variables, mode);
46
95
  case "rails":
47
- return `postgresql://$DB_USER:$DB_PASSWORD@${encodeURIComponent(`/cloudsql/${config.instanceConnectionName}`)}/$DB_NAME?`;
96
+ return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
48
97
  default:
49
98
  // prisma
50
- return "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME";
99
+ return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
51
100
  }
52
101
  };
53
102
  exports.getDatabaseConnectionString = getDatabaseConnectionString;
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AACA,kDAA+E;AAMxE,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACzB,YAAkC,EACxB,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GACnC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,sHAAsH;IACtH,kCAAkC;IAClC,OAAO;QACL,2BAA2B,OAAO,MAAM;QACxC,kKAAkK;QAClK,IAAA,wBAAe,EACb,+BAA+B,OAAO,eAAe,UAAU,cAAc,SAAS,EAAE,EACxF;YACE,cAAc,EAAE,EAAE;SACnB,CACF;KACF,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,uBAAuB,2BA2BlC;AAEK,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACzB,YAAkC,EACxB,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GACnC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,gCAAgC;IAChC,OAAO,IAAA,8BAAqB,EAAC;QAC3B,6BAA6B;QAC7B,+BAA+B,OAAO,eAAe,UAAU,cAAc,SAAS,EAAE;KACzF,CAAC,CAAC;AACL,CAAC,CAAC;AArBW,QAAA,uBAAuB,2BAqBlC;AAEW,QAAA,iBAAiB,GAC5B,gLAAgL,CAAC;AAE5K,MAAM,2BAA2B,GAAG,CACzC,MAAoC,EAC5B,EAAE;IACV,QAAQ,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxC,KAAK,MAAM;YACT,OAAO,yBAAiB,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,sCAAsC,kBAAkB,CAC7D,aAAa,MAAM,CAAC,sBAAsB,EAAE,CAC7C,YAAY,CAAC;QAChB;YACE,SAAS;YACT,OAAO,0GAA0G,CAAC;IACtH,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,2BAA2B,+BActC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { DBVariablesMode } from "../cloudRun/utils/database";
1
2
  import type { DeployConfigBase } from "./base";
2
3
  export type Gcloudregion = "asia-east1" | "asia-northeast1" | "asia-northeast2" | "europe-north1" | "europe-southwest1" | "europe-west1" | "europe-west4" | "europe-west8" | "europe-west9" | "me-west1" | "us-central1" | "us-east1" | "us-east4" | "us-east5" | "us-south1" | "us-west1" | "asia-east2" | "asia-northeast3" | "asia-southeast1" | "asia-southeast2" | "asia-south1" | "asia-south2" | "australia-southeast1" | "australia-southeast2" | "europe-central2" | "europe-west2" | "europe-west3" | "europe-west6" | "northamerica-northeast1" | "northamerica-northeast2" | "southamerica-east1" | "southamerica-west1" | "us-west2" | "us-west3" | "us-west4";
3
4
  export type DeployConfigCloudRunCloudSql = {
@@ -36,6 +37,15 @@ export type DeployConfigCloudRunCloudSql = {
36
37
  * defaults to prisma
37
38
  */
38
39
  dbConnectionStringFormat?: "prisma" | "rails" | "jdbc";
40
+ /**
41
+ * controls how variables in the connection string are handled
42
+ *
43
+ * - environment: variables like $DB_USER will be kept as environment variables to be replaced at runtime (default)
44
+ * - embedded: variables will be replaced with their actual values in the connection string
45
+ *
46
+ * @default "environment"
47
+ */
48
+ dbConnectionStringVariablesMode?: DBVariablesMode;
39
49
  /**
40
50
  * add additional query params to the database connection string
41
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"googleCloudRun.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/types/googleCloudRun.ts"],"names":[],"mappings":";;;AA4Na,QAAA,mBAAmB,GAA8B;IAC5D,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IAEjB,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEW,QAAA,oBAAoB,GAA8B;IAC7D,GAAG,2BAAmB;IAEtB,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"googleCloudRun.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/types/googleCloudRun.ts"],"names":[],"mappings":";;;AAuOa,QAAA,mBAAmB,GAA8B;IAC5D,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IAEjB,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEW,QAAA,oBAAoB,GAA8B;IAC7D,GAAG,2BAAmB;IAEtB,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC"}