@digitraffic/common 2023.1.31-1 → 2023.2.13-1

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.
@@ -52,9 +52,19 @@ class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
52
52
  }
53
53
  static createMethodResponse(enableCors) {
54
54
  return enableCors
55
- ? (0, responses_1.corsMethod)(METHOD_RESPONSE_200)
55
+ ? corsMethod(METHOD_RESPONSE_200)
56
56
  : METHOD_RESPONSE_200;
57
57
  }
58
58
  }
59
59
  exports.DigitrafficStaticIntegration = DigitrafficStaticIntegration;
60
+ function corsMethod(response) {
61
+ return {
62
+ ...response,
63
+ ...{
64
+ responseParameters: {
65
+ "method.response.header.Access-Control-Allow-Origin": true,
66
+ },
67
+ },
68
+ };
69
+ }
60
70
  //# sourceMappingURL=static-integration.js.map
@@ -21,12 +21,12 @@ class DbProxyStack extends aws_cdk_lib_1.Stack {
21
21
  secretCompleteArn: configuration.secretArn,
22
22
  });
23
23
  const proxy = this.createProxy(vpc, secret, configuration);
24
- const readerEndpoint = this.createProxyEndpoints(vpc, proxy, configuration.securityGroupId);
24
+ const readerEndpoint = this.createProxyEndpoints(vpc, proxy, configuration.proxy.securityGroupId);
25
25
  this.setOutputs(configuration, proxy, readerEndpoint);
26
26
  }
