@fjall/components-infrastructure 0.75.3 → 0.76.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.
Files changed (174) hide show
  1. package/dist/lib/app.d.ts +32 -8
  2. package/dist/lib/app.js +58 -11
  3. package/dist/lib/config/aws/backupGlobalSettings.d.ts +1 -1
  4. package/dist/lib/config/aws/backupGlobalSettings.js +1 -1
  5. package/dist/lib/config/aws/cloudTrail.d.ts +1 -1
  6. package/dist/lib/config/aws/cloudTrail.js +2 -2
  7. package/dist/lib/config/aws/disasterRecovery.js +1 -1
  8. package/dist/lib/config/aws/ecrDefaultImage.d.ts +1 -1
  9. package/dist/lib/config/aws/ecrDefaultImage.js +2 -2
  10. package/dist/lib/config/aws/identityCenter.d.ts +3 -3
  11. package/dist/lib/config/aws/identityCenter.js +1 -1
  12. package/dist/lib/config/aws/identityCenterGroupMembership.d.ts +2 -2
  13. package/dist/lib/config/aws/identityCenterGroupMembership.js +1 -1
  14. package/dist/lib/config/aws/ipam.js +2 -4
  15. package/dist/lib/config/aws/organisation.d.ts +3 -3
  16. package/dist/lib/config/aws/organisation.js +1 -1
  17. package/dist/lib/config/aws/organisationsAccess.d.ts +1 -1
  18. package/dist/lib/config/aws/organisationsAccess.js +1 -1
  19. package/dist/lib/config/monitoring.d.ts +18 -0
  20. package/dist/lib/config/monitoring.js +22 -0
  21. package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
  22. package/dist/lib/patterns/aws/buildkite.js +1 -1
  23. package/dist/lib/patterns/aws/compute.d.ts +8 -8
  24. package/dist/lib/patterns/aws/compute.js +5 -5
  25. package/dist/lib/patterns/aws/database.d.ts +191 -24
  26. package/dist/lib/patterns/aws/database.js +201 -42
  27. package/dist/lib/patterns/aws/fivetranProxy.d.ts +5 -5
  28. package/dist/lib/patterns/aws/fivetranProxy.js +1 -1
  29. package/dist/lib/patterns/aws/hostedZone.d.ts +2 -2
  30. package/dist/lib/patterns/aws/hostedZone.js +1 -1
  31. package/dist/lib/patterns/aws/managedAccount.d.ts +2 -2
  32. package/dist/lib/patterns/aws/managedAccount.js +1 -1
  33. package/dist/lib/patterns/aws/managedIdentityCenter.js +1 -1
  34. package/dist/lib/patterns/aws/managedOrganisation.d.ts +3 -3
  35. package/dist/lib/patterns/aws/managedOrganisation.js +1 -1
  36. package/dist/lib/patterns/aws/managedPlatform.d.ts +2 -2
  37. package/dist/lib/patterns/aws/managedPlatform.js +2 -4
  38. package/dist/lib/patterns/aws/storage.d.ts +4 -55
  39. package/dist/lib/patterns/aws/storage.js +3 -103
  40. package/dist/lib/resources/aws/backup/backupPlan.d.ts +2 -2
  41. package/dist/lib/resources/aws/backup/backupPlan.js +1 -1
  42. package/dist/lib/resources/aws/backup/backupVault.d.ts +2 -2
  43. package/dist/lib/resources/aws/backup/backupVault.js +1 -1
  44. package/dist/lib/resources/aws/base/awsStack.js +1 -1
  45. package/dist/lib/resources/aws/compute/ec2.d.ts +3 -3
  46. package/dist/lib/resources/aws/compute/ec2.js +1 -1
  47. package/dist/lib/resources/aws/compute/ecs.d.ts +9 -9
  48. package/dist/lib/resources/aws/compute/ecs.js +63 -19
  49. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +6 -7
  50. package/dist/lib/resources/aws/compute/ecsFreeTier.js +3 -7
  51. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +6 -7
  52. package/dist/lib/resources/aws/compute/ecsSpot.js +3 -11
  53. package/dist/lib/resources/aws/compute/lambda.d.ts +4 -4
  54. package/dist/lib/resources/aws/compute/lambda.js +1 -1
  55. package/dist/lib/resources/aws/database/database.d.ts +2 -2
  56. package/dist/lib/resources/aws/database/database.js +1 -1
  57. package/dist/lib/resources/aws/database/databaseInstance.d.ts +2 -2
  58. package/dist/lib/resources/aws/database/databaseInstance.js +2 -2
  59. package/dist/lib/resources/aws/database/index.d.ts +0 -1
  60. package/dist/lib/resources/aws/database/index.js +1 -2
  61. package/dist/lib/resources/aws/database/rdsAurora.d.ts +22 -6
  62. package/dist/lib/resources/aws/database/rdsAurora.js +212 -84
  63. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +39 -6
  64. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +34 -5
  65. package/dist/lib/resources/aws/database/rdsInstance.d.ts +16 -10
  66. package/dist/lib/resources/aws/database/rdsInstance.js +126 -63
  67. package/dist/lib/resources/aws/iam/identityCenter/assignment.d.ts +1 -1
  68. package/dist/lib/resources/aws/iam/identityCenter/assignment.js +1 -1
  69. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.d.ts +1 -1
  70. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +1 -1
  71. package/dist/lib/resources/aws/iam/identityCenter/group.d.ts +1 -1
  72. package/dist/lib/resources/aws/iam/identityCenter/group.js +1 -1
  73. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.d.ts +2 -2
  74. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +1 -1
  75. package/dist/lib/resources/aws/iam/instanceProfile.d.ts +1 -1
  76. package/dist/lib/resources/aws/iam/instanceProfile.js +1 -1
  77. package/dist/lib/resources/aws/iam/managedPolicy.d.ts +1 -1
  78. package/dist/lib/resources/aws/iam/managedPolicy.js +1 -1
  79. package/dist/lib/resources/aws/iam/policy.d.ts +1 -1
  80. package/dist/lib/resources/aws/iam/policy.js +1 -1
  81. package/dist/lib/resources/aws/iam/role.d.ts +1 -1
  82. package/dist/lib/resources/aws/iam/role.js +1 -1
  83. package/dist/lib/resources/aws/iam/securityGroup.d.ts +1 -1
  84. package/dist/lib/resources/aws/iam/securityGroup.js +1 -1
  85. package/dist/lib/resources/aws/index.d.ts +1 -0
  86. package/dist/lib/resources/aws/index.js +2 -1
  87. package/dist/lib/resources/aws/logging/logGroup.d.ts +2 -2
  88. package/dist/lib/resources/aws/logging/logGroup.js +1 -1
  89. package/dist/lib/resources/aws/monitoring/index.d.ts +1 -0
  90. package/dist/lib/resources/aws/monitoring/index.js +18 -0
  91. package/dist/lib/resources/aws/monitoring/monitoringRole.d.ts +28 -0
  92. package/dist/lib/resources/aws/monitoring/monitoringRole.js +69 -0
  93. package/dist/lib/resources/aws/networking/ipam.d.ts +1 -1
  94. package/dist/lib/resources/aws/networking/ipam.js +1 -1
  95. package/dist/lib/resources/aws/networking/ipamPool.d.ts +1 -1
  96. package/dist/lib/resources/aws/networking/ipamPool.js +1 -2
  97. package/dist/lib/resources/aws/networking/vpc.d.ts +3 -3
  98. package/dist/lib/resources/aws/networking/vpc.js +1 -1
  99. package/dist/lib/resources/aws/networking/vpcEndpoint.d.ts +2 -2
  100. package/dist/lib/resources/aws/networking/vpcEndpoint.js +1 -1
  101. package/dist/lib/resources/aws/secrets/alias.d.ts +1 -1
  102. package/dist/lib/resources/aws/secrets/alias.js +1 -1
  103. package/dist/lib/resources/aws/secrets/parameter.d.ts +1 -1
  104. package/dist/lib/resources/aws/secrets/parameter.js +1 -1
  105. package/dist/lib/resources/aws/secrets/secret.d.ts +8 -4
  106. package/dist/lib/resources/aws/secrets/secret.js +19 -2
  107. package/dist/lib/resources/aws/storage/ecr.d.ts +4 -4
  108. package/dist/lib/resources/aws/storage/ecr.js +1 -1
  109. package/dist/lib/resources/aws/storage/s3.d.ts +2 -2
  110. package/dist/lib/resources/aws/storage/s3.js +1 -1
  111. package/dist/lib/resources/aws/utilities/awsCustomResource.d.ts +1 -1
  112. package/dist/lib/resources/aws/utilities/awsCustomResource.js +1 -1
  113. package/dist/lib/resources/aws/utilities/cfnOutput.d.ts +1 -1
  114. package/dist/lib/resources/aws/utilities/cfnOutput.js +1 -1
  115. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +1 -1
  116. package/dist/lib/resources/aws/utilities/codeBuild.js +1 -1
  117. package/dist/lib/resources/aws/utilities/customResource.d.ts +3 -3
  118. package/dist/lib/resources/aws/utilities/customResource.js +1 -1
  119. package/dist/lib/resources/aws/utilities/customResourceProvider.d.ts +2 -2
  120. package/dist/lib/resources/aws/utilities/customResourceProvider.js +1 -1
  121. package/dist/lib/resources/aws/utilities/resourceShare.d.ts +2 -2
  122. package/dist/lib/resources/aws/utilities/resourceShare.js +1 -1
  123. package/dist/lib/utils/getAsync.d.ts +1 -1
  124. package/dist/lib/utils/getAsync.js +1 -1
  125. package/dist/lib/utils/getConfig.d.ts +2 -2
  126. package/dist/lib/utils/getConfig.js +3 -3
  127. package/dist/lib/utils/standardTagsAspect.d.ts +2 -2
  128. package/dist/lib/utils/standardTagsAspect.js +6 -5
  129. package/dist/lib/utils/tagResource.d.ts +1 -1
  130. package/dist/lib/utils/tagResource.js +1 -1
  131. package/package.json +3 -3
  132. package/dist/lib/__tests__/patterns/__snapshots__/compute.test.js.snap +0 -433
  133. package/dist/lib/__tests__/patterns/compute.test.d.ts +0 -1
  134. package/dist/lib/__tests__/patterns/compute.test.js +0 -137
  135. package/dist/lib/__tests__/simple.test.d.ts +0 -0
  136. package/dist/lib/__tests__/simple.test.js +0 -12
  137. package/dist/lib/patterns/aws/basicApp.d.ts +0 -0
  138. package/dist/lib/patterns/aws/basicApp.js +0 -150
  139. package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -44
  140. package/dist/lib/patterns/aws/freeTierApp.js +0 -83
  141. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +0 -45
  142. package/dist/lib/patterns/aws/spotInstanceApp.js +0 -85
  143. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +0 -15
  144. package/dist/lib/resources/aws/database/databaseFreeTier.js +0 -29
  145. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +0 -37
  146. package/dist/lib/resources/aws/database/rdsFreeTier.js +0 -84
  147. package/dist/lib/resources/aws/organisations/account.d.ts +0 -37
  148. package/dist/lib/resources/aws/organisations/account.js +0 -220
  149. package/dist/lib/resources/aws/organisations/delegatedAdministrator.d.ts +0 -14
  150. package/dist/lib/resources/aws/organisations/delegatedAdministrator.js +0 -61
  151. package/dist/lib/resources/aws/organisations/index.d.ts +0 -8
  152. package/dist/lib/resources/aws/organisations/index.js +0 -22
  153. package/dist/lib/resources/aws/organisations/interfaces.d.ts +0 -105
  154. package/dist/lib/resources/aws/organisations/interfaces.js +0 -3
  155. package/dist/lib/resources/aws/organisations/organisation.d.ts +0 -47
  156. package/dist/lib/resources/aws/organisations/organisation.js +0 -263
  157. package/dist/lib/resources/aws/organisations/organisationalUnit.d.ts +0 -28
  158. package/dist/lib/resources/aws/organisations/organisationalUnit.js +0 -170
  159. package/dist/lib/resources/aws/organisations/policy.d.ts +0 -17
  160. package/dist/lib/resources/aws/organisations/policy.js +0 -93
  161. package/dist/lib/resources/aws/organisations/trustedServiceAccess.d.ts +0 -13
  162. package/dist/lib/resources/aws/organisations/trustedServiceAccess.js +0 -58
  163. package/dist/lib/resources/aws/organisations/types.d.ts +0 -165
  164. package/dist/lib/resources/aws/organisations/types.js +0 -36
  165. package/dist/lib/utils/directTagging.d.ts +0 -31
  166. package/dist/lib/utils/directTagging.js +0 -86
  167. package/dist/lib/utils/fjallConstruct.d.ts +0 -8
  168. package/dist/lib/utils/fjallConstruct.js +0 -18
  169. package/dist/lib/utils/fjallStackSynthesizer.d.ts +0 -9
  170. package/dist/lib/utils/fjallStackSynthesizer.js +0 -22
  171. package/dist/lib/utils/tagContext.d.ts +0 -28
  172. package/dist/lib/utils/tagContext.js +0 -53
  173. package/dist/lib/utils/tagSynthesizer.d.ts +0 -13
  174. package/dist/lib/utils/tagSynthesizer.js +0 -55
