@sylvesterllc/aws-constructs 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +36 -0
- package/dist/config/AppConfig.d.ts +24 -0
- package/dist/config/AppConfig.js +62 -0
- package/dist/config/Constants.d.ts +26 -0
- package/dist/config/Constants.js +30 -0
- package/dist/config/Environments.d.ts +2 -0
- package/dist/config/Environments.js +3 -0
- package/dist/config/MicroserviceAppConfig.d.ts +5 -0
- package/dist/config/MicroserviceAppConfig.js +11 -0
- package/dist/config/bishopConfig.d.ts +2 -0
- package/dist/config/bishopConfig.js +81 -0
- package/dist/config/customConfigs/ApiAppConfig.d.ts +5 -0
- package/dist/config/customConfigs/ApiAppConfig.js +4 -0
- package/dist/config/customConfigs/GlobalAppConfig.d.ts +8 -0
- package/dist/config/customConfigs/GlobalAppConfig.js +3 -0
- package/dist/config/customConfigs/IAppConfig.d.ts +10 -0
- package/dist/config/customConfigs/IAppConfig.js +3 -0
- package/dist/config/customConfigs/ResourceAppConfig.d.ts +8 -0
- package/dist/config/customConfigs/ResourceAppConfig.js +3 -0
- package/dist/config/microServiceConfig.d.ts +2 -0
- package/dist/config/microServiceConfig.js +82 -0
- package/dist/config/types/TsgCdkConfigType.d.ts +3 -0
- package/dist/config/types/TsgCdkConfigType.js +3 -0
- package/dist/config/types/TsgCognitoConfig.d.ts +5 -0
- package/dist/config/types/TsgCognitoConfig.js +3 -0
- package/dist/config/types/TsgDnsConfig.d.ts +9 -0
- package/dist/config/types/TsgDnsConfig.js +3 -0
- package/dist/config/types/TsgDynamoDbProp.d.ts +6 -0
- package/dist/config/types/TsgDynamoDbProp.js +3 -0
- package/dist/config/types/TsgDynamoIndex.d.ts +13 -0
- package/dist/config/types/TsgDynamoIndex.js +3 -0
- package/dist/config/types/TsgDynamoProp.d.ts +15 -0
- package/dist/config/types/TsgDynamoProp.js +3 -0
- package/dist/config/types/TsgDynamoTable.d.ts +4 -0
- package/dist/config/types/TsgDynamoTable.js +3 -0
- package/dist/config/types/TsgDynamoTableRef.d.ts +4 -0
- package/dist/config/types/TsgDynamoTableRef.js +3 -0
- package/dist/config/types/TsgLambda.d.ts +4 -0
- package/dist/config/types/TsgLambda.js +3 -0
- package/dist/config/types/TsgLambdaLayerProp.d.ts +5 -0
- package/dist/config/types/TsgLambdaLayerProp.js +3 -0
- package/dist/config/types/TsgLambdaMap.d.ts +3 -0
- package/dist/config/types/TsgLambdaMap.js +3 -0
- package/dist/config/types/TsgLambdaName.d.ts +1 -0
- package/dist/config/types/TsgLambdaName.js +3 -0
- package/dist/config/types/TsgLambdaNode.d.ts +3 -0
- package/dist/config/types/TsgLambdaNode.js +3 -0
- package/dist/config/types/TsgLambdaProp.d.ts +16 -0
- package/dist/config/types/TsgLambdaProp.js +3 -0
- package/dist/config/types/TsgLambdaProps.d.ts +16 -0
- package/dist/config/types/TsgLambdaProps.js +3 -0
- package/dist/config/types/TsgLambdaRoutable.d.ts +6 -0
- package/dist/config/types/TsgLambdaRoutable.js +3 -0
- package/dist/config/types/index.d.ts +8 -0
- package/dist/config/types/index.js +25 -0
- package/dist/constructs/MicroService.d.ts +12 -0
- package/dist/constructs/MicroService.js +47 -0
- package/dist/constructs/index.d.ts +1 -0
- package/dist/constructs/index.js +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/interfaces/CreateLambdaFunctionInput.d.ts +10 -0
- package/dist/interfaces/CreateLambdaFunctionInput.js +3 -0
- package/dist/interfaces/MicroserviceProps.d.ts +10 -0
- package/dist/interfaces/MicroserviceProps.js +3 -0
- package/dist/resources/base/baseResource.d.ts +10 -0
- package/dist/resources/base/baseResource.js +11 -0
- package/dist/resources/certificate/createCertificate.d.ts +9 -0
- package/dist/resources/certificate/createCertificate.js +29 -0
- package/dist/resources/cognito/createCognito.d.ts +7 -0
- package/dist/resources/cognito/createCognito.js +35 -0
- package/dist/resources/cognito/createCognitoProps.d.ts +2 -0
- package/dist/resources/cognito/createCognitoProps.js +47 -0
- package/dist/resources/dynamodb/CreateDynamo.d.ts +15 -0
- package/dist/resources/dynamodb/CreateDynamo.js +87 -0
- package/dist/resources/gateway/createApi.d.ts +19 -0
- package/dist/resources/gateway/createApi.js +104 -0
- package/dist/resources/gateway/createMicroServiceBundle.d.ts +25 -0
- package/dist/resources/gateway/createMicroServiceBundle.js +126 -0
- package/dist/resources/helpers/createAuthorizer.d.ts +15 -0
- package/dist/resources/helpers/createAuthorizer.js +80 -0
- package/dist/resources/helpers/createCommonLayer.d.ts +3 -0
- package/dist/resources/helpers/createCommonLayer.js +15 -0
- package/dist/resources/helpers/createRoutes.d.ts +8 -0
- package/dist/resources/helpers/createRoutes.js +30 -0
- package/dist/resources/lambda/createLambda.d.ts +20 -0
- package/dist/resources/lambda/createLambda.js +135 -0
- package/dist/resources/lambda-layer/createLambdaLayer.d.ts +5 -0
- package/dist/resources/lambda-layer/createLambdaLayer.js +31 -0
- package/dist/resources/layers/common/src/nodejs/api-response/index.d.ts +1 -0
- package/dist/resources/layers/common/src/nodejs/api-response/index.js +18 -0
- package/dist/resources/layers/common/src/nodejs/api-response/responses.d.ts +24 -0
- package/dist/resources/layers/common/src/nodejs/api-response/responses.js +43 -0
- package/dist/resources/layers/common/src/nodejs/index.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/index.js +19 -0
- package/dist/resources/layers/common/src/nodejs/logger/IContext.d.ts +5 -0
- package/dist/resources/layers/common/src/nodejs/logger/IContext.js +3 -0
- package/dist/resources/layers/common/src/nodejs/logger/index.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/logger/index.js +19 -0
- package/dist/resources/layers/common/src/nodejs/logger/logger.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/logger/logger.js +12 -0
- package/dist/resources/resources/iam/policyDocuments/cognitoPolicy.d.ts +4 -0
- package/dist/resources/resources/iam/policyDocuments/cognitoPolicy.js +52 -0
- package/dist/resources/resources/iam/roles/createRole.d.ts +4 -0
- package/dist/resources/resources/iam/roles/createRole.js +22 -0
- package/dist/resources/route53/CreateZone.d.ts +0 -0
- package/dist/resources/route53/CreateZone.js +47 -0
- package/dist/resources/route53/create-zones.d.ts +0 -0
- package/dist/resources/route53/create-zones.js +30 -0
- package/dist/resources/securityManager/index.d.ts +4 -0
- package/dist/resources/securityManager/index.js +18 -0
- package/docs/lambda-config.md +1 -0
- package/package.json +48 -0
- package/readme.md +147 -0
- package/src/config/AppConfig.ts +93 -0
- package/src/config/Constants.ts +27 -0
- package/src/config/Environments.ts +2 -0
- package/src/config/MicroserviceAppConfig.ts +9 -0
- package/src/config/bishopConfig.ts +83 -0
- package/src/config/customConfigs/ApiAppConfig.ts +6 -0
- package/src/config/customConfigs/GlobalAppConfig.ts +11 -0
- package/src/config/customConfigs/IAppConfig.ts +13 -0
- package/src/config/customConfigs/ResourceAppConfig.ts +12 -0
- package/src/config/microServiceConfig.ts +85 -0
- package/src/config/types/TsgCdkConfigType.ts +3 -0
- package/src/config/types/TsgCognitoConfig.ts +6 -0
- package/src/config/types/TsgDnsConfig.ts +9 -0
- package/src/config/types/TsgDynamoDbProp.ts +7 -0
- package/src/config/types/TsgDynamoIndex.ts +16 -0
- package/src/config/types/TsgDynamoProp.ts +17 -0
- package/src/config/types/TsgDynamoTable.ts +5 -0
- package/src/config/types/TsgDynamoTableRef.ts +4 -0
- package/src/config/types/TsgLambda.ts +6 -0
- package/src/config/types/TsgLambdaLayerProp.ts +5 -0
- package/src/config/types/TsgLambdaMap.ts +4 -0
- package/src/config/types/TsgLambdaName.ts +4 -0
- package/src/config/types/TsgLambdaNode.ts +4 -0
- package/src/config/types/TsgLambdaProp.ts +16 -0
- package/src/config/types/TsgLambdaProps.ts +19 -0
- package/src/config/types/TsgLambdaRoutable.ts +6 -0
- package/src/config/types/index.ts +9 -0
- package/src/constructs/MicroService.ts +68 -0
- package/src/constructs/index.ts +1 -0
- package/src/index.ts +4 -0
- package/src/interfaces/CreateLambdaFunctionInput.ts +11 -0
- package/src/interfaces/MicroserviceProps.ts +11 -0
- package/src/resources/.gitkeep +0 -0
- package/src/resources/base/baseResource.ts +15 -0
- package/src/resources/certificate/createCertificate.ts +40 -0
- package/src/resources/cicd/.gitkeep +0 -0
- package/src/resources/cognito/.gitkeep +0 -0
- package/src/resources/cognito/createCognito.ts +47 -0
- package/src/resources/cognito/createCognitoProps.ts +46 -0
- package/src/resources/dynamodb/CreateDynamo.ts +111 -0
- package/src/resources/gateway/createApi.ts +138 -0
- package/src/resources/gateway/createMicroServiceBundle.ts +183 -0
- package/src/resources/helpers/createAuthorizer.ts +106 -0
- package/src/resources/helpers/createCommonLayer.ts +18 -0
- package/src/resources/helpers/createRoutes.ts +43 -0
- package/src/resources/lambda/createLambda.ts +184 -0
- package/src/resources/lambda-layer/createLambdaLayer.ts +40 -0
- package/src/resources/layers/common/package.json +22 -0
- package/src/resources/layers/common/src/nodejs/api-response/index.ts +1 -0
- package/src/resources/layers/common/src/nodejs/api-response/responses.ts +41 -0
- package/src/resources/layers/common/src/nodejs/index.ts +3 -0
- package/src/resources/layers/common/src/nodejs/logger/IContext.ts +7 -0
- package/src/resources/layers/common/src/nodejs/logger/index.ts +2 -0
- package/src/resources/layers/common/src/nodejs/logger/logger.ts +11 -0
- package/src/resources/layers/common/tsconfig.json +7 -0
- package/src/resources/resources/iam/policyDocuments/cognitoPolicy.ts +55 -0
- package/src/resources/resources/iam/roles/createRole.ts +30 -0
- package/src/resources/route53/CreateZone.ts +62 -0
- package/src/resources/route53/create-zones.ts +41 -0
- package/src/resources/securityManager/index.ts +24 -0
- package/tsconfig.json +40 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy90eXBlcy9Uc2dMYW1iZGFNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBUc2dMYW1iZGFOb2RlIH0gZnJvbSBcIi4vVHNnTGFtYmRhTm9kZVwiO1xuXG5leHBvcnQgdHlwZSBUc2dMYW1iZGFNYXAgPSBbTm9kZWpzRnVuY3Rpb25bXSwgTWFwPHN0cmluZywgVHNnTGFtYmRhTm9kZT5dIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TsgLambdaName = 'create-account' | 'verify-code' | 'change-password' | 'check-login' | 'get-users' | 'resend-confirmation-code';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhTmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvdHlwZXMvVHNnTGFtYmRhTmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRE8gTk9UIEZPUkdFVCBUTyBVUERBVEUgVHNnTGFtYmRhTmFtZUhlbHBlciBcbi8vIFdJVEggTkVXIExBTUJEQSBOQU1FU1xuZXhwb3J0IHR5cGUgVHNnTGFtYmRhTmFtZSA9ICdjcmVhdGUtYWNjb3VudCcgfCAndmVyaWZ5LWNvZGUnIHwgJ2NoYW5nZS1wYXNzd29yZCcgfCAnY2hlY2stbG9naW4nIHxcbiAnZ2V0LXVzZXJzJyB8ICdyZXNlbmQtY29uZmlybWF0aW9uLWNvZGUnOyJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvdHlwZXMvVHNnTGFtYmRhTm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24sIE5vZGVqc0Z1bmN0aW9uUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3AgfSBmcm9tIFwiLi9Uc2dMYW1iZGFQcm9wXCI7XG5cbmV4cG9ydCB0eXBlIFRzZ0xhbWJkYU5vZGUgPSBbVHNnTGFtYmRhUHJvcCwgTm9kZWpzRnVuY3Rpb24sIE5vZGVqc0Z1bmN0aW9uUHJvcHNdOyJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import { Runtime } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { TsgLambdaRoutable } from "./TsgLambdaRoutable";
|
|
4
|
+
export interface TsgLambdaProp {
|
|
5
|
+
name: string;
|
|
6
|
+
codePath: string;
|
|
7
|
+
handler: string;
|
|
8
|
+
duration?: Duration;
|
|
9
|
+
environment?: {
|
|
10
|
+
[name: string]: string;
|
|
11
|
+
};
|
|
12
|
+
runtime?: Runtime;
|
|
13
|
+
memory?: number;
|
|
14
|
+
apiGateway?: TsgLambdaRoutable;
|
|
15
|
+
managedPolicies?: string[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhUHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvdHlwZXMvVHNnTGFtYmRhUHJvcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUm91dGFibGUgfSBmcm9tIFwiLi9Uc2dMYW1iZGFSb3V0YWJsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRzZ0xhbWJkYVByb3Age1xuXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvZGVQYXRoOiBzdHJpbmc7XG4gICAgaGFuZGxlcjogc3RyaW5nO1xuICAgIGR1cmF0aW9uPzogRHVyYXRpb247XG4gICAgZW52aXJvbm1lbnQ/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBydW50aW1lPzogUnVudGltZTtcbiAgICBtZW1vcnk/OiBudW1iZXI7ICAgIFxuICAgIGFwaUdhdGV3YXk/OiBUc2dMYW1iZGFSb3V0YWJsZTtcbiAgICBtYW5hZ2VkUG9saWNpZXM/OiBzdHJpbmdbXTtcbn0gIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IUserPool } from "aws-cdk-lib/aws-cognito";
|
|
2
|
+
import { IRole } from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
4
|
+
import { Construct } from "constructs";
|
|
5
|
+
import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
6
|
+
import { TsgCognitoConfig } from "./TsgCognitoConfig";
|
|
7
|
+
import { AppConfig } from "../AppConfig";
|
|
8
|
+
export interface TsgLambdaProps {
|
|
9
|
+
scope: Construct;
|
|
10
|
+
prop: MicroserviceProps;
|
|
11
|
+
appConfig: AppConfig;
|
|
12
|
+
role?: IRole;
|
|
13
|
+
poolArn?: IUserPool;
|
|
14
|
+
layers?: LayerVersion[];
|
|
15
|
+
tsgCognito?: TsgCognitoConfig;
|
|
16
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVXNlclBvb2wgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIjtcbmltcG9ydCB7IElSb2xlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuaW1wb3J0IHsgVHNnQ29nbml0b0NvbmZpZyB9IGZyb20gXCIuL1RzZ0NvZ25pdG9Db25maWdcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi9BcHBDb25maWdcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUc2dMYW1iZGFQcm9wcyB7XG5cbiAgICBzY29wZTogQ29uc3RydWN0O1xuICAgIHByb3A6IE1pY3Jvc2VydmljZVByb3BzO1xuICAgIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuICAgIHJvbGU/OiBJUm9sZTtcbiAgICBwb29sQXJuPzogSVVzZXJQb29sO1xuICAgIGxheWVycz86IExheWVyVmVyc2lvbltdO1xuICAgIHRzZ0NvZ25pdG8/OiBUc2dDb2duaXRvQ29uZmlnO1xuICAgIFxufSJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnTGFtYmRhUm91dGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVJvdXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRzZ0xhbWJkYVJvdXRhYmxlIHtcbiAgICByb3V0ZTogc3RyaW5nO1xuICAgIHNlY3VyZT86IGJvb2xlYW47XG4gICAgbWV0aG9kPzogXCJnZXRcIiB8IFwicG9zdFwiIHwgXCJkZWxldGVcIiB8IFwicHV0XCIgfCBcInBhdGNoXCI7XG4gICAgdmVyc2lvbj86IG51bWJlcjtcbn0iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./TsgLambdaProp";
|
|
2
|
+
export * from "./TsgCognitoConfig";
|
|
3
|
+
export * from "./TsgLambdaMap";
|
|
4
|
+
export * from "./TsgLambdaName";
|
|
5
|
+
export * from "./TsgLambdaNode";
|
|
6
|
+
export * from "./TsgDynamoProp";
|
|
7
|
+
export * from "./TsgDynamoTableRef";
|
|
8
|
+
export * from "./TsgDynamoDbProp";
|
|
@@ -0,0 +1,25 @@
|
|
|
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("./TsgLambdaProp"), exports);
|
|
18
|
+
__exportStar(require("./TsgCognitoConfig"), exports);
|
|
19
|
+
__exportStar(require("./TsgLambdaMap"), exports);
|
|
20
|
+
__exportStar(require("./TsgLambdaName"), exports);
|
|
21
|
+
__exportStar(require("./TsgLambdaNode"), exports);
|
|
22
|
+
__exportStar(require("./TsgDynamoProp"), exports);
|
|
23
|
+
__exportStar(require("./TsgDynamoTableRef"), exports);
|
|
24
|
+
__exportStar(require("./TsgDynamoDbProp"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMscURBQW1DO0FBQ25DLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLGtEQUFnQztBQUNoQyxzREFBb0M7QUFDcEMsb0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhUHJvcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnQ29nbml0b0NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhTWFwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dMYW1iZGFOYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dMYW1iZGFOb2RlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dEeW5hbW9Qcm9wXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dEeW5hbW9UYWJsZVJlZlwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnRHluYW1vRGJQcm9wXCI7XG5cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { MicroserviceProps } from "../interfaces/MicroserviceProps";
|
|
3
|
+
import { CreateMicroServiceBundle } from "../resources/gateway/createMicroServiceBundle";
|
|
4
|
+
import { AppConfig } from "../config/AppConfig";
|
|
5
|
+
export declare class MicroService extends Construct {
|
|
6
|
+
protected readonly requireDynamoTables: boolean;
|
|
7
|
+
protected bundleByVersion: Record<string, CreateMicroServiceBundle>;
|
|
8
|
+
protected appConfig: AppConfig;
|
|
9
|
+
constructor(scope: Construct, id: string, props: MicroserviceProps);
|
|
10
|
+
private onInit;
|
|
11
|
+
protected createTag(scope: Construct): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MicroService = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const createMicroServiceBundle_1 = require("../resources/gateway/createMicroServiceBundle");
|
|
6
|
+
const CreateDynamo_1 = require("../resources/dynamodb/CreateDynamo");
|
|
7
|
+
const createApi_1 = require("../resources/gateway/createApi");
|
|
8
|
+
const securityManager_1 = require("../resources/securityManager");
|
|
9
|
+
const createCommonLayer_1 = require("../resources/helpers/createCommonLayer");
|
|
10
|
+
const AppConfig_1 = require("../config/AppConfig");
|
|
11
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
12
|
+
class MicroService extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
this.bundleByVersion = {};
|
|
16
|
+
this.appConfig = new AppConfig_1.AppConfig(props);
|
|
17
|
+
this.requireDynamoTables = (props.RESOURCES.DYNAMO?.TABLES &&
|
|
18
|
+
props.RESOURCES.DYNAMO.TABLES.length > 0) ? true : false;
|
|
19
|
+
this.onInit(scope, this.appConfig);
|
|
20
|
+
this.createTag(scope);
|
|
21
|
+
}
|
|
22
|
+
onInit(scope, props) {
|
|
23
|
+
let tables = undefined;
|
|
24
|
+
if (!process.env.SECRET_MANAGER_ARN) {
|
|
25
|
+
throw new Error(`You must provide the ARN for the your Configuration Secret
|
|
26
|
+
Manager`);
|
|
27
|
+
}
|
|
28
|
+
const secretMgr = (0, securityManager_1.getSecretManager)(scope, props, process.env.SECRET_MANAGER_ARN);
|
|
29
|
+
const commonLayer = (0, createCommonLayer_1.createCommonLayer)(scope, props);
|
|
30
|
+
const gateway = new createApi_1.Api(scope, this.appConfig).APIs;
|
|
31
|
+
const layers = [commonLayer];
|
|
32
|
+
// Creates DynamoDb Tables if required
|
|
33
|
+
if (this.requireDynamoTables) {
|
|
34
|
+
const dynamo = new CreateDynamo_1.CreateDynamoDb(scope, this.appConfig);
|
|
35
|
+
tables = dynamo.CreatedTables;
|
|
36
|
+
}
|
|
37
|
+
props.RESOURCES.LAMBDA.forEach((bundleProps) => {
|
|
38
|
+
new createMicroServiceBundle_1.CreateMicroServiceBundle(scope, gateway[0], props, this.appConfig, tables, secretMgr, layers);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
createTag(scope) {
|
|
42
|
+
aws_cdk_lib_1.Tags.of(scope).add('App', this.appConfig.AppName);
|
|
43
|
+
aws_cdk_lib_1.Tags.of(scope).add('ResoucePrefix', this.appConfig.AppPrefix);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.MicroService = MicroService;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9TZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvTWljcm9TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF1QztBQUV2Qyw0RkFBeUY7QUFDekYscUVBQW9FO0FBQ3BFLDhEQUFxRDtBQUNyRCxrRUFBZ0U7QUFDaEUsOEVBQTJFO0FBQzNFLG1EQUFnRDtBQUNoRCw2Q0FBbUM7QUFJbkMsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFNdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSlgsb0JBQWUsR0FBNkMsRUFBRSxDQUFDO1FBTXJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU07WUFDdEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFnQixFQUFFLEtBQWdCO1FBRTdDLElBQUksTUFBTSxHQUF3QixTQUFTLENBQUM7UUFFNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQzt3QkFDSixDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLGtDQUFnQixFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpGLE1BQU0sV0FBVyxHQUFHLElBQUEscUNBQWlCLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXBELE1BQU0sT0FBTyxHQUFHLElBQUksZUFBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0Isc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksNkJBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQ2pDO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBMEIsRUFBRSxFQUFFO1lBRTFELElBQUksbURBQXdCLENBQUMsS0FBSyxFQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxTQUFTLENBQUMsS0FBZ0I7UUFDaEMsa0JBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELGtCQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0o7QUF0REQsb0NBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuaW1wb3J0IHsgQ3JlYXRlTWljcm9TZXJ2aWNlQnVuZGxlIH0gZnJvbSBcIi4uL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZVwiO1xuaW1wb3J0IHsgQ3JlYXRlRHluYW1vRGIgfSBmcm9tIFwiLi4vcmVzb3VyY2VzL2R5bmFtb2RiL0NyZWF0ZUR5bmFtb1wiO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSBcIi4uL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaVwiO1xuaW1wb3J0IHsgZ2V0U2VjcmV0TWFuYWdlciB9IGZyb20gXCIuLi9yZXNvdXJjZXMvc2VjdXJpdHlNYW5hZ2VyXCI7XG5pbXBvcnQgeyBjcmVhdGVDb21tb25MYXllciB9IGZyb20gXCIuLi9yZXNvdXJjZXMvaGVscGVycy9jcmVhdGVDb21tb25MYXllclwiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2NvbmZpZy90eXBlcy9Uc2dMYW1iZGFQcm9wc1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi9jb25maWcvdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIE1pY3JvU2VydmljZSBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWlyZUR5bmFtb1RhYmxlczogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgYnVuZGxlQnlWZXJzaW9uOiBSZWNvcmQ8c3RyaW5nLCBDcmVhdGVNaWNyb1NlcnZpY2VCdW5kbGU+ID0ge307XG4gICAgcHJvdGVjdGVkIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1pY3Jvc2VydmljZVByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgdGhpcy5hcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKHByb3BzKTtcblxuICAgICAgICB0aGlzLnJlcXVpcmVEeW5hbW9UYWJsZXMgPSAocHJvcHMuUkVTT1VSQ0VTLkRZTkFNTz8uVEFCTEVTICYmXG4gICAgICAgICAgICBwcm9wcy5SRVNPVVJDRVMuRFlOQU1PLlRBQkxFUy5sZW5ndGggPiAwKSA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLm9uSW5pdChzY29wZSwgdGhpcy5hcHBDb25maWcpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlVGFnKHNjb3BlKVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Jbml0KHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBBcHBDb25maWcpIHtcblxuICAgICAgICBsZXQgdGFibGVzOiBUYWJsZVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICghcHJvY2Vzcy5lbnYuU0VDUkVUX01BTkFHRVJfQVJOKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFlvdSBtdXN0IHByb3ZpZGUgdGhlIEFSTiBmb3IgdGhlIHlvdXIgQ29uZmlndXJhdGlvbiBTZWNyZXQgXG4gICAgICAgICAgICAgICAgTWFuYWdlcmApOyAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VjcmV0TWdyID0gZ2V0U2VjcmV0TWFuYWdlcihzY29wZSwgcHJvcHMsIHByb2Nlc3MuZW52LlNFQ1JFVF9NQU5BR0VSX0FSTik7XG5cbiAgICAgICAgY29uc3QgY29tbW9uTGF5ZXIgPSBjcmVhdGVDb21tb25MYXllcihzY29wZSwgcHJvcHMpO1xuXG4gICAgICAgIGNvbnN0IGdhdGV3YXkgPSBuZXcgQXBpKHNjb3BlLCB0aGlzLmFwcENvbmZpZykuQVBJcztcblxuICAgICAgICBjb25zdCBsYXllcnMgPSBbY29tbW9uTGF5ZXJdO1xuXG4gICAgICAgIC8vIENyZWF0ZXMgRHluYW1vRGIgVGFibGVzIGlmIHJlcXVpcmVkXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVEeW5hbW9UYWJsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGR5bmFtbyA9IG5ldyBDcmVhdGVEeW5hbW9EYihzY29wZSwgdGhpcy5hcHBDb25maWcpO1xuXG4gICAgICAgICAgICB0YWJsZXMgPSBkeW5hbW8uQ3JlYXRlZFRhYmxlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BzLlJFU09VUkNFUy5MQU1CREEuZm9yRWFjaCgoYnVuZGxlUHJvcHM6IFRzZ0xhbWJkYVByb3ApID0+IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbmV3IENyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZShzY29wZSwgXG4gICAgICAgICAgICAgICAgZ2F0ZXdheVswXSwgcHJvcHMsIHRoaXMuYXBwQ29uZmlnLCB0YWJsZXMsIHNlY3JldE1nciwgbGF5ZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhZyhzY29wZTogQ29uc3RydWN0KSB7XG4gICAgICAgIFRhZ3Mub2Yoc2NvcGUpLmFkZCgnQXBwJywgdGhpcy5hcHBDb25maWcuQXBwTmFtZSk7XG4gICAgICAgIFRhZ3Mub2Yoc2NvcGUpLmFkZCgnUmVzb3VjZVByZWZpeCcsIHRoaXMuYXBwQ29uZmlnLkFwcFByZWZpeCk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MicroService } from "./MicroService";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MicroService = void 0;
|
|
4
|
+
var MicroService_1 = require("./MicroService");
|
|
5
|
+
Object.defineProperty(exports, "MicroService", { enumerable: true, get: function () { return MicroService_1.MicroService; } });
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBOEM7QUFBckMsNEdBQUEsWUFBWSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTWljcm9TZXJ2aWNlIH0gZnJvbSBcIi4vTWljcm9TZXJ2aWNlXCI7Il19
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MicroServiceAppConfig = exports.MicroService = void 0;
|
|
4
|
+
var MicroService_1 = require("./constructs/MicroService");
|
|
5
|
+
Object.defineProperty(exports, "MicroService", { enumerable: true, get: function () { return MicroService_1.MicroService; } });
|
|
6
|
+
var MicroserviceAppConfig_1 = require("./config/MicroserviceAppConfig");
|
|
7
|
+
Object.defineProperty(exports, "MicroServiceAppConfig", { enumerable: true, get: function () { return MicroserviceAppConfig_1.MicroServiceAppConfig; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXlEO0FBQWhELDRHQUFBLFlBQVksT0FBQTtBQUdyQix3RUFBdUU7QUFBOUQsOEhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNaWNyb1NlcnZpY2UgfSBmcm9tIFwiLi9jb25zdHJ1Y3RzL01pY3JvU2VydmljZVwiO1xuZXhwb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5leHBvcnQgeyBJQXBwQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2N1c3RvbUNvbmZpZ3MvSUFwcENvbmZpZ1wiO1xuZXhwb3J0IHsgTWljcm9TZXJ2aWNlQXBwQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL01pY3Jvc2VydmljZUFwcENvbmZpZ1wiOyJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IRole } from "aws-cdk-lib/aws-iam";
|
|
2
|
+
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { TsgLambdaProp } from "../config/types";
|
|
4
|
+
import { TsgLambdaProps } from "../config/types/TsgLambdaProps";
|
|
5
|
+
export interface CreateLambdaFunctionInput {
|
|
6
|
+
prop: TsgLambdaProp;
|
|
7
|
+
role?: IRole;
|
|
8
|
+
layers?: LayerVersion[];
|
|
9
|
+
props?: TsgLambdaProps;
|
|
10
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL0NyZWF0ZUxhbWJkYUZ1bmN0aW9uSW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSb2xlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBUc2dMYW1iZGFQcm9wIH0gZnJvbSBcIi4uL2NvbmZpZy90eXBlc1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dCB7XG4gICAgcHJvcDogVHNnTGFtYmRhUHJvcDtcbiAgICByb2xlPzogSVJvbGU7XG4gICAgbGF5ZXJzPzogTGF5ZXJWZXJzaW9uW10sXG4gICAgcHJvcHM/OiBUc2dMYW1iZGFQcm9wc1xufSJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ApiAppConfig } from "../config/customConfigs/ApiAppConfig";
|
|
2
|
+
import { GlobalAppConfig } from "../config/customConfigs/GlobalAppConfig";
|
|
3
|
+
import { ResourceAppConfig } from "../config/customConfigs/ResourceAppConfig";
|
|
4
|
+
import { TsgDnsAppConfig } from "../config/types/TsgDnsConfig";
|
|
5
|
+
export interface MicroserviceProps {
|
|
6
|
+
API: ApiAppConfig;
|
|
7
|
+
GLOBALS: GlobalAppConfig;
|
|
8
|
+
RESOURCES: ResourceAppConfig;
|
|
9
|
+
DNS: TsgDnsAppConfig;
|
|
10
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9zZXJ2aWNlUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpQXBwQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jdXN0b21Db25maWdzL0FwaUFwcENvbmZpZ1wiO1xuaW1wb3J0IHsgR2xvYmFsQXBwQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jdXN0b21Db25maWdzL0dsb2JhbEFwcENvbmZpZ1wiO1xuaW1wb3J0IHsgUmVzb3VyY2VBcHBDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2N1c3RvbUNvbmZpZ3MvUmVzb3VyY2VBcHBDb25maWdcIjtcbmltcG9ydCB7IFRzZ0Ruc0FwcENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvdHlwZXMvVHNnRG5zQ29uZmlnXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9zZXJ2aWNlUHJvcHMge1xuICAgIEFQSTogQXBpQXBwQ29uZmlnO1xuICAgIEdMT0JBTFM6IEdsb2JhbEFwcENvbmZpZztcbiAgICBSRVNPVVJDRVM6IFJlc291cmNlQXBwQ29uZmlnO1xuICAgIEROUzogVHNnRG5zQXBwQ29uZmlnO1xufSJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
3
|
+
export declare abstract class BaseResource<T> {
|
|
4
|
+
protected scope: Construct;
|
|
5
|
+
protected config: AppConfig;
|
|
6
|
+
protected createdResources: T[];
|
|
7
|
+
constructor(scope: Construct, config: AppConfig);
|
|
8
|
+
protected abstract createResource(scope: Construct): T[] | null;
|
|
9
|
+
protected abstract createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseResource = void 0;
|
|
4
|
+
class BaseResource {
|
|
5
|
+
constructor(scope, config) {
|
|
6
|
+
this.scope = scope;
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.BaseResource = BaseResource;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9iYXNlL2Jhc2VSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFzQixZQUFZO0lBSTlCLFlBQXNCLEtBQWdCLEVBQVksTUFBaUI7UUFBN0MsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUFZLFdBQU0sR0FBTixNQUFNLENBQVc7SUFBSSxDQUFDO0NBTTNFO0FBVkQsb0NBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZXNvdXJjZTxUPiB7XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlZFJlc291cmNlczogVFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNjb3BlOiBDb25zdHJ1Y3QsIHByb3RlY3RlZCBjb25maWc6IEFwcENvbmZpZykgeyB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCk6IFRbXSB8IG51bGw7XG4gICAgXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU91dHB1dDxUPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBUW10pOiB2b2lkO1xuICAgIFxufSJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Certificate, ICertificate } from "aws-cdk-lib/aws-certificatemanager";
|
|
2
|
+
import { IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
5
|
+
export declare class CreateCertificate {
|
|
6
|
+
certificate: ICertificate;
|
|
7
|
+
constructor(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone);
|
|
8
|
+
generateCertificate(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone): Certificate;
|
|
9
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateCertificate = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
|
|
6
|
+
class CreateCertificate {
|
|
7
|
+
constructor(scope, props, hostedZone) {
|
|
8
|
+
this.certificate = this.generateCertificate(scope, props, hostedZone);
|
|
9
|
+
this.certificate.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
10
|
+
}
|
|
11
|
+
generateCertificate(scope, props, hostedZone) {
|
|
12
|
+
// const cert = new DnsValidatedCertificate(scope, `${props.DNS.ZoneNameWithoutPeriod}-spa-app-certificate`, {
|
|
13
|
+
// domainName: `${props.API.DomainPrefix}.${props.DNS.ZoneName}`,
|
|
14
|
+
// hostedZone,
|
|
15
|
+
// region: props.GLOBALS.region || "us-east-1"
|
|
16
|
+
// });
|
|
17
|
+
const appType = "spa-app";
|
|
18
|
+
const cert = new aws_certificatemanager_1.Certificate(scope, `${props.DNS.ZoneNameWithoutPeriod}-${appType}-certificate`, {
|
|
19
|
+
domainName: `${props.API.DomainPrefix}.${props.DNS.ZoneName}`,
|
|
20
|
+
subjectAlternativeNames: [`${props.API.DomainPrefix}.${props.DNS.ZoneName}`],
|
|
21
|
+
validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone({
|
|
22
|
+
[`${props.API.DomainPrefix}.${props.DNS.ZoneName}`]: hostedZone,
|
|
23
|
+
}),
|
|
24
|
+
});
|
|
25
|
+
return cert;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.CreateCertificate = CreateCertificate;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2NlcnRpZmljYXRlL2NyZWF0ZUNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrRUFBK0g7QUFNL0gsTUFBYSxpQkFBaUI7SUFJMUIsWUFBWSxLQUFnQixFQUFFLEtBQXdCLEVBQUUsVUFBdUI7UUFFM0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDJCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0QsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsS0FBd0IsRUFBRSxVQUF1QjtRQUVuRiw4R0FBOEc7UUFDOUcscUVBQXFFO1FBQ3JFLGtCQUFrQjtRQUNsQixrREFBa0Q7UUFDbEQsU0FBUztRQUVQLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUUxQixNQUFNLElBQUksR0FBRyxJQUFJLG9DQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxPQUFPLGNBQWMsRUFBRTtZQUMvRixVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM3RCx1QkFBdUIsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1RSxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzNDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUcsVUFBVTthQUN2RSxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDbEIsQ0FBQztDQUNKO0FBaENELDhDQWdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sIERuc1ZhbGlkYXRlZENlcnRpZmljYXRlLCBJQ2VydGlmaWNhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgSUhvc3RlZFpvbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNlcnRpZmljYXRlIHtcblxuICAgIHB1YmxpYyBjZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IE1pY3Jvc2VydmljZVByb3BzLCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSkge1xuXG4gICAgICAgIHRoaXMuY2VydGlmaWNhdGUgPSB0aGlzLmdlbmVyYXRlQ2VydGlmaWNhdGUoc2NvcGUsIHByb3BzLCBob3N0ZWRab25lKTtcblxuICAgICAgICB0aGlzLmNlcnRpZmljYXRlLmFwcGx5UmVtb3ZhbFBvbGljeShSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAgICAgICBcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUNlcnRpZmljYXRlKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBNaWNyb3NlcnZpY2VQcm9wcywgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmUpIHtcblxuICAgICAgICAvLyBjb25zdCBjZXJ0ID0gbmV3IERuc1ZhbGlkYXRlZENlcnRpZmljYXRlKHNjb3BlLCBgJHtwcm9wcy5ETlMuWm9uZU5hbWVXaXRob3V0UGVyaW9kfS1zcGEtYXBwLWNlcnRpZmljYXRlYCwge1xuICAgICAgICAvLyAgICAgZG9tYWluTmFtZTogYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtwcm9wcy5ETlMuWm9uZU5hbWV9YCxcbiAgICAgICAgLy8gICAgIGhvc3RlZFpvbmUsXG4gICAgICAgIC8vICAgICByZWdpb246IHByb3BzLkdMT0JBTFMucmVnaW9uIHx8IFwidXMtZWFzdC0xXCJcbiAgICAgICAgLy8gICB9KTsgXG5cbiAgICAgICAgICBjb25zdCBhcHBUeXBlID0gXCJzcGEtYXBwXCI7XG5cbiAgICAgICAgICBjb25zdCBjZXJ0ID0gbmV3IENlcnRpZmljYXRlKHNjb3BlLCBgJHtwcm9wcy5ETlMuWm9uZU5hbWVXaXRob3V0UGVyaW9kfS0ke2FwcFR5cGV9LWNlcnRpZmljYXRlYCwge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtwcm9wcy5ETlMuWm9uZU5hbWV9YCxcbiAgICAgICAgICAgIHN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzOiBbYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtwcm9wcy5ETlMuWm9uZU5hbWV9YF0sXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZSh7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBbYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtwcm9wcy5ETlMuWm9uZU5hbWV9YF0gOiBob3N0ZWRab25lICwgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBjZXJ0O1xuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UserPool, UserPoolClient } from "aws-cdk-lib/aws-cognito";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
4
|
+
export declare const createCognito: (scope: Construct, appConfig: AppConfig) => {
|
|
5
|
+
userPool: UserPool;
|
|
6
|
+
clientPool: UserPoolClient;
|
|
7
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCognito = void 0;
|
|
4
|
+
const aws_cognito_1 = require("aws-cdk-lib/aws-cognito");
|
|
5
|
+
const createCognitoProps_1 = require("./createCognitoProps");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const createCognito = (scope, appConfig) => {
|
|
8
|
+
const userPool = createUserPool(scope, appConfig);
|
|
9
|
+
const clientPool = createUserPoolClient(scope, userPool, "mobile", appConfig);
|
|
10
|
+
return {
|
|
11
|
+
userPool,
|
|
12
|
+
clientPool
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
exports.createCognito = createCognito;
|
|
16
|
+
const createUserPool = (scope, appConfig, userPoolName) => {
|
|
17
|
+
return new aws_cognito_1.UserPool(scope, `${appConfig.AppName}-user-pool`, (0, createCognitoProps_1.createUserPoolProps)(`${appConfig.AppName}-user-pool`));
|
|
18
|
+
};
|
|
19
|
+
const createUserPoolClient = (scope, userPool, appType, appConfig) => {
|
|
20
|
+
const client = new aws_cognito_1.UserPoolClient(scope, `${appConfig.AppName}-user-pool-client`, createUserPoolClientProps(userPool, appConfig, appType));
|
|
21
|
+
return client;
|
|
22
|
+
};
|
|
23
|
+
const createUserPoolClientProps = (userpool, config, appType) => {
|
|
24
|
+
const props = {
|
|
25
|
+
userPool: userpool,
|
|
26
|
+
accessTokenValidity: aws_cdk_lib_1.Duration.hours(3),
|
|
27
|
+
refreshTokenValidity: aws_cdk_lib_1.Duration.days(3),
|
|
28
|
+
userPoolClientName: `${config.AppName}-${appType}`,
|
|
29
|
+
authFlows: {
|
|
30
|
+
userPassword: true,
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return props;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ29nbml0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvY29nbml0by9jcmVhdGVDb2duaXRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFnUDtBQUdoUCw2REFBMkQ7QUFDM0QsNkNBQXVDO0FBR2hDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxTQUFvQixFQUFFLEVBQUU7SUFHcEUsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRCxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU5RSxPQUFPO1FBQ0gsUUFBUTtRQUNSLFVBQVU7S0FDYixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVlcsUUFBQSxhQUFhLGlCQVV4QjtBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBZ0IsRUFBRSxTQUFvQixFQUFFLFlBQXFCLEVBQUUsRUFBRTtJQUVyRixPQUFPLElBQUksc0JBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxZQUFZLEVBQ3ZELElBQUEsd0NBQW1CLEVBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBRS9ELENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFnQixFQUFFLFFBQW1CLEVBQUUsT0FBc0IsRUFDdkYsU0FBb0IsRUFBRSxFQUFFO0lBRXhCLE1BQU0sTUFBTSxHQUFHLElBQUksNEJBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxtQkFBbUIsRUFDNUUseUJBQXlCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRTdELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxRQUFtQixFQUFFLE1BQWlCLEVBQUUsT0FBc0IsRUFBdUIsRUFBRTtJQUN0SCxNQUFNLEtBQUssR0FBd0I7UUFDL0IsUUFBUSxFQUFFLFFBQVE7UUFDbEIsbUJBQW1CLEVBQUUsc0JBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLG9CQUFvQixFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0QyxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFO1FBQ2xELFNBQVMsRUFBRTtZQUNQLFlBQVksRUFBRSxJQUFJO1NBQ3JCO0tBQ0osQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElVc2VyUG9vbCwgVXNlclBvb2wsIFVzZXJQb29sQ2xpZW50LCBVc2VyUG9vbENsaWVudFByb3BzLCBVc2VyUG9vbElkZW50aXR5UHJvdmlkZXJBbWF6b24sIFVzZXJQb29sSWRlbnRpdHlQcm92aWRlckFtYXpvblByb3BzLCBVc2VyUG9vbElkZW50aXR5UHJvdmlkZXJTYW1sLCBVc2VyUG9vbElkZW50aXR5UHJvdmlkZXJTYW1sTWV0YWRhdGFUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IGNyZWF0ZVVzZXJQb29sUHJvcHMgfSBmcm9tIFwiLi9jcmVhdGVDb2duaXRvUHJvcHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDbGllbnRBcHBUeXBlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9FbnZpcm9ubWVudHNcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvZ25pdG8gPSAoc2NvcGU6IENvbnN0cnVjdCwgYXBwQ29uZmlnOiBBcHBDb25maWcpID0+IHtcblxuXG4gICAgY29uc3QgdXNlclBvb2wgPSBjcmVhdGVVc2VyUG9vbChzY29wZSwgYXBwQ29uZmlnKTtcbiAgICBjb25zdCBjbGllbnRQb29sID0gY3JlYXRlVXNlclBvb2xDbGllbnQoc2NvcGUsIHVzZXJQb29sLCBcIm1vYmlsZVwiLCBhcHBDb25maWcpOyAgICBcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyUG9vbCxcbiAgICAgICAgY2xpZW50UG9vbFxuICAgIH07XG59O1xuXG5jb25zdCBjcmVhdGVVc2VyUG9vbCA9IChzY29wZTogQ29uc3RydWN0LCBhcHBDb25maWc6IEFwcENvbmZpZywgdXNlclBvb2xOYW1lPzogc3RyaW5nKSA9PiB7XG5cbiAgICByZXR1cm4gbmV3IFVzZXJQb29sKHNjb3BlLCBgJHthcHBDb25maWcuQXBwTmFtZX0tdXNlci1wb29sYCxcbiAgICAgICAgY3JlYXRlVXNlclBvb2xQcm9wcyhgJHthcHBDb25maWcuQXBwTmFtZX0tdXNlci1wb29sYCkpO1xuXG59O1xuXG5jb25zdCBjcmVhdGVVc2VyUG9vbENsaWVudCA9IChzY29wZTogQ29uc3RydWN0LCB1c2VyUG9vbDogSVVzZXJQb29sLCBhcHBUeXBlOiBDbGllbnRBcHBUeXBlLFxuICAgIGFwcENvbmZpZzogQXBwQ29uZmlnKSA9PiB7XG5cbiAgICBjb25zdCBjbGllbnQgPSBuZXcgVXNlclBvb2xDbGllbnQoc2NvcGUsIGAke2FwcENvbmZpZy5BcHBOYW1lfS11c2VyLXBvb2wtY2xpZW50YCxcbiAgICAgICAgY3JlYXRlVXNlclBvb2xDbGllbnRQcm9wcyh1c2VyUG9vbCwgYXBwQ29uZmlnLCBhcHBUeXBlKSk7XG5cbiAgICByZXR1cm4gY2xpZW50O1xufTtcblxuY29uc3QgY3JlYXRlVXNlclBvb2xDbGllbnRQcm9wcyA9ICh1c2VycG9vbDogSVVzZXJQb29sLCBjb25maWc6IEFwcENvbmZpZywgYXBwVHlwZTogQ2xpZW50QXBwVHlwZSk6IFVzZXJQb29sQ2xpZW50UHJvcHMgPT4ge1xuICAgIGNvbnN0IHByb3BzOiBVc2VyUG9vbENsaWVudFByb3BzID0ge1xuICAgICAgICB1c2VyUG9vbDogdXNlcnBvb2wsXG4gICAgICAgIGFjY2Vzc1Rva2VuVmFsaWRpdHk6IER1cmF0aW9uLmhvdXJzKDMpLFxuICAgICAgICByZWZyZXNoVG9rZW5WYWxpZGl0eTogRHVyYXRpb24uZGF5cygzKSxcbiAgICAgICAgdXNlclBvb2xDbGllbnROYW1lOiBgJHtjb25maWcuQXBwTmFtZX0tJHthcHBUeXBlfWAsXG4gICAgICAgIGF1dGhGbG93czoge1xuICAgICAgICAgICAgdXNlclBhc3N3b3JkOiB0cnVlLFxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gcHJvcHM7XG59O1xuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createUserPoolProps = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_cognito_1 = require("aws-cdk-lib/aws-cognito");
|
|
6
|
+
const createUserPoolProps = (securityUserPool) => {
|
|
7
|
+
const cognitoProps = {
|
|
8
|
+
userPoolName: securityUserPool.toLowerCase(),
|
|
9
|
+
selfSignUpEnabled: true,
|
|
10
|
+
userVerification: {
|
|
11
|
+
emailSubject: 'Verify your email for Bishop CDK Constructs!',
|
|
12
|
+
emailBody: 'Thanks for creating an account with Bishop CDK Constructs! Your verification code is {####}',
|
|
13
|
+
emailStyle: aws_cognito_1.VerificationEmailStyle.CODE,
|
|
14
|
+
smsMessage: 'Thanks for signing up {username} with Bishop CDK Constructs! Your verification code is {####}',
|
|
15
|
+
},
|
|
16
|
+
userInvitation: {
|
|
17
|
+
emailSubject: 'Invite to join Bishop CDK Constructs!',
|
|
18
|
+
emailBody: 'Hello {username}, you have been invited to join Bishop CDK Constructs! Your temporary password is {####}',
|
|
19
|
+
smsMessage: 'Your temporary password for {username} with Bishop CDK Constructs is {####}'
|
|
20
|
+
},
|
|
21
|
+
signInAliases: {
|
|
22
|
+
username: true,
|
|
23
|
+
email: true,
|
|
24
|
+
phone: true
|
|
25
|
+
},
|
|
26
|
+
customAttributes: {
|
|
27
|
+
'firstName': new aws_cognito_1.StringAttribute({ minLen: 3, maxLen: 30, mutable: true }),
|
|
28
|
+
'lastName': new aws_cognito_1.StringAttribute({ minLen: 3, maxLen: 30, mutable: true }),
|
|
29
|
+
'phoneNumber': new aws_cognito_1.StringAttribute({ minLen: 3, maxLen: 30, mutable: true }),
|
|
30
|
+
'acccountType': new aws_cognito_1.NumberAttribute({ mutable: true }),
|
|
31
|
+
'joinedOn': new aws_cognito_1.DateTimeAttribute(),
|
|
32
|
+
},
|
|
33
|
+
passwordPolicy: {
|
|
34
|
+
minLength: 8,
|
|
35
|
+
requireLowercase: true,
|
|
36
|
+
requireUppercase: true,
|
|
37
|
+
requireDigits: true,
|
|
38
|
+
requireSymbols: true,
|
|
39
|
+
tempPasswordValidity: aws_cdk_lib_1.Duration.days(1),
|
|
40
|
+
},
|
|
41
|
+
accountRecovery: aws_cognito_1.AccountRecovery.PHONE_AND_EMAIL,
|
|
42
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
43
|
+
};
|
|
44
|
+
return cognitoProps;
|
|
45
|
+
};
|
|
46
|
+
exports.createUserPoolProps = createUserPoolProps;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ29nbml0b1Byb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9jb2duaXRvL2NyZWF0ZUNvZ25pdG9Qcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBc0Q7QUFDdEQseURBQzREO0FBRXJELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxFQUFFO0lBRTVELE1BQU0sWUFBWSxHQUFrQjtRQUNoQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFO1FBQzVDLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsZ0JBQWdCLEVBQUU7WUFDZCxZQUFZLEVBQUUsOENBQThDO1lBQzVELFNBQVMsRUFBRSw2RkFBNkY7WUFDeEcsVUFBVSxFQUFFLG9DQUFzQixDQUFDLElBQUk7WUFDdkMsVUFBVSxFQUFFLCtGQUErRjtTQUM5RztRQUNELGNBQWMsRUFBRTtZQUNaLFlBQVksRUFBRSx1Q0FBdUM7WUFDckQsU0FBUyxFQUFFLDBHQUEwRztZQUNySCxVQUFVLEVBQUUsNkVBQTZFO1NBQzVGO1FBQ0QsYUFBYSxFQUFFO1lBQ1gsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxJQUFJO1NBQ2Q7UUFDRCxnQkFBZ0IsRUFBRTtZQUNkLFdBQVcsRUFBRSxJQUFJLDZCQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzFFLFVBQVUsRUFBRSxJQUFJLDZCQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pFLGFBQWEsRUFBRSxJQUFJLDZCQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzVFLGNBQWMsRUFBRSxJQUFJLDZCQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdEQsVUFBVSxFQUFFLElBQUksK0JBQWlCLEVBQUU7U0FDdEM7UUFDRCxjQUFjLEVBQUU7WUFDWixTQUFTLEVBQUUsQ0FBQztZQUNaLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUUsSUFBSTtZQUNwQixvQkFBb0IsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxlQUFlLEVBQUUsNkJBQWUsQ0FBQyxlQUFlO1FBQ2hELGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87S0FDdkMsQ0FBQTtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQXhDVyxRQUFBLG1CQUFtQix1QkF3QzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFjY291bnRSZWNvdmVyeSwgRGF0ZVRpbWVBdHRyaWJ1dGUsIE51bWJlckF0dHJpYnV0ZSwgU3RyaW5nQXR0cmlidXRlLCBVc2VyUG9vbFByb3BzLCBcbiAgICBWZXJpZmljYXRpb25FbWFpbFN0eWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVc2VyUG9vbFByb3BzID0gKHNlY3VyaXR5VXNlclBvb2w6IHN0cmluZykgPT4ge1xuICAgXG4gICAgY29uc3QgY29nbml0b1Byb3BzOiBVc2VyUG9vbFByb3BzID0ge1xuICAgICAgICB1c2VyUG9vbE5hbWU6IHNlY3VyaXR5VXNlclBvb2wudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgc2VsZlNpZ25VcEVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHVzZXJWZXJpZmljYXRpb246IHtcbiAgICAgICAgICAgIGVtYWlsU3ViamVjdDogJ1ZlcmlmeSB5b3VyIGVtYWlsIGZvciBCaXNob3AgQ0RLIENvbnN0cnVjdHMhJyxcbiAgICAgICAgICAgIGVtYWlsQm9keTogJ1RoYW5rcyBmb3IgY3JlYXRpbmcgYW4gYWNjb3VudCB3aXRoIEJpc2hvcCBDREsgQ29uc3RydWN0cyEgWW91ciB2ZXJpZmljYXRpb24gY29kZSBpcyB7IyMjI30nLFxuICAgICAgICAgICAgZW1haWxTdHlsZTogVmVyaWZpY2F0aW9uRW1haWxTdHlsZS5DT0RFLFxuICAgICAgICAgICAgc21zTWVzc2FnZTogJ1RoYW5rcyBmb3Igc2lnbmluZyB1cCB7dXNlcm5hbWV9IHdpdGggQmlzaG9wIENESyBDb25zdHJ1Y3RzISBZb3VyIHZlcmlmaWNhdGlvbiBjb2RlIGlzIHsjIyMjfScsXG4gICAgICAgIH0sXG4gICAgICAgIHVzZXJJbnZpdGF0aW9uOiB7XG4gICAgICAgICAgICBlbWFpbFN1YmplY3Q6ICdJbnZpdGUgdG8gam9pbiBCaXNob3AgQ0RLIENvbnN0cnVjdHMhJyxcbiAgICAgICAgICAgIGVtYWlsQm9keTogJ0hlbGxvIHt1c2VybmFtZX0sIHlvdSBoYXZlIGJlZW4gaW52aXRlZCB0byBqb2luIEJpc2hvcCBDREsgQ29uc3RydWN0cyEgWW91ciB0ZW1wb3JhcnkgcGFzc3dvcmQgaXMgeyMjIyN9JyxcbiAgICAgICAgICAgIHNtc01lc3NhZ2U6ICdZb3VyIHRlbXBvcmFyeSBwYXNzd29yZCBmb3Ige3VzZXJuYW1lfSB3aXRoIEJpc2hvcCBDREsgQ29uc3RydWN0cyBpcyB7IyMjI30nXG4gICAgICAgIH0sXG4gICAgICAgIHNpZ25JbkFsaWFzZXM6IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgICAgICBwaG9uZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21BdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAnZmlyc3ROYW1lJzogbmV3IFN0cmluZ0F0dHJpYnV0ZSh7IG1pbkxlbjogMywgbWF4TGVuOiAzMCwgbXV0YWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICdsYXN0TmFtZSc6IG5ldyBTdHJpbmdBdHRyaWJ1dGUoeyBtaW5MZW46IDMsIG1heExlbjogMzAsIG11dGFibGU6IHRydWUgfSksXG4gICAgICAgICAgICAncGhvbmVOdW1iZXInOiBuZXcgU3RyaW5nQXR0cmlidXRlKHsgbWluTGVuOiAzLCBtYXhMZW46IDMwLCBtdXRhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgJ2FjY2NvdW50VHlwZSc6IG5ldyBOdW1iZXJBdHRyaWJ1dGUoeyBtdXRhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgJ2pvaW5lZE9uJzogbmV3IERhdGVUaW1lQXR0cmlidXRlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHBhc3N3b3JkUG9saWN5OiB7XG4gICAgICAgICAgICBtaW5MZW5ndGg6IDgsXG4gICAgICAgICAgICByZXF1aXJlTG93ZXJjYXNlOiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZVVwcGVyY2FzZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlcXVpcmVEaWdpdHM6IHRydWUsXG4gICAgICAgICAgICByZXF1aXJlU3ltYm9sczogdHJ1ZSxcbiAgICAgICAgICAgIHRlbXBQYXNzd29yZFZhbGlkaXR5OiBEdXJhdGlvbi5kYXlzKDEpLFxuICAgICAgICB9LFxuICAgICAgICBhY2NvdW50UmVjb3Zlcnk6IEFjY291bnRSZWNvdmVyeS5QSE9ORV9BTkRfRU1BSUwsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9XG4gICAgcmV0dXJuIGNvZ25pdG9Qcm9wcztcbn07XG5cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Table } from "aws-cdk-lib/aws-dynamodb";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
4
|
+
import { BaseResource } from "../base/baseResource";
|
|
5
|
+
export declare class CreateDynamoDb extends BaseResource<Table> {
|
|
6
|
+
protected scope: Construct;
|
|
7
|
+
protected config: AppConfig;
|
|
8
|
+
static ReadWriteActions: string[];
|
|
9
|
+
get CreatedTables(): Table[];
|
|
10
|
+
constructor(scope: Construct, config: AppConfig);
|
|
11
|
+
protected createResource(scope: Construct): Table[];
|
|
12
|
+
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
13
|
+
private createProps;
|
|
14
|
+
private generateDbName;
|
|
15
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateDynamoDb = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_dynamodb_1 = require("aws-cdk-lib/aws-dynamodb");
|
|
6
|
+
const baseResource_1 = require("../base/baseResource");
|
|
7
|
+
class CreateDynamoDb extends baseResource_1.BaseResource {
|
|
8
|
+
get CreatedTables() {
|
|
9
|
+
return this.createdResources;
|
|
10
|
+
}
|
|
11
|
+
constructor(scope, config) {
|
|
12
|
+
super(scope, config);
|
|
13
|
+
this.scope = scope;
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.createdResources = this.createResource(scope);
|
|
16
|
+
if (this.createdResources) {
|
|
17
|
+
this.createOutput(scope, this.createdResources);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
createResource(scope) {
|
|
21
|
+
const props = this.createProps();
|
|
22
|
+
const tables = props?.map((prop, idx) => {
|
|
23
|
+
const dbTable = new aws_dynamodb_1.Table(scope, `${prop.tableName}`, {
|
|
24
|
+
...prop,
|
|
25
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
|
|
26
|
+
});
|
|
27
|
+
this.config.RESOURCES.DYNAMO?.TABLES?.[idx].indexes.map((gsi) => {
|
|
28
|
+
const gsiProps = {
|
|
29
|
+
indexName: this.generateDbName(gsi.indexName),
|
|
30
|
+
partitionKey: gsi.partitionKey,
|
|
31
|
+
sortKey: gsi.sortKey,
|
|
32
|
+
projectionType: gsi.projectionType
|
|
33
|
+
};
|
|
34
|
+
dbTable.addGlobalSecondaryIndex(gsiProps);
|
|
35
|
+
});
|
|
36
|
+
return dbTable;
|
|
37
|
+
});
|
|
38
|
+
return tables ?? [];
|
|
39
|
+
}
|
|
40
|
+
createOutput(scope, createdAssets) {
|
|
41
|
+
this.createdResources.forEach((x, idx) => {
|
|
42
|
+
new aws_cdk_lib_1.CfnOutput(scope, `dynamoTable${idx}`, {
|
|
43
|
+
value: x.tableName
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
createProps() {
|
|
48
|
+
const props = this.config.RESOURCES?.DYNAMO?.TABLES?.map((x) => {
|
|
49
|
+
const prop = {};
|
|
50
|
+
prop.tableName = this.generateDbName(x.tableName);
|
|
51
|
+
prop.partitionKey = {
|
|
52
|
+
name: x.primaryKey.name,
|
|
53
|
+
type: x.primaryKey.type
|
|
54
|
+
};
|
|
55
|
+
prop.billingMode = x.billingMode;
|
|
56
|
+
if (x.sortKey) {
|
|
57
|
+
prop.sortKey = {
|
|
58
|
+
name: x.sortKey.name,
|
|
59
|
+
type: x.sortKey.type,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return prop;
|
|
63
|
+
});
|
|
64
|
+
return props;
|
|
65
|
+
}
|
|
66
|
+
generateDbName(tableName) {
|
|
67
|
+
// TODO: Remove this later table names should have appPrefix
|
|
68
|
+
return `${tableName}`;
|
|
69
|
+
// return `${this.config.AppPrefix}-${tableName}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
CreateDynamoDb.ReadWriteActions = [
|
|
73
|
+
"dynamodb:BatchGetItem",
|
|
74
|
+
"dynamodb:BatchWriteItem",
|
|
75
|
+
"dynamodb:ConditionCheckItem",
|
|
76
|
+
"dynamodb:DeleteItem",
|
|
77
|
+
"dynamodb:DescribeTable",
|
|
78
|
+
"dynamodb:GetItem",
|
|
79
|
+
"dynamodb:GetRecords",
|
|
80
|
+
"dynamodb:GetShardIterator",
|
|
81
|
+
"dynamodb:PutItem",
|
|
82
|
+
"dynamodb:Query",
|
|
83
|
+
"dynamodb:Scan",
|
|
84
|
+
"dynamodb:UpdateItem",
|
|
85
|
+
];
|
|
86
|
+
exports.CreateDynamoDb = CreateDynamoDb;
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRHluYW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9keW5hbW9kYi9DcmVhdGVEeW5hbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELDJEQUF1RjtBQUd2Rix1REFBb0Q7QUFHcEQsTUFBYSxjQUFlLFNBQVEsMkJBQW1CO0lBaUJuRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBc0IsS0FBZ0IsRUFBWSxNQUFpQjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUFZLFdBQU0sR0FBTixNQUFNLENBQVc7UUFHL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkQ7SUFDTCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRWpDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2xELEdBQUcsSUFBSTtnQkFDUCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO2FBQ3ZDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBRTVELE1BQU0sUUFBUSxHQUE4QjtvQkFDeEMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDN0MsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO29CQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3BCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztpQkFFckMsQ0FBQztnQkFFRixPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBR1MsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0QyxJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUUzRCxNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2FBQzFCLENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFFakMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxPQUFPLEdBQUc7b0JBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtvQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtpQkFDdkIsQ0FBQTthQUNKO1lBQ0QsT0FBTyxJQUFrQixDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxTQUFpQjtRQUNwQyw4REFBOEQ7UUFDOUQsT0FBTyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXRCLGtEQUFrRDtJQUN0RCxDQUFDOztBQXBHTSwrQkFBZ0IsR0FBYTtJQUNoQyx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixxQkFBcUI7SUFDckIsd0JBQXdCO0lBQ3hCLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsMkJBQTJCO0lBQzNCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLHFCQUFxQjtDQUN4QixDQUFDO0FBZk8sd0NBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHMsVGFibGUsIFRhYmxlUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IEJhc2VSZXNvdXJjZSB9IGZyb20gXCIuLi9iYXNlL2Jhc2VSZXNvdXJjZVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVEeW5hbW9EYiBleHRlbmRzIEJhc2VSZXNvdXJjZTxUYWJsZT4ge1xuXG4gICAgc3RhdGljIFJlYWRXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgICAgICBcImR5bmFtb2RiOkJhdGNoR2V0SXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkJhdGNoV3JpdGVJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6Q29uZGl0aW9uQ2hlY2tJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6RGVsZXRlSXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkRlc2NyaWJlVGFibGVcIixcbiAgICAgICAgXCJkeW5hbW9kYjpHZXRJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6R2V0UmVjb3Jkc1wiLFxuICAgICAgICBcImR5bmFtb2RiOkdldFNoYXJkSXRlcmF0b3JcIixcbiAgICAgICAgXCJkeW5hbW9kYjpQdXRJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6UXVlcnlcIixcbiAgICAgICAgXCJkeW5hbW9kYjpTY2FuXCIsXG4gICAgICAgIFwiZHluYW1vZGI6VXBkYXRlSXRlbVwiLFxuICAgIF07XG5cbiAgICBnZXQgQ3JlYXRlZFRhYmxlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlZFJlc291cmNlcztcbiAgICB9XG4gICAgXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNjb3BlOiBDb25zdHJ1Y3QsIHByb3RlY3RlZCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcblxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkUmVzb3VyY2VzKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dChzY29wZSwgdGhpcy5jcmVhdGVkUmVzb3VyY2VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogVGFibGVbXSB7XG4gICAgICAgIFxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmNyZWF0ZVByb3BzKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhYmxlcyA9IHByb3BzPy5tYXAoKHByb3A6IGFueSwgaWR4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYlRhYmxlID0gbmV3IFRhYmxlKHNjb3BlLCBgJHtwcm9wLnRhYmxlTmFtZX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3AsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuUkVTT1VSQ0VTLkRZTkFNTz8uVEFCTEVTPy5baWR4XS5pbmRleGVzLm1hcCgoZ3NpKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpUHJvcHM6IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleE5hbWU6IHRoaXMuZ2VuZXJhdGVEYk5hbWUoZ3NpLmluZGV4TmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb25LZXk6IGdzaS5wYXJ0aXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0S2V5OiBnc2kuc29ydEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBnc2kucHJvamVjdGlvblR5cGVcblxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGRiVGFibGUuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoZ3NpUHJvcHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYlRhYmxlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0YWJsZXMgPz8gW107XG4gICAgICAgXG5cbiAgICAgICBcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyEuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgZHluYW1vVGFibGUke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHgudGFibGVOYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm9wcygpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVM/LkRZTkFNTz8uVEFCTEVTPy5tYXAoKHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcHJvcDogYW55ID0ge307XG5cbiAgICAgICAgICAgIHByb3AudGFibGVOYW1lID0gdGhpcy5nZW5lcmF0ZURiTmFtZSh4LnRhYmxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHByb3AucGFydGl0aW9uS2V5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHgucHJpbWFyeUtleS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IHgucHJpbWFyeUtleS50eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwcm9wLmJpbGxpbmdNb2RlID0geC5iaWxsaW5nTW9kZTtcblxuICAgICAgICAgICAgaWYgKHguc29ydEtleSkge1xuICAgICAgICAgICAgICAgIHByb3Auc29ydEtleSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogeC5zb3J0S2V5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHguc29ydEtleS50eXBlLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9wIGFzIFRhYmxlUHJvcHM7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlRGJOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIFRPRE86ICBSZW1vdmUgdGhpcyBsYXRlciAgdGFibGUgbmFtZXMgc2hvdWxkIGhhdmUgYXBwUHJlZml4XG4gICAgICAgIHJldHVybiBgJHt0YWJsZU5hbWV9YDtcbiAgICAgICAgXG4gICAgICAgIC8vIHJldHVybiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7dGFibGVOYW1lfWA7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IRestApi, RestApi } from "aws-cdk-lib/aws-apigateway";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AppConfig } from "../../config/AppConfig";
|
|
4
|
+
import { BaseResource } from "../base/baseResource";
|
|
5
|
+
export declare class Api extends BaseResource<IRestApi> {
|
|
6
|
+
private corsOptions;
|
|
7
|
+
get APIs(): IRestApi[];
|
|
8
|
+
constructor(scope: Construct, config: AppConfig);
|
|
9
|
+
private createApi;
|
|
10
|
+
private createApiProps;
|
|
11
|
+
private createDefaultCorsOptions;
|
|
12
|
+
private createCustomDomain;
|
|
13
|
+
private attachDomainToApi;
|
|
14
|
+
private getZone;
|
|
15
|
+
private createCertificate;
|
|
16
|
+
private createARecord;
|
|
17
|
+
protected createResource(scope: Construct): RestApi[];
|
|
18
|
+
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
19
|
+
}
|