27
27
  createProxy(vpc, secret, configuration) {
28
28
  const proxyId = `${this.isc.environmentName}-proxy`;
29
- const securityGroup = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, "securitygroup", configuration.securityGroupId);
29
+ const securityGroup = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, "securitygroup", configuration.proxy.securityGroupId);
30
30
  const cluster = aws_rds_1.DatabaseCluster.fromDatabaseClusterAttributes(this, "db-cluster", {
31
31
  clusterIdentifier: (0, import_util_1.importValue)(this.isc.environmentName, db_stack_1.DbStack.CLUSTER_IDENTIFIER_EXPORT_NAME),
32
32
  engine: aws_rds_1.DatabaseClusterEngine.AURORA_POSTGRESQL,
@@ -38,7 +38,7 @@ class DbProxyStack extends aws_cdk_lib_1.Stack {
38
38
  /* nothing */
39
39
  };
40
40
  return new aws_rds_1.DatabaseProxy(this, proxyId, {
41
- dbProxyName: configuration.dbProxyName ?? "AuroraProxy",
41
+ dbProxyName: configuration.proxy.name ?? "AuroraProxy",
42
42
  securityGroups: [securityGroup],
43
43
  proxyTarget: aws_rds_1.ProxyTarget.fromCluster(cluster),
44
44
  idleClientTimeout: aws_cdk_lib_1.Duration.seconds(1800),
@@ -1,11 +1,9 @@
1
1
  import { Stack } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- import { IVpc } from "aws-cdk-lib/aws-ec2";
2
+ import { InstanceType, IVpc } from "aws-cdk-lib/aws-ec2";
3
+ import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
4
4
  import { AuroraPostgresEngineVersion, DatabaseCluster, DatabaseClusterProps, IParameterGroup } from "aws-cdk-lib/aws-rds";
5
- import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
6
- import { InstanceType } from "aws-cdk-lib/aws-ec2";
5
+ import { Construct } from "constructs";
7
6
  import { InfraStackConfiguration } from "./intra-stack-configuration";
8
- import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
9
7
  export interface DbConfiguration {
10
8
  readonly secretArn: string;
11
9
  readonly dbVersion: AuroraPostgresEngineVersion;
@@ -14,7 +12,12 @@ export interface DbConfiguration {
14
12
  readonly instances: number;
15
13
  readonly customParameterGroup: boolean;
16
14
  readonly securityGroupId: string;
17
- readonly dbProxyName?: string;
15
+ readonly superuserName: string;
16
+ readonly superuserPassword: string;
17
+ readonly proxy: {
18
+ readonly name?: string;
19
+ readonly securityGroupId: string;
20
+ };
18
21
  }
19
22
  /**
20
23
  * How to upgrade major version?
@@ -31,6 +34,6 @@ export declare class DbStack extends Stack {
31
34
  static CLUSTER_PORT: number;
32
35
  constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: DbConfiguration);
33
36
  createParamaterGroup(configuration: DbConfiguration): IParameterGroup;
34
- createClusterParameters(configuration: DbConfiguration, instanceName: string, vpc: IVpc, securityGroup: ISecurityGroup, parameterGroup: IParameterGroup, secret: ISecret): DatabaseClusterProps;
37
+ createClusterParameters(configuration: DbConfiguration, instanceName: string, vpc: IVpc, securityGroup: ISecurityGroup, parameterGroup: IParameterGroup): DatabaseClusterProps;
35
38
  createAuroraCluster(isc: InfraStackConfiguration, configuration: DbConfiguration): DatabaseCluster;
36
39
  }
@@ -4,7 +4,6 @@ exports.DbStack = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
6
6
  const aws_rds_1 = require("aws-cdk-lib/aws-rds");
7
- const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
8
7
  const import_util_1 = require("../import-util");
9
8
  /**
10
9
  * How to upgrade major version?
@@ -38,7 +37,7 @@ class DbStack extends aws_cdk_lib_1.Stack {
38
37
  })
39
38
  : aws_rds_1.ParameterGroup.fromParameterGroupName(this, "ParameterGroup", `default.aurora-postgresql${configuration.dbVersion.auroraPostgresMajorVersion}`);
40
39
  }
41
- createClusterParameters(configuration, instanceName, vpc, securityGroup, parameterGroup, secret) {
40
+ createClusterParameters(configuration, instanceName, vpc, securityGroup, parameterGroup) {
42
41
  return {
43
42
  engine: aws_rds_1.DatabaseClusterEngine.auroraPostgres({
44
43
  version: configuration.dbVersion,
@@ -67,19 +66,16 @@ class DbStack extends aws_cdk_lib_1.Stack {
67
66
  instanceType: configuration.dbInstanceType,
68
67
  parameterGroup,
69
68
  },
70
- credentials: aws_rds_1.Credentials.fromSecret(secret),
69
+ credentials: aws_rds_1.Credentials.fromPassword(configuration.superuserName, aws_cdk_lib_1.SecretValue.unsafePlainText(configuration.superuserPassword)),
71
70
  parameterGroup,
72
71
  };
73
72
  }
74
73
  createAuroraCluster(isc, configuration) {
75
74
  const instanceName = isc.environmentName + "-db";
76
- const secret = aws_secretsmanager_1.Secret.fromSecretAttributes(this, "db-secret", {
77
- secretCompleteArn: configuration.secretArn,
78
- });
79
75
  const securityGroup = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, "securitygroup", configuration.securityGroupId);
80
- const vpc = (0, import_util_1.importVpc)(this, isc.environmentName);
81
76
  const parameterGroup = this.createParamaterGroup(configuration);
82
- const parameters = this.createClusterParameters(configuration, instanceName, vpc, securityGroup, parameterGroup, secret);
77
+ const parameters = this.createClusterParameters(configuration, instanceName, (0, import_util_1.importVpc)(this, isc.environmentName), securityGroup, parameterGroup);
78
+ // create cluster from the snapshot or from the scratch
83
79
  const cluster = configuration.snapshotIdentifier
84
80
  ? new aws_rds_1.DatabaseClusterFromSnapshot(this, instanceName, {
85
81
  ...parameters,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitraffic/common",
3
- "version": "2023.01.31-1",
3
+ "version": "2023.02.13-1",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,7 @@
19
19
  "peerDependencies": {
20
20
  "@aws-cdk/aws-synthetics-alpha": "2.62.2-alpha.0",
21
21
  "@types/geojson": "^7946.0.10",
22
- "aws-cdk-lib": "^2.62.2",
22
+ "aws-cdk-lib": "2.62.2",
23
23
  "aws-sdk": "^2.1304.0",
24
24
  "axios": "^1.2.6",
25
25
  "change-case": "^4.1.2",
@@ -35,24 +35,24 @@
35
35
  "@types/aws-lambda": "^8.10.110",
36
36
  "@types/geojson": "^7946.0.10",
37
37
  "@types/jest": "^29.2.5",
38
- "@types/node": "^18.11.18",
39
- "@types/ramda": "^0.28.21",
38
+ "@types/node": "^18.13.0",
39
+ "@types/ramda": "^0.28.23",
40
40
  "@types/sinon": "^10.0.13",
41
- "@typescript-eslint/eslint-plugin": "^5.48.2",
42
- "@typescript-eslint/parser": "^5.48.2",
43
- "aws-cdk-lib": "^2.62.2",
41
+ "@typescript-eslint/eslint-plugin": "^5.51.0",
42
+ "@typescript-eslint/parser": "^5.51.0",
43
+ "aws-cdk-lib": "2.62.2",
44
44
  "aws-sdk": "^2.1304.0",
45
45
  "axios": "^1.2.6",
46
46
  "change-case": "^4.1.2",
47
47
  "constructs": "^10.1.222",
48
- "eslint": "^8.33.0",
48
+ "eslint": "^8.34.0",
49
49
  "eslint-config-prettier": "^8.6.0",
50
50
  "eslint-plugin-deprecation": "1.3.3",
51
51
  "geojson-validation": "^1.0.2",
52
52
  "husky": "^8.0.3",
53
- "jest": "^29.1.1",
53
+ "jest": "^29.4.2",
54
54
  "jest-junit": "^15.0.0",
55
- "lint-staged": "^13.1.0",
55
+ "lint-staged": "^13.1.1",
56
56
  "moment": "^2.29.4",
57
57
  "node-ttl": "^0.2.0",
58
58
  "pg-native": "^3.0.1",
@@ -62,7 +62,7 @@
62
62
  "rimraf": "^4.1.0",
63
63
  "sinon": "^15.0.1",
64
64
  "ts-jest": "^29.0.5",
65
- "typescript": "^4.9.4"
65
+ "typescript": "^4.9.5"
66
66
  },
67
67
  "externals": [
68
68
  "aws-sdk",
@@ -1,10 +1,11 @@
1
1
  import {
2
+ MethodResponse,
2
3
  MockIntegration,
3
4
  PassthroughBehavior,
4
5
  Resource,
5
6
  } from "aws-cdk-lib/aws-apigateway";
6
7
  import { MediaType } from "../../types/mediatypes";
7
- import { corsMethod, RESPONSE_CORS_INTEGRATION } from "./responses";
8
+ import { RESPONSE_CORS_INTEGRATION } from "./responses";
8
9
 
9
10
  const INTEGRATION_RESPONSE_200 = `{
10
11
  "statusCode": 200
@@ -94,3 +95,14 @@ export class DigitrafficStaticIntegration extends MockIntegration {
94
95
  : METHOD_RESPONSE_200;
95
96
  }
96
97
  }
98
+
99
+ function corsMethod(response: MethodResponse): MethodResponse {
100
+ return {
101
+ ...response,
102
+ ...{
103
+ responseParameters: {
104
+ "method.response.header.Access-Control-Allow-Origin": true,
105
+ },
106
+ },
107
+ };
108
+ }
@@ -38,11 +38,12 @@ export class DbProxyStack extends Stack {
38
38
  const secret = Secret.fromSecretAttributes(this, "proxy-secret", {
39
39
  secretCompleteArn: configuration.secretArn,
40
40
  });
41
+
41
42
  const proxy = this.createProxy(vpc, secret, configuration);
42
43
  const readerEndpoint = this.createProxyEndpoints(
43
44
  vpc,
44
45
  proxy,
45
- configuration.securityGroupId
46
+ configuration.proxy.securityGroupId
46
47
  );
47
48
  this.setOutputs(configuration, proxy, readerEndpoint);
48
49
  }
@@ -52,7 +53,7 @@ export class DbProxyStack extends Stack {
52
53
  const securityGroup = SecurityGroup.fromSecurityGroupId(
53
54
  this,
54
55
  "securitygroup",
55
- configuration.securityGroupId
56
+ configuration.proxy.securityGroupId
56
57
  );
57
58
 
58
59
  const cluster = DatabaseCluster.fromDatabaseClusterAttributes(
@@ -75,7 +76,7 @@ export class DbProxyStack extends Stack {
75
76
  };
76
77
 
77
78
  return new DatabaseProxy(this, proxyId, {
78
- dbProxyName: configuration.dbProxyName ?? "AuroraProxy",
79
+ dbProxyName: configuration.proxy.name ?? "AuroraProxy",
79
80
  securityGroups: [securityGroup],
80
81
  proxyTarget: ProxyTarget.fromCluster(cluster),
81
82
  idleClientTimeout: Duration.seconds(1800),
@@ -1,6 +1,11 @@
1
- import { Duration, RemovalPolicy, Stack } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- import { IVpc, SecurityGroup, SubnetType } from "aws-cdk-lib/aws-ec2";
1
+ import { Duration, RemovalPolicy, SecretValue, Stack } from "aws-cdk-lib";
2
+ import {
3
+ InstanceType,
4
+ IVpc,
5
+ SecurityGroup,
6
+ SubnetType,
7
+ } from "aws-cdk-lib/aws-ec2";
8
+ import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
4
9
  import {
5
10
  AuroraPostgresEngineVersion,
6
11
  CfnDBInstance,
@@ -13,11 +18,9 @@ import {
13
18
  IParameterGroup,
14
19
  ParameterGroup,
15
20
  } from "aws-cdk-lib/aws-rds";
16
- import { ISecret, Secret } from "aws-cdk-lib/aws-secretsmanager";
21
+ import { Construct } from "constructs";
17
22
  import { exportValue, importVpc } from "../import-util";
18
- import { InstanceType } from "aws-cdk-lib/aws-ec2";
19
23
  import { InfraStackConfiguration } from "./intra-stack-configuration";
20
- import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
21
24
 
22
25
  export interface DbConfiguration {
23
26
  readonly secretArn: string;
@@ -29,7 +32,13 @@ export interface DbConfiguration {
29
32
  readonly customParameterGroup: boolean;
30
33
  readonly securityGroupId: string;
31
34
 
32
- readonly dbProxyName?: string;
35
+ readonly superuserName: string;
36
+ readonly superuserPassword: string;
37
+
38
+ readonly proxy: {
39
+ readonly name?: string;
40
+ readonly securityGroupId: string;
41
+ };
33
42
  }
34
43
 
35
44
  /**
@@ -110,8 +119,7 @@ export class DbStack extends Stack {
110
119
  instanceName: string,
111
120
  vpc: IVpc,
112
121
  securityGroup: ISecurityGroup,
113
- parameterGroup: IParameterGroup,
114
- secret: ISecret
122
+ parameterGroup: IParameterGroup
115
123
  ): DatabaseClusterProps {
116
124
  return {
117
125
  engine: DatabaseClusterEngine.auroraPostgres({
@@ -141,7 +149,10 @@ export class DbStack extends Stack {
141
149
  instanceType: configuration.dbInstanceType,
142
150
  parameterGroup,
143
151
  },
144
- credentials: Credentials.fromSecret(secret),
152
+ credentials: Credentials.fromPassword(
153
+ configuration.superuserName,
154
+ SecretValue.unsafePlainText(configuration.superuserPassword)
155
+ ),
145
156
  parameterGroup,
146
157
  };
147
158
  }
@@ -151,24 +162,21 @@ export class DbStack extends Stack {
151
162
  configuration: DbConfiguration
152
163
  ): DatabaseCluster {
153
164
  const instanceName = isc.environmentName + "-db";
154
- const secret = Secret.fromSecretAttributes(this, "db-secret", {
155
- secretCompleteArn: configuration.secretArn,
156
- });
157
165
  const securityGroup = SecurityGroup.fromSecurityGroupId(
158
166
  this,
159
167
  "securitygroup",
160
168
  configuration.securityGroupId
161
169
  );
162
- const vpc = importVpc(this, isc.environmentName);
163
170
  const parameterGroup = this.createParamaterGroup(configuration);
164
171
  const parameters = this.createClusterParameters(
165
172
  configuration,
166
173
  instanceName,
167
- vpc,
174
+ importVpc(this, isc.environmentName),
168
175
  securityGroup,
169
- parameterGroup,
170
- secret
176
+ parameterGroup
171
177
  );
178
+
179
+ // create cluster from the snapshot or from the scratch
172
180
  const cluster = configuration.snapshotIdentifier
173
181
  ? new DatabaseClusterFromSnapshot(this, instanceName, {
174
182
  ...parameters,