@digitraffic/common 2022.11.22-1 → 2022.11.23-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aws/infra/api/integration.d.ts +21 -0
- package/dist/aws/infra/api/integration.js +8 -4
- package/dist/aws/infra/api/integration.js.map +1 -0
- package/dist/aws/infra/api/response.d.ts +29 -0
- package/dist/aws/infra/api/response.js +36 -11
- package/dist/aws/infra/api/response.js.map +1 -0
- package/dist/aws/infra/api/responses.d.ts +47 -0
- package/dist/aws/infra/api/responses.js +8 -0
- package/dist/aws/infra/api/responses.js.map +1 -0
- package/dist/aws/infra/api/static-integration.d.ts +15 -0
- package/dist/aws/infra/api/static-integration.js.map +1 -0
- package/dist/aws/infra/canaries/canary-alarm.d.ts +6 -0
- package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
- package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
- package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
- package/dist/aws/infra/canaries/canary-parameters.d.ts +18 -0
- package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
- package/dist/aws/infra/canaries/canary-role.d.ts +6 -0
- package/dist/aws/infra/canaries/canary-role.js.map +1 -0
- package/dist/aws/infra/canaries/canary.d.ts +8 -0
- package/dist/aws/infra/canaries/canary.js.map +1 -0
- package/dist/aws/infra/canaries/database-canary.d.ts +18 -0
- package/dist/aws/infra/canaries/database-canary.js.map +1 -0
- package/dist/aws/infra/canaries/database-checker.d.ts +33 -0
- package/dist/aws/infra/canaries/database-checker.js.map +1 -0
- package/dist/aws/infra/canaries/url-canary.d.ts +16 -0
- package/dist/aws/infra/canaries/url-canary.js.map +1 -0
- package/dist/aws/infra/canaries/url-checker.d.ts +46 -0
- package/dist/aws/infra/canaries/url-checker.js.map +1 -0
- package/dist/aws/infra/documentation.d.ts +56 -0
- package/dist/aws/infra/documentation.js.map +1 -0
- package/dist/aws/infra/import-util.d.ts +21 -0
- package/dist/aws/infra/import-util.js.map +1 -0
- package/dist/aws/infra/scheduler.d.ts +12 -0
- package/dist/aws/infra/scheduler.js.map +1 -0
- package/dist/aws/infra/security-rule.d.ts +12 -0
- package/dist/aws/infra/security-rule.js.map +1 -0
- package/dist/aws/infra/sqs-integration.d.ts +7 -0
- package/dist/aws/infra/sqs-integration.js.map +1 -0
- package/dist/aws/infra/sqs-queue.d.ts +16 -0
- package/dist/aws/infra/sqs-queue.js.map +1 -0
- package/dist/aws/infra/stack/lambda-configs.d.ts +64 -0
- package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
- package/dist/aws/infra/stack/monitoredfunction.d.ts +84 -0
- package/dist/aws/infra/stack/monitoredfunction.js +31 -31
- package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
- package/dist/aws/infra/stack/rest_apis.d.ts +41 -0
- package/dist/aws/infra/stack/rest_apis.js.map +1 -0
- package/dist/aws/infra/stack/stack-checking-aspect.d.ts +21 -0
- package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
- package/dist/aws/infra/stack/stack.d.ts +45 -0
- package/dist/aws/infra/stack/stack.js.map +1 -0
- package/dist/aws/infra/stack/subscription.d.ts +17 -0
- package/dist/aws/infra/stack/subscription.js.map +1 -0
- package/dist/aws/infra/stacks/db-dns-stack.d.ts +11 -0
- package/dist/aws/infra/stacks/db-dns-stack.js.map +1 -0
- package/dist/aws/infra/stacks/db-proxy-stack.d.ts +19 -0
- package/dist/aws/infra/stacks/db-proxy-stack.js.map +1 -0
- package/dist/aws/infra/stacks/db-stack.d.ts +31 -0
- package/dist/aws/infra/stacks/db-stack.js.map +1 -0
- package/dist/aws/infra/stacks/intra-stack-configuration.d.ts +5 -0
- package/dist/aws/infra/stacks/intra-stack-configuration.js.map +1 -0
- package/dist/aws/infra/stacks/network-stack.d.ts +12 -0
- package/dist/aws/infra/stacks/network-stack.js.map +1 -0
- package/dist/aws/infra/usage-plans.d.ts +16 -0
- package/dist/aws/infra/usage-plans.js.map +1 -0
- package/dist/aws/runtime/apikey.d.ts +2 -0
- package/dist/aws/runtime/apikey.js.map +1 -0
- package/dist/aws/runtime/digitraffic-integration-response.d.ts +8 -0
- package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
- package/dist/aws/runtime/environment.d.ts +1 -0
- package/dist/aws/runtime/environment.js.map +1 -0
- package/dist/aws/runtime/messaging.d.ts +10 -0
- package/dist/aws/runtime/messaging.js.map +1 -0
- package/dist/aws/runtime/s3.d.ts +2 -0
- package/dist/aws/runtime/s3.js.map +1 -0
- package/dist/aws/runtime/secrets/dbsecret.d.ts +54 -0
- package/dist/aws/runtime/secrets/dbsecret.js +4 -4
- package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
- package/dist/aws/runtime/secrets/proxy-holder.d.ts +9 -0
- package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
- package/dist/aws/runtime/secrets/rds-holder.d.ts +9 -0
- package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
- package/dist/aws/runtime/secrets/secret-holder.d.ts +26 -0
- package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
- package/dist/aws/runtime/secrets/secret.d.ts +8 -0
- package/dist/aws/runtime/secrets/secret.js.map +1 -0
- package/dist/aws/types/errors.d.ts +8 -0
- package/dist/aws/types/errors.js.map +1 -0
- package/dist/aws/types/lambda-response.d.ts +13 -0
- package/dist/aws/types/lambda-response.js.map +1 -0
- package/dist/aws/types/mediatypes.d.ts +11 -0
- package/dist/aws/types/mediatypes.js.map +1 -0
- package/dist/aws/types/model-with-reference.d.ts +7 -0
- package/dist/aws/types/model-with-reference.js.map +1 -0
- package/dist/aws/types/proxytypes.d.ts +26 -0
- package/dist/aws/types/proxytypes.js.map +1 -0
- package/dist/aws/types/tags.d.ts +2 -0
- package/dist/aws/types/tags.js.map +1 -0
- package/dist/database/cached.d.ts +7 -0
- package/dist/database/cached.js.map +1 -0
- package/dist/database/database.d.ts +19 -0
- package/dist/database/database.js.map +1 -0
- package/dist/database/last-updated.d.ts +16 -0
- package/dist/database/last-updated.js.map +1 -0
- package/dist/database/models.d.ts +6 -0
- package/dist/database/models.js.map +1 -0
- package/dist/marine/id_utils.d.ts +3 -0
- package/dist/marine/id_utils.js.map +1 -0
- package/dist/marine/rtz.d.ts +48 -0
- package/dist/marine/rtz.js.map +1 -0
- package/dist/test/asserter.d.ts +11 -0
- package/dist/test/asserter.js.map +1 -0
- package/dist/test/db-testutils.d.ts +3 -0
- package/dist/test/db-testutils.js.map +1 -0
- package/dist/test/httpserver.d.ts +19 -0
- package/dist/test/httpserver.js.map +1 -0
- package/dist/test/secret.d.ts +3 -0
- package/dist/test/secret.js.map +1 -0
- package/dist/test/secrets-manager.d.ts +9 -0
- package/dist/test/secrets-manager.js.map +1 -0
- package/dist/test/testutils.d.ts +12 -0
- package/dist/test/testutils.js.map +1 -0
- package/dist/types/either.d.ts +9 -0
- package/dist/types/either.js.map +1 -0
- package/dist/types/input-error.d.ts +2 -0
- package/dist/types/input-error.js.map +1 -0
- package/dist/types/language.d.ts +5 -0
- package/dist/types/language.js.map +1 -0
- package/dist/types/traffictype.d.ts +8 -0
- package/dist/types/traffictype.js.map +1 -0
- package/dist/types/validator.d.ts +4 -0
- package/dist/types/validator.js.map +1 -0
- package/dist/utils/api-model.d.ts +87 -0
- package/dist/utils/api-model.js.map +1 -0
- package/dist/utils/base64.d.ts +12 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/date-utils.d.ts +17 -0
- package/dist/utils/date-utils.js.map +1 -0
- package/dist/utils/geojson-types.d.ts +14 -0
- package/dist/utils/geojson-types.js.map +1 -0
- package/dist/utils/geometry.d.ts +36 -0
- package/dist/utils/geometry.js.map +1 -0
- package/dist/utils/retry.d.ts +13 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/slack.d.ts +5 -0
- package/dist/utils/slack.js.map +1 -0
- package/dist/utils/utils.d.ts +46 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +19 -29
- package/src/aws/infra/api/integration.ts +30 -14
- package/src/aws/infra/api/response.ts +83 -20
- package/src/aws/infra/api/responses.ts +8 -0
- package/src/aws/runtime/secrets/dbsecret.ts +23 -54
- package/src/aws/runtime/secrets/secret-holder.ts +6 -3
- package/src/database/database.ts +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/aws/infra/scheduler.ts"],"names":[],"mappings":";;;AAAA,uDAAwD;AACxD,6CAAuC;AACvC,uEAAgE;AAIhE,MAAa,SAAU,SAAQ,iBAAI;IAC/B,YACI,KAAgB,EAChB,QAAgB,EAChB,QAAkB,EAClB,MAAoB;QAEpB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/C,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,mCAAc,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CACd,KAAgB,EAChB,QAAgB,EAChB,MAAoB;QAEpB,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,YAAY,CACf,KAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,MAAoB;QAEpB,OAAO,SAAS,CAAC,KAAK,CAClB,KAAK,EACL,QAAQ,EACR,sBAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,MAAM,CACT,CAAC;IACN,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgB,EAAE,QAAgB,EAAE,MAAoB;QACrE,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAgB,EAAE,QAAgB,EAAE,MAAoB;QACpE,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,KAAK,CACR,KAAgB,EAChB,QAAgB,EAChB,QAAkB,EAClB,MAAoB;QAEpB,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,qBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;CACJ;AApDD,8BAoDC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Construct } from "constructs";
|
2
|
+
import { Rule } from "aws-cdk-lib/aws-events";
|
3
|
+
import { ITopic } from "aws-cdk-lib/aws-sns";
|
4
|
+
/**
|
5
|
+
* Automatic rule for Security Hub. Send notification to given topic if the following conditions apply:
|
6
|
+
* * There is a finding with a status of NEW
|
7
|
+
* * It has severity of HIGH or CRITICAL
|
8
|
+
* * It is in a FAILED state
|
9
|
+
*/
|
10
|
+
export declare class DigitrafficSecurityRule extends Rule {
|
11
|
+
constructor(scope: Construct, topic: ITopic);
|
12
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"security-rule.js","sourceRoot":"","sources":["../../../src/aws/infra/security-rule.ts"],"names":[],"mappings":";;;AACA,uDAA4C;AAE5C,uEAAwD;AAExD;;;;;GAKG;AACH,MAAa,uBAAwB,SAAQ,iBAAI;IAC7C,YAAY,KAAgB,EAAE,KAAa;QACvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACnC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE;YACnB,QAAQ;YACR,YAAY,EAAE;gBACV,MAAM,EAAE,CAAC,iBAAiB,CAAC;gBAC3B,UAAU,EAAE,CAAC,kCAAkC,CAAC;gBAChD,MAAM,EAAE;oBACJ,QAAQ,EAAE;wBACN,YAAY,EAAE;4BACV,QAAQ,EAAE,CAAC,QAAQ,CAAC;yBACvB;wBACD,UAAU,EAAE;4BACR,QAAQ,EAAE,CAAC,KAAK,CAAC;yBACpB;wBACD,UAAU,EAAE;4BACR,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;yBAChC;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,6BAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;CACJ;AA1BD,0DA0BC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { RequestValidator, Resource } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
import { Queue } from "aws-cdk-lib/aws-sqs";
|
3
|
+
import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
|
4
|
+
import { Construct } from "constructs";
|
5
|
+
export declare function attachQueueToApiGatewayResource(stack: Construct, queue: Queue, resource: Resource, requestValidator: RequestValidator, resourceName: string, apiKeyRequired: boolean, requestModels?: {
|
6
|
+
[param: string]: IModel;
|
7
|
+
}): void;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sqs-integration.js","sourceRoot":"","sources":["../../../src/aws/infra/sqs-integration.ts"],"names":[],"mappings":";;;AAAA,6CAAgC;AAChC,+DAA2G;AAE3G,iDAA4E;AAI5E,SAAgB,+BAA+B,CAC3C,KAAgB,EAChB,KAAY,EACZ,QAAkB,EAClB,gBAAkC,EAClC,YAAoB,EACpB,cAAuB,EACvB,aAAyC;IAEzC,uBAAuB;IACvB,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,KAAK,EAAE,GAAG,YAAY,qBAAqB,EAAE;QACpE,SAAS,EAAE,IAAI,0BAAgB,CAAC,0BAA0B,CAAC;KAC9D,CAAC,CAAC;IACH,oDAAoD;IACpD,SAAS,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC;QACtC,SAAS,EAAE;YACP,KAAK,CAAC,QAAQ;SACjB;QACD,OAAO,EAAE;YACL,iBAAiB;SACpB;KACJ,CAAC,CAAC,CAAC;IACJ,qDAAqD;IACrD,SAAS,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC;QACtC,SAAS,EAAE;YACP,GAAG;SACN;QACD,OAAO,EAAE;YACL,qBAAqB;YACrB,sBAAsB;YACtB,wBAAwB;YACxB,yBAAyB;YACzB,mBAAmB;YACnB,mBAAmB;YACnB,sBAAsB;SACzB;KACJ,CAAC,CAAC,CAAC;IACJ,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC;QACtC,OAAO,EAAE,KAAK;QACd,qBAAqB,EAAE,MAAM;QAC7B,OAAO,EAAE;YACL,mBAAmB,EAAE,oCAAmB,CAAC,KAAK;YAC9C,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE;gBACf,4FAA4F;gBAC5F,yCAAyC,EAAE,qCAAqC;aACnF;YACD,gBAAgB,EAAE;gBACd,2EAA2E;gBAC3E,6FAA6F;gBAC7F,kBAAkB,EAAE,qBAAqB,kBAAkB,2CAA2C;aACzG;YACD,4BAA4B;YAC5B,oBAAoB,EAAE;gBAClB;oBACI,UAAU,EAAE,KAAK;oBACjB,iBAAiB,EAAE;wBACf,WAAW,EAAE,SAAS;qBACzB;iBACJ;gBACD;oBACI,UAAU,EAAE,KAAK;oBACjB,iBAAiB,EAAE;wBACf,WAAW,EAAE,OAAO;qBACvB;oBACD,gBAAgB,EAAE,KAAK;iBAC1B;aAEJ;SAEJ;QACD,IAAI,EAAE,GAAG,iBAAG,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE;KAC/C,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE;QACvC,gBAAgB;QAChB,cAAc;QACd,aAAa,EAAE,aAAa,IAAI,EAAE;QAClC,eAAe,EAAE;YACb;gBACI,UAAU,EAAE,KAAK;gBACjB,kBAAkB,EAAE;oBAChB,qCAAqC,EAAE,IAAI;iBAC9C;aACJ;YACD;gBACI,UAAU,EAAE,KAAK;gBACjB,kBAAkB,EAAE;oBAChB,qCAAqC,EAAE,IAAI;iBAC9C;aACJ;SACJ;KACJ,CAAC,CAAC;AACP,CAAC;AA9FD,0EA8FC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Queue, QueueProps } from "aws-cdk-lib/aws-sqs";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { DigitrafficStack } from "./stack/stack";
|
4
|
+
/**
|
5
|
+
* Construct for creating SQS-queues.
|
6
|
+
*
|
7
|
+
* If you don't config your own deadLetterQueue, this will create a dlq for you, also a lambda function, a s3 bucket
|
8
|
+
* and an alarm for the queue. Anything that goes to the dlq will be written into the bucket and the alarm is activated.
|
9
|
+
*/
|
10
|
+
export declare class DigitrafficSqsQueue extends Queue {
|
11
|
+
constructor(scope: Construct, name: string, props: QueueProps);
|
12
|
+
static create(stack: DigitrafficStack, name: string, props: QueueProps): DigitrafficSqsQueue;
|
13
|
+
}
|
14
|
+
export declare class DigitrafficDLQueue {
|
15
|
+
static create(stack: DigitrafficStack, name: string): DigitrafficSqsQueue;
|
16
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sqs-queue.js","sourceRoot":"","sources":["../../../src/aws/infra/sqs-queue.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { Architecture, Code, FunctionProps, Runtime } from "aws-cdk-lib/aws-lambda";
|
2
|
+
import { ISecurityGroup, IVpc, SubnetSelection } from "aws-cdk-lib/aws-ec2";
|
3
|
+
import { Role } from "aws-cdk-lib/aws-iam";
|
4
|
+
import { DigitrafficStack } from "./stack";
|
5
|
+
import { MonitoredFunctionAlarmProps } from "./monitoredfunction";
|
6
|
+
export declare type LambdaEnvironment = Record<string, string>;
|
7
|
+
export declare type DBLambdaEnvironment = LambdaEnvironment & {
|
8
|
+
SECRET_ID?: string;
|
9
|
+
DB_APPLICATION: string;
|
10
|
+
};
|
11
|
+
export interface LambdaConfiguration {
|
12
|
+
vpcId: string;
|
13
|
+
allowFromIpAddresses?: string[];
|
14
|
+
privateSubnetIds: string[];
|
15
|
+
availabilityZones: string[];
|
16
|
+
lambdaDbSgId: string;
|
17
|
+
dbProps?: DbProps;
|
18
|
+
defaultLambdaDurationSeconds?: number;
|
19
|
+
logsDestinationArn: string;
|
20
|
+
memorySize?: number;
|
21
|
+
runtime?: Runtime;
|
22
|
+
}
|
23
|
+
declare interface DbProps {
|
24
|
+
username: string;
|
25
|
+
password: string;
|
26
|
+
uri?: string;
|
27
|
+
ro_uri?: string;
|
28
|
+
}
|
29
|
+
export declare function databaseFunctionProps(stack: DigitrafficStack, environment: LambdaEnvironment, lambdaName: string, simpleLambdaName: string, config?: Partial<FunctionParameters>): FunctionProps;
|
30
|
+
export declare function lambdaFunctionProps(stack: DigitrafficStack, environment: LambdaEnvironment, lambdaName: string, simpleLambdaName: string, config?: Partial<FunctionParameters>): FunctionProps;
|
31
|
+
/**
|
32
|
+
* Creates a base configuration for a Lambda that uses an RDS database
|
33
|
+
* @param vpc "Private" Lambdas are associated with a VPC
|
34
|
+
* @param lambdaDbSg Security Group shared by Lambda and RDS
|
35
|
+
* @param props Database connection properties for the Lambda
|
36
|
+
* @param config Lambda configuration
|
37
|
+
*/
|
38
|
+
export declare function dbLambdaConfiguration(vpc: IVpc, lambdaDbSg: ISecurityGroup, props: LambdaConfiguration, config: FunctionParameters): FunctionProps;
|
39
|
+
export declare function defaultLambdaConfiguration(config: FunctionParameters): FunctionProps;
|
40
|
+
export interface FunctionParameters {
|
41
|
+
memorySize?: number;
|
42
|
+
timeout?: number;
|
43
|
+
functionName?: string;
|
44
|
+
code: Code;
|
45
|
+
handler: string;
|
46
|
+
readOnly?: boolean;
|
47
|
+
environment?: {
|
48
|
+
[key: string]: string;
|
49
|
+
};
|
50
|
+
reservedConcurrentExecutions?: number;
|
51
|
+
role?: Role;
|
52
|
+
vpc?: IVpc;
|
53
|
+
vpcSubnets?: SubnetSelection;
|
54
|
+
runtime?: Runtime;
|
55
|
+
architecture?: Architecture;
|
56
|
+
singleLambda?: boolean;
|
57
|
+
}
|
58
|
+
export declare type MonitoredFunctionParameters = FunctionParameters & {
|
59
|
+
readonly durationAlarmProps?: MonitoredFunctionAlarmProps;
|
60
|
+
readonly durationWarningProps?: MonitoredFunctionAlarmProps;
|
61
|
+
readonly errorAlarmProps?: MonitoredFunctionAlarmProps;
|
62
|
+
readonly throttleAlarmProps?: MonitoredFunctionAlarmProps;
|
63
|
+
};
|
64
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lambda-configs.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/lambda-configs.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
import { Function, FunctionProps } from "aws-cdk-lib/aws-lambda";
|
2
|
+
import { Stack } from "aws-cdk-lib";
|
3
|
+
import { ComparisonOperator } from "aws-cdk-lib/aws-cloudwatch";
|
4
|
+
import { DigitrafficStack } from "../stack/stack";
|
5
|
+
import { ITopic } from "aws-cdk-lib/aws-sns";
|
6
|
+
import { LambdaEnvironment, MonitoredFunctionParameters } from "../stack/lambda-configs";
|
7
|
+
import { TrafficType } from "../../../types/traffictype";
|
8
|
+
/**
|
9
|
+
* Allows customization of CloudWatch Alarm properties
|
10
|
+
*/
|
11
|
+
export declare type MonitoredFunctionAlarmProps = {
|
12
|
+
/**
|
13
|
+
* Setting this to false will not create a CloudWatch alarm
|
14
|
+
*/
|
15
|
+
readonly create: boolean;
|
16
|
+
readonly threshold?: number;
|
17
|
+
readonly evaluationPeriods?: number;
|
18
|
+
readonly datapointsToAlarm?: number;
|
19
|
+
readonly comparisonOperator?: ComparisonOperator;
|
20
|
+
};
|
21
|
+
export declare type MonitoredFunctionProps = {
|
22
|
+
readonly durationAlarmProps?: MonitoredFunctionAlarmProps;
|
23
|
+
readonly durationWarningProps?: MonitoredFunctionAlarmProps;
|
24
|
+
readonly errorAlarmProps?: MonitoredFunctionAlarmProps;
|
25
|
+
readonly throttleAlarmProps?: MonitoredFunctionAlarmProps;
|
26
|
+
};
|
27
|
+
/**
|
28
|
+
* Creates a Lambda function that monitors default CloudWatch Lambda metrics with CloudWatch Alarms.
|
29
|
+
*/
|
30
|
+
export declare class MonitoredFunction extends Function {
|
31
|
+
readonly givenName: string;
|
32
|
+
/** disable all alarms */
|
33
|
+
static readonly DISABLE_ALARMS: MonitoredFunctionProps;
|
34
|
+
/**
|
35
|
+
* Create new MonitoredFunction. Use topics from given DigitrafficStack.
|
36
|
+
*
|
37
|
+
* @param stack DigitrafficStack
|
38
|
+
* @param id Lambda construct Id
|
39
|
+
* @param functionProps Lambda function properties
|
40
|
+
* @param props Monitored function properties
|
41
|
+
*/
|
42
|
+
static create(stack: DigitrafficStack, id: string, functionProps: FunctionProps, props?: Partial<MonitoredFunctionProps>): MonitoredFunction;
|
43
|
+
/**
|
44
|
+
* Create new MonitoredFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
|
45
|
+
*
|
46
|
+
* For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
|
47
|
+
*
|
48
|
+
* @param stack DigitrafficStack
|
49
|
+
* @param name param-case name
|
50
|
+
* @param environment Lambda environment
|
51
|
+
* @param functionParameters Lambda function parameters
|
52
|
+
*/
|
53
|
+
static createV2(stack: DigitrafficStack, name: string, environment: LambdaEnvironment, functionParameters?: Partial<MonitoredFunctionParameters>): MonitoredFunction;
|
54
|
+
/**
|
55
|
+
* @param scope Stack
|
56
|
+
* @param id Lambda construct Id
|
57
|
+
* @param functionProps Lambda function properties
|
58
|
+
* @param alarmSnsTopic SNS topic for alarms
|
59
|
+
* @param warningSnsTopic SNS topic for warnings
|
60
|
+
* @param production Is the stack a production stack, used for determining the alarm topic
|
61
|
+
* @param trafficType Traffic type, used for alarm names. Set to null if Lambda is not related to any traffic type.
|
62
|
+
* @param props Monitored function properties
|
63
|
+
*/
|
64
|
+
constructor(scope: Stack, id: string, functionProps: FunctionProps, alarmSnsTopic: ITopic, warningSnsTopic: ITopic, production: boolean, trafficType: TrafficType | null, props?: MonitoredFunctionProps);
|
65
|
+
private createAlarm;
|
66
|
+
private getAlarmActionForEnv;
|
67
|
+
}
|
68
|
+
export declare class MonitoredDBFunction {
|
69
|
+
/**
|
70
|
+
* Create new MonitoredDBFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
|
71
|
+
* Grant secret and create log subscription.
|
72
|
+
*
|
73
|
+
* For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
|
74
|
+
*
|
75
|
+
* If you don't need to pass any extra arguments to lambda-environment, you can leave environment out and this function will create the
|
76
|
+
* default Lambda Environment with SECRET_ID and DB_APPLICATION.
|
77
|
+
*
|
78
|
+
* @param stack DigitrafficStack
|
79
|
+
* @param name param-case name
|
80
|
+
* @param environment Lambda environment
|
81
|
+
* @param functionParameters Lambda function parameters
|
82
|
+
*/
|
83
|
+
static create(stack: DigitrafficStack, name: string, environment?: LambdaEnvironment, functionParameters?: Partial<MonitoredFunctionParameters>): MonitoredFunction;
|
84
|
+
}
|
@@ -11,37 +11,6 @@ const subscription_1 = require("../stack/subscription");
|
|
11
11
|
* Creates a Lambda function that monitors default CloudWatch Lambda metrics with CloudWatch Alarms.
|
12
12
|
*/
|
13
13
|
class MonitoredFunction extends aws_lambda_1.Function {
|
14
|
-
/**
|
15
|
-
* Create new MonitoredFunction. Use topics from given DigitrafficStack.
|
16
|
-
*
|
17
|
-
* @param stack DigitrafficStack
|
18
|
-
* @param id Lambda construct Id
|
19
|
-
* @param functionProps Lambda function properties
|
20
|
-
* @param props Monitored function properties
|
21
|
-
*/
|
22
|
-
static create(stack, id, functionProps, props) {
|
23
|
-
if (props === MonitoredFunction.DISABLE_ALARMS &&
|
24
|
-
stack.configuration.production) {
|
25
|
-
throw new Error(`Function ${functionProps.functionName} has DISABLE_ALARMS. Remove before installing to production or define your own properties!`);
|
26
|
-
}
|
27
|
-
return new MonitoredFunction(stack, id, functionProps, stack.alarmTopic, stack.warningTopic, stack.configuration.production, stack.configuration.trafficType, props);
|
28
|
-
}
|
29
|
-
/**
|
30
|
-
* Create new MonitoredFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
|
31
|
-
*
|
32
|
-
* For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
|
33
|
-
*
|
34
|
-
* @param stack DigitrafficStack
|
35
|
-
* @param name param-case name
|
36
|
-
* @param environment Lambda environment
|
37
|
-
* @param functionParameters Lambda function parameters
|
38
|
-
*/
|
39
|
-
static createV2(stack, name, environment, functionParameters) {
|
40
|
-
const functionName = functionParameters?.functionName ||
|
41
|
-
`${stack.configuration.shortName}-${(0, change_case_1.pascalCase)(name)}`;
|
42
|
-
const functionProps = (0, lambda_configs_1.databaseFunctionProps)(stack, environment, functionName, name, functionParameters);
|
43
|
-
return MonitoredFunction.create(stack, functionName, functionProps, functionParameters);
|
44
|
-
}
|
45
14
|
/**
|
46
15
|
* @param scope Stack
|
47
16
|
* @param id Lambda construct Id
|
@@ -79,6 +48,37 @@ class MonitoredFunction extends aws_lambda_1.Function {
|
|
79
48
|
this.createAlarm(scope, this.metricThrottles(), "Throttles", "Throttles alarm", "Has throttled", trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), 0, 1, 1, aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD, props?.throttleAlarmProps);
|
80
49
|
}
|
81
50
|
}
|
51
|
+
/**
|
52
|
+
* Create new MonitoredFunction. Use topics from given DigitrafficStack.
|
53
|
+
*
|
54
|
+
* @param stack DigitrafficStack
|
55
|
+
* @param id Lambda construct Id
|
56
|
+
* @param functionProps Lambda function properties
|
57
|
+
* @param props Monitored function properties
|
58
|
+
*/
|
59
|
+
static create(stack, id, functionProps, props) {
|
60
|
+
if (props === MonitoredFunction.DISABLE_ALARMS &&
|
61
|
+
stack.configuration.production) {
|
62
|
+
throw new Error(`Function ${functionProps.functionName} has DISABLE_ALARMS. Remove before installing to production or define your own properties!`);
|
63
|
+
}
|
64
|
+
return new MonitoredFunction(stack, id, functionProps, stack.alarmTopic, stack.warningTopic, stack.configuration.production, stack.configuration.trafficType, props);
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Create new MonitoredFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
|
68
|
+
*
|
69
|
+
* For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
|
70
|
+
*
|
71
|
+
* @param stack DigitrafficStack
|
72
|
+
* @param name param-case name
|
73
|
+
* @param environment Lambda environment
|
74
|
+
* @param functionParameters Lambda function parameters
|
75
|
+
*/
|
76
|
+
static createV2(stack, name, environment, functionParameters) {
|
77
|
+
const functionName = functionParameters?.functionName ||
|
78
|
+
`${stack.configuration.shortName}-${(0, change_case_1.pascalCase)(name)}`;
|
79
|
+
const functionProps = (0, lambda_configs_1.databaseFunctionProps)(stack, environment, functionName, name, functionParameters);
|
80
|
+
return MonitoredFunction.create(stack, functionName, functionProps, functionParameters);
|
81
|
+
}
|
82
82
|
createAlarm(stack, metric, alarmId, alarmName, alarmDescription, trafficType, alarmSnsAction, threshold, evaluationPeriods, datapointsToAlarm, comparisonOperator, alarmProps) {
|
83
83
|
metric
|
84
84
|
.createAlarm(stack, `${this.node.id}-${alarmId}`, {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"monitoredfunction.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/monitoredfunction.ts"],"names":[],"mappings":";;;AAAA,uDAAiE;AAEjE,+EAA+D;AAC/D,+DAAwE;AAGxE,4DAIiC;AACjC,6CAAyC;AACzC,wDAAoE;AA+BpE;;GAEG;AACH,MAAa,iBAAkB,SAAQ,qBAAQ;IAyF3C;;;;;;;;;OASG;IACH,YACI,KAAY,EACZ,EAAU,EACV,aAA4B,EAC5B,aAAqB,EACrB,eAAuB,EACvB,UAAmB,EACnB,WAA+B,EAC/B,KAA8B;QAE9B,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QAEhC,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,kCAAS,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAI,kCAAS,CAAC,eAAe,CAAC,CAAC;QAExD,IAAI,KAAK,EAAE,kBAAkB,EAAE,MAAM,KAAK,KAAK,EAAE;YAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,WAAW,CACZ,KAAK,EACL,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAChD,UAAU,EACV,gBAAgB,EAChB,yBAAyB,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EACpE,WAAW,EACX,IAAI,CAAC,oBAAoB,CACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,CACb,EACD,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,EACtC,CAAC,EACD,CAAC,EACD,mCAAkB,CAAC,kCAAkC,EACrD,KAAK,EAAE,kBAAkB,CAC5B,CAAC;SACL;QACD,IAAI,KAAK,EAAE,oBAAoB,EAAE,MAAM,KAAK,KAAK,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,WAAW,CACZ,KAAK,EACL,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAChD,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EACtE,WAAW,EACX,gBAAgB,EAChB,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,EAC7C,CAAC,EACD,CAAC,EACD,mCAAkB,CAAC,kCAAkC,EACrD,KAAK,EAAE,oBAAoB,CAC9B,CAAC;SACL;QAED,IAAI,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,KAAK,EAAE;YAC1C,IAAI,CAAC,WAAW,CACZ,KAAK,EACL,IAAI,CAAC,YAAY,EAAE,EACnB,QAAQ,EACR,cAAc,EACd,6BAA6B,EAC7B,WAAW,EACX,IAAI,CAAC,oBAAoB,CACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,CACb,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,mCAAkB,CAAC,kCAAkC,EACrD,KAAK,EAAE,eAAe,CACzB,CAAC;SACL;QAED,IAAI,KAAK,EAAE,kBAAkB,EAAE,MAAM,KAAK,KAAK,EAAE;YAC7C,IAAI,CAAC,WAAW,CACZ,KAAK,EACL,IAAI,CAAC,eAAe,EAAE,EACtB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,IAAI,CAAC,oBAAoB,CACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,CACb,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,mCAAkB,CAAC,sBAAsB,EACzC,KAAK,EAAE,kBAAkB,CAC5B,CAAC;SACL;IACL,CAAC;IA1LD;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CACT,KAAuB,EACvB,EAAU,EACV,aAA4B,EAC5B,KAAuC;QAEvC,IACI,KAAK,KAAK,iBAAiB,CAAC,cAAc;YAC1C,KAAK,CAAC,aAAa,CAAC,UAAU,EAChC;YACE,MAAM,IAAI,KAAK,CACX,YAAY,aAAa,CAAC,YAAY,6FAA6F,CACtI,CAAC;SACL;QAED,OAAO,IAAI,iBAAiB,CACxB,KAAK,EACL,EAAE,EACF,aAAa,EACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,CAAC,UAAU,EAC9B,KAAK,CAAC,aAAa,CAAC,WAAW,EAC/B,KAAK,CACR,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CACX,KAAuB,EACvB,IAAY,EACZ,WAA8B,EAC9B,kBAAyD;QAEzD,MAAM,YAAY,GACd,kBAAkB,EAAE,YAAY;YAChC,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,IAAA,wBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAA,sCAAqB,EACvC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,kBAAkB,CACrB,CAAC;QAEF,OAAO,iBAAiB,CAAC,MAAM,CAC3B,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,CACrB,CAAC;IACN,CAAC;IAwHO,WAAW,CACf,KAAY,EACZ,MAAc,EACd,OAAe,EACf,SAAiB,EACjB,gBAAwB,EACxB,WAA+B,EAC/B,cAAyB,EACzB,SAAiB,EACjB,iBAAyB,EACzB,iBAAyB,EACzB,kBAAsC,EACtC,UAAwC;QAExC,MAAM;aACD,WAAW,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,EAAE;YAC9C,SAAS,EAAE,GAAG,WAAW,IAAI,EAAE,IAAI,KAAK,CAAC,SAAS,IAC9C,IAAI,CAAC,YACT,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE;YACtB,gBAAgB;YAChB,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,SAAS;YAC7C,iBAAiB,EACb,UAAU,EAAE,iBAAiB,IAAI,iBAAiB;YACtD,iBAAiB,EACb,UAAU,EAAE,iBAAiB,IAAI,iBAAiB;YACtD,kBAAkB,EACd,UAAU,EAAE,kBAAkB,IAAI,kBAAkB;SAC3D,CAAC;aACD,cAAc,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAEO,oBAAoB,CACxB,WAAsB,EACtB,aAAwB,EACxB,UAAmB;QAEnB,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IACpD,CAAC;;AApPL,8CAqPC;AAlPG,yBAAyB;AACF,gCAAc,GAA2B;IAC5D,kBAAkB,EAAE;QAChB,MAAM,EAAE,KAAK;KAChB;IACD,oBAAoB,EAAE;QAClB,MAAM,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACb,MAAM,EAAE,KAAK;KAChB;IACD,kBAAkB,EAAE;QAChB,MAAM,EAAE,KAAK;KAChB;CACJ,CAAC;AAsON,MAAa,mBAAmB;IAC5B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,MAAM,CACT,KAAuB,EACvB,IAAY,EACZ,WAA+B,EAC/B,kBAAyD;QAEzD,MAAM,YAAY,GACd,kBAAkB,EAAE,YAAY;YAChC,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,IAAA,wBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACxE,MAAM,aAAa,GAAG,IAAA,sCAAqB,EACvC,KAAK,EACL,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,kBAAkB,CACrB,CAAC;QAEF,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAC/B,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,CACrB,CAAC;QAEF,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAI,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACxC,IAAI,0CAA2B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC9C;QAED,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAhDD,kDAgDC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { RestApi, RestApiProps, JsonSchema, Resource } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
import { PolicyDocument } from "aws-cdk-lib/aws-iam";
|
3
|
+
import { Construct } from "constructs";
|
4
|
+
import { DigitrafficStack } from "./stack";
|
5
|
+
import { ModelWithReference } from "../../types/model-with-reference";
|
6
|
+
import { DocumentationPart } from "../documentation";
|
7
|
+
export declare class DigitrafficRestApi extends RestApi {
|
8
|
+
readonly apiKeyIds: string[];
|
9
|
+
readonly enableDocumentation: boolean;
|
10
|
+
constructor(stack: DigitrafficStack, apiId: string, apiName: string, allowFromIpAddresses?: string[] | undefined, config?: Partial<RestApiProps>);
|
11
|
+
hostname(): string;
|
12
|
+
createUsagePlan(apiKeyId: string, apiKeyName: string): string;
|
13
|
+
createUsagePlanV2(apiName: string, apiKey?: string): string;
|
14
|
+
addJsonModel(modelName: string, schema: JsonSchema): ModelWithReference;
|
15
|
+
addCSVModel(modelName: string): ModelWithReference;
|
16
|
+
private getModelWithReference;
|
17
|
+
private addDocumentationPart;
|
18
|
+
documentResource(resource: Resource, ...documentationPart: DocumentationPart[]): void;
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
|
22
|
+
* with a non-existent endpoint. This function translates this response to a 404.
|
23
|
+
* Requests with an invalid or missing API key are not affected (still return 403 'Forbidden').
|
24
|
+
* @param restApi RestApi
|
25
|
+
* @param stack Construct
|
26
|
+
*/
|
27
|
+
export declare function add404Support(restApi: RestApi, stack: Construct): void;
|
28
|
+
export declare function add401Support(restApi: RestApi, stack: Construct): void;
|
29
|
+
/**
|
30
|
+
* Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
|
31
|
+
* with a non-existent endpoint. This function converts this response to a custom one.
|
32
|
+
* Requests with an invalid or missing API key are not affected (still return 403 'Forbidden').
|
33
|
+
* @param returnCode
|
34
|
+
* @param message
|
35
|
+
* @param restApi RestApi
|
36
|
+
* @param stack Construct
|
37
|
+
*/
|
38
|
+
export declare function setReturnCodeForMissingAuthenticationToken(returnCode: number, message: string, restApi: RestApi, stack: Construct): void;
|
39
|
+
export declare function createRestApi(stack: Construct, apiId: string, apiName: string, allowFromIpAddresses?: string[] | undefined): RestApi;
|
40
|
+
export declare function createDefaultPolicyDocument(): PolicyDocument;
|
41
|
+
export declare function createIpRestrictionPolicyDocument(allowFromIpAddresses: string[]): PolicyDocument;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rest_apis.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/rest_apis.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { IAspect } from "aws-cdk-lib";
|
2
|
+
import { DigitrafficStack } from "./stack";
|
3
|
+
import { IConstruct } from "constructs";
|
4
|
+
export declare class StackCheckingAspect implements IAspect {
|
5
|
+
private readonly stackShortName?;
|
6
|
+
private readonly whitelistedResources?;
|
7
|
+
constructor(stackShortName?: string, whitelistedResources?: string[]);
|
8
|
+
static create(stack: DigitrafficStack): StackCheckingAspect;
|
9
|
+
visit(node: IConstruct): void;
|
10
|
+
private isWhitelisted;
|
11
|
+
private addAnnotation;
|
12
|
+
private checkStack;
|
13
|
+
private checkFunction;
|
14
|
+
private checkTags;
|
15
|
+
private checkBucket;
|
16
|
+
private static isValidPath;
|
17
|
+
private static isValidQueryString;
|
18
|
+
private checkResourceCasing;
|
19
|
+
private checkQueueEncryption;
|
20
|
+
private checkLogGroupRetention;
|
21
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"stack-checking-aspect.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/stack-checking-aspect.ts"],"names":[],"mappings":";;;AAAA,6CAA0D;AAC1D,uDAA8D;AAC9D,+CAA+C;AAC/C,mCAAyD;AAEzD,+DAAoE;AACpE,6CAAmD;AACnD,iDAA+C;AAC/C,mDAAoD;AAGpD,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,aAAa,GAAG,CAAC,oBAAO,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAE3E,IAAK,YAYJ;AAZD,WAAK,YAAY;IACb,wCAAwB,CAAA;IACxB,iFAAiE,CAAA;IACjE,oDAAoC,CAAA;IACpC,2DAA2C,CAAA;IAC3C,oDAAoC,CAAA;IACpC,8CAA8B,CAAA;IAC9B,4CAA4B,CAAA;IAC5B,oDAAoC,CAAA;IACpC,8CAA8B,CAAA;IAC9B,oDAAoC,CAAA;IACpC,yDAAyC,CAAA;AAC7C,CAAC,EAZI,YAAY,KAAZ,YAAY,QAYhB;AAED,MAAa,mBAAmB;IAI5B,YAAY,cAAuB,EAAE,oBAA+B;QAChE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAuB;QACjC,OAAO,IAAI,mBAAmB,CAC1B,KAAK,CAAC,aAAa,CAAC,SAAS,EAC7B,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAC3C,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,IAAgB;QACzB,0DAA0D;QAE1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,aAAa,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CACjB,IAAgB,EAChB,GAA0B,EAC1B,OAAe,EACf,OAAO,GAAG,IAAI;QAEd,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,iBAAiB,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;QAEtD,kCAAkC;QAClC,oCAAoC;QACpC,IAAI,OAAO,IAAI,CAAC,aAAa,EAAE;YAC3B,yBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;SACpD;aAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,EAAE;YACnE,yBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;SACtD;IACL,CAAC;IAEO,UAAU,CAAC,IAAgB;QAC/B,IAAI,IAAI,YAAY,wBAAgB,EAAE;YAClC,IACI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,UAAU,EAC/B;gBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,SAAS,EACtB,kCAAkC,CACrC,CAAC;aACL;YAED,IACI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAChC;gBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,SAAS,EACtB,4CAA4C,CAC/C,CAAC;aACL;SACJ;IACL,CAAC;IAEO,aAAa,CAAC,IAAgB;QAClC,IAAI,IAAI,YAAY,wBAAW,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACpC,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,6BAA6B,EAC1C,kDAAkD,CACrD,CAAC;aACL;iBAAM,IACH,IAAI,CAAC,4BAA4B,GAAG,qBAAqB,EAC3D;gBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,6BAA6B,EAC1C,kDAAkD,CACrD,CAAC;aACL;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,eAAe,EAC5B,4BAA4B,CAC/B,CAAC;aACL;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClB,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,kBAAkB,EAC/B,+BAA+B,CAClC,CAAC;aACL;YAED,IACI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAC1B,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EACvC;gBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,eAAe,EAC5B,8BAA8B,IAAI,CAAC,OAAO,GAAG,CAChD,CAAC;aACL;YAED,IACI,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,YAAY;gBACjB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EACpD;gBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,YAAY,EACzB,qCAAqC,IAAI,CAAC,cAAc,EAAE,CAC7D,CAAC;aACL;SACJ;IACL,CAAC;IAEO,SAAS,CAAC,IAAgB;QAC9B,IAAI,IAAI,YAAY,mBAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,oBAAY,CAAC,EAAE;gBACtC,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,WAAW,EACxB,yBAAyB,CAC5B,CAAC;aACL;SACJ;IACL,CAAC;IAEO,WAAW,CAAC,IAAgB;QAChC,IAAI,IAAI,YAAY,kBAAS,EAAE;YAC3B,MAAM,CAAC,GACH,IAAI,CAAC,8BAAkF,CAAC;YAE5F,IAAI,CAAC,EAAE;gBACH,IACI,CAAC,CAAC,CAAC,eAAe;oBAClB,CAAC,CAAC,CAAC,iBAAiB;oBACpB,CAAC,CAAC,CAAC,gBAAgB;oBACnB,CAAC,CAAC,CAAC,qBAAqB,EAC1B;oBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,eAAe,EAC5B,wBAAwB,CAC3B,CAAC;iBACL;aACJ;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,IAAY;QACnC,+DAA+D;QAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C;QAED,OAAO,IAAA,uBAAS,EAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACpC,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,IAAY;QAC1C,OAAO,IAAA,uBAAS,EAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACpC,CAAC;IAEO,mBAAmB,CAAC,IAAgB;QACxC,IAAI,IAAI,YAAY,4BAAW,EAAE;YAC7B,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACjD,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,YAAY,EACzB,mCAAmC,CACtC,CAAC;aACL;SACJ;aAAM,IAAI,IAAI,YAAY,0BAAS,EAAE;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAkC,CAAC;YAE5D,IAAI,WAAW,IAAI,WAAW,CAAC,iBAAiB,EAAE;gBAC9C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEtB,IACI,IAAI,KAAK,aAAa;wBACtB,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAC/C;wBACE,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,IAAI,EACJ,qCAAqC,CACxC,CAAC;qBACL;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAEO,oBAAoB,CAAC,IAAgB;QACzC,IAAI,IAAI,YAAY,kBAAQ,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,eAAe,EAC5B,oCAAoC,CACvC,CAAC;aACL;SACJ;IACL,CAAC;IAEO,sBAAsB,CAAC,IAAgB;QAC3C,IAAI,IAAI,YAAY,uBAAY,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAGvB,CAAC;YACF,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;YAEvD,IAAI,CAAC,SAAS,EAAE;gBACZ,IAAI,CAAC,aAAa,CACd,IAAI,EACJ,YAAY,CAAC,iBAAiB,EAC9B,2CAA2C,CAC9C,CAAC;aACL;SACJ;IACL,CAAC;CACJ;AA7PD,kDA6PC"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { Stack, StackProps } from "aws-cdk-lib";
|
2
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
3
|
+
import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
|
4
|
+
import { ITopic } from "aws-cdk-lib/aws-sns";
|
5
|
+
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
6
|
+
import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
|
7
|
+
import { Construct } from "constructs";
|
8
|
+
import { TrafficType } from "../../../types/traffictype";
|
9
|
+
import { DBLambdaEnvironment } from "./lambda-configs";
|
10
|
+
export declare const SOLUTION_KEY = "Solution";
|
11
|
+
export declare const SSM_KEY_WARNING_TOPIC: string;
|
12
|
+
export declare const SSM_KEY_ALARM_TOPIC: string;
|
13
|
+
export interface StackConfiguration {
|
14
|
+
readonly shortName: string;
|
15
|
+
readonly secretId?: string;
|
16
|
+
readonly alarmTopicArn: string;
|
17
|
+
readonly warningTopicArn: string;
|
18
|
+
readonly logsDestinationArn?: string;
|
19
|
+
readonly vpcId?: string;
|
20
|
+
readonly lambdaDbSgId?: string;
|
21
|
+
readonly privateSubnetIds?: string[];
|
22
|
+
readonly availabilityZones?: string[];
|
23
|
+
readonly trafficType: TrafficType;
|
24
|
+
readonly production: boolean;
|
25
|
+
readonly stackProps: StackProps;
|
26
|
+
readonly stackFeatures?: {
|
27
|
+
readonly enableCanaries?: boolean;
|
28
|
+
readonly enableDocumentation?: boolean;
|
29
|
+
};
|
30
|
+
readonly whitelistedResources?: string[];
|
31
|
+
}
|
32
|
+
export declare class DigitrafficStack extends Stack {
|
33
|
+
readonly vpc?: IVpc;
|
34
|
+
readonly lambdaDbSg?: ISecurityGroup;
|
35
|
+
readonly alarmTopic: ITopic;
|
36
|
+
readonly warningTopic: ITopic;
|
37
|
+
readonly secret?: ISecret;
|
38
|
+
readonly configuration: StackConfiguration;
|
39
|
+
constructor(scope: Construct, id: string, configuration: StackConfiguration);
|
40
|
+
addAspects(): void;
|
41
|
+
createLambdaEnvironment(): DBLambdaEnvironment;
|
42
|
+
createDefaultLambdaEnvironment(dbApplication: string): DBLambdaEnvironment;
|
43
|
+
getSecret(): ISecret;
|
44
|
+
grantSecret(...lambdas: AWSFunction[]): void;
|
45
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/stack.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AACzD,iDAA+D;AAE/D,iDAAoD;AACpD,iDAAsD;AACtD,uEAAiE;AAGjE,mEAA8D;AAK9D,MAAM,QAAQ,GAAG,cAAc,CAAC;AACnB,QAAA,YAAY,GAAG,UAAU,CAAC;AACvC,MAAM,eAAe,GAAG,aAAa,CAAC;AAEzB,QAAA,qBAAqB,GAAG,GAAG,QAAQ,GAAG,eAAe,gBAAgB,CAAC;AACtE,QAAA,mBAAmB,GAAG,GAAG,QAAQ,GAAG,eAAe,cAAc,CAAC;AA2B/E,MAAa,gBAAiB,SAAQ,mBAAK;IASvC,YACI,KAAgB,EAChB,EAAU,EACV,aAAiC;QAEjC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,aAAa,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,2BAAM,CAAC,gBAAgB,CACjC,IAAI,EACJ,QAAQ,EACR,aAAa,CAAC,QAAQ,CACzB,CAAC;SACL;QAED,mEAAmE;QACnE,mDAAmD;QACnD,IAAI,aAAa,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,GAAG,GAAG,aAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1C,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;gBAChD,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE;aAC3D,CAAC,CAAC;SACN;QAED,oDAAoD;QACpD,IAAI,aAAa,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,uBAAa,CAAC,mBAAmB,CAC/C,IAAI,EACJ,YAAY,EACZ,aAAa,CAAC,YAAY,CAC7B,CAAC;SACL;QAED,IAAI,CAAC,UAAU,GAAG,eAAK,CAAC,YAAY,CAChC,IAAI,EACJ,YAAY,EACZ,yBAAe,CAAC,uBAAuB,CACnC,IAAI,EACJ,iBAAiB,EACjB,2BAAmB,CACtB,CAAC,WAAW,CAChB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,eAAK,CAAC,YAAY,CAClC,IAAI,EACJ,cAAc,EACd,yBAAe,CAAC,uBAAuB,CACnC,IAAI,EACJ,mBAAmB,EACnB,6BAAqB,CACxB,CAAC,WAAW,CAChB,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,UAAU;QACN,qBAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,2CAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,8BAA8B,CACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAC/B,CAAC;IACN,CAAC;IAED,8BAA8B,CAAC,aAAqB;QAChD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;YAC9B,CAAC,CAAC;gBACI,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACtC,cAAc,EAAE,aAAa;aAChC;YACH,CAAC,CAAC;gBACI,cAAc,EAAE,aAAa;aAChC,CAAC;IACZ,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,GAAG,OAAsB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACJ;AAnGD,4CAmGC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CfnSubscriptionFilter } from "aws-cdk-lib/aws-logs";
|
2
|
+
import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
|
3
|
+
import { DigitrafficStack } from "./stack";
|
4
|
+
import { Construct } from "constructs";
|
5
|
+
import { MonitoredFunction } from "./monitoredfunction";
|
6
|
+
/**
|
7
|
+
* Creates a subscription filter that subscribes to a Lambda Log Group and delivers the logs to another destination.
|
8
|
+
* https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
|
9
|
+
* @param lambda The Lambda function, needed to create a dependency
|
10
|
+
* @param lambdaName The Lambda name from which the Log Group name is derived
|
11
|
+
* @param logDestinationArn Destination for streamed logs
|
12
|
+
* @param stack CloudFormation stack
|
13
|
+
*/
|
14
|
+
export declare function createSubscription(lambda: AWSFunction, lambdaName: string, logDestinationArn: string | undefined, stack: Construct): CfnSubscriptionFilter | undefined;
|
15
|
+
export declare class DigitrafficLogSubscriptions {
|
16
|
+
constructor(stack: DigitrafficStack, ...lambdas: MonitoredFunction[]);
|
17
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/subscription.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAM7D;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAC9B,MAAmB,EACnB,UAAkB,EAClB,iBAAqC,EACrC,KAAgB;IAEhB,IAAI,iBAAiB,IAAI,SAAS,EAAE;QAChC,OAAO,SAAS,CAAC;KACpB;IACD,MAAM,MAAM,GAAG,IAAI,gCAAqB,CACpC,KAAK,EACL,GAAG,UAAU,kBAAkB,EAC/B;QACI,YAAY,EAAE,eAAe,UAAU,EAAE;QACzC,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,iBAAiB;KACpC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC;AAClB,CAAC;AAtBD,gDAsBC;AAED,MAAa,2BAA2B;IACpC,YAAY,KAAuB,EAAE,GAAG,OAA4B;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAI,gCAAqB,CACpC,KAAK,EACL,GAAG,MAAM,CAAC,SAAS,kBAAkB,EACrC;oBACI,YAAY,EAAE,eAAe,MAAM,CAAC,SAAS,EAAE;oBAC/C,aAAa,EAAE,EAAE;oBACjB,cAAc;iBACjB,CACJ,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAnBD,kEAmBC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
4
|
+
/**
|
5
|
+
* Creates a dns local zone and creates records for cluster endpoints and proxy endpoints.
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export declare class DbDnsStack extends Stack {
|
9
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration);
|
10
|
+
createDnsRecords(isc: InfraStackConfiguration): void;
|
11
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-dns-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-dns-stack.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAE7D,yDAKiC;AAEjC,gDAAwD;AACxD,yCAAqC;AACrC,qDAAgD;AAEhD,MAAM,kBAAkB,GAAG,sBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAa,UAAW,SAAQ,mBAAK;IACjC,YAAY,KAAgB,EAAE,EAAU,EAAE,GAA4B;QAClE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;YACb,GAAG,EAAE,GAAG,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,GAA4B;QACzC,MAAM,GAAG,GAAG,IAAA,uBAAS,EAAC,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,+BAAiB,CAAC,IAAI,EAAE,eAAe,EAAE;YACtD,QAAQ,EAAE,GAAG,CAAC,eAAe,GAAG,QAAQ;YACxC,GAAG;SACN,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,2BAAa,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,qBAAqB,GAAG,IAAA,yBAAW,EACrC,GAAG,CAAC,eAAe,EACnB,kBAAO,CAAC,iCAAiC,CAC5C,CAAC;QACF,MAAM,qBAAqB,GAAG,IAAA,yBAAW,EACrC,GAAG,CAAC,eAAe,EACnB,kBAAO,CAAC,kCAAkC,CAC7C,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EACnC,GAAG,CAAC,eAAe,EACnB,6BAAY,CAAC,wBAAwB,CACxC,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EACnC,GAAG,CAAC,eAAe,EACnB,6BAAY,CAAC,wBAAwB,CACxC,CAAC;QAEF,IAAI,uBAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YAChC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,SAAS,GAAG,CAAC,eAAe,QAAQ;YAChD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACtD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YAChC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,MAAM,GAAG,CAAC,eAAe,QAAQ;YAC7C,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACtD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;YACrC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,YAAY,GAAG,CAAC,eAAe,QAAQ;YACnD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACpD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;YACrC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,SAAS,GAAG,CAAC,eAAe,QAAQ;YAChD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACpD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CACJ;AApED,gCAoEC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { CfnDBProxyEndpoint, DatabaseProxy } from "aws-cdk-lib/aws-rds";
|
4
|
+
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
5
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
6
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
7
|
+
import { DbConfiguration } from "./db-stack";
|
8
|
+
/**
|
9
|
+
* A stack that creates a Database proxy.
|
10
|
+
*/
|
11
|
+
export declare class DbProxyStack extends Stack {
|
12
|
+
static PROXY_READER_EXPORT_NAME: string;
|
13
|
+
static PROXY_WRITER_EXPORT_NAME: string;
|
14
|
+
readonly isc: InfraStackConfiguration;
|
15
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: DbConfiguration);
|
16
|
+
createProxy(vpc: IVpc, secret: ISecret, configuration: DbConfiguration): DatabaseProxy;
|
17
|
+
createProxyEndpoints(vpc: IVpc, proxy: DatabaseProxy, securityGroupId: string): CfnDBProxyEndpoint;
|
18
|
+
setOutputs(configuration: DbConfiguration, proxy: DatabaseProxy, proxyEndpoint: CfnDBProxyEndpoint): void;
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-proxy-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-proxy-stack.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { AuroraPostgresEngineVersion, DatabaseCluster } from "aws-cdk-lib/aws-rds";
|
4
|
+
import { InstanceType } from "aws-cdk-lib/aws-ec2";
|
5
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
6
|
+
export interface DbConfiguration {
|
7
|
+
readonly secretArn: string;
|
8
|
+
readonly dbVersion: AuroraPostgresEngineVersion;
|
9
|
+
readonly dbInstanceType: InstanceType;
|
10
|
+
readonly snapshotIdentifier: string;
|
11
|
+
readonly instances: number;
|
12
|
+
readonly customParameterGroup: boolean;
|
13
|
+
readonly securityGroupId: string;
|
14
|
+
readonly dbProxyName?: string;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* How to upgrade major version?
|
18
|
+
* 0. Set correct SG for db-stack and db-proxy-stack(this step will be removed in the future)
|
19
|
+
* 1. Update db-stack WITHOUT parameter group
|
20
|
+
* 2. Upgrade extensions by hand
|
21
|
+
* 3. Upgrade database from the AWS console
|
22
|
+
* 4. Update db-stack with the upgraded version and custom parameter group
|
23
|
+
*/
|
24
|
+
export declare class DbStack extends Stack {
|
25
|
+
static CLUSTER_IDENTIFIER_EXPORT_NAME: string;
|
26
|
+
static CLUSTER_READ_ENDPOINT_EXPORT_NAME: string;
|
27
|
+
static CLUSTER_WRITE_ENDPOINT_EXPORT_NAME: string;
|
28
|
+
static CLUSTER_PORT: number;
|
29
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: DbConfiguration);
|
30
|
+
createAuroraCluster(isc: InfraStackConfiguration, configuration: DbConfiguration): DatabaseCluster;
|
31
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-stack.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"intra-stack-configuration.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/intra-stack-configuration.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { Vpc } from "aws-cdk-lib/aws-ec2";
|
4
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
5
|
+
export interface NetworkConfiguration {
|
6
|
+
readonly vpcName: string;
|
7
|
+
readonly cidr: string;
|
8
|
+
}
|
9
|
+
export declare class NetworkStack extends Stack {
|
10
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: NetworkConfiguration);
|
11
|
+
createVpc(configuration: NetworkConfiguration): Vpc;
|
12
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"network-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/network-stack.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAEpC,iDAAsD;AAQtD,MAAa,YAAa,SAAQ,mBAAK;IACnC,YACI,KAAgB,EAChB,EAAU,EACV,GAA4B,EAC5B,aAAmC;QAEnC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;YACb,GAAG,EAAE,GAAG,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,aAAmC;QACzC,OAAO,IAAI,aAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE;YACnC,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,iBAAiB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;YAC/C,kBAAkB,EAAE,IAAI;YACxB,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,mBAAmB,EAAE;gBACjB;oBACI,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,oBAAU,CAAC,MAAM;iBAChC;gBACD;oBACI,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,oBAAU,CAAC,gBAAgB;iBAC1C;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;CACJ;AAnCD,oCAmCC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { IApiKey, RestApi } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
/**
|
3
|
+
* Creates an usage plan for a REST API with a single API key
|
4
|
+
* @param api The REST API
|
5
|
+
* @param apiKeyId Id for the API key, this is a surrogate id for CDK, not displayed anywhere
|
6
|
+
* @param apiKeyName Name for the API key, this is displayed in the AWS Console
|
7
|
+
* @deprecated Creates randomized API key names, use createDefaultUsagePlan instead
|
8
|
+
*/
|
9
|
+
export declare function createUsagePlan(api: RestApi, apiKeyId: string, apiKeyName: string): IApiKey;
|
10
|
+
/**
|
11
|
+
* Creates a default usage plan for a REST API with a single API key
|
12
|
+
* @param api The REST API
|
13
|
+
* @param apiName Name of the api. Will generate key: apiName + ' API Key' and plan: apiName + ' API Usage Plan'
|
14
|
+
* @param value Optional value for the API key
|
15
|
+
*/
|
16
|
+
export declare function createDefaultUsagePlan(api: RestApi, apiName: string, value?: string): IApiKey;
|