@digitraffic/common 2022.10.31-4 → 2022.11.1-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.map +1 -0
- package/dist/aws/infra/api/response.d.ts +22 -0
- package/dist/aws/infra/api/response.js.map +1 -0
- package/dist/aws/infra/api/responses.d.ts +39 -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 +21 -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/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 +72 -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.map +1 -0
- package/dist/aws/infra/stack/rest_apis.d.ts +41 -0
- package/dist/aws/infra/stack/rest_apis.js +27 -31
- 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 +3 -2
- 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/usage-plans.d.ts +15 -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 +4 -1
- 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.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 +2 -1
- 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 +6 -8
- 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 +5 -1
- 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 +1 -1
- package/src/aws/infra/stack/rest_apis.ts +144 -91
- package/src/aws/infra/stack/stack-checking-aspect.ts +5 -2
- package/src/aws/runtime/environment.ts +5 -1
- package/src/aws/types/mediatypes.ts +2 -1
- package/src/database/database.ts +9 -10
- package/src/test/db-testutils.ts +5 -0
- package/.editorconfig +0 -9
- package/.eslintignore +0 -4
- package/.eslintrc.json +0 -27
- package/.github/CODEOWNERS +0 -2
- package/.github/workflows/build.yml +0 -36
- package/.github/workflows/eslint.yml +0 -38
- package/.github/workflows/mirror.yml +0 -15
- package/.gitignore +0 -29
- package/.husky/pre-commit +0 -4
- package/.prettierrc.json +0 -10
- package/jest.config.js +0 -15
- package/test/marine/id_utils.test.ts +0 -57
- package/test/promise/promise.test.ts +0 -143
- package/test/secrets/dbsecret.test.ts +0 -59
- package/test/secrets/secret-holder.test.ts +0 -143
- package/test/secrets/secret.test.ts +0 -49
- package/test/test/httpserver.test.ts +0 -128
- package/test/utils/date-utils.test.ts +0 -28
- package/test/utils/geometry.test.ts +0 -29
- package/test/utils/utils.test.ts +0 -64
- package/tsconfig.eslint.json +0 -4
- package/tsconfig.json +0 -22
- package/yarn.lock +0 -4060
@@ -0,0 +1,21 @@
|
|
1
|
+
import { IntegrationResponse, LambdaIntegration } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
import { IFunction } from "aws-cdk-lib/aws-lambda";
|
3
|
+
import { MediaType } from "../../types/mediatypes";
|
4
|
+
declare type ParameterType = 'path' | 'querystring';
|
5
|
+
interface ApiParameter {
|
6
|
+
type: ParameterType;
|
7
|
+
name: string;
|
8
|
+
}
|
9
|
+
export declare class DigitrafficIntegration {
|
10
|
+
readonly lambda: IFunction;
|
11
|
+
readonly mediaType: MediaType;
|
12
|
+
readonly parameters: ApiParameter[];
|
13
|
+
constructor(lambda: IFunction, mediaType?: MediaType);
|
14
|
+
addPathParameter(...names: string[]): DigitrafficIntegration;
|
15
|
+
addQueryParameter(...names: string[]): DigitrafficIntegration;
|
16
|
+
build(): LambdaIntegration;
|
17
|
+
createRequestParameters(): Record<string, string>;
|
18
|
+
createRequestTemplates(): Record<string, string>;
|
19
|
+
createResponses(): IntegrationResponse[];
|
20
|
+
}
|
21
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/integration.ts"],"names":[],"mappings":";;;AAAA,+DAAuG;AAEvG,uDAAiD;AACjD,qGAA8F;AAS9F,MAAa,sBAAsB;IAM/B,YAAY,MAAiB,EAAE,SAAS,GAAG,sBAAS,CAAC,UAAU;QAFtD,eAAU,GAAmB,EAAE,CAAC;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,GAAG,KAAe;QAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,GAAG,KAAe;QAChC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO,IAAI,kCAAiB,CAAC,IAAI,CAAC,MAAM,EAAE;YACtC,KAAK,EAAE,KAAK;YACZ,oBAAoB;YACpB,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC3F,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzF,mBAAmB,EAAE,oCAAmB,CAAC,aAAa;SACzD,CAAC,CAAC;IACP,CAAC;IAED,uBAAuB;QACnB,MAAM,iBAAiB,GAA2B,EAAE,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAuB,EAAE,EAAE;YAChD,iBAAiB,CAAC,uBAAuB,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,kBAAkB,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACxI,CAAC,CAAC,CAAC;QAEH,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,sBAAsB;QAClB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAuB,EAAE,EAAE;YAChD,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,yCAAyC,SAAS,CAAC,IAAI,KAAK,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,CAAC,sBAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAC5D,CAAC;IACN,CAAC;IAED,eAAe;QACX,OAAO,CAAC,iEAA8B,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC;CACJ;AA5DD,wDA4DC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import apigateway = require('aws-cdk-lib/aws-apigateway');
|
2
|
+
import { MediaType } from "../../types/mediatypes";
|
3
|
+
/**
|
4
|
+
* This is velocity-script, that assumes the response to be LambdaResponse(status and body).
|
5
|
+
* It will always return the body and status, but if status in something else than 200 OK the content-type
|
6
|
+
* will be overridden to text/plain. (it's assumed, that lambda will return error text).
|
7
|
+
*
|
8
|
+
* If fileName is set, then Content-Disposition-header will be set to use it
|
9
|
+
*/
|
10
|
+
export declare const RESPONSE_DEFAULT_LAMBDA = "#set($inputRoot = $input.path('$'))\n$inputRoot.body\n#if ($inputRoot.status != 200)\n#set ($context.responseOverride.status = $inputRoot.status)\n#set ($context.responseOverride.header.Content-Type = 'text/plain')\n#end\n#set ($context.responseOverride.header.Access-Control-Allow-Origin = '*')\n#if (\"$!inputRoot.fileName\" != \"\")\n#set ($disposition = 'attachment; filename=\"FN\"')\n#set ($context.responseOverride.header.Content-Disposition = $disposition.replaceAll('FN', $inputRoot.fileName))\n#end\n";
|
11
|
+
export declare const MessageModel: {
|
12
|
+
contentType: MediaType;
|
13
|
+
modelName: string;
|
14
|
+
schema: apigateway.JsonSchema;
|
15
|
+
};
|
16
|
+
export declare const NotFoundResponse: string;
|
17
|
+
export declare const BadRequestResponseTemplate: Record<string, string>;
|
18
|
+
export declare const NotFoundResponseTemplate: Record<string, string>;
|
19
|
+
export declare const XmlResponseTemplate: Record<string, string>;
|
20
|
+
export declare const SvgResponseTemplate: Record<string, string>;
|
21
|
+
export declare const InternalServerErrorResponseTemplate: Record<string, string>;
|
22
|
+
export declare function createResponses<T>(key: MediaType, value: T): Record<string, T>;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/response.ts"],"names":[],"mappings":";;;AAAA,yDAA0D;AAC1D,uDAAiD;AAEjD;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG;;;;;;;;;;;CAWtC,CAAC;AAEF,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,aAAa;AACb,MAAM,aAAa,GAA0B;IACzC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM;IAC3C,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;IACtC,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACR,OAAO,EAAE;YACL,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;YACtC,WAAW,EAAE,kBAAkB;SAClC;KACJ;CACJ,CAAC;AAEF,aAAa;AACA,QAAA,YAAY,GAAG;IACxB,WAAW,EAAE,sBAAS,CAAC,gBAAgB;IACvC,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,aAAa;CACxB,CAAC;AAEF,MAAM,eAAe,GAAG,WAAW,CAAC;AACvB,QAAA,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;AAE3E,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAC3C,MAAM,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,0BAA0B,EAAC,CAAC,CAAC;AAE1F,MAAM,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAE3D,QAAA,0BAA0B,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAC7F,QAAA,wBAAwB,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,wBAAgB,CAAC,CAAC;AACzF,QAAA,mBAAmB,GAAG,eAAe,CAAC,sBAAS,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;AACvF,QAAA,mBAAmB,GAAG,eAAe,CAAC,sBAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACjF,QAAA,mCAAmC,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;AAE5H,SAAgB,eAAe,CAAI,GAAc,EAAE,KAAQ;IACvD,MAAM,GAAG,GAAsB,EAAE,CAAC;IAElC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAEjB,OAAO,GAAG,CAAC;AACf,CAAC;AAND,0CAMC"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { LambdaIntegration, MethodResponse, IntegrationResponse, PassthroughBehavior } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
|
3
|
+
import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
|
4
|
+
import { MediaType } from "../../types/mediatypes";
|
5
|
+
export declare const RESPONSE_200_OK: IntegrationResponse;
|
6
|
+
export declare const RESPONSE_400_BAD_REQUEST: IntegrationResponse;
|
7
|
+
export declare const RESPONSE_500_SERVER_ERROR: IntegrationResponse;
|
8
|
+
export declare const RESPONSE_CORS_INTEGRATION: {
|
9
|
+
responseParameters: {
|
10
|
+
"method.response.header.Access-Control-Allow-Origin": string;
|
11
|
+
};
|
12
|
+
};
|
13
|
+
export declare const RESPONSE_404_NOT_FOUND: {
|
14
|
+
statusCode: string;
|
15
|
+
selectionPattern: string;
|
16
|
+
responseTemplates: Record<string, string>;
|
17
|
+
};
|
18
|
+
export declare function methodResponse(status: string, contentType: MediaType, model: IModel, parameters?: Record<string, boolean>): MethodResponse;
|
19
|
+
export declare function corsMethod(response: MethodResponse): MethodResponse;
|
20
|
+
interface IntegrationOptions {
|
21
|
+
requestParameters?: {
|
22
|
+
[dest: string]: string;
|
23
|
+
};
|
24
|
+
requestTemplates?: {
|
25
|
+
[contentType: string]: string;
|
26
|
+
};
|
27
|
+
responses?: IntegrationResponse[];
|
28
|
+
disableCors?: boolean;
|
29
|
+
xml?: boolean;
|
30
|
+
passthroughBehavior?: PassthroughBehavior;
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Creates a default Lambda integration for a REST API resource _root_
|
34
|
+
* @param lambdaFunction The Lambda function
|
35
|
+
* @param options Options
|
36
|
+
*/
|
37
|
+
export declare function defaultIntegration(lambdaFunction: AWSFunction, options?: IntegrationOptions): LambdaIntegration;
|
38
|
+
export declare function getResponse(response: IntegrationResponse, options?: IntegrationOptions): IntegrationResponse;
|
39
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/responses.ts"],"names":[],"mappings":";;;AAAA,yCAMoB;AACpB,+DAKoC;AAGpC,+CAI4B;AAGf,QAAA,eAAe,GAAwB;IAChD,UAAU,EAAE,KAAK;CACpB,CAAC;AAEW,QAAA,wBAAwB,GAAwB;IACzD,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,4BAAmB;IACrC,iBAAiB,EAAE,qCAA0B;CAChD,CAAC;AAEW,QAAA,yBAAyB,GAAwB;IAC1D,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,sBAAa;IAC/B,iBAAiB,EAAE,8CAAmC;CACzD,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,iBAAiB,EAAE,8BAAmB;CACzC,CAAC;AAEW,QAAA,yBAAyB,GAAG;IACrC,kBAAkB,EAAE;QAChB,oDAAoD,EAAE,KAAK;KAC9D;CACJ,CAAC;AAEW,QAAA,sBAAsB,GAAG;IAClC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,0BAAiB;IACnC,iBAAiB,EAAE,mCAAwB;CAC9C,CAAC;AAEF,SAAgB,cAAc,CAC1B,MAAc,EACd,WAAsB,EACtB,KAAa,EACb,UAAoC;IAEpC,OAAO;QACH,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,IAAA,0BAAe,EAAC,WAAW,EAAE,KAAK,CAAC;QACnD,kBAAkB,EAAE,UAAU,IAAI,EAAE;KACvC,CAAC;AACN,CAAC;AAXD,wCAWC;AAED,SAAgB,UAAU,CAAC,QAAwB;IAC/C,OAAO;QACH,GAAG,QAAQ;QACX,GAAG;YACC,kBAAkB,EAAE;gBAChB,oDAAoD,EAAE,IAAI;aAC7D;SACJ;KACJ,CAAC;AACN,CAAC;AATD,gCASC;AAWD;;;;GAIG;AACH,SAAgB,kBAAkB,CAC9B,cAA2B,EAC3B,OAA4B;IAE5B,OAAO,IAAI,kCAAiB,CAAC,cAAc,EAAE;QACzC,KAAK,EAAE,KAAK;QACZ,oBAAoB,EAAE,OAAO,EAAE,SAAS,IAAI;YACxC,WAAW,CAAC,uBAAe,EAAE,OAAO,CAAC;YACrC,WAAW,CAAC,gCAAwB,EAAE,OAAO,CAAC;YAC9C,WAAW,CAAC,8BAAsB,EAAE,OAAO,CAAC;YAC5C,WAAW,CAAC,iCAAyB,EAAE,OAAO,CAAC;SAClD;QACD,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE;QACnD,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE;QACjD,mBAAmB,EACf,OAAO,EAAE,mBAAmB,IAAI,oCAAmB,CAAC,aAAa;KACxE,CAAC,CAAC;AACP,CAAC;AAjBD,gDAiBC;AAED,SAAgB,WAAW,CACvB,QAA6B,EAC7B,OAA4B;IAE5B,IAAI,OAAO,EAAE,GAAG,EAAE;QACd,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;KAC/C;IACD,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;QACvB,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,iCAAyB,EAAE,CAAC;KAC5D;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAZD,kCAYC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { MockIntegration, Resource } from "aws-cdk-lib/aws-apigateway";
|
2
|
+
import { MediaType } from "../../types/mediatypes";
|
3
|
+
/**
|
4
|
+
* Static integration, that returns the given response with given mediaType from given resource.
|
5
|
+
*
|
6
|
+
* @param resource
|
7
|
+
* @param mediaType
|
8
|
+
* @param response
|
9
|
+
*/
|
10
|
+
export declare class DigitrafficStaticIntegration extends MockIntegration {
|
11
|
+
constructor(resource: Resource, mediaType: MediaType, response: string, enableCors?: boolean, apiKeyRequired?: boolean);
|
12
|
+
static json<K>(resource: Resource, response: K, enableCors?: boolean, apiKeyRequired?: boolean): DigitrafficStaticIntegration;
|
13
|
+
private static createIntegrationResponse;
|
14
|
+
private static createMethodResponse;
|
15
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"static-integration.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/static-integration.ts"],"names":[],"mappings":";;;AAAA,+DAA0F;AAC1F,uDAAiD;AACjD,2CAAkE;AAElE,MAAM,wBAAwB,GAAG;;EAE/B,CAAC;AAEH,MAAM,mBAAmB,GAAG;IACxB,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAa,4BAA6B,SAAQ,gCAAe;IAC7D,YACI,QAAkB,EAAE,SAAoB,EAAE,QAAgB,EAAE,UAAU,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI;QAEpG,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAEpH,KAAK,CAAC;YACF,mBAAmB,EAAE,oCAAmB,CAAC,iBAAiB;YAC1D,gBAAgB,EAAE;gBACd,CAAC,SAAS,CAAC,EAAE,wBAAwB;aACxC;YACD,oBAAoB,EAAE,CAAC,mBAAmB,CAAC;SAC9C,CAAC,CAAC;QAEH,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;gBACjC,cAAc;gBACd,eAAe,EAAE,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;aACnF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,IAAI,CAAI,QAAkB,EAAE,QAAW,EAAE,UAAU,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI;QACpF,OAAO,IAAI,4BAA4B,CACnC,QAAQ,EAAE,sBAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,CAC7F,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,QAAgB,EAAE,SAAoB,EAAE,UAAmB;QAChG,MAAM,mBAAmB,GAAG;YACxB,UAAU,EAAE,KAAK;YACjB,iBAAiB,EAAE;gBACf,CAAC,SAAS,CAAC,EAAE,QAAQ;aACxB;SACJ,CAAC;QAEF,OAAO,UAAU,CAAC,CAAC,CAAC,EAAC,GAAG,mBAAmB,EAAE,GAAG,qCAAyB,EAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrG,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,UAAmB;QACnD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAA,sBAAU,EAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC9E,CAAC;CACJ;AA1CD,oEA0CC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { Construct } from "constructs";
|
2
|
+
import { CanaryParameters } from "./canary-parameters";
|
3
|
+
import { Canary } from "@aws-cdk/aws-synthetics-alpha";
|
4
|
+
export declare class CanaryAlarm {
|
5
|
+
constructor(stack: Construct, canary: Canary, params: CanaryParameters);
|
6
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-alarm.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-alarm.ts"],"names":[],"mappings":";;;AAEA,+DAAqE;AAErE,+EAA6D;AAC7D,iDAA0C;AAE1C,MAAa,WAAW;IACpB,YAAY,KAAgB,EACxB,MAAc,EACd,MAAwB;QACxB,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC;YAEpE,MAAM,KAAK,GAAG,IAAI,sBAAK,CAAC,KAAK,EAAE,SAAS,EAAE;gBACtC,SAAS;gBACT,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE;gBACrC,iBAAiB,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,IAAI,CAAC;gBACtD,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,GAAG;gBACzC,kBAAkB,EAAE,mCAAkB,CAAC,mBAAmB;aAC7D,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACxB,KAAK,CAAC,cAAc,CAAC,IAAI,kCAAS,CAAC,eAAK,CAAC,YAAY,CAAC,KAAK,EACvD,GAAG,SAAS,SAAS,EACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAChC;SACJ;IACL,CAAC;CACJ;AAvBD,kCAuBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-keys.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,UAAU,CAAC;AACzB,QAAA,YAAY,GAAG,UAAU,CAAC;AAC1B,QAAA,UAAU,GAAG,QAAQ,CAAC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Schedule } from "@aws-cdk/aws-synthetics-alpha";
|
2
|
+
/** Optional env parameters for canary */
|
3
|
+
declare type CanaryEnv = Record<string, string>;
|
4
|
+
export declare type CanaryParameters = {
|
5
|
+
readonly name: string;
|
6
|
+
readonly schedule?: Schedule;
|
7
|
+
readonly secret?: string;
|
8
|
+
readonly handler: string;
|
9
|
+
readonly alarm?: {
|
10
|
+
readonly alarmName?: string;
|
11
|
+
readonly description?: string;
|
12
|
+
readonly evalutionPeriods?: number;
|
13
|
+
readonly threshold?: number;
|
14
|
+
readonly topicArn?: string;
|
15
|
+
};
|
16
|
+
readonly canaryEnv?: CanaryEnv;
|
17
|
+
};
|
18
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-parameters.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-parameters.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-role.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-role.ts"],"names":[],"mappings":";;;AAAA,iDAAiH;AAGjH,MAAM,2BAA2B,GAAyB;IACtD,OAAO,EAAE;QACL,sBAAsB;QACtB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,yBAAyB;KAC5B;IACD,SAAS,EAAE,CAAC,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,0BAA0B,GAAyB;IACrD,OAAO,EAAE;QACL,0BAA0B;KAC7B;IACD,SAAS,EAAE,CAAC,GAAG,CAAC;IAChB,UAAU,EAAE;QACR,cAAc,EAAE;YACZ,sBAAsB,EAAE,sBAAsB;SACjD;KACJ;CACJ,CAAC;AAEF,MAAa,qBAAsB,SAAQ,cAAI;IAC3C,YAAY,KAAgB,EAAE,UAAkB;QAC5C,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,EAAE;YACtC,SAAS,EAAE,IAAI,0BAAgB,CAAC,sBAAsB,CAAC;YACvD,eAAe,EAAE;gBACb,uBAAa,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;aAC3E;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,kBAAkB;QACd,gBAAgB;QAChB,6DAA6D;QAC7D,QAAQ;QACR,IAAI,CAAC,gBAAgB,CAAC,uBAAa,CAAC,wBAAwB,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApBD,sDAoBC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { Canary } from "@aws-cdk/aws-synthetics-alpha";
|
2
|
+
import { Role } from "aws-cdk-lib/aws-iam";
|
3
|
+
import { CanaryParameters } from "./canary-parameters";
|
4
|
+
import { Construct } from "constructs";
|
5
|
+
import { LambdaEnvironment } from "../stack/lambda-configs";
|
6
|
+
export declare class DigitrafficCanary extends Canary {
|
7
|
+
constructor(scope: Construct, canaryName: string, role: Role, params: CanaryParameters, environmentVariables: LambdaEnvironment);
|
8
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AACvC,wEAMuC;AAEvC,iDAA6C;AAK7C,MAAa,iBAAkB,SAAQ,6BAAM;IACzC,YACI,KAAgB,EAChB,UAAkB,EAClB,IAAU,EACV,MAAwB,EACxB,oBAAuC;QAEvC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE;YACrB,OAAO,EAAE,8BAAO,CAAC,+BAA+B;YAChD,IAAI;YACJ,IAAI,EAAE,2BAAI,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,IAAI,gCAAS,CAAC,MAAM,EAAE;oBACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;iBACzC,CAAC;gBACF,OAAO,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC;YACF,oBAAoB,EAAE;gBAClB,GAAG,oBAAoB;gBACvB,GAAG,MAAM,EAAE,SAAS;aACvB;YACD,UAAU;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,+BAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACnE,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,0BAAW,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AA/BD,8CA+BC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Role } from "aws-cdk-lib/aws-iam";
|
2
|
+
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
3
|
+
import { CanaryParameters } from "./canary-parameters";
|
4
|
+
import { DigitrafficCanary } from "./canary";
|
5
|
+
import { DigitrafficStack } from "../stack/stack";
|
6
|
+
export declare class DatabaseCanary extends DigitrafficCanary {
|
7
|
+
constructor(stack: DigitrafficStack, role: Role, secret: ISecret, params: CanaryParameters);
|
8
|
+
static create(stack: DigitrafficStack, role: Role, params: CanaryParameters): DatabaseCanary;
|
9
|
+
/**
|
10
|
+
*
|
11
|
+
* @param stack
|
12
|
+
* @param role
|
13
|
+
* @param name name of the typescipt file without -db -suffix. Max len is 10 char if @param canaryName is not given.
|
14
|
+
* @param params
|
15
|
+
* @param canaryName Optional name for canary if multiple canaries is made from same ${name}-db.ts canary file.
|
16
|
+
*/
|
17
|
+
static createV2(stack: DigitrafficStack, role: Role, name: string, params?: Partial<CanaryParameters>, canaryName?: string): DatabaseCanary;
|
18
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database-canary.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/database-canary.ts"],"names":[],"mappings":";;;AAEA,+DAAuD;AACvD,uDAAkD;AAClD,6CAAuC;AAGvC,qCAA6C;AAG7C,MAAa,cAAe,SAAQ,0BAAiB;IACjD,YACI,KAAuB,EACvB,IAAU,EACV,MAAe,EACf,MAAwB;QAExB,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC;QACvC,MAAM,oBAAoB,GAAG,KAAK,CAAC,8BAA8B,CAC7D,cAAc,UAAU,EAAE,CAC7B,CAAC;QAEF,+DAA+D;QAC/D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,0BAAS,EAAE;YAC7C,MAAM,SAAS,GACX,KAAK,CAAC,GAAG,KAAK,SAAS;gBACnB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEpE,MAAM,gBAAgB,GAClB,KAAK,CAAC,UAAU,KAAK,SAAS;gBAC1B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAE7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;gBAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK;gBACvB,gBAAgB;gBAChB,SAAS;aACZ,CAAC;SACL;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CACT,KAAuB,EACvB,IAAU,EACV,MAAwB;QAExB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3C,GAAG;gBACC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;gBACpC,QAAQ,EAAE,qBAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,UAAU;aACpC;YACD,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CACX,KAAuB,EACvB,IAAU,EACV,IAAY,EACZ,SAAoC,EAAE,EACtC,UAAU,GAAG,IAAI;QAEjB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3C,GAAG;gBACC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;gBACpC,QAAQ,EAAE,qBAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,IAAI,aAAa;gBAC7B,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACH,SAAS,EACL,UAAU,KAAK,IAAI;wBACf,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,WAAW;wBAC7C,CAAC,CAAC,GAAG,UAAU,WAAW;oBAClC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa;iBAC9C;aACJ;YACD,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;CACJ;AAvFD,wCAuFC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
declare abstract class DatabaseCheck<T> {
|
2
|
+
readonly name: string;
|
3
|
+
readonly sql: string;
|
4
|
+
failed: boolean;
|
5
|
+
protected constructor(name: string, sql: string);
|
6
|
+
abstract check(value: T): void;
|
7
|
+
}
|
8
|
+
interface BaseResponse {
|
9
|
+
}
|
10
|
+
export declare class DatabaseChecker {
|
11
|
+
credentialsFunction: () => Promise<void>;
|
12
|
+
checks: DatabaseCheck<BaseResponse>[];
|
13
|
+
private constructor();
|
14
|
+
static createForProxy(): DatabaseChecker;
|
15
|
+
static createForRds(): DatabaseChecker;
|
16
|
+
one(name: string, sql: string): this;
|
17
|
+
empty(name: string, sql: string): this;
|
18
|
+
notEmpty(name: string, sql: string): this;
|
19
|
+
expect(): Promise<string>;
|
20
|
+
}
|
21
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database-checker.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/database-checker.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Construct } from "constructs";
|
2
|
+
import { CanaryParameters } from "./canary-parameters";
|
3
|
+
import { Role } from "aws-cdk-lib/aws-iam";
|
4
|
+
import { DigitrafficCanary } from "./canary";
|
5
|
+
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
6
|
+
import { DigitrafficStack } from "../stack/stack";
|
7
|
+
import { DigitrafficRestApi } from "../stack/rest_apis";
|
8
|
+
export interface UrlCanaryParameters extends CanaryParameters {
|
9
|
+
readonly hostname: string;
|
10
|
+
readonly apiKeyId?: string;
|
11
|
+
}
|
12
|
+
export declare class UrlCanary extends DigitrafficCanary {
|
13
|
+
constructor(stack: Construct, role: Role, params: UrlCanaryParameters, secret?: ISecret);
|
14
|
+
static create(stack: DigitrafficStack, role: Role, publicApi: DigitrafficRestApi, params: Partial<UrlCanaryParameters>): UrlCanary;
|
15
|
+
static getApiKey(publicApi: DigitrafficRestApi): string | undefined;
|
16
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"url-canary.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/url-canary.ts"],"names":[],"mappings":";;;AAGA,qCAA6C;AAK7C,+CAAsE;AAOtE,MAAa,SAAU,SAAQ,0BAAiB;IAC5C,YACI,KAAgB,EAChB,IAAU,EACV,MAA2B,EAC3B,MAAgB;QAEhB,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC;QACxC,MAAM,oBAAoB,GAAsB,EAAE,CAAC;QACnD,oBAAoB,CAAC,0BAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAErD,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,oBAAoB,CAAC,wBAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;SACpD;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,oBAAoB,CAAC,yBAAW,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;SACvD;QAED,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC1B;QAED,+DAA+D;QAC/D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,MAAM,CACT,KAAuB,EACvB,IAAU,EACV,SAA6B,EAC7B,MAAoC;QAEpC,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;YAC9B,GAAG;gBACC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,UAAU;gBACjC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;gBAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACtC;YACD,GAAG,MAAM;SACW,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,SAA6B;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC;QAEpC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,SAAS,CAAC;SACpB;QAED,2BAA2B;QAC3B,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;CACJ;AA1DD,8BA0DC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { IncomingMessage } from "http";
|
3
|
+
import { MediaType } from "../../types/mediatypes";
|
4
|
+
import { FeatureCollection } from "geojson";
|
5
|
+
export declare const API_KEY_HEADER = "x-api-key";
|
6
|
+
declare type CheckerFunction = (Res: IncomingMessage) => void;
|
7
|
+
declare type JsonCheckerFunction<T> = (json: T, body: string, message: IncomingMessage) => void;
|
8
|
+
export declare class UrlChecker {
|
9
|
+
private readonly requestOptions;
|
10
|
+
constructor(hostname: string, apiKey?: string);
|
11
|
+
static create(hostname: string, apiKeyId: string): Promise<UrlChecker>;
|
12
|
+
static createV2(): Promise<UrlChecker>;
|
13
|
+
expectStatus<T>(statusCode: number, url: string, callback: JsonCheckerFunction<T>): Promise<void>;
|
14
|
+
expect200<T>(url: string, ...callbacks: JsonCheckerFunction<T>[]): Promise<void>;
|
15
|
+
expect404(url: string): Promise<void>;
|
16
|
+
expect400(url: string): Promise<void>;
|
17
|
+
expect403WithoutApiKey(url: string, mediaType?: MediaType): Promise<void>;
|
18
|
+
done(): string;
|
19
|
+
}
|
20
|
+
export declare class ResponseChecker {
|
21
|
+
private readonly contentType;
|
22
|
+
private checkCors;
|
23
|
+
constructor(contentType: string);
|
24
|
+
static forJson(): ResponseChecker;
|
25
|
+
static forCSV(): ResponseChecker;
|
26
|
+
static forGeojson(): ResponseChecker;
|
27
|
+
static forJpeg(): ResponseChecker;
|
28
|
+
check(): CheckerFunction;
|
29
|
+
checkJson<T>(fn: (json: T, body: string, res: IncomingMessage) => void): CheckerFunction;
|
30
|
+
responseChecker(fn: (body: string, res: IncomingMessage) => void): CheckerFunction;
|
31
|
+
}
|
32
|
+
export declare class ContentChecker {
|
33
|
+
static checkJson<T>(fn: (json: T, body: string, res: IncomingMessage) => void): CheckerFunction;
|
34
|
+
static checkResponse(fn: (body: string, res: IncomingMessage) => void): CheckerFunction;
|
35
|
+
}
|
36
|
+
export declare class ContentTypeChecker {
|
37
|
+
static checkContentType(contentType: MediaType): (res: IncomingMessage) => void;
|
38
|
+
}
|
39
|
+
export declare class GeoJsonChecker {
|
40
|
+
static validFeatureCollection(fn?: (json: FeatureCollection) => void): CheckerFunction;
|
41
|
+
}
|
42
|
+
export declare class HeaderChecker {
|
43
|
+
static checkHeaderExists(headerName: string): CheckerFunction;
|
44
|
+
static checkHeaderMissing(headerName: string): CheckerFunction;
|
45
|
+
}
|
46
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"url-checker.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/url-checker.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { Construct } from "constructs";
|
2
|
+
import { Resource } from "aws-cdk-lib/aws-apigateway";
|
3
|
+
/**
|
4
|
+
* Add description to a query parameter
|
5
|
+
* @param name query parameter name
|
6
|
+
* @param description query parameter description
|
7
|
+
* @param resource REST API resource
|
8
|
+
* @param stack CloudFormation stack
|
9
|
+
*
|
10
|
+
* @deprecated Use DigitrafficRestApi.documentResource
|
11
|
+
*/
|
12
|
+
export declare function addQueryParameterDescription(name: string, description: string, resource: Resource, stack: Construct): void;
|
13
|
+
/**
|
14
|
+
* Add a documentation part to a method
|
15
|
+
* @param methodDescription
|
16
|
+
* @param documentationProperties
|
17
|
+
* @param resource REST API resource
|
18
|
+
* @param stack CloudFormation stack
|
19
|
+
*/
|
20
|
+
export declare function addDocumentation(methodDescription: string, documentationProperties: object, resource: Resource, stack: Construct): void;
|
21
|
+
/**
|
22
|
+
* Adds OpenAPI tags to an API method
|
23
|
+
* @param methodDescription Description of API method
|
24
|
+
* @param tags OpenAPI tags
|
25
|
+
* @param resource REST API resource
|
26
|
+
* @param stack CloudFormation stack
|
27
|
+
*/
|
28
|
+
export declare function addTags(methodDescription: string, tags: string[], resource: Resource, stack: Construct): void;
|
29
|
+
/**
|
30
|
+
* Adds OpenAPI tags and a method summary to an API method
|
31
|
+
*
|
32
|
+
* @deprecated Use DigitrafficRestApi.documentResource
|
33
|
+
*
|
34
|
+
* @param methodDescription Description of API method
|
35
|
+
* @param tags OpenAPI tags
|
36
|
+
* @param summary OpenAPI summary
|
37
|
+
* @param resource REST API resource
|
38
|
+
* @param stack CloudFormation stack
|
39
|
+
*/
|
40
|
+
export declare function addTagsAndSummary(methodDescription: string, tags: string[], summary: string, resource: Resource, stack: Construct): void;
|
41
|
+
export interface DocumentationProperties {
|
42
|
+
description?: string;
|
43
|
+
tags?: string[];
|
44
|
+
summary?: string;
|
45
|
+
deprecated?: boolean;
|
46
|
+
}
|
47
|
+
export declare class DocumentationPart {
|
48
|
+
readonly parameterName: string;
|
49
|
+
readonly type: string;
|
50
|
+
readonly documentationProperties: DocumentationProperties;
|
51
|
+
private constructor();
|
52
|
+
deprecated(note: string): DocumentationPart;
|
53
|
+
static queryParameter(parameterName: string, description: string): DocumentationPart;
|
54
|
+
static pathParameter(parameterName: string, description: string): DocumentationPart;
|
55
|
+
static method(tags: string[], name: string, summary: string): DocumentationPart;
|
56
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../../src/aws/infra/documentation.ts"],"names":[],"mappings":";;;AACA,+DAA0E;AAE1E,sFAAsF;AACtF,gGAAgG;AAEhG;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAAC,IAAY,EACrD,WAAmB,EACnB,QAAkB,EAClB,KAAgB;IAChB,IAAI,qCAAoB,CAAC,KAAK,EAAE,GAAG,IAAI,eAAe,EAAE;QACpD,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS;QACjC,QAAQ,EAAE;YACN,IAAI,EAAE,iBAAiB;YACvB,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;SACtB;QACD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,WAAW,EAAC,CAAC;KAC5C,CAAC,CAAC;AACP,CAAC;AAbD,oEAaC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,iBAAyB,EACtD,uBAA+B,EAC/B,QAAkB,EAClB,KAAgB;IAChB,IAAI,qCAAoB,CAAC,KAAK,EAAE,GAAG,iBAAiB,eAAe,EAAE;QACjE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS;QACjC,QAAQ,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ,CAAC,IAAI;SACtB;QACD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;KACtD,CAAC,CAAC;AACP,CAAC;AAZD,4CAYC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,iBAAyB,EAC7C,IAAc,EACd,QAAkB,EAClB,KAAgB;IAChB,gBAAgB,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AALD,0BAKC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,iBAAiB,CAC7B,iBAAyB,EACzB,IAAc,EACd,OAAe,EACf,QAAkB,EAClB,KAAgB;IAEhB,gBAAgB,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AARD,8CAQC;AASD,MAAa,iBAAiB;IAK1B,YAAoB,aAAqB,EAAE,uBAAgD,EAAE,IAAY;QACrG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,IAAY;QACnB,8HAA8H;QAC9H,IAAI,CAAC,uBAAuB,CAAC,UAAU,GAAG,IAAI,CAAC;QAC/C,IAAI,CAAC,uBAAuB,CAAC,OAAO,IAAG,IAAI,GAAG,IAAI,CAAC;QAEnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,aAAqB,EAAE,WAAmB;QAC5D,OAAO,IAAI,iBAAiB,CAAC,aAAa,EAAE,EAAC,WAAW,EAAC,EAAE,iBAAiB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,aAAqB,EAAE,WAAmB;QAC3D,OAAO,IAAI,iBAAiB,CAAC,aAAa,EAAE,EAAC,WAAW,EAAC,EAAE,gBAAgB,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,IAAY,EAAE,OAAe;QACvD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;CACJ;AA9BD,8CA8BC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Rule, Schedule } from "aws-cdk-lib/aws-events";
|
2
|
+
import { Duration } from "aws-cdk-lib";
|
3
|
+
import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
|
4
|
+
import { Construct } from "constructs";
|
5
|
+
export declare class Scheduler extends Rule {
|
6
|
+
constructor(stack: Construct, ruleName: string, schedule: Schedule, lambda?: AWSFunction);
|
7
|
+
static everyMinute(stack: Construct, ruleName: string, lambda?: AWSFunction): Scheduler;
|
8
|
+
static everyMinutes(stack: Construct, ruleName: string, minutes: number, lambda?: AWSFunction): Scheduler;
|
9
|
+
static everyHour(stack: Construct, ruleName: string, lambda?: AWSFunction): Scheduler;
|
10
|
+
static everyDay(stack: Construct, ruleName: string, lambda?: AWSFunction): Scheduler;
|
11
|
+
static every(stack: Construct, ruleName: string, duration: Duration, lambda?: AWSFunction): Scheduler;
|
12
|
+
}
|
@@ -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,72 @@
|
|
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 memorySize?: number;
|
60
|
+
readonly timeout?: number;
|
61
|
+
readonly functionName?: string;
|
62
|
+
readonly reservedConcurrentExecutions?: number;
|
63
|
+
readonly role?: Role;
|
64
|
+
readonly runtime?: Runtime;
|
65
|
+
readonly architecture?: Architecture;
|
66
|
+
readonly singleLambda?: boolean;
|
67
|
+
readonly durationAlarmProps?: MonitoredFunctionAlarmProps;
|
68
|
+
readonly durationWarningProps?: MonitoredFunctionAlarmProps;
|
69
|
+
readonly errorAlarmProps?: MonitoredFunctionAlarmProps;
|
70
|
+
readonly throttleAlarmProps?: MonitoredFunctionAlarmProps;
|
71
|
+
};
|
72
|
+
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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"}
|