@dotcom-tool-kit/serverless 2.4.0 → 2.4.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"teardown.d.ts","sourceRoot":"","sources":["../../src/tasks/teardown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAI/E,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,IAAI,CAAC,OAAO,gBAAgB,CAAC;IAC3E,MAAM,CAAC,WAAW,SAA2C;IAEvD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
1
+ {"version":3,"file":"teardown.d.ts","sourceRoot":"","sources":["../../src/tasks/teardown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAM/E,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,IAAI,CAAC,OAAO,gBAAgB,CAAC;IAC3E,MAAM,CAAC,WAAW,SAA2C;IAEvD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD3B"}
@@ -4,20 +4,45 @@ const error_1 = require("@dotcom-tool-kit/error");
4
4
  const logger_1 = require("@dotcom-tool-kit/logger");
5
5
  const types_1 = require("@dotcom-tool-kit/types");
6
6
  const state_1 = require("@dotcom-tool-kit/state");
7
+ const doppler_1 = require("@dotcom-tool-kit/doppler");
7
8
  const child_process_1 = require("child_process");
9
+ const options_1 = require("@dotcom-tool-kit/options");
8
10
  class ServerlessTeardown extends types_1.Task {
9
11
  async run() {
10
- const { configPath, systemCode, regions } = this.options;
12
+ const { useVault, configPath, regions } = this.options;
11
13
  const reviewState = (0, state_1.readState)('review');
12
14
  if (!reviewState || !reviewState.stageName) {
13
15
  throw new error_1.ToolKitError(`Could not find state for review, check that ${logger_1.styles.hook('deploy:review')} ran successfully`);
14
16
  }
17
+ let vaultEnv = {};
18
+ // HACK:20231124:IM We need to call Vault to check whether a project has
19
+ // migrated to Doppler yet, and sync Vault secrets if it hasn't, but this
20
+ // logic should be removed entirely once we drop support for Vault. We can
21
+ // skip this call if we find the project has already added options for
22
+ // doppler in the Tool Kit configuration.
23
+ const migratedToolKitToDoppler = Boolean((0, options_1.getOptions)('@dotcom-tool-kit/doppler')?.project);
24
+ if (useVault && !migratedToolKitToDoppler) {
25
+ const dopplerCi = new doppler_1.DopplerEnvVars(this.logger, 'ci');
26
+ const vaultCi = await dopplerCi.fallbackToVault();
27
+ // HACK:20231023:IM don't read secrets when the project has already
28
+ // migrated from Vault to Doppler – Doppler will instead sync secrets to
29
+ // Parameter Store for the Serverless config to reference
30
+ if (!vaultCi.MIGRATED_TO_DOPPLER) {
31
+ const dopplerEnvVars = new doppler_1.DopplerEnvVars(this.logger, 'dev');
32
+ vaultEnv = await dopplerEnvVars.fallbackToVault();
33
+ }
34
+ }
15
35
  this.logger.verbose('starting the child serverless process...');
16
- const args = ['remove', '--region', regions[0], '--stage', reviewState.stageName, '--aws-profile', `CircleCI-role-${systemCode}`];
36
+ const args = ['remove', '--region', regions[0], '--stage', reviewState.stageName];
17
37
  if (configPath) {
18
38
  args.push('--config', './serverless.yml');
19
39
  }
20
- const child = (0, child_process_1.spawn)('serverless', args);
40
+ const child = (0, child_process_1.spawn)('serverless', args, {
41
+ env: {
42
+ ...process.env,
43
+ ...vaultEnv
44
+ }
45
+ });
21
46
  (0, logger_1.hookFork)(this.logger, 'serverless', child);
22
47
  await (0, logger_1.waitOnExit)('serverless', child);
23
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotcom-tool-kit/serverless",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "a plugin to manage and deploy apps using AWS Serverless",
5
5
  "main": "lib",
6
6
  "scripts": {