@@ -1,150 +0,0 @@
1
- "use strict";
2
- // import AwsStack, { AwsStackProps } from "../../resources/aws/base/awsStack";
3
- // import { Vpc } from "../../resources/aws/networking/vpc";
4
- // import Fargate, {
5
- // ContainerSecret,
6
- // ScalingType,
7
- // Protocol
8
- // } from "../../resources/aws/compute/ecs";
9
- // import Database from "../../resources/aws/database/database";
10
- // import { Secret } from "../../resources/aws/secrets";
11
- // import { Ecr } from "../../resources/aws/storage";
12
- // import { Fn, SecretValue } from "aws-cdk-lib";
13
- // import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
14
- // import { KeyValue } from "../../types";
15
- // /**
16
- // * Intersected with BasicAppProps in the getProps method. This allows the BasicApp construct
17
- // * to treat these as required properties and avoid constant null checking.
18
- // */
19
- // export interface BasicAppPropDefaults {
20
- // tags: KeyValue;
21
- // serviceName: string;
22
- // clusterName: string;
23
- // protocol: Protocol;
24
- // scalingType: ScalingType;
25
- // containerPort: number;
26
- // }
27
- // export interface BasicAppProps {
28
- // accountId?: string;
29
- // clusterName?: string;
30
- // containerCommand?: string[];
31
- // containerEnvironment?: KeyValue;
32
- // containerPort?: number;
33
- // containerSecrets?: string[];
34
- // environment: string;
35
- // // The team/domain/business-unit that is responsible for this service
36
- // owner?: string;
37
- // parentDomain?: string; // Fix to make a dependency of protocol
38
- // listenerPort?: number;
39
- // protocol?: Protocol;
40
- // region?: string;
41
- // scalingType?: ScalingType;
42
- // serviceName?: string;
43
- // taskRoleInlinePolicies?: {
44
- // [name: string]: PolicyDocument;
45
- // };
46
- // taskRoleManagedPolicies?: IManagedPolicy[];
47
- // tags?: KeyValue;
48
- // }
49
- // export class BasicApp {
50
- // private vpcStack: AwsStack;
51
- // private databaseStack: AwsStack;
52
- // private secretStack: AwsStack;
53
- // private computeStack: AwsStack;
54
- // constructor(id: string, rawProps: BasicAppProps) {
55
- // const props = this.getProps(id, rawProps);
56
- // const stackProps = this.getStackProps(props);
57
- // this.vpcStack = new AwsStack(`${id}Network`, [], stackProps)
58
- // .addNetwork(
59
- // Vpc.build(`${id}Vpc`, {
60
- // accountId: props.accountId,
61
- // ipv4IpamPoolId: Fn.importValue(`IpamPoolId${props?.accountId}`),
62
- // region: props.region,
63
- // tags: props.tags
64
- // })
65
- // )
66
- // .addContainerRegistry(Ecr.build(`${id}Ecr`));
67
- // this.databaseStack = new AwsStack(
68
- // `${id}Database`,
69
- // this.vpcStack,
70
- // stackProps
71
- // )
72
- // .addNetwork(this.vpcStack.getNetwork())
73
- // .addResource(Database.build(`${id}Database`));
74
- // //TODO: validate id does not contain special characters (no hyphens - no slashes etc) database instances won't allow it
75
- // const dbResource = this.databaseStack.getResource(
76
- // `${id}Database`
77
- // ) as Database;
78
- // const secretObjectValue: ContainerSecret = {};
79
- // if (props.containerSecrets) {
80
- // for (const secretObject of props.containerSecrets) {
81
- // secretObjectValue[secretObject] = SecretValue.unsafePlainText("");
82
- // }
83
- // }
84
- // this.secretStack = new AwsStack(`${id}Secret`, [], stackProps).addResource(
85
- // Secret.build(`${id}Secret`, {
86
- // secretName: `/${props.clusterName}/${props.serviceName}`,
87
- // secretObjectValue: secretObjectValue,
88
- // tags: props.tags
89
- // })
90
- // );
91
- // this.computeStack = new AwsStack(
92
- // `${id}Compute`,
93
- // [this.vpcStack, this.databaseStack, this.secretStack],
94
- // stackProps
95
- // )
96
- // .addNetwork(this.vpcStack.getNetwork())
97
- // .addResource(
98
- // Fargate.build(`${id}Fargate`, {
99
- // clusterName: props.clusterName,
100
- // protocol: props.protocol,
101
- // //TODO: This should work via line 126, but doesn't work (at least on update)
102
- // databaseConnection: dbResource.connections,
103
- // containerCommand: props.containerCommand,
104
- // containerEnvironment: props.containerEnvironment,
105
- // containerPort: props.containerPort,
106
- // containerSecrets: secretObjectValue,
107
- // ecrRepository: this.vpcStack.getContainerRegistry(),
108
- // parentDomain: props.parentDomain?.toLowerCase(),
109
- // listenerPort: props.listenerPort,
110
- // scalingType: props.scalingType,
111
- // serviceName: props.serviceName,
112
- // taskRoleInlinePolicies: props.taskRoleInlinePolicies,
113
- // taskRoleManagedPolicies: props.taskRoleManagedPolicies,
114
- // tags: props.tags
115
- // })
116
- // )
117
- // .connect(`${id}Fargate`, `${id}Database`, 5432);
118
- // }
119
- // getStackProps(props: BasicAppProps): AwsStackProps | undefined {
120
- // if (!props) return;
121
- // return {
122
- // accountId: props.accountId,
123
- // region: props.region
124
- // };
125
- // }
126
- // getProps(
127
- // id: string,
128
- // rawProps: BasicAppProps
129
- // ): BasicAppProps & BasicAppPropDefaults {
130
- // const defaultProps = {
131
- // tags: {
132
- // "fjall:costAllocation:service": "app",
133
- // "fjall:costAllocation:environment":
134
- // rawProps.environment || "production",
135
- // "fjall:costAllocation:owner": rawProps.owner || "engineer"
136
- // },
137
- // scalingType: ScalingType.CPU,
138
- // protocol: rawProps.parentDomain ? Protocol.HTTPS : Protocol.HTTP,
139
- // containerPort: 3000,
140
- // serviceName: `${id}Service`,
141
- // clusterName: `${id}Cluster`
142
- // };
143
- // return {
144
- // ...defaultProps,
145
- // ...rawProps
146
- // };
147
- // }
148
- // }
149
- // export default BasicApp;
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWNBcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL2Jhc2ljQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrRUFBK0U7QUFDL0UsNERBQTREO0FBQzVELG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYiw0Q0FBNEM7QUFDNUMsZ0VBQWdFO0FBQ2hFLHdEQUF3RDtBQUN4RCxxREFBcUQ7QUFDckQsaURBQWlEO0FBQ2pELHdFQUF3RTtBQUN4RSwwQ0FBMEM7QUFFMUMsTUFBTTtBQUNOLCtGQUErRjtBQUMvRiw2RUFBNkU7QUFDN0UsTUFBTTtBQUNOLDBDQUEwQztBQUMxQyxvQkFBb0I7QUFDcEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qix3QkFBd0I7QUFDeEIsOEJBQThCO0FBQzlCLDJCQUEyQjtBQUMzQixJQUFJO0FBRUosbUNBQW1DO0FBQ25DLHdCQUF3QjtBQUN4QiwwQkFBMEI7QUFDMUIsaUNBQWlDO0FBQ2pDLHFDQUFxQztBQUNyQyw0QkFBNEI7QUFDNUIsaUNBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6QiwwRUFBMEU7QUFDMUUsb0JBQW9CO0FBQ3BCLG1FQUFtRTtBQUNuRSwyQkFBMkI7QUFDM0IseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQiwrQkFBK0I7QUFDL0IsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQixzQ0FBc0M7QUFDdEMsT0FBTztBQUNQLGdEQUFnRDtBQUNoRCxxQkFBcUI7QUFDckIsSUFBSTtBQUVKLDBCQUEwQjtBQUMxQixnQ0FBZ0M7QUFDaEMscUNBQXFDO0FBQ3JDLG1DQUFtQztBQUNuQyxvQ0FBb0M7QUFFcEMsdURBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCxvREFBb0Q7QUFFcEQsbUVBQW1FO0FBQ25FLHFCQUFxQjtBQUNyQixrQ0FBa0M7QUFDbEMsd0NBQXdDO0FBQ3hDLDZFQUE2RTtBQUM3RSxrQ0FBa0M7QUFDbEMsNkJBQTZCO0FBQzdCLGFBQWE7QUFDYixVQUFVO0FBQ1Ysc0RBQXNEO0FBRXRELHlDQUF5QztBQUN6Qyx5QkFBeUI7QUFDekIsdUJBQXVCO0FBQ3ZCLG1CQUFtQjtBQUNuQixRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELHVEQUF1RDtBQUV2RCw4SEFBOEg7QUFFOUgseURBQXlEO0FBQ3pELHdCQUF3QjtBQUN4QixxQkFBcUI7QUFFckIscURBQXFEO0FBQ3JELG9DQUFvQztBQUNwQyw2REFBNkQ7QUFDN0QsNkVBQTZFO0FBQzdFLFVBQVU7QUFDVixRQUFRO0FBRVIsa0ZBQWtGO0FBQ2xGLHNDQUFzQztBQUN0QyxvRUFBb0U7QUFDcEUsZ0RBQWdEO0FBQ2hELDJCQUEyQjtBQUMzQixXQUFXO0FBQ1gsU0FBUztBQUVULHdDQUF3QztBQUN4Qyx3QkFBd0I7QUFDeEIsK0RBQStEO0FBQy9ELG1CQUFtQjtBQUNuQixRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELHNCQUFzQjtBQUN0QiwwQ0FBMEM7QUFDMUMsNENBQTRDO0FBQzVDLHNDQUFzQztBQUN0Qyx5RkFBeUY7QUFDekYsd0RBQXdEO0FBQ3hELHNEQUFzRDtBQUN0RCw4REFBOEQ7QUFDOUQsZ0RBQWdEO0FBQ2hELGlEQUFpRDtBQUNqRCxpRUFBaUU7QUFDakUsNkRBQTZEO0FBQzdELDhDQUE4QztBQUM5Qyw0Q0FBNEM7QUFDNUMsNENBQTRDO0FBQzVDLGtFQUFrRTtBQUNsRSxvRUFBb0U7QUFDcEUsNkJBQTZCO0FBQzdCLGFBQWE7QUFDYixVQUFVO0FBQ1YseURBQXlEO0FBQ3pELE1BQU07QUFFTixxRUFBcUU7QUFDckUsMEJBQTBCO0FBRTFCLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLFNBQVM7QUFDVCxNQUFNO0FBRU4sY0FBYztBQUNkLGtCQUFrQjtBQUNsQiw4QkFBOEI7QUFDOUIsOENBQThDO0FBQzlDLDZCQUE2QjtBQUM3QixnQkFBZ0I7QUFDaEIsaURBQWlEO0FBQ2pELDhDQUE4QztBQUM5QyxrREFBa0Q7QUFDbEQscUVBQXFFO0FBQ3JFLFdBQVc7QUFDWCxzQ0FBc0M7QUFDdEMsMEVBQTBFO0FBQzFFLDZCQUE2QjtBQUM3QixxQ0FBcUM7QUFDckMsb0NBQW9DO0FBQ3BDLFNBQVM7QUFFVCxlQUFlO0FBQ2YseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixTQUFTO0FBQ1QsTUFBTTtBQUNOLElBQUk7QUFDSiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgQXdzU3RhY2ssIHsgQXdzU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2Jhc2UvYXdzU3RhY2tcIjtcbi8vIGltcG9ydCB7IFZwYyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvdnBjXCI7XG4vLyBpbXBvcnQgRmFyZ2F0ZSwge1xuLy8gICBDb250YWluZXJTZWNyZXQsXG4vLyAgIFNjYWxpbmdUeXBlLFxuLy8gICBQcm90b2NvbFxuLy8gfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9jb21wdXRlL2Vjc1wiO1xuLy8gaW1wb3J0IERhdGFiYXNlIGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2RhdGFiYXNlL2RhdGFiYXNlXCI7XG4vLyBpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9zZWNyZXRzXCI7XG4vLyBpbXBvcnQgeyBFY3IgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBGbiwgU2VjcmV0VmFsdWUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbi8vIGltcG9ydCB7IElNYW5hZ2VkUG9saWN5LCBQb2xpY3lEb2N1bWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG4vLyBpbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG4vLyAvKipcbi8vICAqIEludGVyc2VjdGVkIHdpdGggQmFzaWNBcHBQcm9wcyBpbiB0aGUgZ2V0UHJvcHMgbWV0aG9kLiBUaGlzIGFsbG93cyB0aGUgQmFzaWNBcHAgY29uc3RydWN0XG4vLyAgKiB0byB0cmVhdCB0aGVzZSBhcyByZXF1aXJlZCBwcm9wZXJ0aWVzIGFuZCBhdm9pZCBjb25zdGFudCBudWxsIGNoZWNraW5nLlxuLy8gICovXG4vLyBleHBvcnQgaW50ZXJmYWNlIEJhc2ljQXBwUHJvcERlZmF1bHRzIHtcbi8vICAgdGFnczogS2V5VmFsdWU7XG4vLyAgIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4vLyAgIGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4vLyAgIHByb3RvY29sOiBQcm90b2NvbDtcbi8vICAgc2NhbGluZ1R5cGU6IFNjYWxpbmdUeXBlO1xuLy8gICBjb250YWluZXJQb3J0OiBudW1iZXI7XG4vLyB9XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBcHBQcm9wcyB7XG4vLyAgIGFjY291bnRJZD86IHN0cmluZztcbi8vICAgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG4vLyAgIGNvbnRhaW5lckNvbW1hbmQ/OiBzdHJpbmdbXTtcbi8vICAgY29udGFpbmVyRW52aXJvbm1lbnQ/OiBLZXlWYWx1ZTtcbi8vICAgY29udGFpbmVyUG9ydD86IG51bWJlcjtcbi8vICAgY29udGFpbmVyU2VjcmV0cz86IHN0cmluZ1tdO1xuLy8gICBlbnZpcm9ubWVudDogc3RyaW5nO1xuLy8gICAvLyBUaGUgdGVhbS9kb21haW4vYnVzaW5lc3MtdW5pdCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB0aGlzIHNlcnZpY2Vcbi8vICAgb3duZXI/OiBzdHJpbmc7XG4vLyAgIHBhcmVudERvbWFpbj86IHN0cmluZzsgLy8gRml4IHRvIG1ha2UgYSBkZXBlbmRlbmN5IG9mIHByb3RvY29sXG4vLyAgIGxpc3RlbmVyUG9ydD86IG51bWJlcjtcbi8vICAgcHJvdG9jb2w/OiBQcm90b2NvbDtcbi8vICAgcmVnaW9uPzogc3RyaW5nO1xuLy8gICBzY2FsaW5nVHlwZT86IFNjYWxpbmdUeXBlO1xuLy8gICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbi8vICAgdGFza1JvbGVJbmxpbmVQb2xpY2llcz86IHtcbi8vICAgICBbbmFtZTogc3RyaW5nXTogUG9saWN5RG9jdW1lbnQ7XG4vLyAgIH07XG4vLyAgIHRhc2tSb2xlTWFuYWdlZFBvbGljaWVzPzogSU1hbmFnZWRQb2xpY3lbXTtcbi8vICAgdGFncz86IEtleVZhbHVlO1xuLy8gfVxuXG4vLyBleHBvcnQgY2xhc3MgQmFzaWNBcHAge1xuLy8gICBwcml2YXRlIHZwY1N0YWNrOiBBd3NTdGFjaztcbi8vICAgcHJpdmF0ZSBkYXRhYmFzZVN0YWNrOiBBd3NTdGFjaztcbi8vICAgcHJpdmF0ZSBzZWNyZXRTdGFjazogQXdzU3RhY2s7XG4vLyAgIHByaXZhdGUgY29tcHV0ZVN0YWNrOiBBd3NTdGFjaztcblxuLy8gICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCByYXdQcm9wczogQmFzaWNBcHBQcm9wcykge1xuLy8gICAgIGNvbnN0IHByb3BzID0gdGhpcy5nZXRQcm9wcyhpZCwgcmF3UHJvcHMpO1xuLy8gICAgIGNvbnN0IHN0YWNrUHJvcHMgPSB0aGlzLmdldFN0YWNrUHJvcHMocHJvcHMpO1xuXG4vLyAgICAgdGhpcy52cGNTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1OZXR3b3JrYCwgW10sIHN0YWNrUHJvcHMpXG4vLyAgICAgICAuYWRkTmV0d29yayhcbi8vICAgICAgICAgVnBjLmJ1aWxkKGAke2lkfVZwY2AsIHtcbi8vICAgICAgICAgICBhY2NvdW50SWQ6IHByb3BzLmFjY291bnRJZCxcbi8vICAgICAgICAgICBpcHY0SXBhbVBvb2xJZDogRm4uaW1wb3J0VmFsdWUoYElwYW1Qb29sSWQke3Byb3BzPy5hY2NvdW50SWR9YCksXG4vLyAgICAgICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4vLyAgICAgICAgICAgdGFnczogcHJvcHMudGFnc1xuLy8gICAgICAgICB9KVxuLy8gICAgICAgKVxuLy8gICAgICAgLmFkZENvbnRhaW5lclJlZ2lzdHJ5KEVjci5idWlsZChgJHtpZH1FY3JgKSk7XG5cbi8vICAgICB0aGlzLmRhdGFiYXNlU3RhY2sgPSBuZXcgQXdzU3RhY2soXG4vLyAgICAgICBgJHtpZH1EYXRhYmFzZWAsXG4vLyAgICAgICB0aGlzLnZwY1N0YWNrLFxuLy8gICAgICAgc3RhY2tQcm9wc1xuLy8gICAgIClcbi8vICAgICAgIC5hZGROZXR3b3JrKHRoaXMudnBjU3RhY2suZ2V0TmV0d29yaygpKVxuLy8gICAgICAgLmFkZFJlc291cmNlKERhdGFiYXNlLmJ1aWxkKGAke2lkfURhdGFiYXNlYCkpO1xuXG4vLyAgICAgLy9UT0RPOiB2YWxpZGF0ZSBpZCBkb2VzIG5vdCBjb250YWluIHNwZWNpYWwgY2hhcmFjdGVycyAobm8gaHlwaGVucyAtIG5vIHNsYXNoZXMgZXRjKSBkYXRhYmFzZSBpbnN0YW5jZXMgd29uJ3QgYWxsb3cgaXRcblxuLy8gICAgIGNvbnN0IGRiUmVzb3VyY2UgPSB0aGlzLmRhdGFiYXNlU3RhY2suZ2V0UmVzb3VyY2UoXG4vLyAgICAgICBgJHtpZH1EYXRhYmFzZWBcbi8vICAgICApIGFzIERhdGFiYXNlO1xuXG4vLyAgICAgY29uc3Qgc2VjcmV0T2JqZWN0VmFsdWU6IENvbnRhaW5lclNlY3JldCA9IHt9O1xuLy8gICAgIGlmIChwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4vLyAgICAgICBmb3IgKGNvbnN0IHNlY3JldE9iamVjdCBvZiBwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4vLyAgICAgICAgIHNlY3JldE9iamVjdFZhbHVlW3NlY3JldE9iamVjdF0gPSBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHQoXCJcIik7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgdGhpcy5zZWNyZXRTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1TZWNyZXRgLCBbXSwgc3RhY2tQcm9wcykuYWRkUmVzb3VyY2UoXG4vLyAgICAgICBTZWNyZXQuYnVpbGQoYCR7aWR9U2VjcmV0YCwge1xuLy8gICAgICAgICBzZWNyZXROYW1lOiBgLyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMuc2VydmljZU5hbWV9YCxcbi8vICAgICAgICAgc2VjcmV0T2JqZWN0VmFsdWU6IHNlY3JldE9iamVjdFZhbHVlLFxuLy8gICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4vLyAgICAgICB9KVxuLy8gICAgICk7XG5cbi8vICAgICB0aGlzLmNvbXB1dGVTdGFjayA9IG5ldyBBd3NTdGFjayhcbi8vICAgICAgIGAke2lkfUNvbXB1dGVgLFxuLy8gICAgICAgW3RoaXMudnBjU3RhY2ssIHRoaXMuZGF0YWJhc2VTdGFjaywgdGhpcy5zZWNyZXRTdGFja10sXG4vLyAgICAgICBzdGFja1Byb3BzXG4vLyAgICAgKVxuLy8gICAgICAgLmFkZE5ldHdvcmsodGhpcy52cGNTdGFjay5nZXROZXR3b3JrKCkpXG4vLyAgICAgICAuYWRkUmVzb3VyY2UoXG4vLyAgICAgICAgIEZhcmdhdGUuYnVpbGQoYCR7aWR9RmFyZ2F0ZWAsIHtcbi8vICAgICAgICAgICBjbHVzdGVyTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUsXG4vLyAgICAgICAgICAgcHJvdG9jb2w6IHByb3BzLnByb3RvY29sLFxuLy8gICAgICAgICAgIC8vVE9ETzogVGhpcyBzaG91bGQgd29yayB2aWEgbGluZSAxMjYsIGJ1dCBkb2Vzbid0IHdvcmsgKGF0IGxlYXN0IG9uIHVwZGF0ZSlcbi8vICAgICAgICAgICBkYXRhYmFzZUNvbm5lY3Rpb246IGRiUmVzb3VyY2UuY29ubmVjdGlvbnMsXG4vLyAgICAgICAgICAgY29udGFpbmVyQ29tbWFuZDogcHJvcHMuY29udGFpbmVyQ29tbWFuZCxcbi8vICAgICAgICAgICBjb250YWluZXJFbnZpcm9ubWVudDogcHJvcHMuY29udGFpbmVyRW52aXJvbm1lbnQsXG4vLyAgICAgICAgICAgY29udGFpbmVyUG9ydDogcHJvcHMuY29udGFpbmVyUG9ydCxcbi8vICAgICAgICAgICBjb250YWluZXJTZWNyZXRzOiBzZWNyZXRPYmplY3RWYWx1ZSxcbi8vICAgICAgICAgICBlY3JSZXBvc2l0b3J5OiB0aGlzLnZwY1N0YWNrLmdldENvbnRhaW5lclJlZ2lzdHJ5KCksXG4vLyAgICAgICAgICAgcGFyZW50RG9tYWluOiBwcm9wcy5wYXJlbnREb21haW4/LnRvTG93ZXJDYXNlKCksXG4vLyAgICAgICAgICAgbGlzdGVuZXJQb3J0OiBwcm9wcy5saXN0ZW5lclBvcnQsXG4vLyAgICAgICAgICAgc2NhbGluZ1R5cGU6IHByb3BzLnNjYWxpbmdUeXBlLFxuLy8gICAgICAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbi8vICAgICAgICAgICB0YXNrUm9sZUlubGluZVBvbGljaWVzOiBwcm9wcy50YXNrUm9sZUlubGluZVBvbGljaWVzLFxuLy8gICAgICAgICAgIHRhc2tSb2xlTWFuYWdlZFBvbGljaWVzOiBwcm9wcy50YXNrUm9sZU1hbmFnZWRQb2xpY2llcyxcbi8vICAgICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4vLyAgICAgICAgIH0pXG4vLyAgICAgICApXG4vLyAgICAgICAuY29ubmVjdChgJHtpZH1GYXJnYXRlYCwgYCR7aWR9RGF0YWJhc2VgLCA1NDMyKTtcbi8vICAgfVxuXG4vLyAgIGdldFN0YWNrUHJvcHMocHJvcHM6IEJhc2ljQXBwUHJvcHMpOiBBd3NTdGFja1Byb3BzIHwgdW5kZWZpbmVkIHtcbi8vICAgICBpZiAoIXByb3BzKSByZXR1cm47XG5cbi8vICAgICByZXR1cm4ge1xuLy8gICAgICAgYWNjb3VudElkOiBwcm9wcy5hY2NvdW50SWQsXG4vLyAgICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuLy8gICAgIH07XG4vLyAgIH1cblxuLy8gICBnZXRQcm9wcyhcbi8vICAgICBpZDogc3RyaW5nLFxuLy8gICAgIHJhd1Byb3BzOiBCYXNpY0FwcFByb3BzXG4vLyAgICk6IEJhc2ljQXBwUHJvcHMgJiBCYXNpY0FwcFByb3BEZWZhdWx0cyB7XG4vLyAgICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuLy8gICAgICAgdGFnczoge1xuLy8gICAgICAgICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOnNlcnZpY2VcIjogXCJhcHBcIixcbi8vICAgICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiOlxuLy8gICAgICAgICAgIHJhd1Byb3BzLmVudmlyb25tZW50IHx8IFwicHJvZHVjdGlvblwiLFxuLy8gICAgICAgICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOm93bmVyXCI6IHJhd1Byb3BzLm93bmVyIHx8IFwiZW5naW5lZXJcIlxuLy8gICAgICAgfSxcbi8vICAgICAgIHNjYWxpbmdUeXBlOiBTY2FsaW5nVHlwZS5DUFUsXG4vLyAgICAgICBwcm90b2NvbDogcmF3UHJvcHMucGFyZW50RG9tYWluID8gUHJvdG9jb2wuSFRUUFMgOiBQcm90b2NvbC5IVFRQLFxuLy8gICAgICAgY29udGFpbmVyUG9ydDogMzAwMCxcbi8vICAgICAgIHNlcnZpY2VOYW1lOiBgJHtpZH1TZXJ2aWNlYCxcbi8vICAgICAgIGNsdXN0ZXJOYW1lOiBgJHtpZH1DbHVzdGVyYFxuLy8gICAgIH07XG5cbi8vICAgICByZXR1cm4ge1xuLy8gICAgICAgLi4uZGVmYXVsdFByb3BzLFxuLy8gICAgICAgLi4ucmF3UHJvcHNcbi8vICAgICB9O1xuLy8gICB9XG4vLyB9XG4vLyBleHBvcnQgZGVmYXVsdCBCYXNpY0FwcDtcbiJdfQ==
@@ -1,44 +0,0 @@
1
- import { AwsStackProps } from "../../resources/aws/base/awsStack";
2
- import { ScalingType } from "../../resources/aws/compute/ecs";
3
- import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
4
- import { KeyValue } from "../../types";
5
- /**
6
- * Intersected with BasicAppProps in the getProps method. This allows the BasicApp construct
7
- * to treat these as required properties and avoid constant null checking.
8
- */
9
- export interface BasicAppPropDefaults {
10
- serviceName: string;
11
- clusterName: string;
12
- scalingType: ScalingType;
13
- containerPort: number;
14
- }
15
- export interface BasicAppProps {
16
- account?: string;
17
- clusterName?: string;
18
- containerEntryPoint?: string[];
19
- containerCommand?: string[];
20
- containerEnvironment?: KeyValue;
21
- containerPort?: number;
22
- containerSecrets?: string[];
23
- environment?: string;
24
- owner?: string;
25
- parentDomain?: string;
26
- listenerPort?: number;
27
- region?: string;
28
- scalingType?: ScalingType;
29
- serviceName?: string;
30
- taskRoleInlinePolicies?: {
31
- [name: string]: PolicyDocument;
32
- };
33
- taskRoleManagedPolicies?: IManagedPolicy[];
34
- }
35
- export declare class BasicApp {
36
- private vpcStack;
37
- private databaseStack;
38
- private secretStack;
39
- private computeStack;
40
- constructor(id: string, rawProps: BasicAppProps);
41
- getStackProps(props: BasicAppProps): AwsStackProps | undefined;
42
- getProps(id: string, rawProps: BasicAppProps): BasicAppProps & BasicAppPropDefaults;
43
- }
44
- export default BasicApp;
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BasicApp = void 0;
4
- const awsStack_1 = require("../../resources/aws/base/awsStack");
5
- const vpc_1 = require("../../resources/aws/networking/vpc");
6
- const ecs_1 = require("../../resources/aws/compute/ecs");
7
- const ecsFreeTier_1 = require("../../resources/aws/compute/ecsFreeTier");
8
- const secrets_1 = require("../../resources/aws/secrets");
9
- const storage_1 = require("../../resources/aws/storage");
10
- const aws_cdk_lib_1 = require("aws-cdk-lib");
11
- const databaseFreeTier_1 = require("../../resources/aws/database/databaseFreeTier");
12
- class BasicApp {
13
- constructor(id, rawProps) {
14
- const props = this.getProps(id, rawProps);
15
- const stackProps = this.getStackProps(props);
16
- this.vpcStack = new awsStack_1.default(`${id}Network`, [], stackProps)
17
- .addNetwork(vpc_1.Vpc.build(`${id}Vpc`, {
18
- region: props.region
19
- }))
20
- .addContainerRegistry(storage_1.Ecr.build(`${id}Ecr`));
21
- this.databaseStack = new awsStack_1.default(`${id}Database`, this.vpcStack, stackProps)
22
- .addNetwork(this.vpcStack.getNetwork())
23
- .addResource(databaseFreeTier_1.default.build(`${id}Database`, {}));
24
- // Fetches the dbResource from the databaseStack
25
- const dbResource = this.databaseStack.getResource(`${id}Database`);
26
- const secretObjectValue = {};
27
- if (props.containerSecrets) {
28
- for (const secretObject of props.containerSecrets) {
29
- secretObjectValue[secretObject] = aws_cdk_lib_1.SecretValue.unsafePlainText("");
30
- }
31
- }
32
- this.secretStack = new awsStack_1.default(`${id}Secret`, [], stackProps).addResource(secrets_1.Secret.build(`${id}Secret`, {
33
- secretName: `/${props.clusterName}/${props.serviceName}`,
34
- secretObjectValue: secretObjectValue
35
- }));
36
- this.computeStack = new awsStack_1.default(`${id}Compute`, [this.vpcStack, this.databaseStack, this.secretStack], stackProps)
37
- .addNetwork(this.vpcStack.getNetwork())
38
- .addResource(ecsFreeTier_1.default.build(`${id}Fargate`, {
39
- clusterName: props.clusterName,
40
- //TODO: This should work via line 124, but doesn't work (at least on update)
41
- databaseConnection: dbResource.databaseSecurityGroup.connections,
42
- containerEntryPoint: props.containerEntryPoint,
43
- containerCommand: props.containerCommand,
44
- containerEnvironment: props.containerEnvironment,
45
- containerPort: props.containerPort,
46
- containerSecrets: secretObjectValue,
47
- ecrRepository: this.vpcStack.getContainerRegistry(),
48
- parentDomain: props.parentDomain?.toLowerCase(),
49
- listenerPort: props.listenerPort,
50
- serviceName: props.serviceName,
51
- taskRoleInlinePolicies: props.taskRoleInlinePolicies,
52
- taskRoleManagedPolicies: props.taskRoleManagedPolicies
53
- }))
54
- .connect(`${id}Fargate`, `${id}Database`, 5432);
55
- }
56
- getStackProps(props) {
57
- if (!props)
58
- return;
59
- return {
60
- accountId: props.account,
61
- region: props.region
62
- };
63
- }
64
- getProps(id, rawProps) {
65
- const defaultProps = {
66
- scalingType: ecs_1.ScalingType.CPU,
67
- containerPort: rawProps.containerPort || 3000,
68
- serviceName: `${id}Service`,
69
- clusterName: `${id}Cluster`,
70
- containerEntryPoint: ["node", "main.js"],
71
- containerCommand: rawProps.containerPort
72
- ? [`${rawProps.containerPort}`]
73
- : [`3000`]
74
- };
75
- return {
76
- ...defaultProps,
77
- ...rawProps
78
- };
79
- }
80
- }
81
- exports.BasicApp = BasicApp;
82
- exports.default = BasicApp;
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZVRpZXJBcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL2ZyZWVUaWVyQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUE0RTtBQUM1RSw0REFBeUQ7QUFDekQseURBQStFO0FBQy9FLHlFQUFpRTtBQUNqRSx5REFBcUQ7QUFDckQseURBQWtEO0FBQ2xELDZDQUEwQztBQUcxQyxvRkFBcUU7QUFtQ3JFLE1BQWEsUUFBUTtJQU1uQixZQUFZLEVBQVUsRUFBRSxRQUF1QjtRQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxrQkFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQzthQUN6RCxVQUFVLENBQ1QsU0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtTQUNyQixDQUFDLENBQ0g7YUFDQSxvQkFBb0IsQ0FBQyxhQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxrQkFBUSxDQUMvQixHQUFHLEVBQUUsVUFBVSxFQUNmLElBQUksQ0FBQyxRQUFRLEVBQ2IsVUFBVSxDQUNYO2FBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDdEMsV0FBVyxDQUFDLDBCQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRCxnREFBZ0Q7UUFDaEQsTUFB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LEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2IsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLFlBQVk7WUFDZixHQUFHLFFBQVE7U0FDWixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckdELDRCQXFHQztBQUNELGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBd3NTdGFjaywgeyBBd3NTdGFja1Byb3BzIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvYmFzZS9hd3NTdGFja1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy92cGNcIjtcbmltcG9ydCB7IENvbnRhaW5lclNlY3JldCwgU2NhbGluZ1R5cGUgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9jb21wdXRlL2Vjc1wiO1xuaW1wb3J0IEVjMkNsdXN0ZXIgZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9lY3NGcmVlVGllclwiO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc2VjcmV0c1wiO1xuaW1wb3J0IHsgRWNyIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc3RvcmFnZVwiO1xuaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElNYW5hZ2VkUG9saWN5LCBQb2xpY3lEb2N1bWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IERhdGFiYXNlIGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2RhdGFiYXNlL2RhdGFiYXNlRnJlZVRpZXJcIjtcblxuLyoqXG4gKiBJbnRlcnNlY3RlZCB3aXRoIEJhc2ljQXBwUHJvcHMgaW4gdGhlIGdldFByb3BzIG1ldGhvZC4gVGhpcyBhbGxvd3MgdGhlIEJhc2ljQXBwIGNvbnN0cnVjdFxuICogdG8gdHJlYXQgdGhlc2UgYXMgcmVxdWlyZWQgcHJvcGVydGllcyBhbmQgYXZvaWQgY29uc3RhbnQgbnVsbCBjaGVja2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY0FwcFByb3BEZWZhdWx0cyB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gIHNjYWxpbmdUeXBlOiBTY2FsaW5nVHlwZTtcbiAgY29udGFpbmVyUG9ydDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljQXBwUHJvcHMge1xuICBhY2NvdW50Pzogc3RyaW5nO1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyRW50cnlQb2ludD86IHN0cmluZ1tdO1xuICBjb250YWluZXJDb21tYW5kPzogc3RyaW5nW107XG4gIGNvbnRhaW5lckVudmlyb25tZW50PzogS2V5VmFsdWU7XG4gIGNvbnRhaW5lclBvcnQ/OiBudW1iZXI7XG4gIGNvbnRhaW5lclNlY3JldHM/OiBzdHJpbmdbXTtcbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8vIFRoZSB0ZWFtL2RvbWFpbi9idXNpbmVzcy11bml0IHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHRoaXMgc2VydmljZVxuICBvd25lcj86IHN0cmluZztcbiAgcGFyZW50RG9tYWluPzogc3RyaW5nOyAvLyBGaXggdG8gbWFrZSBhIGRlcGVuZGVuY3kgb2YgcHJvdG9jb2xcbiAgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIHNjYWxpbmdUeXBlPzogU2NhbGluZ1R5cGU7XG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICB0YXNrUm9sZUlubGluZVBvbGljaWVzPzoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQb2xpY3lEb2N1bWVudDtcbiAgfTtcbiAgdGFza1JvbGVNYW5hZ2VkUG9saWNpZXM/OiBJTWFuYWdlZFBvbGljeVtdO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzaWNBcHAge1xuICBwcml2YXRlIHZwY1N0YWNrOiBBd3NTdGFjaztcbiAgcHJpdmF0ZSBkYXRhYmFzZVN0YWNrOiBBd3NTdGFjaztcbiAgcHJpdmF0ZSBzZWNyZXRTdGFjazogQXdzU3RhY2s7XG4gIHByaXZhdGUgY29tcHV0ZVN0YWNrOiBBd3NTdGFjaztcblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCByYXdQcm9wczogQmFzaWNBcHBQcm9wcykge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5nZXRQcm9wcyhpZCwgcmF3UHJvcHMpO1xuICAgIGNvbnN0IHN0YWNrUHJvcHMgPSB0aGlzLmdldFN0YWNrUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy52cGNTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1OZXR3b3JrYCwgW10sIHN0YWNrUHJvcHMpXG4gICAgICAuYWRkTmV0d29yayhcbiAgICAgICAgVnBjLmJ1aWxkKGAke2lkfVZwY2AsIHtcbiAgICAgICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLmFkZENvbnRhaW5lclJlZ2lzdHJ5KEVjci5idWlsZChgJHtpZH1FY3JgKSk7XG5cbiAgICB0aGlzLmRhdGFiYXNlU3RhY2sgPSBuZXcgQXdzU3RhY2soXG4gICAgICBgJHtpZH1EYXRhYmFzZWAsXG4gICAgICB0aGlzLnZwY1N0YWNrLFxuICAgICAgc3RhY2tQcm9wc1xuICAgIClcbiAgICAgIC5hZGROZXR3b3JrKHRoaXMudnBjU3RhY2suZ2V0TmV0d29yaygpKVxuICAgICAgLmFkZFJlc291cmNlKERhdGFiYXNlLmJ1aWxkKGAke2lkfURhdGFiYXNlYCwge30pKTtcblxuICAgIC8vIEZldGNoZXMgdGhlIGRiUmVzb3VyY2UgZnJvbSB0aGUgZGF0YWJhc2VTdGFja1xuICAgIGNvbnN0IGRiUmVzb3VyY2UgPSB0aGlzLmRhdGFiYXNlU3RhY2suZ2V0UmVzb3VyY2UoXG4gICAgICBgJHtpZH1EYXRhYmFzZWBcbiAgICApIGFzIERhdGFiYXNlO1xuXG4gICAgY29uc3Qgc2VjcmV0T2JqZWN0VmFsdWU6IENvbnRhaW5lclNlY3JldCA9IHt9O1xuICAgIGlmIChwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3JldE9iamVjdCBvZiBwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4gICAgICAgIHNlY3JldE9iamVjdFZhbHVlW3NlY3JldE9iamVjdF0gPSBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHQoXCJcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXRTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1TZWNyZXRgLCBbXSwgc3RhY2tQcm9wcykuYWRkUmVzb3VyY2UoXG4gICAgICBTZWNyZXQuYnVpbGQoYCR7aWR9U2VjcmV0YCwge1xuICAgICAgICBzZWNyZXROYW1lOiBgLyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMuc2VydmljZU5hbWV9YCxcbiAgICAgICAgc2VjcmV0T2JqZWN0VmFsdWU6IHNlY3JldE9iamVjdFZhbHVlXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmNvbXB1dGVTdGFjayA9IG5ldyBBd3NTdGFjayhcbiAgICAgIGAke2lkfUNvbXB1dGVgLFxuICAgICAgW3RoaXMudnBjU3RhY2ssIHRoaXMuZGF0YWJhc2VTdGFjaywgdGhpcy5zZWNyZXRTdGFja10sXG4gICAgICBzdGFja1Byb3BzXG4gICAgKVxuICAgICAgLmFkZE5ldHdvcmsodGhpcy52cGNTdGFjay5nZXROZXR3b3JrKCkpXG4gICAgICAuYWRkUmVzb3VyY2UoXG4gICAgICAgIEVjMkNsdXN0ZXIuYnVpbGQoYCR7aWR9RmFyZ2F0ZWAsIHtcbiAgICAgICAgICBjbHVzdGVyTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUsXG4gICAgICAgICAgLy9UT0RPOiBUaGlzIHNob3VsZCB3b3JrIHZpYSBsaW5lIDEyNCwgYnV0IGRvZXNuJ3Qgd29yayAoYXQgbGVhc3Qgb24gdXBkYXRlKVxuICAgICAgICAgIGRhdGFiYXNlQ29ubmVjdGlvbjogZGJSZXNvdXJjZS5kYXRhYmFzZVNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnMsXG4gICAgICAgICAgY29udGFpbmVyRW50cnlQb2ludDogcHJvcHMuY29udGFpbmVyRW50cnlQb2ludCxcbiAgICAgICAgICBjb250YWluZXJDb21tYW5kOiBwcm9wcy5jb250YWluZXJDb21tYW5kLFxuICAgICAgICAgIGNvbnRhaW5lckVudmlyb25tZW50OiBwcm9wcy5jb250YWluZXJFbnZpcm9ubWVudCxcbiAgICAgICAgICBjb250YWluZXJQb3J0OiBwcm9wcy5jb250YWluZXJQb3J0LFxuICAgICAgICAgIGNvbnRhaW5lclNlY3JldHM6IHNlY3JldE9iamVjdFZhbHVlLFxuICAgICAgICAgIGVjclJlcG9zaXRvcnk6IHRoaXMudnBjU3RhY2suZ2V0Q29udGFpbmVyUmVnaXN0cnkoKSxcbiAgICAgICAgICBwYXJlbnREb21haW46IHByb3BzLnBhcmVudERvbWFpbj8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBsaXN0ZW5lclBvcnQ6IHByb3BzLmxpc3RlbmVyUG9ydCxcbiAgICAgICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICAgICAgdGFza1JvbGVJbmxpbmVQb2xpY2llczogcHJvcHMudGFza1JvbGVJbmxpbmVQb2xpY2llcyxcbiAgICAgICAgICB0YXNrUm9sZU1hbmFnZWRQb2xpY2llczogcHJvcHMudGFza1JvbGVNYW5hZ2VkUG9saWNpZXNcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5jb25uZWN0KGAke2lkfUZhcmdhdGVgLCBgJHtpZH1EYXRhYmFzZWAsIDU0MzIpO1xuICB9XG5cbiAgZ2V0U3RhY2tQcm9wcyhwcm9wczogQmFzaWNBcHBQcm9wcyk6IEF3c1N0YWNrUHJvcHMgfCB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMpIHJldHVybjtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50SWQ6IHByb3BzLmFjY291bnQsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgIH07XG4gIH1cblxuICBnZXRQcm9wcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHJhd1Byb3BzOiBCYXNpY0FwcFByb3BzXG4gICk6IEJhc2ljQXBwUHJvcHMgJiBCYXNpY0FwcFByb3BEZWZhdWx0cyB7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgICAgc2NhbGluZ1R5cGU6IFNjYWxpbmdUeXBlLkNQVSxcbiAgICAgIGNvbnRhaW5lclBvcnQ6IHJhd1Byb3BzLmNvbnRhaW5lclBvcnQgfHwgMzAwMCxcbiAgICAgIHNlcnZpY2VOYW1lOiBgJHtpZH1TZXJ2aWNlYCxcbiAgICAgIGNsdXN0ZXJOYW1lOiBgJHtpZH1DbHVzdGVyYCxcbiAgICAgIGNvbnRhaW5lckVudHJ5UG9pbnQ6IFtcIm5vZGVcIiwgXCJtYWluLmpzXCJdLFxuICAgICAgY29udGFpbmVyQ29tbWFuZDogcmF3UHJvcHMuY29udGFpbmVyUG9ydFxuICAgICAgICA/IFtgJHtyYXdQcm9wcy5jb250YWluZXJQb3J0fWBdXG4gICAgICAgIDogW2AzMDAwYF1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIC4uLnJhd1Byb3BzXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgQmFzaWNBcHA7XG4iXX0=
@@ -1,45 +0,0 @@
1
- import { AwsStackProps } from "../../resources/aws/base/awsStack";
2
- import { ScalingType } from "../../resources/aws/compute/ecs";
3
- import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
4
- import { KeyValue } from "../../types";
5
- /**
6
- * Intersected with BasicAppProps in the getProps method. This allows the BasicApp construct
7
- * to treat these as required properties and avoid constant null checking.
8
- */
9
- export interface BasicAppPropDefaults {
10
- serviceName: string;
11
- clusterName: string;
12
- scalingType: ScalingType;
13
- containerPort: number;
14
- }
15
- export interface BasicAppProps {
16
- account?: string;
17
- clusterName?: string;
18
- containerEntryPoint?: string[];
19
- containerCommand?: string[];
20
- containerEnvironment?: KeyValue;
21
- containerPort?: number;
22
- containerSecrets?: string[];
23
- accountName: string;
24
- owner?: string;
25
- parentDomain?: string;
26
- environment: string;
27
- listenerPort?: number;
28
- region?: string;
29
- scalingType?: ScalingType;
30
- serviceName?: string;
31
- taskRoleInlinePolicies?: {
32
- [name: string]: PolicyDocument;
33
- };
34
- taskRoleManagedPolicies?: IManagedPolicy[];
35
- }
36
- export declare class BasicApp {
37
- private vpcStack;
38
- private databaseStack;
39
- private secretStack;
40
- private computeStack;
41
- constructor(id: string, rawProps: BasicAppProps);
42
- getStackProps(props: BasicAppProps): AwsStackProps | undefined;
43
- getProps(id: string, rawProps: BasicAppProps): BasicAppProps & BasicAppPropDefaults;
44
- }
45
- export default BasicApp;
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BasicApp = void 0;
4
- const awsStack_1 = require("../../resources/aws/base/awsStack");
5
- const vpc_1 = require("../../resources/aws/networking/vpc");
6
- const ecs_1 = require("../../resources/aws/compute/ecs");
7
- const ecsSpot_1 = require("../../resources/aws/compute/ecsSpot");
8
- const secrets_1 = require("../../resources/aws/secrets");
9
- const storage_1 = require("../../resources/aws/storage");
10
- const aws_cdk_lib_1 = require("aws-cdk-lib");
11
- const databaseInstance_1 = require("../../resources/aws/database/databaseInstance");
12
- class BasicApp {
13
- constructor(id, rawProps) {
14
- const props = this.getProps(id, rawProps);
15
- const stackProps = this.getStackProps(props);
16
- this.vpcStack = new awsStack_1.default(`${id}Network`, [], stackProps)
17
- .addNetwork(vpc_1.Vpc.build(`${id}Vpc`, {
18
- // environment: props.environment,
19
- region: props.region
20
- }))
21
- .addContainerRegistry(storage_1.Ecr.build(`${id}Ecr`));
22
- this.databaseStack = new awsStack_1.default(`${id}Database`, this.vpcStack, stackProps)
23
- .addNetwork(this.vpcStack.getNetwork())
24
- .addResource(databaseInstance_1.default.build(`${id}Database`, {}));
25
- // Fetches the dbResource from the databaseStack
26
- const dbResource = this.databaseStack.getResource(`${id}Database`);
27
- const secretObjectValue = {};
28
- if (props.containerSecrets) {
29
- for (const secretObject of props.containerSecrets) {
30
- secretObjectValue[secretObject] = aws_cdk_lib_1.SecretValue.unsafePlainText("");
31
- }
32
- }
33
- this.secretStack = new awsStack_1.default(`${id}Secret`, [], stackProps).addResource(secrets_1.Secret.build(`${id}Secret`, {
34
- secretName: `/${props.clusterName}/${props.serviceName}`,
35
- secretObjectValue: secretObjectValue
36
- }));
37
- this.computeStack = new awsStack_1.default(`${id}Compute`, [this.vpcStack, this.databaseStack, this.secretStack], stackProps)
38
- .addNetwork(this.vpcStack.getNetwork())
39
- .addResource(ecsSpot_1.default.build(`${id}Fargate`, {
40
- clusterName: props.clusterName,
41
- //TODO: This should work via line 124, but doesn't work (at least on update)
42
- databaseConnection: dbResource.databaseSecurityGroup.connections,
43
- containerEntryPoint: props.containerEntryPoint,
44
- containerCommand: props.containerCommand,
45
- containerEnvironment: props.containerEnvironment,
46
- containerPort: props.containerPort,
47
- containerSecrets: secretObjectValue,
48
- ecrRepository: this.vpcStack.getContainerRegistry(),
49
- parentDomain: props.parentDomain?.toLowerCase(),
50
- listenerPort: props.listenerPort,
51
- serviceName: props.serviceName,
52
- taskRoleInlinePolicies: props.taskRoleInlinePolicies,
53
- taskRoleManagedPolicies: props.taskRoleManagedPolicies
54
- }))
55
- .connect(`${id}Fargate`, `${id}Database`, 5432);
56
- }
57
- getStackProps(props) {
58
- if (!props)
59
- return;
60
- return {
61
- accountId: props.account,
62
- region: props.region,
63
- accountName: props.accountName
64
- };
65
- }
66
- getProps(id, rawProps) {
67
- const defaultProps = {
68
- scalingType: ecs_1.ScalingType.CPU,
69
- containerPort: rawProps.containerPort || 3000,
70
- serviceName: `${id}Service`,
71
- clusterName: `${id}Cluster`,
72
- containerEntryPoint: ["node", "main.js"],
73
- containerCommand: rawProps.containerPort
74
- ? [`${rawProps.containerPort}`]
75
- : [`3000`]
76
- };
77
- return {
78
- ...defaultProps,
79
- ...rawProps
80
- };
81
- }
82
- }
83
- exports.BasicApp = BasicApp;
84
- exports.default = BasicApp;
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdEluc3RhbmNlQXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9zcG90SW5zdGFuY2VBcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBQTRFO0FBQzVFLDREQUF5RDtBQUN6RCx5REFBK0U7QUFDL0UsaUVBQTZEO0FBQzdELHlEQUFxRDtBQUNyRCx5REFBa0Q7QUFDbEQsNkNBQTBDO0FBRzFDLG9GQUFxRTtBQW9DckUsTUFBYSxRQUFRO0lBTW5CLFlBQVksRUFBVSxFQUFFLFFBQXVCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQ3pELFVBQVUsQ0FDVCxTQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDcEIsa0NBQWtDO1lBQ2xDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtTQUNyQixDQUFDLENBQ0g7YUFDQSxvQkFBb0IsQ0FBQyxhQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxrQkFBUSxDQUMvQixHQUFHLEVBQUUsVUFBVSxFQUNmLElBQUksQ0FBQyxRQUFRLEVBQ2IsVUFBVSxDQUNYO2FBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDdEMsV0FBVyxDQUFDLDBCQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztR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LENBQUMsYUFBYTtnQkFDdEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUNiLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxZQUFZO1lBQ2YsR0FBRyxRQUFRO1NBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXZHRCw0QkF1R0M7QUFDRCxrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXdzU3RhY2ssIHsgQXdzU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2Jhc2UvYXdzU3RhY2tcIjtcbmltcG9ydCB7IFZwYyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvdnBjXCI7XG5pbXBvcnQgeyBDb250YWluZXJTZWNyZXQsIFNjYWxpbmdUeXBlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9lY3NcIjtcbmltcG9ydCBFYzJDbHVzdGVyIGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2NvbXB1dGUvZWNzU3BvdFwiO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc2VjcmV0c1wiO1xuaW1wb3J0IHsgRWNyIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc3RvcmFnZVwiO1xuaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElNYW5hZ2VkUG9saWN5LCBQb2xpY3lEb2N1bWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IERhdGFiYXNlIGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2RhdGFiYXNlL2RhdGFiYXNlSW5zdGFuY2VcIjtcblxuLyoqXG4gKiBJbnRlcnNlY3RlZCB3aXRoIEJhc2ljQXBwUHJvcHMgaW4gdGhlIGdldFByb3BzIG1ldGhvZC4gVGhpcyBhbGxvd3MgdGhlIEJhc2ljQXBwIGNvbnN0cnVjdFxuICogdG8gdHJlYXQgdGhlc2UgYXMgcmVxdWlyZWQgcHJvcGVydGllcyBhbmQgYXZvaWQgY29uc3RhbnQgbnVsbCBjaGVja2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY0FwcFByb3BEZWZhdWx0cyB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gIHNjYWxpbmdUeXBlOiBTY2FsaW5nVHlwZTtcbiAgY29udGFpbmVyUG9ydDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljQXBwUHJvcHMge1xuICBhY2NvdW50Pzogc3RyaW5nO1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyRW50cnlQb2ludD86IHN0cmluZ1tdO1xuICBjb250YWluZXJDb21tYW5kPzogc3RyaW5nW107XG4gIGNvbnRhaW5lckVudmlyb25tZW50PzogS2V5VmFsdWU7XG4gIGNvbnRhaW5lclBvcnQ/OiBudW1iZXI7XG4gIGNvbnRhaW5lclNlY3JldHM/OiBzdHJpbmdbXTtcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgLy8gVGhlIHRlYW0vZG9tYWluL2J1c2luZXNzLXVuaXQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgdGhpcyBzZXJ2aWNlXG4gIG93bmVyPzogc3RyaW5nO1xuICBwYXJlbnREb21haW4/OiBzdHJpbmc7IC8vIEZpeCB0byBtYWtlIGEgZGVwZW5kZW5jeSBvZiBwcm90b2NvbFxuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBsaXN0ZW5lclBvcnQ/OiBudW1iZXI7XG4gIHJlZ2lvbj86IHN0cmluZztcbiAgc2NhbGluZ1R5cGU/OiBTY2FsaW5nVHlwZTtcbiAgc2VydmljZU5hbWU/OiBzdHJpbmc7XG4gIHRhc2tSb2xlSW5saW5lUG9saWNpZXM/OiB7XG4gICAgW25hbWU6IHN0cmluZ106IFBvbGljeURvY3VtZW50O1xuICB9O1xuICB0YXNrUm9sZU1hbmFnZWRQb2xpY2llcz86IElNYW5hZ2VkUG9saWN5W107XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0FwcCB7XG4gIHByaXZhdGUgdnBjU3RhY2s6IEF3c1N0YWNrO1xuICBwcml2YXRlIGRhdGFiYXNlU3RhY2s6IEF3c1N0YWNrO1xuICBwcml2YXRlIHNlY3JldFN0YWNrOiBBd3NTdGFjaztcbiAgcHJpdmF0ZSBjb21wdXRlU3RhY2s6IEF3c1N0YWNrO1xuXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIHJhd1Byb3BzOiBCYXNpY0FwcFByb3BzKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmdldFByb3BzKGlkLCByYXdQcm9wcyk7XG4gICAgY29uc3Qgc3RhY2tQcm9wcyA9IHRoaXMuZ2V0U3RhY2tQcm9wcyhwcm9wcyk7XG5cbiAgICB0aGlzLnZwY1N0YWNrID0gbmV3IEF3c1N0YWNrKGAke2lkfU5ldHdvcmtgLCBbXSwgc3RhY2tQcm9wcylcbiAgICAgIC5hZGROZXR3b3JrKFxuICAgICAgICBWcGMuYnVpbGQoYCR7aWR9VnBjYCwge1xuICAgICAgICAgIC8vIGVudmlyb25tZW50OiBwcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLmFkZENvbnRhaW5lclJlZ2lzdHJ5KEVjci5idWlsZChgJHtpZH1FY3JgKSk7XG5cbiAgICB0aGlzLmRhdGFiYXNlU3RhY2sgPSBuZXcgQXdzU3RhY2soXG4gICAgICBgJHtpZH1EYXRhYmFzZWAsXG4gICAgICB0aGlzLnZwY1N0YWNrLFxuICAgICAgc3RhY2tQcm9wc1xuICAgIClcbiAgICAgIC5hZGROZXR3b3JrKHRoaXMudnBjU3RhY2suZ2V0TmV0d29yaygpKVxuICAgICAgLmFkZFJlc291cmNlKERhdGFiYXNlLmJ1aWxkKGAke2lkfURhdGFiYXNlYCwge30pKTtcblxuICAgIC8vIEZldGNoZXMgdGhlIGRiUmVzb3VyY2UgZnJvbSB0aGUgZGF0YWJhc2VTdGFja1xuICAgIGNvbnN0IGRiUmVzb3VyY2UgPSB0aGlzLmRhdGFiYXNlU3RhY2suZ2V0UmVzb3VyY2UoXG4gICAgICBgJHtpZH1EYXRhYmFzZWBcbiAgICApIGFzIERhdGFiYXNlO1xuXG4gICAgY29uc3Qgc2VjcmV0T2JqZWN0VmFsdWU6IENvbnRhaW5lclNlY3JldCA9IHt9O1xuICAgIGlmIChwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3JldE9iamVjdCBvZiBwcm9wcy5jb250YWluZXJTZWNyZXRzKSB7XG4gICAgICAgIHNlY3JldE9iamVjdFZhbHVlW3NlY3JldE9iamVjdF0gPSBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHQoXCJcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXRTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1TZWNyZXRgLCBbXSwgc3RhY2tQcm9wcykuYWRkUmVzb3VyY2UoXG4gICAgICBTZWNyZXQuYnVpbGQoYCR7aWR9U2VjcmV0YCwge1xuICAgICAgICBzZWNyZXROYW1lOiBgLyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMuc2VydmljZU5hbWV9YCxcbiAgICAgICAgc2VjcmV0T2JqZWN0VmFsdWU6IHNlY3JldE9iamVjdFZhbHVlXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmNvbXB1dGVTdGFjayA9IG5ldyBBd3NTdGFjayhcbiAgICAgIGAke2lkfUNvbXB1dGVgLFxuICAgICAgW3RoaXMudnBjU3RhY2ssIHRoaXMuZGF0YWJhc2VTdGFjaywgdGhpcy5zZWNyZXRTdGFja10sXG4gICAgICBzdGFja1Byb3BzXG4gICAgKVxuICAgICAgLmFkZE5ldHdvcmsodGhpcy52cGNTdGFjay5nZXROZXR3b3JrKCkpXG4gICAgICAuYWRkUmVzb3VyY2UoXG4gICAgICAgIEVjMkNsdXN0ZXIuYnVpbGQoYCR7aWR9RmFyZ2F0ZWAsIHtcbiAgICAgICAgICBjbHVzdGVyTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUsXG4gICAgICAgICAgLy9UT0RPOiBUaGlzIHNob3VsZCB3b3JrIHZpYSBsaW5lIDEyNCwgYnV0IGRvZXNuJ3Qgd29yayAoYXQgbGVhc3Qgb24gdXBkYXRlKVxuICAgICAgICAgIGRhdGFiYXNlQ29ubmVjdGlvbjogZGJSZXNvdXJjZS5kYXRhYmFzZVNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnMsXG4gICAgICAgICAgY29udGFpbmVyRW50cnlQb2ludDogcHJvcHMuY29udGFpbmVyRW50cnlQb2ludCxcbiAgICAgICAgICBjb250YWluZXJDb21tYW5kOiBwcm9wcy5jb250YWluZXJDb21tYW5kLFxuICAgICAgICAgIGNvbnRhaW5lckVudmlyb25tZW50OiBwcm9wcy5jb250YWluZXJFbnZpcm9ubWVudCxcbiAgICAgICAgICBjb250YWluZXJQb3J0OiBwcm9wcy5jb250YWluZXJQb3J0LFxuICAgICAgICAgIGNvbnRhaW5lclNlY3JldHM6IHNlY3JldE9iamVjdFZhbHVlLFxuICAgICAgICAgIGVjclJlcG9zaXRvcnk6IHRoaXMudnBjU3RhY2suZ2V0Q29udGFpbmVyUmVnaXN0cnkoKSxcbiAgICAgICAgICBwYXJlbnREb21haW46IHByb3BzLnBhcmVudERvbWFpbj8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBsaXN0ZW5lclBvcnQ6IHByb3BzLmxpc3RlbmVyUG9ydCxcbiAgICAgICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICAgICAgdGFza1JvbGVJbmxpbmVQb2xpY2llczogcHJvcHMudGFza1JvbGVJbmxpbmVQb2xpY2llcyxcbiAgICAgICAgICB0YXNrUm9sZU1hbmFnZWRQb2xpY2llczogcHJvcHMudGFza1JvbGVNYW5hZ2VkUG9saWNpZXNcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5jb25uZWN0KGAke2lkfUZhcmdhdGVgLCBgJHtpZH1EYXRhYmFzZWAsIDU0MzIpO1xuICB9XG5cbiAgZ2V0U3RhY2tQcm9wcyhwcm9wczogQmFzaWNBcHBQcm9wcyk6IEF3c1N0YWNrUHJvcHMgfCB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMpIHJldHVybjtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50SWQ6IHByb3BzLmFjY291bnQsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnROYW1lOiBwcm9wcy5hY2NvdW50TmFtZVxuICAgIH07XG4gIH1cblxuICBnZXRQcm9wcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHJhd1Byb3BzOiBCYXNpY0FwcFByb3BzXG4gICk6IEJhc2ljQXBwUHJvcHMgJiBCYXNpY0FwcFByb3BEZWZhdWx0cyB7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgICAgc2NhbGluZ1R5cGU6IFNjYWxpbmdUeXBlLkNQVSxcbiAgICAgIGNvbnRhaW5lclBvcnQ6IHJhd1Byb3BzLmNvbnRhaW5lclBvcnQgfHwgMzAwMCxcbiAgICAgIHNlcnZpY2VOYW1lOiBgJHtpZH1TZXJ2aWNlYCxcbiAgICAgIGNsdXN0ZXJOYW1lOiBgJHtpZH1DbHVzdGVyYCxcbiAgICAgIGNvbnRhaW5lckVudHJ5UG9pbnQ6IFtcIm5vZGVcIiwgXCJtYWluLmpzXCJdLFxuICAgICAgY29udGFpbmVyQ29tbWFuZDogcmF3UHJvcHMuY29udGFpbmVyUG9ydFxuICAgICAgICA/IFtgJHtyYXdQcm9wcy5jb250YWluZXJQb3J0fWBdXG4gICAgICAgIDogW2AzMDAwYF1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIC4uLnJhd1Byb3BzXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgQmFzaWNBcHA7XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { Connections, IConnectable, SecurityGroup, Vpc } from "aws-cdk-lib/aws-ec2";
2
- import { Construct } from "constructs";
3
- import { StackBuilder } from "../base/awsStack";
4
- interface DatabaseProps {
5
- vpc: Vpc;
6
- }
7
- export default class Database extends Construct implements IConnectable {
8
- private readonly resource;
9
- connections: Connections;
10
- databaseSecurityGroup: SecurityGroup;
11
- databaseSecretName: string;
12
- constructor(scope: Construct, id: string, props: DatabaseProps);
13
- static build(id: string, props?: Partial<DatabaseProps>): (sb: StackBuilder) => Construct;
14
- }
15
- export {};
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constructs_1 = require("constructs");
4
- const _1 = require("./");
5
- class Database extends constructs_1.Construct {
6
- constructor(scope, id, props) {
7
- super(scope, id);
8
- this.resource = new _1.RdsFreeTier(scope, `${id}Rds`, {
9
- vpc: props.vpc,
10
- databaseName: id.replace("Database", "")
11
- });
12
- this.connections = this.resource.connections;
13
- this.databaseSecurityGroup = this.resource.databaseSecurityGroup;
14
- }
15
- //todo: move to generic 'resource' class
16
- static build(id, props) {
17
- return (sb) => {
18
- const newProps = {
19
- ...props,
20
- ...{
21
- vpc: sb.getNetwork() || props?.vpc
22
- }
23
- };
24
- return new this(sb.getStack(), id, newProps);
25
- };
26
- }
27
- }
28
- exports.default = Database;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2VGcmVlVGllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2RhdGFiYXNlL2RhdGFiYXNlRnJlZVRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSwyQ0FBdUM7QUFHdkMseUJBQWlDO0FBT2pDLE1BQXFCLFFBQVMsU0FBUSxzQkFBUztJQU03QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNqRCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUM7SUFDbkUsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxNQUFNLENBQUMsS0FBSyxDQUNWLEVBQVUsRUFDVixLQUE4QjtRQUU5QixPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFrQjtnQkFDOUIsR0FBRyxLQUFLO2dCQUNSLEdBQUc7b0JBQ0QsR0FBRyxFQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQVUsSUFBSSxLQUFLLEVBQUUsR0FBRztpQkFDNUM7YUFDRixDQUFDO1lBRUYsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxDRCwyQkFrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25uZWN0aW9ucyxcbiAgSUNvbm5lY3RhYmxlLFxuICBTZWN1cml0eUdyb3VwLFxuICBWcGNcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9iYXNlL2F3c1N0YWNrXCI7XG5pbXBvcnQgeyBSZHNGcmVlVGllciB9IGZyb20gXCIuL1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIERhdGFiYXNlUHJvcHMge1xuICB2cGM6IFZwYztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29ubmVjdGFibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBSZHNGcmVlVGllcjtcbiAgcHVibGljIGNvbm5lY3Rpb25zOiBDb25uZWN0aW9ucztcbiAgcHVibGljIGRhdGFiYXNlU2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cDtcbiAgcHVibGljIGRhdGFiYXNlU2VjcmV0TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgUmRzRnJlZVRpZXIoc2NvcGUsIGAke2lkfVJkc2AsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgZGF0YWJhc2VOYW1lOiBpZC5yZXBsYWNlKFwiRGF0YWJhc2VcIiwgXCJcIilcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLnJlc291cmNlLmNvbm5lY3Rpb25zO1xuICAgIHRoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwID0gdGhpcy5yZXNvdXJjZS5kYXRhYmFzZVNlY3VyaXR5R3JvdXA7XG4gIH1cblxuICAvL3RvZG86IG1vdmUgdG8gZ2VuZXJpYyAncmVzb3VyY2UnIGNsYXNzXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogUGFydGlhbDxEYXRhYmFzZVByb3BzPlxuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBEYXRhYmFzZVByb3BzID0ge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIHZwYzogKHNiLmdldE5ldHdvcmsoKSBhcyBWcGMpIHx8IHByb3BzPy52cGNcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIG5ldyB0aGlzKHNiLmdldFN0YWNrKCksIGlkLCBuZXdQcm9wcyk7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,37 +0,0 @@
1
- import { Duration, StackProps } from "aws-cdk-lib";
2
- import { Connections, IConnectable, InstanceType, IVpc } from "aws-cdk-lib/aws-ec2";
3
- import { IInstanceEngine } from "aws-cdk-lib/aws-rds";
4
- import { Construct } from "constructs";
5
- import { SecurityGroup } from "../iam";
6
- import { Secret } from "../secrets";
7
- interface RdsProps extends StackProps {
8
- vpc?: IVpc;
9
- databaseName?: string;
10
- engine?: IInstanceEngine;
11
- instanceType?: InstanceType;
12
- maxAllocatedStorage?: number;
13
- allocatedStorage?: number;
14
- backupRetention?: Duration;
15
- clusterIdentifier?: string;
16
- monitoringInterval?: Duration;
17
- preferredMaintenanceWindow?: string;
18
- port?: number;
19
- enablePerformanceInsights?: boolean;
20
- databaseProxy?: boolean;
21
- readReplica?: boolean;
22
- }
23
- export declare class RdsFreeTier extends Construct implements IConnectable {
24
- connections: Connections;
25
- databaseSecurityGroup: SecurityGroup;
26
- vpc: IVpc;
27
- private databaseCredentials;
28
- private encryptionKey;
29
- private database;
30
- constructor(scope: Construct, id: string, props: RdsProps);
31
- addVpc(props: RdsProps): void;
32
- addDatabase(props: RdsProps): void;
33
- getCredentials(): Secret;
34
- getHostEndpoint(): string;
35
- getHostPort(): string;
36
- }
37
- export {};