serverless-kms-alias 2.1.0 → 2.2.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 2.2.0 - 2023-02-08
4
+
5
+ - Replace enable/disable by stage with `enabled`
6
+
3
7
  ## 2.1.0 - 2023-02-08
4
8
 
5
9
  - Add configuration to enable for explicit stages. Fix #3
package/README.md CHANGED
@@ -45,7 +45,7 @@ functions:
45
45
  kmsKeyArn: '${kms:arn:aws:kms:${aws:region}:${aws:accountId}:alias/aws/lambda}'
46
46
  ```
47
47
 
48
- ### Example - Enable for specific stages
48
+ ### Example - Disable the plugin
49
49
 
50
50
  ```yaml
51
51
  service: foo
@@ -58,9 +58,7 @@ plugins:
58
58
 
59
59
  custom:
60
60
  kmsAlias:
61
- stages:
62
- # list of stages for which the plugin should be enabled
63
- - production
61
+ enabled: false
64
62
 
65
63
  functions:
66
64
  foo:
package/dist/index.js CHANGED
@@ -1,25 +1,27 @@
1
1
  "use strict";
2
2
  const client_kms_1 = require("@aws-sdk/client-kms");
3
3
  class KmsAliasPlugin {
4
- constructor(serverless, options) {
4
+ constructor(serverless) {
5
5
  this.configurationVariablesSources = {
6
6
  kms: {
7
7
  async resolve({ address }) {
8
8
  if (!/^(alias\/[a-zA-Z]|arn:aws:kms:[\w-]*:[\d]*:alias)/i.test(address)) {
9
9
  throw new Error(`Expected variable in the form of 'kms:alias/foo'`);
10
10
  }
11
- if (serverless.service?.custom?.kmsAlias?.stages?.length) {
12
- const stage = options?.stage || serverless.config?.stage || serverless.service?.provider?.stage;
13
- if (stage) {
14
- if (!serverless.service.custom.kmsAlias.stages.includes(stage)) {
15
- serverless.cli.log(`Info: KMS Alias plugin not enabled for stage`);
11
+ if (serverless.service?.custom?.kmsAlias?.enabled != null) {
12
+ try {
13
+ const isEnabled = serverless.service.custom.kmsAlias.enabled ? Boolean(JSON.parse(`${serverless.service.custom.kmsAlias.enabled}`.toLowerCase())) : false;
14
+ if (!isEnabled) {
15
+ serverless.cli.log(`Info: KMS Alias plugin not enabled`);
16
16
  return {
17
17
  value: address,
18
18
  };
19
19
  }
20
20
  }
21
- else {
22
- serverless.cli.log(`Warn: Unable to determine stage for KMS alias`);
21
+ catch (ex) {
22
+ throw new Error(`Unable to get enabled configuration for kms alias.`, {
23
+ cause: ex,
24
+ });
23
25
  }
24
26
  }
25
27
  serverless.cli.log(`Info: Fetching KMS key for alias: ${address}`);
@@ -48,4 +50,4 @@ class KmsAliasPlugin {
48
50
  }
49
51
  }
50
52
  module.exports = KmsAliasPlugin;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9EQUFvRTtBQWtCcEUsTUFBTSxjQUFjO0lBR2xCLFlBQW1CLFVBQThCLEVBQUUsT0FBMEI7UUFDM0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHO1lBQ25DLEdBQUcsRUFBRTtnQkFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFpQjtvQkFDdEMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO3FCQUNyRTtvQkFFRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO3dCQUN4RCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQzt3QkFDaEcsSUFBSSxLQUFLLEVBQUU7NEJBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dDQUM5RCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dDQUNuRSxPQUFPO29DQUNMLEtBQUssRUFBRSxPQUFPO2lDQUNmLENBQUM7NkJBQ0g7eUJBQ0Y7NkJBQU07NEJBQ0wsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQzt5QkFDckU7cUJBQ0Y7b0JBRUQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMscUNBQXFDLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBRW5FLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQVMsQ0FBQzt3QkFDM0IsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7d0JBQzVDLE1BQU0sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUU7cUJBQzdDLENBQUMsQ0FBQztvQkFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUFrQixDQUFDO3dCQUNyQyxLQUFLLEVBQUUsT0FBTztxQkFDZixDQUFDLENBQUM7b0JBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUU1QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO29CQUV6QyxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO3FCQUN6RTtvQkFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTt3QkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxFQUFFLENBQUMsQ0FBQztxQkFDdEU7b0JBRUQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLE9BQU8sTUFBTSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFFckYsT0FBTzt3QkFDTCxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUc7cUJBQ3ZCLENBQUM7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELGlCQUFTLGNBQWMsQ0FBQyJ9
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9EQUFvRTtBQWtCcEUsTUFBTSxjQUFjO0lBR2xCLFlBQW1CLFVBQThCO1FBQy9DLElBQUksQ0FBQyw2QkFBNkIsR0FBRztZQUNuQyxHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBaUI7b0JBQ3RDLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztxQkFDckU7b0JBRUQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRTt3QkFDekQsSUFBSTs0QkFDRixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzs0QkFDMUosSUFBSSxDQUFDLFNBQVMsRUFBRTtnQ0FDZCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2dDQUN6RCxPQUFPO29DQUNMLEtBQUssRUFBRSxPQUFPO2lDQUNmLENBQUM7NkJBQ0g7eUJBQ0Y7d0JBQUMsT0FBTyxFQUFFLEVBQUU7NEJBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsRUFBRTtnQ0FDcEUsS0FBSyxFQUFFLEVBQUU7NkJBQ1YsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGO29CQUVELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUVuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQUM7d0JBQzNCLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO3dCQUM1QyxNQUFNLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO3FCQUM3QyxDQUFDLENBQUM7b0JBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSwrQkFBa0IsQ0FBQzt3QkFDckMsS0FBSyxFQUFFLE9BQU87cUJBQ2YsQ0FBQyxDQUFDO29CQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFNUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztvQkFFekMsSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsT0FBTyxFQUFFLENBQUMsQ0FBQztxQkFDekU7b0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7d0JBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLE9BQU8sRUFBRSxDQUFDLENBQUM7cUJBQ3RFO29CQUVELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxPQUFPLE1BQU0sV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBRXJGLE9BQU87d0JBQ0wsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHO3FCQUN2QixDQUFDO2dCQUNKLENBQUM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxpQkFBUyxjQUFjLENBQUMifQ==
@@ -16,5 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./KmsAliasSettings"), exports);
18
18
  __exportStar(require("./ServerlessInstance"), exports);
19
- __exportStar(require("./ServerlessOptions"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyx1REFBcUM7QUFDckMsc0RBQW9DIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyx1REFBcUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "serverless-kms-alias",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "engines": {
5
5
  "node": ">= 14"
6
6
  },
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DescribeKeyCommand, KMSClient } from '@aws-sdk/client-kms';
2
2
 
3
- import type { ServerlessInstance, ServerlessOptions } from './types';
3
+ import type { ServerlessInstance } from './types';
4
4
 
5
5
  interface ResolveParams {
6
6
  address: string;
@@ -19,7 +19,7 @@ interface ServerlessVariableSource {
19
19
  class KmsAliasPlugin {
20
20
  public configurationVariablesSources: Record<string, ServerlessVariableSource>;
21
21
 
22
- public constructor(serverless: ServerlessInstance, options: ServerlessOptions) {
22
+ public constructor(serverless: ServerlessInstance) {
23
23
  this.configurationVariablesSources = {
24
24
  kms: {
25
25
  async resolve({ address }: ResolveParams): Promise<ResolveResult> {
@@ -27,17 +27,19 @@ class KmsAliasPlugin {
27
27
  throw new Error(`Expected variable in the form of 'kms:alias/foo'`);
28
28
  }
29
29
 
30
- if (serverless.service?.custom?.kmsAlias?.stages?.length) {
31
- const stage = options?.stage || serverless.config?.stage || serverless.service?.provider?.stage;
32
- if (stage) {
33
- if (!serverless.service.custom.kmsAlias.stages.includes(stage)) {
34
- serverless.cli.log(`Info: KMS Alias plugin not enabled for stage`);
30
+ if (serverless.service?.custom?.kmsAlias?.enabled != null) {
31
+ try {
32
+ const isEnabled = serverless.service.custom.kmsAlias.enabled ? Boolean(JSON.parse(`${serverless.service.custom.kmsAlias.enabled}`.toLowerCase())) : false;
33
+ if (!isEnabled) {
34
+ serverless.cli.log(`Info: KMS Alias plugin not enabled`);
35
35
  return {
36
36
  value: address,
37
37
  };
38
38
  }
39
- } else {
40
- serverless.cli.log(`Warn: Unable to determine stage for KMS alias`);
39
+ } catch (ex) {
40
+ throw new Error(`Unable to get enabled configuration for kms alias.`, {
41
+ cause: ex,
42
+ });
41
43
  }
42
44
  }
43
45
 
@@ -1,3 +1,3 @@
1
1
  export interface KmsAliasSettings {
2
- stages?: string[];
2
+ enabled?: string;
3
3
  }
@@ -3,9 +3,6 @@ import type { AwsAuthInputConfig } from '@aws-sdk/middleware-signing/dist-types/
3
3
  import type { KmsAliasSettings } from './KmsAliasSettings';
4
4
 
5
5
  export interface ServerlessInstance {
6
- config?: {
7
- stage?: string;
8
- };
9
6
  providers: {
10
7
  aws: {
11
8
  getCredentials(): AwsAuthInputConfig['credentials'];
@@ -13,9 +10,6 @@ export interface ServerlessInstance {
13
10
  };
14
11
  };
15
12
  service: {
16
- provider: {
17
- stage?: string;
18
- };
19
13
  custom: {
20
14
  kmsAlias?: KmsAliasSettings;
21
15
  };
@@ -1,3 +1,2 @@
1
1
  export * from './KmsAliasSettings';
2
2
  export * from './ServerlessInstance';
3
- export * from './ServerlessOptions';
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVybGVzc09wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvU2VydmVybGVzc09wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,3 +0,0 @@
1
- export interface ServerlessOptions {
2
- stage?: string;
3
- }