@fjall/components-infrastructure 0.1.10 → 0.1.11
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/dist/lib/app.d.ts +2 -1
- package/dist/lib/app.js +4 -2
- package/dist/lib/config/aws/accountId.d.ts +6 -0
- package/dist/lib/config/aws/accountId.js +33 -0
- package/dist/lib/config/aws/cloudTrail.d.ts +10 -0
- package/dist/lib/config/aws/cloudTrail.js +22 -0
- package/dist/lib/config/aws/costAllocationTags.d.ts +2 -3
- package/dist/lib/config/aws/costAllocationTags.js +6 -5
- package/dist/lib/config/aws/ecrDefaultImage.d.ts +11 -0
- package/dist/lib/config/aws/ecrDefaultImage.js +127 -0
- package/dist/lib/config/aws/eventBus.d.ts +7 -0
- package/dist/lib/config/aws/eventBus.js +24 -0
- package/dist/lib/config/aws/identityCenter.d.ts +11 -3
- package/dist/lib/config/aws/identityCenter.js +24 -29
- package/dist/lib/config/aws/identityCenterUser.d.ts +16 -0
- package/dist/lib/config/aws/identityCenterUser.js +125 -0
- package/dist/lib/config/aws/index.d.ts +8 -4
- package/dist/lib/config/aws/index.js +9 -5
- package/dist/lib/config/aws/ipam.d.ts +2 -2
- package/dist/lib/config/aws/ipam.js +25 -7
- package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +4 -5
- package/dist/lib/config/aws/ipamDelegateAdmin.js +9 -13
- package/dist/lib/config/aws/ipamPoolId.d.ts +9 -0
- package/dist/lib/config/aws/ipamPoolId.js +36 -0
- package/dist/lib/config/aws/organisation.d.ts +28 -0
- package/dist/lib/config/aws/organisation.js +142 -0
- package/dist/lib/config/aws/organisationId.d.ts +4 -2
- package/dist/lib/config/aws/organisationId.js +13 -7
- package/dist/lib/config/aws/ramSharing.d.ts +4 -0
- package/dist/lib/config/aws/ramSharing.js +35 -0
- package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
- package/dist/lib/patterns/aws/basicApp.js +15 -15
- package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
- package/dist/lib/patterns/aws/buildkite.js +9 -7
- package/dist/lib/patterns/aws/freeTierApp.d.ts +46 -0
- package/dist/lib/patterns/aws/freeTierApp.js +95 -0
- package/dist/lib/patterns/aws/hostedZone.d.ts +11 -0
- package/dist/lib/patterns/aws/hostedZone.js +73 -0
- package/dist/lib/patterns/aws/index.d.ts +3 -0
- package/dist/lib/patterns/aws/index.js +4 -1
- package/dist/lib/patterns/aws/managedAccount.d.ts +13 -0
- package/dist/lib/patterns/aws/managedAccount.js +39 -0
- package/dist/lib/patterns/aws/managedOrganisation.d.ts +9 -21
- package/dist/lib/patterns/aws/managedOrganisation.js +33 -147
- package/dist/lib/patterns/aws/managedPlatform.d.ts +13 -0
- package/dist/lib/patterns/aws/managedPlatform.js +22 -0
- package/dist/lib/patterns/aws/spotInstanceApp.d.ts +46 -0
- package/dist/lib/patterns/aws/spotInstanceApp.js +95 -0
- package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +9 -0
- package/dist/lib/patterns/aws/subdomainHostedZone.js +39 -0
- package/dist/lib/resources/aws/compute/ecs.d.ts +2 -4
- package/dist/lib/resources/aws/compute/ecs.js +10 -6
- package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +76 -0
- package/dist/lib/resources/aws/compute/ecsFreeTier.js +352 -0
- package/dist/lib/resources/aws/compute/ecsSpot.d.ts +76 -0
- package/dist/lib/resources/aws/compute/ecsSpot.js +334 -0
- package/dist/lib/resources/aws/compute/index.d.ts +2 -0
- package/dist/lib/resources/aws/compute/index.js +19 -0
- package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
- package/dist/lib/resources/aws/compute/lambda.js +8 -7
- package/dist/lib/resources/aws/database/database.d.ts +16 -0
- package/dist/lib/resources/aws/database/database.js +30 -0
- package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +17 -0
- package/dist/lib/resources/aws/database/databaseFreeTier.js +31 -0
- package/dist/lib/resources/aws/database/databaseInstance.d.ts +17 -0
- package/dist/lib/resources/aws/database/databaseInstance.js +32 -0
- package/dist/lib/resources/aws/database/index.d.ts +2 -0
- package/dist/lib/resources/aws/database/index.js +19 -0
- package/dist/lib/resources/aws/database/rds.d.ts +23 -0
- package/dist/lib/resources/aws/database/rds.js +130 -0
- package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +36 -0
- package/dist/lib/resources/aws/database/rdsFreeTier.js +80 -0
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +42 -0
- package/dist/lib/resources/aws/database/rdsInstance.js +173 -0
- package/dist/lib/resources/aws/logging/cloudTrail.d.ts +18 -0
- package/dist/lib/resources/aws/logging/cloudTrail.js +46 -0
- package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
- package/dist/lib/resources/aws/logging/logGroup.js +3 -3
- package/dist/lib/resources/aws/networking/index.d.ts +1 -1
- package/dist/lib/resources/aws/networking/index.js +2 -2
- package/dist/lib/resources/aws/networking/ipamPool.d.ts +16 -3
- package/dist/lib/resources/aws/networking/ipamPool.js +75 -6
- package/dist/lib/resources/aws/networking/vpc.d.ts +29 -0
- package/dist/lib/resources/aws/networking/vpc.js +64 -0
- package/dist/lib/resources/aws/secrets/alias.d.ts +5 -0
- package/dist/lib/resources/aws/secrets/alias.js +13 -0
- package/dist/lib/resources/aws/secrets/index.d.ts +5 -0
- package/dist/lib/resources/aws/secrets/index.js +22 -0
- package/dist/lib/resources/aws/secrets/kms.d.ts +14 -0
- package/dist/lib/resources/aws/secrets/kms.js +34 -0
- package/dist/lib/resources/aws/secrets/parameter.d.ts +26 -0
- package/dist/lib/resources/aws/secrets/parameter.js +100 -0
- package/dist/lib/resources/aws/secrets/secret.d.ts +24 -0
- package/dist/lib/resources/aws/secrets/secret.js +53 -0
- package/dist/lib/resources/aws/storage/ecr.d.ts +12 -0
- package/dist/lib/resources/aws/storage/ecr.js +31 -0
- package/dist/lib/resources/aws/storage/index.d.ts +2 -0
- package/dist/lib/resources/aws/storage/index.js +19 -0
- package/dist/lib/resources/aws/storage/s3.d.ts +11 -0
- package/dist/lib/resources/aws/storage/s3.js +44 -0
- package/dist/lib/resources/aws/utilities/codeBuild.d.ts +15 -0
- package/dist/lib/resources/aws/utilities/codeBuild.js +28 -0
- package/dist/lib/resources/aws/utilities/customResource.js +2 -2
- package/dist/lib/types.d.ts +3 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/utils/capitalizeString.d.ts +1 -0
- package/dist/lib/utils/capitalizeString.js +8 -0
- package/dist/lib/utils/getAccountId.d.ts +1 -1
- package/dist/lib/utils/getAccountId.js +3 -2
- package/dist/lib/utils/getCidr.d.ts +8 -0
- package/dist/lib/utils/getCidr.js +42 -0
- package/dist/lib/utils/getConfig.d.ts +3 -2
- package/dist/lib/utils/getConfig.js +20 -6
- package/dist/lib/utils/stripAndCamelCase.d.ts +1 -0
- package/dist/lib/utils/stripAndCamelCase.js +17 -0
- package/dist/lib/utils/usersConfig.d.ts +7 -0
- package/dist/lib/utils/usersConfig.js +18 -0
- package/package.json +2 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Alias, Key } from "aws-cdk-lib/aws-kms";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { KeyValue } from "../../../types";
|
|
4
|
+
interface CustomerManagedKeyProps {
|
|
5
|
+
description?: string;
|
|
6
|
+
aliasName?: string;
|
|
7
|
+
tags: KeyValue;
|
|
8
|
+
}
|
|
9
|
+
export declare class CustomerManagedKey extends Construct {
|
|
10
|
+
readonly key: Key;
|
|
11
|
+
readonly alias: Alias;
|
|
12
|
+
constructor(scope: Construct, id: string, props: CustomerManagedKeyProps);
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomerManagedKey = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_kms_1 = require("aws-cdk-lib/aws-kms");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
const tagResource_1 = require("../../../utils/tagResource");
|
|
8
|
+
class CustomerManagedKey extends constructs_1.Construct {
|
|
9
|
+
constructor(scope, id, props) {
|
|
10
|
+
super(scope, id);
|
|
11
|
+
this.key = new aws_kms_1.Key(this, `${id}Key`, {
|
|
12
|
+
description: props.description || `${id} KMS Key`,
|
|
13
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
|
|
14
|
+
});
|
|
15
|
+
new aws_cdk_lib_1.CfnOutput(this, `${id}KeyArn`, {
|
|
16
|
+
key: `${id}Arn`,
|
|
17
|
+
value: this.key.keyArn,
|
|
18
|
+
exportName: `${id}KeyArn`
|
|
19
|
+
});
|
|
20
|
+
(0, tagResource_1.default)(this.key, props.tags);
|
|
21
|
+
this.alias = new aws_kms_1.Alias(this, `${id}KeyAlias`, {
|
|
22
|
+
aliasName: props.aliasName || `cmk/${id}`,
|
|
23
|
+
targetKey: this.key
|
|
24
|
+
});
|
|
25
|
+
new aws_cdk_lib_1.CfnOutput(this, `${id}KeyAliasArn`, {
|
|
26
|
+
key: `${id}AliasArn`,
|
|
27
|
+
value: this.alias.aliasArn,
|
|
28
|
+
exportName: `${id}KeyAliasArn`
|
|
29
|
+
});
|
|
30
|
+
(0, tagResource_1.default)(this.alias, props.tags);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.CustomerManagedKey = CustomerManagedKey;
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9rbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFDdkMsNERBQXFEO0FBU3JELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFJL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLFVBQVU7WUFDakQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDakMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtZQUN0QyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQTdCRCxnREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsaWFzLCBLZXkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDdXN0b21lck1hbmFnZWRLZXlQcm9wcyB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJNYW5hZ2VkS2V5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGtleTogS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgYWxpYXM6IEFsaWFzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21lck1hbmFnZWRLZXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmtleSA9IG5ldyBLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBLTVMgS2V5YCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9S2V5QXJuYCwge1xuICAgICAga2V5OiBgJHtpZH1Bcm5gLFxuICAgICAgdmFsdWU6IHRoaXMua2V5LmtleUFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUtleUFybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmtleSwgcHJvcHMudGFncyk7XG5cbiAgICB0aGlzLmFsaWFzID0gbmV3IEFsaWFzKHRoaXMsIGAke2lkfUtleUFsaWFzYCwge1xuICAgICAgYWxpYXNOYW1lOiBwcm9wcy5hbGlhc05hbWUgfHwgYGNtay8ke2lkfWAsXG4gICAgICB0YXJnZXRLZXk6IHRoaXMua2V5XG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1LZXlBbGlhc0FybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QWxpYXNBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMuYWxpYXMuYWxpYXNBcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1LZXlBbGlhc0FybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmFsaWFzLCBwcm9wcy50YWdzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { aws_ssm as ssm } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { KeyValue } from "../../../types";
|
|
4
|
+
import { CustomerManagedKey } from "./";
|
|
5
|
+
import { AwsCustomResource } from "../utilities/awsCustomResource";
|
|
6
|
+
export declare class StringParameter extends ssm.StringParameter {
|
|
7
|
+
constructor(scope: Construct, id: string, props: ssm.StringParameterProps);
|
|
8
|
+
}
|
|
9
|
+
interface SecureStringParameterProps {
|
|
10
|
+
accountId: string;
|
|
11
|
+
aliasName?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
overwrite?: boolean;
|
|
15
|
+
region: string;
|
|
16
|
+
tags: KeyValue;
|
|
17
|
+
value?: string;
|
|
18
|
+
cmk?: CustomerManagedKey;
|
|
19
|
+
}
|
|
20
|
+
export declare class SecureStringParameter extends Construct {
|
|
21
|
+
readonly cmk: CustomerManagedKey;
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly parameter: AwsCustomResource;
|
|
24
|
+
constructor(scope: Construct, id: string, props: SecureStringParameterProps);
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecureStringParameter = exports.StringParameter = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
6
|
+
const custom_resources_1 = require("aws-cdk-lib/custom-resources");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const _1 = require("./");
|
|
9
|
+
const awsCustomResource_1 = require("../utilities/awsCustomResource");
|
|
10
|
+
class StringParameter extends aws_cdk_lib_1.aws_ssm.StringParameter {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, {
|
|
13
|
+
...props,
|
|
14
|
+
description: props.description || `${id} SSM Parameter`,
|
|
15
|
+
tier: aws_cdk_lib_1.aws_ssm.ParameterTier.INTELLIGENT_TIERING
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.StringParameter = StringParameter;
|
|
20
|
+
class SecureStringParameter extends constructs_1.Construct {
|
|
21
|
+
constructor(scope, id, props) {
|
|
22
|
+
super(scope, id);
|
|
23
|
+
this.name = props.name;
|
|
24
|
+
if (props.cmk) {
|
|
25
|
+
this.cmk = props.cmk;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.cmk = new _1.CustomerManagedKey(this, `${id}Key`, {
|
|
29
|
+
description: props.description || `${id} KMS Key`,
|
|
30
|
+
aliasName: props.aliasName,
|
|
31
|
+
tags: props.tags
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
this.parameter = new awsCustomResource_1.AwsCustomResource(this, `${id}SecureStringParameter`, {
|
|
35
|
+
resourceType: "Custom::SecureStringParameter",
|
|
36
|
+
functionName: `${id}SecureStringParameter`,
|
|
37
|
+
onCreate: {
|
|
38
|
+
service: "@aws-sdk/client-ssm",
|
|
39
|
+
action: "PutParameter",
|
|
40
|
+
parameters: {
|
|
41
|
+
Name: props.name,
|
|
42
|
+
Description: props.description || `${id} secure parameter`,
|
|
43
|
+
Value: props.value || process.env.CDK_SECURE_STRING || "placeholderValue",
|
|
44
|
+
Type: "SecureString",
|
|
45
|
+
KeyId: this.cmk.alias.keyId
|
|
46
|
+
// TODO: Add tags to the parameter
|
|
47
|
+
},
|
|
48
|
+
physicalResourceId: custom_resources_1.PhysicalResourceId.of("createSecureStringParameter")
|
|
49
|
+
},
|
|
50
|
+
onUpdate: {
|
|
51
|
+
service: "@aws-sdk/client-ssm",
|
|
52
|
+
action: "PutParameter",
|
|
53
|
+
parameters: {
|
|
54
|
+
Name: props.name,
|
|
55
|
+
Description: props.description || `${id} secure parameter`,
|
|
56
|
+
Value: props.value ||
|
|
57
|
+
`process.env.CDK_SECURE_STRING_${id}` ||
|
|
58
|
+
"placeholderValue",
|
|
59
|
+
Overwrite: props.overwrite,
|
|
60
|
+
Type: "SecureString",
|
|
61
|
+
KeyId: this.cmk.alias.keyId
|
|
62
|
+
// TODO: Add tags to the parameter
|
|
63
|
+
},
|
|
64
|
+
physicalResourceId: custom_resources_1.PhysicalResourceId.of("updateSecureStringParameter")
|
|
65
|
+
},
|
|
66
|
+
onDelete: {
|
|
67
|
+
service: "@aws-sdk/client-ssm",
|
|
68
|
+
action: "DeleteParameter",
|
|
69
|
+
parameters: {
|
|
70
|
+
Name: props.name
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
policy: custom_resources_1.AwsCustomResourcePolicy.fromStatements([
|
|
74
|
+
new aws_iam_1.PolicyStatement({
|
|
75
|
+
actions: ["kms:Encrypt"],
|
|
76
|
+
resources: [
|
|
77
|
+
`arn:aws:kms:${props.region}:${props.accountId}:key/${this.cmk.key.keyId}`
|
|
78
|
+
]
|
|
79
|
+
}),
|
|
80
|
+
new aws_iam_1.PolicyStatement({
|
|
81
|
+
actions: [
|
|
82
|
+
"ssm:DeleteParameter",
|
|
83
|
+
"ssm:PutParameter",
|
|
84
|
+
"ssm:AddTagsToResource",
|
|
85
|
+
"logs:DeleteRetentionPolicy",
|
|
86
|
+
"logs:PutRetentionPolicy"
|
|
87
|
+
],
|
|
88
|
+
resources: [
|
|
89
|
+
`arn:aws:ssm:${props.region}:${props.accountId}:parameter${props.name}`
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
])
|
|
93
|
+
});
|
|
94
|
+
if (!props.cmk) {
|
|
95
|
+
this.parameter.node.addDependency(this.cmk);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.SecureStringParameter = SecureStringParameter;
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9wYXJhbWV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTZDO0FBQzdDLGlEQUFzRDtBQUN0RCxtRUFHc0M7QUFDdEMsMkNBQXVDO0FBRXZDLHlCQUF3QztBQUN4QyxzRUFBbUU7QUFFbkUsTUFBYSxlQUFnQixTQUFRLHFCQUFHLENBQUMsZUFBZTtJQUN0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLGdCQUFnQjtZQUN2RCxJQUFJLEVBQUUscUJBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVJELDBDQVFDO0FBY0QsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUtsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLHFCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO2dCQUNsRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsVUFBVTtnQkFDakQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRTtZQUN6RSxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFlBQVksRUFBRSxHQUFHLEVBQUUsdUJBQXVCO1lBQzFDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsY0FBYztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLG1CQUFtQjtvQkFDMUQsS0FBSyxFQUNILEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxrQkFBa0I7b0JBQ3BFLElBQUksRUFBRSxjQUFjO29CQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDM0Isa0NBQWtDO2lCQUNuQztnQkFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDekU7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxtQkFBbUI7b0JBQzFELEtBQUssRUFDSCxLQUFLLENBQUMsS0FBSzt3QkFDWCxpQ0FBaUMsRUFBRSxFQUFFO3dCQUNyQyxrQkFBa0I7b0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztvQkFDMUIsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO29CQUMzQixrQ0FBa0M7aUJBQ25DO2dCQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6RTtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNqQjthQUNGO1lBQ0QsTUFBTSxFQUFFLDBDQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7cUJBQzNFO2lCQUNGLENBQUM7Z0JBQ0YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qix5QkFBeUI7cUJBQzFCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsYUFBYSxLQUFLLENBQUMsSUFBSSxFQUFFO3FCQUN4RTtpQkFDRixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRjtBQXZGRCxzREF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3Nfc3NtIGFzIHNzbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBQaHlzaWNhbFJlc291cmNlSWRcbn0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4vXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1BhcmFtZXRlciBleHRlbmRzIHNzbS5TdHJpbmdQYXJhbWV0ZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogc3NtLlN0cmluZ1BhcmFtZXRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHtpZH0gU1NNIFBhcmFtZXRlcmAsXG4gICAgICB0aWVyOiBzc20uUGFyYW1ldGVyVGllci5JTlRFTExJR0VOVF9USUVSSU5HXG4gICAgfSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFNlY3VyZVN0cmluZ1BhcmFtZXRlclByb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIGFsaWFzTmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xuICB2YWx1ZT86IHN0cmluZztcbiAgY21rPzogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xufVxuXG5leHBvcnQgY2xhc3MgU2VjdXJlU3RyaW5nUGFyYW1ldGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNtazogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyOiBBd3NDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjdXJlU3RyaW5nUGFyYW1ldGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcblxuICAgIGlmIChwcm9wcy5jbWspIHtcbiAgICAgIHRoaXMuY21rID0gcHJvcHMuY21rO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNtayA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IEtNUyBLZXlgLFxuICAgICAgICBhbGlhc05hbWU6IHByb3BzLmFsaWFzTmFtZSxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wYXJhbWV0ZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYCR7aWR9U2VjdXJlU3RyaW5nUGFyYW1ldGVyYCwge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6U2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIsXG4gICAgICBmdW5jdGlvbk5hbWU6IGAke2lkfVNlY3VyZVN0cmluZ1BhcmFtZXRlcmAsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIlB1dFBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IHNlY3VyZSBwYXJhbWV0ZXJgLFxuICAgICAgICAgIFZhbHVlOlxuICAgICAgICAgICAgcHJvcHMudmFsdWUgfHwgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkcgfHwgXCJwbGFjZWhvbGRlclZhbHVlXCIsXG4gICAgICAgICAgVHlwZTogXCJTZWN1cmVTdHJpbmdcIixcbiAgICAgICAgICBLZXlJZDogdGhpcy5jbWsuYWxpYXMua2V5SWRcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGFncyB0byB0aGUgcGFyYW1ldGVyXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlU2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJAYXdzLXNkay9jbGllbnQtc3NtXCIsXG4gICAgICAgIGFjdGlvbjogXCJQdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgRGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBzZWN1cmUgcGFyYW1ldGVyYCxcbiAgICAgICAgICBWYWx1ZTpcbiAgICAgICAgICAgIHByb3BzLnZhbHVlIHx8XG4gICAgICAgICAgICBgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkdfJHtpZH1gIHx8XG4gICAgICAgICAgICBcInBsYWNlaG9sZGVyVmFsdWVcIixcbiAgICAgICAgICBPdmVyd3JpdGU6IHByb3BzLm92ZXJ3cml0ZSxcbiAgICAgICAgICBUeXBlOiBcIlNlY3VyZVN0cmluZ1wiLFxuICAgICAgICAgIEtleUlkOiB0aGlzLmNtay5hbGlhcy5rZXlJZFxuICAgICAgICAgIC8vIFRPRE86IEFkZCB0YWdzIHRvIHRoZSBwYXJhbWV0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoXCJ1cGRhdGVTZWN1cmVTdHJpbmdQYXJhbWV0ZXJcIilcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZVBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImttczpFbmNyeXB0XCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6a21zOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06a2V5LyR7dGhpcy5jbWsua2V5LmtleUlkfWBcbiAgICAgICAgICBdXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNzbTpEZWxldGVQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwic3NtOlB1dFBhcmFtZXRlclwiLFxuICAgICAgICAgICAgXCJzc206QWRkVGFnc1RvUmVzb3VyY2VcIixcbiAgICAgICAgICAgIFwibG9nczpEZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICAgIFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzc206JHtwcm9wcy5yZWdpb259OiR7cHJvcHMuYWNjb3VudElkfTpwYXJhbWV0ZXIke3Byb3BzLm5hbWV9YFxuICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBpZiAoIXByb3BzLmNtaykge1xuICAgICAgdGhpcy5wYXJhbWV0ZXIubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuY21rKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SecretValue } from "aws-cdk-lib";
|
|
2
|
+
import { Secret as CdkSecret, SecretStringGenerator } from "aws-cdk-lib/aws-secretsmanager";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { StackBuilder } from "../awsStack";
|
|
5
|
+
import { CustomerManagedKey } from "./kms";
|
|
6
|
+
import { KeyValue } from "../../../types";
|
|
7
|
+
interface SecretProps {
|
|
8
|
+
secretName: string;
|
|
9
|
+
secretObjectValue?: {
|
|
10
|
+
[key: string]: SecretValue;
|
|
11
|
+
};
|
|
12
|
+
secretStringValue?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
aliasName?: string;
|
|
15
|
+
generateSecretString?: SecretStringGenerator;
|
|
16
|
+
tags: KeyValue;
|
|
17
|
+
}
|
|
18
|
+
export declare class Secret extends Construct {
|
|
19
|
+
readonly secret: CdkSecret;
|
|
20
|
+
readonly secretsCustomerManagedKey: CustomerManagedKey;
|
|
21
|
+
constructor(scope: Construct, id: string, props: SecretProps);
|
|
22
|
+
static build(id: string, props: SecretProps): (sb: StackBuilder) => Construct;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Secret = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
const tagResource_1 = require("../../../utils/tagResource");
|
|
8
|
+
const kms_1 = require("./kms");
|
|
9
|
+
class Secret extends constructs_1.Construct {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
this.secretsCustomerManagedKey = new kms_1.CustomerManagedKey(this, `${id}CustomerManagedKey`, {
|
|
13
|
+
aliasName: `cmk/${id}`,
|
|
14
|
+
tags: props.tags
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* If a secretStringValue is provided, use it to create the secret.
|
|
18
|
+
*/
|
|
19
|
+
const secretStringValue = props.secretStringValue
|
|
20
|
+
? {
|
|
21
|
+
secretStringValue: aws_cdk_lib_1.SecretValue.unsafePlainText(props.secretStringValue || "")
|
|
22
|
+
}
|
|
23
|
+
: {};
|
|
24
|
+
/**
|
|
25
|
+
* If a generateSecretString is provided, use it to create the secret.
|
|
26
|
+
* If a secretStringValue is provided, ignore the generateSecretString.
|
|
27
|
+
*/
|
|
28
|
+
const generateSecretString = !props.secretStringValue && props.generateSecretString
|
|
29
|
+
? { generateSecretString: props.generateSecretString }
|
|
30
|
+
: {};
|
|
31
|
+
// Construct the base options for CdkSecret
|
|
32
|
+
const secretOptions = {
|
|
33
|
+
secretName: props.secretName,
|
|
34
|
+
secretObjectValue: props.secretObjectValue,
|
|
35
|
+
encryptionKey: this.secretsCustomerManagedKey.key,
|
|
36
|
+
description: props.description,
|
|
37
|
+
...secretStringValue,
|
|
38
|
+
...generateSecretString
|
|
39
|
+
};
|
|
40
|
+
this.secret = new aws_secretsmanager_1.Secret(this, `${id}Secret`, secretOptions);
|
|
41
|
+
(0, tagResource_1.default)(this.secret, props.tags);
|
|
42
|
+
}
|
|
43
|
+
static build(id, props) {
|
|
44
|
+
return (sb) => {
|
|
45
|
+
const newProps = {
|
|
46
|
+
...props
|
|
47
|
+
};
|
|
48
|
+
return new this(sb.getStack(), id, newProps);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.Secret = Secret;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTBDO0FBQzFDLHVFQUd3QztBQUN4QywyQ0FBdUM7QUFDdkMsNERBQXFEO0FBRXJELCtCQUEyQztBQWUzQyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUluQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksd0JBQWtCLENBQ3JELElBQUksRUFDSixHQUFHLEVBQUUsb0JBQW9CLEVBQ3pCO1lBQ0UsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUNGLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtZQUMvQyxDQUFDLENBQUM7Z0JBQ0UsaUJBQWlCLEVBQUUseUJBQVcsQ0FBQyxlQUFlLENBQzVDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQzlCO2FBQ0Y7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVA7OztXQUdHO1FBQ0gsTUFBTSxvQkFBb0IsR0FDeEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLG9CQUFvQjtZQUNwRCxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULDJDQUEyQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxhQUFhLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUc7WUFDakQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsb0JBQW9CO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMkJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVoRSxJQUFBLHFCQUFXLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQ1YsRUFBVSxFQUNWLEtBQWtCO1FBRWxCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQWdCO2dCQUM1QixHQUFHLEtBQUs7YUFDVCxDQUFDO1lBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTlERCx3QkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU2VjcmV0IGFzIENka1NlY3JldCxcbiAgU2VjcmV0U3RyaW5nR2VuZXJhdG9yXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdGFnUmVzb3VyY2UgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3RhZ1Jlc291cmNlXCI7XG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuL2ttc1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIFNlY3JldFByb3BzIHtcbiAgc2VjcmV0TmFtZTogc3RyaW5nO1xuICBzZWNyZXRPYmplY3RWYWx1ZT86IHtcbiAgICBba2V5OiBzdHJpbmddOiBTZWNyZXRWYWx1ZTtcbiAgfTtcbiAgc2VjcmV0U3RyaW5nVmFsdWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIGdlbmVyYXRlU2VjcmV0U3RyaW5nPzogU2VjcmV0U3RyaW5nR2VuZXJhdG9yO1xuICB0YWdzOiBLZXlWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3JldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXQ6IENka1NlY3JldDtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldHNDdXN0b21lck1hbmFnZWRLZXk6IEN1c3RvbWVyTWFuYWdlZEtleTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zZWNyZXRzQ3VzdG9tZXJNYW5hZ2VkS2V5ID0gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtpZH1DdXN0b21lck1hbmFnZWRLZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvJHtpZH1gLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgc2VjcmV0U3RyaW5nVmFsdWUgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBjb25zdCBzZWNyZXRTdHJpbmdWYWx1ZSA9IHByb3BzLnNlY3JldFN0cmluZ1ZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICBzZWNyZXRTdHJpbmdWYWx1ZTogU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KFxuICAgICAgICAgICAgcHJvcHMuc2VjcmV0U3RyaW5nVmFsdWUgfHwgXCJcIlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgOiB7fTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgZ2VuZXJhdGVTZWNyZXRTdHJpbmcgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKiBJZiBhIHNlY3JldFN0cmluZ1ZhbHVlIGlzIHByb3ZpZGVkLCBpZ25vcmUgdGhlIGdlbmVyYXRlU2VjcmV0U3RyaW5nLlxuICAgICAqL1xuICAgIGNvbnN0IGdlbmVyYXRlU2VjcmV0U3RyaW5nID1cbiAgICAgICFwcm9wcy5zZWNyZXRTdHJpbmdWYWx1ZSAmJiBwcm9wcy5nZW5lcmF0ZVNlY3JldFN0cmluZ1xuICAgICAgICA/IHsgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHByb3BzLmdlbmVyYXRlU2VjcmV0U3RyaW5nIH1cbiAgICAgICAgOiB7fTtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgYmFzZSBvcHRpb25zIGZvciBDZGtTZWNyZXRcbiAgICBjb25zdCBzZWNyZXRPcHRpb25zID0ge1xuICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgIHNlY3JldE9iamVjdFZhbHVlOiBwcm9wcy5zZWNyZXRPYmplY3RWYWx1ZSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IHRoaXMuc2VjcmV0c0N1c3RvbWVyTWFuYWdlZEtleS5rZXksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAuLi5zZWNyZXRTdHJpbmdWYWx1ZSxcbiAgICAgIC4uLmdlbmVyYXRlU2VjcmV0U3RyaW5nXG4gICAgfTtcblxuICAgIHRoaXMuc2VjcmV0ID0gbmV3IENka1NlY3JldCh0aGlzLCBgJHtpZH1TZWNyZXRgLCBzZWNyZXRPcHRpb25zKTtcblxuICAgIHRhZ1Jlc291cmNlKHRoaXMuc2VjcmV0LCBwcm9wcy50YWdzKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZWNyZXRQcm9wc1xuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBTZWNyZXRQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH07XG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIG5ld1Byb3BzKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { Repository, RepositoryProps } from "aws-cdk-lib/aws-ecr";
|
|
3
|
+
import { StackBuilder } from "../awsStack";
|
|
4
|
+
interface EcrProps {
|
|
5
|
+
}
|
|
6
|
+
export declare class Ecr extends Repository {
|
|
7
|
+
private outputs;
|
|
8
|
+
constructor(scope: Construct, id: string, props?: EcrProps);
|
|
9
|
+
static getRepositoryProps(props?: EcrProps): RepositoryProps;
|
|
10
|
+
static build(id: string, props?: EcrProps): (scope: StackBuilder) => Ecr;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Ecr = void 0;
|
|
4
|
+
const aws_ecr_1 = require("aws-cdk-lib/aws-ecr");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
class Ecr extends aws_ecr_1.Repository {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, Ecr.getRepositoryProps(props));
|
|
9
|
+
this.outputs = [];
|
|
10
|
+
this.outputs.push(new aws_cdk_lib_1.CfnOutput(this, "ecrRepository", {
|
|
11
|
+
key: "RepositoryName",
|
|
12
|
+
value: this.repositoryName,
|
|
13
|
+
exportName: `${id}RepositoryName`
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
static getRepositoryProps(props) {
|
|
18
|
+
// todo: lifeCycleRules
|
|
19
|
+
// todo: Encryption & EncryptionKey (default is AWS managed KMS key)
|
|
20
|
+
return {
|
|
21
|
+
imageScanOnPush: true,
|
|
22
|
+
imageTagMutability: aws_ecr_1.TagMutability.MUTABLE,
|
|
23
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static build(id, props) {
|
|
27
|
+
return (scope) => new Ecr(scope.getStack(), id, props);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.Ecr = Ecr;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmFnZS9lY3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBSTZCO0FBQzdCLDZDQUF1RDtBQU12RCxNQUFhLEdBQUksU0FBUSxvQkFBVTtJQUdqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBSDFDLFlBQU8sR0FBZ0IsRUFBRSxDQUFDO1FBS2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1NBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDeEMsdUJBQXVCO1FBQ3ZCLG9FQUFvRTtRQUNwRSxPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUk7WUFDckIsa0JBQWtCLEVBQUUsdUJBQWEsQ0FBQyxPQUFPO1lBQ3pDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUE3QkQsa0JBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFJlcG9zaXRvcnksXG4gIFJlcG9zaXRvcnlQcm9wcyxcbiAgVGFnTXV0YWJpbGl0eVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuXG5pbnRlcmZhY2UgRWNyUHJvcHMge31cblxuZXhwb3J0IGNsYXNzIEVjciBleHRlbmRzIFJlcG9zaXRvcnkge1xuICBwcml2YXRlIG91dHB1dHM6IENmbk91dHB1dFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFY3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgRWNyLmdldFJlcG9zaXRvcnlQcm9wcyhwcm9wcykpO1xuXG4gICAgdGhpcy5vdXRwdXRzLnB1c2goXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiZWNyUmVwb3NpdG9yeVwiLCB7XG4gICAgICAgIGtleTogXCJSZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7aWR9UmVwb3NpdG9yeU5hbWVgXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHN0YXRpYyBnZXRSZXBvc2l0b3J5UHJvcHMocHJvcHM/OiBFY3JQcm9wcyk6IFJlcG9zaXRvcnlQcm9wcyB7XG4gICAgLy8gdG9kbzogbGlmZUN5Y2xlUnVsZXNcbiAgICAvLyB0b2RvOiBFbmNyeXB0aW9uICYgRW5jcnlwdGlvbktleSAoZGVmYXVsdCBpcyBBV1MgbWFuYWdlZCBLTVMga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZVNjYW5PblB1c2g6IHRydWUsXG4gICAgICBpbWFnZVRhZ011dGFiaWxpdHk6IFRhZ011dGFiaWxpdHkuTVVUQUJMRSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wcz86IEVjclByb3BzKTogKHNjb3BlOiBTdGFja0J1aWxkZXIpID0+IEVjciB7XG4gICAgcmV0dXJuIChzY29wZTogU3RhY2tCdWlsZGVyKSA9PiBuZXcgRWNyKHNjb3BlLmdldFN0YWNrKCksIGlkLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./s3"), exports);
|
|
18
|
+
__exportStar(require("./ecr"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBcUI7QUFDckIsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vczNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VjclwiO1xuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Bucket, BucketProps } from "aws-cdk-lib/aws-s3";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export declare class S3Bucket extends Bucket {
|
|
4
|
+
constructor(scope: Construct, id: string, props?: BucketProps);
|
|
5
|
+
}
|
|
6
|
+
export declare class S3WebsiteBucket extends S3Bucket {
|
|
7
|
+
constructor(scope: Construct, id: string, props?: BucketProps);
|
|
8
|
+
}
|
|
9
|
+
export declare class S3PublicReadBucket extends S3Bucket {
|
|
10
|
+
constructor(scope: Construct, id: string, props?: BucketProps);
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3PublicReadBucket = exports.S3WebsiteBucket = exports.S3Bucket = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
|
|
6
|
+
class S3Bucket extends aws_s3_1.Bucket {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
autoDeleteObjects: true,
|
|
11
|
+
enforceSSL: true,
|
|
12
|
+
removalPolicy: props?.removalPolicy || aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
13
|
+
versioned: true
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.S3Bucket = S3Bucket;
|
|
18
|
+
class S3WebsiteBucket extends S3Bucket {
|
|
19
|
+
constructor(scope, id, props) {
|
|
20
|
+
super(scope, id, {
|
|
21
|
+
...props,
|
|
22
|
+
websiteErrorDocument: "error.html",
|
|
23
|
+
websiteIndexDocument: "index.html",
|
|
24
|
+
publicReadAccess: true
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.S3WebsiteBucket = S3WebsiteBucket;
|
|
29
|
+
class S3PublicReadBucket extends S3Bucket {
|
|
30
|
+
constructor(scope, id, props) {
|
|
31
|
+
super(scope, id, {
|
|
32
|
+
...props,
|
|
33
|
+
publicReadAccess: true,
|
|
34
|
+
blockPublicAccess: new aws_s3_1.BlockPublicAccess({
|
|
35
|
+
blockPublicAcls: false,
|
|
36
|
+
blockPublicPolicy: false,
|
|
37
|
+
ignorePublicAcls: false,
|
|
38
|
+
restrictPublicBuckets: false
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.S3PublicReadBucket = S3PublicReadBucket;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrQ0FBNEU7QUFHNUUsTUFBYSxRQUFTLFNBQVEsZUFBTTtJQUNsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU87WUFDNUQsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsNEJBVUM7QUFFRCxNQUFhLGVBQWdCLFNBQVEsUUFBUTtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1Isb0JBQW9CLEVBQUUsWUFBWTtZQUNsQyxvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGtCQUFtQixTQUFRLFFBQVE7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsSUFBSSwwQkFBaUIsQ0FBQztnQkFDdkMsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWJELGdEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgUzNCdWNrZXQgZXh0ZW5kcyBCdWNrZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzPy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1dlYnNpdGVCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6IFwiZXJyb3IuaHRtbFwiLFxuICAgICAgd2Vic2l0ZUluZGV4RG9jdW1lbnQ6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1B1YmxpY1JlYWRCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBuZXcgQmxvY2tQdWJsaWNBY2Nlc3Moe1xuICAgICAgICBibG9ja1B1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICBibG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgIGlnbm9yZVB1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICByZXN0cmljdFB1YmxpY0J1Y2tldHM6IGZhbHNlXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
|
2
|
+
import { Project, ProjectProps } from "aws-cdk-lib/aws-codebuild";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { KeyValue } from "../../../types";
|
|
5
|
+
interface CodeBuildProps extends ProjectProps {
|
|
6
|
+
tags: KeyValue;
|
|
7
|
+
}
|
|
8
|
+
export declare class CodeBuildProject extends Construct {
|
|
9
|
+
readonly project: Project;
|
|
10
|
+
constructor(scope: Construct, id: string, props: CodeBuildProps);
|
|
11
|
+
}
|
|
12
|
+
export declare class CodeBuildProjectStack extends Stack {
|
|
13
|
+
constructor(scope: Construct, id: string, props: CodeBuildProps);
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeBuildProjectStack = exports.CodeBuildProject = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
const tagResource_1 = require("../../../utils/tagResource");
|
|
8
|
+
class CodeBuildProject extends constructs_1.Construct {
|
|
9
|
+
constructor(scope, id, props) {
|
|
10
|
+
super(scope, id);
|
|
11
|
+
this.project = new aws_codebuild_1.Project(this, id, {
|
|
12
|
+
...props,
|
|
13
|
+
description: props.description || `Code build project for ${id}`
|
|
14
|
+
});
|
|
15
|
+
(0, tagResource_1.default)(this.project, props.tags);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.CodeBuildProject = CodeBuildProject;
|
|
19
|
+
class CodeBuildProjectStack extends aws_cdk_lib_1.Stack {
|
|
20
|
+
constructor(scope, id, props) {
|
|
21
|
+
super(scope, id);
|
|
22
|
+
new CodeBuildProject(this, id, {
|
|
23
|
+
...props
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.CodeBuildProjectStack = CodeBuildProjectStack;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZUJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2NvZGVCdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBb0M7QUFDcEMsNkRBQWtFO0FBQ2xFLDJDQUF1QztBQUN2Qyw0REFBcUQ7QUFPckQsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUc3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVCQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNuQyxHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSwwQkFBMEIsRUFBRSxFQUFFO1NBQ2pFLENBQUMsQ0FBQztRQUNILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFaRCw0Q0FZQztBQUVELE1BQWEscUJBQXNCLFNBQVEsbUJBQUs7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUM3QixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFSRCxzREFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQcm9qZWN0LCBQcm9qZWN0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDb2RlQnVpbGRQcm9wcyBleHRlbmRzIFByb2plY3RQcm9wcyB7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ29kZUJ1aWxkUHJvamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2RlQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgUHJvamVjdCh0aGlzLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYENvZGUgYnVpbGQgcHJvamVjdCBmb3IgJHtpZH1gXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5wcm9qZWN0LCBwcm9wcy50YWdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29kZUJ1aWxkUHJvamVjdFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZUJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IENvZGVCdWlsZFByb2plY3QodGhpcywgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -9,7 +9,7 @@ const lambda_1 = require("../compute/lambda");
|
|
|
9
9
|
class CustomResource extends constructs_1.Construct {
|
|
10
10
|
constructor(scope, id, props) {
|
|
11
11
|
super(scope, id);
|
|
12
|
-
const lambdaFunction = new lambda_1.
|
|
12
|
+
const lambdaFunction = new lambda_1.SingletonFunction(this, `${id}Lambda`, {
|
|
13
13
|
code: aws_lambda_1.Code.fromAsset(props.codePath, props.assetOptions),
|
|
14
14
|
handler: `${id}.handler`,
|
|
15
15
|
runtime: props.runtime,
|
|
@@ -29,4 +29,4 @@ class CustomResource extends constructs_1.Construct {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
exports.CustomResource = CustomResource;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSXFCO0FBQ3JCLG1FQUF3RDtBQUV4RCx1REFBdUQ7QUFDdkQsMkNBQXVDO0FBRXZDLDhDQUFzRDtBQWV0RCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSwwQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNoRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVTtZQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxTQUFTO1lBQzVELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLEdBQUcsRUFBRSx5QkFBeUI7WUFDeEUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUNuRCxjQUFjLEVBQUUsY0FBYztZQUM5QixZQUFZLEVBQUUsc0JBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUTtTQUM5QyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDekQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBM0JELHdDQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1c3RvbVJlc291cmNlIGFzIGN1c3RvbVJlc291cmNlLFxuICBhd3NfbG9ncyxcbiAgQXNzZXRPcHRpb25zXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29kZSwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBTaW5nbGV0b25GdW5jdGlvbiB9IGZyb20gXCIuLi9jb21wdXRlL2xhbWJkYVwiO1xuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIHJvbGVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFtYmRhRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlubGluZVBvbGljeToge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQb2xpY3lEb2N1bWVudDtcbiAgfTtcbiAgcHJvcGVydGllcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7IC8vIFVzZWQgdG8gYmUgYFtrZXk6IHN0cmluZ106IGFueWAsIHRoaXMgY291bGQgYnJlYWtcbiAgfTtcbiAgY29kZVBhdGg6IHN0cmluZztcbiAgYXNzZXRPcHRpb25zPzogQXNzZXRPcHRpb25zO1xufVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJlc291cmNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEN1c3RvbVJlc291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbGFtYmRhRnVuY3Rpb24gPSBuZXcgU2luZ2xldG9uRnVuY3Rpb24odGhpcywgYCR7aWR9TGFtYmRhYCwge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZVBhdGgsIHByb3BzLmFzc2V0T3B0aW9ucyksXG4gICAgICBoYW5kbGVyOiBgJHtpZH0uaGFuZGxlcmAsXG4gICAgICBydW50aW1lOiBwcm9wcy5ydW50aW1lLFxuICAgICAgbGFtYmRhRGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBsYW1iZGFgLFxuICAgICAgcm9sZURlc2NyaXB0aW9uOiBwcm9wcy5yb2xlRGVzY3JpcHRpb24gfHwgYCR7aWR9IGN1c3RvbSByZXNvdXJjZSBsYW1iZGFgLFxuICAgICAgaW5saW5lUG9saWN5OiBwcm9wcy5pbmxpbmVQb2xpY3lcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIGAke2lkfVByb3ZpZGVyYCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGxhbWJkYUZ1bmN0aW9uLFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9ZRUFSXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjdXN0b21SZXNvdXJjZSh0aGlzLCBgJHtpZH1SZXNvdXJjZWAsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczogcHJvcHMucHJvcGVydGllc1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc291cmNlLmdldEF0dChcIlJlc3BvbnNlXCIpLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgS2V5VmFsdWUge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function capitalizeString(string: string): string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.capitalizeString = void 0;
|
|
4
|
+
function capitalizeString(string) {
|
|
5
|
+
return String(string).charAt(0).toUpperCase() + String(string).slice(1);
|
|
6
|
+
}
|
|
7
|
+
exports.capitalizeString = capitalizeString;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9jYXBpdGFsaXplU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLGdCQUFnQixDQUFDLE1BQWM7SUFDN0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUZELDRDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVTdHJpbmcoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBTdHJpbmcoc3RyaW5nKS5zbGljZSgxKTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function getAccountId(environment: string):
|
|
1
|
+
export default function getAccountId(environment: string): string;
|
|
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const getConfig_1 = require("./getConfig");
|
|
4
4
|
function getAccountId(environment) {
|
|
5
5
|
const config = (0, getConfig_1.getEnviornmentConfig)(environment);
|
|
6
|
+
// TODO: need to fix how we handle this in the VPC module
|
|
6
7
|
if (!config || !config.account)
|
|
7
|
-
return
|
|
8
|
+
return "error";
|
|
8
9
|
return config.account;
|
|
9
10
|
}
|
|
10
11
|
exports.default = getAccountId;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldEFjY291bnRJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFtRDtBQUVuRCxTQUF3QixZQUFZLENBQUMsV0FBbUI7SUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxnQ0FBb0IsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCx5REFBeUQ7SUFDekQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFFL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUM7QUFORCwrQkFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEVudmlvcm5tZW50Q29uZmlnIH0gZnJvbSBcIi4vZ2V0Q29uZmlnXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFjY291bnRJZChlbnZpcm9ubWVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0RW52aW9ybm1lbnRDb25maWcoZW52aXJvbm1lbnQpO1xuICAvLyBUT0RPOiBuZWVkIHRvIGZpeCBob3cgd2UgaGFuZGxlIHRoaXMgaW4gdGhlIFZQQyBtb2R1bGVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5hY2NvdW50KSByZXR1cm4gXCJlcnJvclwiO1xuXG4gIHJldHVybiBjb25maWcuYWNjb3VudDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
class CidrBlock {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.configFile = ".fjall/.cidr-config.json";
|
|
7
|
+
// Ensure .fjall directory exists
|
|
8
|
+
fs.mkdirSync(".fjall", { recursive: true });
|
|
9
|
+
// Import config, or create it if it doesn't exist
|
|
10
|
+
if (fs.existsSync(this.configFile)) {
|
|
11
|
+
const configString = fs.readFileSync(this.configFile, "utf-8");
|
|
12
|
+
this.cidrBlock = JSON.parse(configString);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.cidrBlock = {};
|
|
16
|
+
for (let i = 1; i <= 255; i++) {
|
|
17
|
+
this.cidrBlock[`${i}.0.0.0/8`] = true;
|
|
18
|
+
}
|
|
19
|
+
const configString = JSON.stringify(this.cidrBlock, null, 2);
|
|
20
|
+
fs.writeFileSync(this.configFile, configString);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
writeState() {
|
|
24
|
+
// JSON-ify config and write to file
|
|
25
|
+
const configString = JSON.stringify(this.cidrBlock, null, 2);
|
|
26
|
+
fs.writeFileSync(this.configFile, configString);
|
|
27
|
+
}
|
|
28
|
+
getCidrBlock() {
|
|
29
|
+
for (const key in this.cidrBlock) {
|
|
30
|
+
if (this.cidrBlock[key]) {
|
|
31
|
+
return key;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return "0.0.0.0/8";
|
|
35
|
+
}
|
|
36
|
+
updateState(cidrBlock, status) {
|
|
37
|
+
this.cidrBlock[cidrBlock] = status;
|
|
38
|
+
this.writeState();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.default = CidrBlock;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2lkci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9nZXRDaWRyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQXlCO0FBTXpCLE1BQXFCLFNBQVM7SUFJNUI7UUFGUSxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFHOUMsaUNBQWlDO1FBQ2pDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUMsa0RBQWtEO1FBQ2xELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3ZDO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLG9DQUFvQztRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFBWTtRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7U0FDRjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUF6Q0QsNEJBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5cbmludGVyZmFjZSBjaWRyVGFibGUge1xuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaWRyQmxvY2sge1xuICBwcml2YXRlIGNpZHJCbG9jazogY2lkclRhYmxlO1xuICBwcml2YXRlIGNvbmZpZ0ZpbGUgPSBcIi5mamFsbC8uY2lkci1jb25maWcuanNvblwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEVuc3VyZSAuZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcIi5mamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIEltcG9ydCBjb25maWcsIG9yIGNyZWF0ZSBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5jb25maWdGaWxlKSkge1xuICAgICAgY29uc3QgY29uZmlnU3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHRoaXMuY29uZmlnRmlsZSwgXCJ1dGYtOFwiKTtcbiAgICAgIHRoaXMuY2lkckJsb2NrID0gSlNPTi5wYXJzZShjb25maWdTdHJpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNpZHJCbG9jayA9IHt9O1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMjU1OyBpKyspIHtcbiAgICAgICAgdGhpcy5jaWRyQmxvY2tbYCR7aX0uMC4wLjAvOGBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbmZpZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY2lkckJsb2NrLCBudWxsLCAyKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBjb25maWdTdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlU3RhdGUoKSB7XG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSB0byBmaWxlXG4gICAgY29uc3QgY29uZmlnU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jaWRyQmxvY2ssIG51bGwsIDIpO1xuICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBjb25maWdTdHJpbmcpO1xuICB9XG5cbiAgZ2V0Q2lkckJsb2NrKCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2lkckJsb2NrKSB7XG4gICAgICBpZiAodGhpcy5jaWRyQmxvY2tba2V5XSkge1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gXCIwLjAuMC4wLzhcIjtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKGNpZHJCbG9jazogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNpZHJCbG9ja1tjaWRyQmxvY2tdID0gc3RhdHVzO1xuICAgIHRoaXMud3JpdGVTdGF0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
interface Config {
|
|
2
2
|
environment: string;
|
|
3
|
-
account
|
|
4
|
-
|
|
3
|
+
account: string;
|
|
4
|
+
accountName: string;
|
|
5
|
+
region: string;
|
|
5
6
|
}
|
|
6
7
|
export declare function getEnviornmentConfig(environment: string): Config;
|
|
7
8
|
export declare function getConfig(): Config;
|