@digitraffic/common 2022.10.31-3 → 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.
Files changed (168) hide show
  1. package/dist/aws/infra/api/integration.d.ts +21 -0
  2. package/dist/aws/infra/api/integration.js.map +1 -0
  3. package/dist/aws/infra/api/response.d.ts +22 -0
  4. package/dist/aws/infra/api/response.js.map +1 -0
  5. package/dist/aws/infra/api/responses.d.ts +39 -0
  6. package/dist/aws/infra/api/responses.js.map +1 -0
  7. package/dist/aws/infra/api/static-integration.d.ts +15 -0
  8. package/dist/aws/infra/api/static-integration.js.map +1 -0
  9. package/dist/aws/infra/canaries/canary-alarm.d.ts +6 -0
  10. package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
  11. package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
  12. package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
  13. package/dist/aws/infra/canaries/canary-parameters.d.ts +18 -0
  14. package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
  15. package/dist/aws/infra/canaries/canary-role.d.ts +6 -0
  16. package/dist/aws/infra/canaries/canary-role.js.map +1 -0
  17. package/dist/aws/infra/canaries/canary.d.ts +8 -0
  18. package/dist/aws/infra/canaries/canary.js.map +1 -0
  19. package/dist/aws/infra/canaries/database-canary.d.ts +18 -0
  20. package/dist/aws/infra/canaries/database-canary.js.map +1 -0
  21. package/dist/aws/infra/canaries/database-checker.d.ts +21 -0
  22. package/dist/aws/infra/canaries/database-checker.js.map +1 -0
  23. package/dist/aws/infra/canaries/url-canary.d.ts +16 -0
  24. package/dist/aws/infra/canaries/url-canary.js.map +1 -0
  25. package/dist/aws/infra/canaries/url-checker.d.ts +46 -0
  26. package/dist/aws/infra/canaries/url-checker.js.map +1 -0
  27. package/dist/aws/infra/documentation.d.ts +56 -0
  28. package/dist/aws/infra/documentation.js.map +1 -0
  29. package/dist/aws/infra/scheduler.d.ts +12 -0
  30. package/dist/aws/infra/scheduler.js.map +1 -0
  31. package/dist/aws/infra/security-rule.d.ts +12 -0
  32. package/dist/aws/infra/security-rule.js.map +1 -0
  33. package/dist/aws/infra/sqs-integration.d.ts +7 -0
  34. package/dist/aws/infra/sqs-integration.js.map +1 -0
  35. package/dist/aws/infra/sqs-queue.d.ts +16 -0
  36. package/dist/aws/infra/sqs-queue.js.map +1 -0
  37. package/dist/aws/infra/stack/lambda-configs.d.ts +72 -0
  38. package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
  39. package/dist/aws/infra/stack/monitoredfunction.d.ts +84 -0
  40. package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
  41. package/dist/aws/infra/stack/rest_apis.d.ts +41 -0
  42. package/dist/aws/infra/stack/rest_apis.js +27 -31
  43. package/dist/aws/infra/stack/rest_apis.js.map +1 -0
  44. package/dist/aws/infra/stack/stack-checking-aspect.d.ts +21 -0
  45. package/dist/aws/infra/stack/stack-checking-aspect.js +3 -2
  46. package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
  47. package/dist/aws/infra/stack/stack.d.ts +45 -0
  48. package/dist/aws/infra/stack/stack.js.map +1 -0
  49. package/dist/aws/infra/stack/subscription.d.ts +17 -0
  50. package/dist/aws/infra/stack/subscription.js.map +1 -0
  51. package/dist/aws/infra/usage-plans.d.ts +15 -0
  52. package/dist/aws/infra/usage-plans.js.map +1 -0
  53. package/dist/aws/runtime/apikey.d.ts +2 -0
  54. package/dist/aws/runtime/apikey.js.map +1 -0
  55. package/dist/aws/runtime/digitraffic-integration-response.d.ts +8 -0
  56. package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
  57. package/dist/aws/runtime/environment.d.ts +1 -0
  58. package/dist/aws/runtime/environment.js +4 -1
  59. package/dist/aws/runtime/environment.js.map +1 -0
  60. package/dist/aws/runtime/messaging.d.ts +10 -0
  61. package/dist/aws/runtime/messaging.js.map +1 -0
  62. package/dist/aws/runtime/s3.d.ts +2 -0
  63. package/dist/aws/runtime/s3.js.map +1 -0
  64. package/dist/aws/runtime/secrets/dbsecret.d.ts +54 -0
  65. package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
  66. package/dist/aws/runtime/secrets/proxy-holder.d.ts +9 -0
  67. package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
  68. package/dist/aws/runtime/secrets/rds-holder.d.ts +9 -0
  69. package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
  70. package/dist/aws/runtime/secrets/secret-holder.d.ts +26 -0
  71. package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
  72. package/dist/aws/runtime/secrets/secret.d.ts +8 -0
  73. package/dist/aws/runtime/secrets/secret.js.map +1 -0
  74. package/dist/aws/types/errors.d.ts +8 -0
  75. package/dist/aws/types/errors.js.map +1 -0
  76. package/dist/aws/types/lambda-response.d.ts +13 -0
  77. package/dist/aws/types/lambda-response.js.map +1 -0
  78. package/dist/aws/types/mediatypes.d.ts +11 -0
  79. package/dist/aws/types/mediatypes.js +2 -1
  80. package/dist/aws/types/mediatypes.js.map +1 -0
  81. package/dist/aws/types/model-with-reference.d.ts +7 -0
  82. package/dist/aws/types/model-with-reference.js.map +1 -0
  83. package/dist/aws/types/proxytypes.d.ts +26 -0
  84. package/dist/aws/types/proxytypes.js.map +1 -0
  85. package/dist/aws/types/tags.d.ts +2 -0
  86. package/dist/aws/types/tags.js.map +1 -0
  87. package/dist/database/cached.d.ts +7 -0
  88. package/dist/database/cached.js.map +1 -0
  89. package/dist/database/database.d.ts +19 -0
  90. package/dist/database/database.js +6 -8
  91. package/dist/database/database.js.map +1 -0
  92. package/dist/database/last-updated.d.ts +16 -0
  93. package/dist/database/last-updated.js.map +1 -0
  94. package/dist/database/models.d.ts +6 -0
  95. package/dist/database/models.js.map +1 -0
  96. package/dist/marine/id_utils.d.ts +3 -0
  97. package/dist/marine/id_utils.js.map +1 -0
  98. package/dist/marine/rtz.d.ts +48 -0
  99. package/dist/marine/rtz.js.map +1 -0
  100. package/dist/test/asserter.d.ts +11 -0
  101. package/dist/test/asserter.js.map +1 -0
  102. package/dist/test/db-testutils.d.ts +3 -0
  103. package/dist/test/db-testutils.js +5 -1
  104. package/dist/test/db-testutils.js.map +1 -0
  105. package/dist/test/httpserver.d.ts +19 -0
  106. package/dist/test/httpserver.js.map +1 -0
  107. package/dist/test/secret.d.ts +3 -0
  108. package/dist/test/secret.js.map +1 -0
  109. package/dist/test/secrets-manager.d.ts +9 -0
  110. package/dist/test/secrets-manager.js.map +1 -0
  111. package/dist/test/testutils.d.ts +12 -0
  112. package/dist/test/testutils.js.map +1 -0
  113. package/dist/types/either.d.ts +9 -0
  114. package/dist/types/either.js.map +1 -0
  115. package/dist/types/input-error.d.ts +2 -0
  116. package/dist/types/input-error.js.map +1 -0
  117. package/dist/types/language.d.ts +5 -0
  118. package/dist/types/language.js.map +1 -0
  119. package/dist/types/traffictype.d.ts +8 -0
  120. package/dist/types/traffictype.js.map +1 -0
  121. package/dist/types/validator.d.ts +4 -0
  122. package/dist/types/validator.js.map +1 -0
  123. package/dist/utils/api-model.d.ts +87 -0
  124. package/dist/utils/api-model.js.map +1 -0
  125. package/dist/utils/base64.d.ts +12 -0
  126. package/dist/utils/base64.js.map +1 -0
  127. package/dist/utils/date-utils.d.ts +17 -0
  128. package/dist/utils/date-utils.js.map +1 -0
  129. package/dist/utils/geojson-types.d.ts +14 -0
  130. package/dist/utils/geojson-types.js.map +1 -0
  131. package/dist/utils/geometry.d.ts +36 -0
  132. package/dist/utils/geometry.js.map +1 -0
  133. package/dist/utils/retry.d.ts +13 -0
  134. package/dist/utils/retry.js.map +1 -0
  135. package/dist/utils/slack.d.ts +5 -0
  136. package/dist/utils/slack.js.map +1 -0
  137. package/dist/utils/utils.d.ts +46 -0
  138. package/dist/utils/utils.js.map +1 -0
  139. package/package.json +1 -1
  140. package/src/aws/infra/stack/rest_apis.ts +144 -91
  141. package/src/aws/infra/stack/stack-checking-aspect.ts +5 -2
  142. package/src/aws/runtime/environment.ts +5 -1
  143. package/src/aws/types/mediatypes.ts +2 -1
  144. package/src/database/database.ts +9 -10
  145. package/src/test/db-testutils.ts +5 -0
  146. package/.editorconfig +0 -9
  147. package/.eslintignore +0 -4
  148. package/.eslintrc.json +0 -27
  149. package/.github/CODEOWNERS +0 -2
  150. package/.github/workflows/build.yml +0 -36
  151. package/.github/workflows/eslint.yml +0 -38
  152. package/.github/workflows/mirror.yml +0 -15
  153. package/.gitignore +0 -29
  154. package/.husky/pre-commit +0 -4
  155. package/.prettierrc.json +0 -10
  156. package/jest.config.js +0 -15
  157. package/test/marine/id_utils.test.ts +0 -57
  158. package/test/promise/promise.test.ts +0 -143
  159. package/test/secrets/dbsecret.test.ts +0 -59
  160. package/test/secrets/secret-holder.test.ts +0 -143
  161. package/test/secrets/secret.test.ts +0 -49
  162. package/test/test/httpserver.test.ts +0 -128
  163. package/test/utils/date-utils.test.ts +0 -28
  164. package/test/utils/geometry.test.ts +0 -29
  165. package/test/utils/utils.test.ts +0 -64
  166. package/tsconfig.eslint.json +0 -4
  167. package/tsconfig.json +0 -22
  168. 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,3 @@
1
+ export declare const ENV_API_KEY = "apiKeyId";
2
+ export declare const ENV_HOSTNAME = "hostname";
3
+ export declare const ENV_SECRET = "secret";
@@ -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,6 @@
1
+ import { Role } from "aws-cdk-lib/aws-iam";
2
+ import { Construct } from "constructs";
3
+ export declare class DigitrafficCanaryRole extends Role {
4
+ constructor(stack: Construct, canaryName: string);
5
+ withDatabaseAccess(): DigitrafficCanaryRole;
6
+ }
@@ -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":";;;AAAA,yDAA4E;AAC5E,qEAAiE;AACjE,iEAA6D;AAC7D,gDAAsD;AAEtD,8DAA8D;AAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzC,MAAe,aAAa;IAKxB,YAAsB,IAAY,EAAE,GAAW;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;CAGJ;AAUD,MAAM,kBAAmB,SAAQ,aAA4B;IAIzD,YACI,IAAY,EACZ,GAAW,EACX,QAAuB,EACvB,QAAuB;QAEvB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEjB,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAoB;QACtB,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACtC;aAAM;YACH,IAAI,OAAO,IAAI,KAAK,EAAE;gBAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;oBAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,MAAM,IAAI,KAAK,CACX,aAAa,KAAK,CAAC,KAAK,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAC1D,CAAC;iBACL;gBACD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;oBAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,MAAM,IAAI,KAAK,CACX,aAAa,KAAK,CAAC,KAAK,YAAY,IAAI,CAAC,QAAQ,EAAE,CACtD,CAAC;iBACL;aACJ;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBAEnB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAElD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACzC;SACJ;IACL,CAAC;CACJ;AAED,MAAM,UAAU,GAAG;IACf,qBAAqB,EAAE,IAAI;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,uBAAuB,EAAE,KAAK;IAC9B,uBAAuB,EAAE,KAAK;CACjC,CAAC;AAEF,MAAa,eAAe;IAIxB,YAAoB,mBAAwC;QACxD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,UAAU,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAEtD,UAAU,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,cAAc;QACjB,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,CAC5B,IAAI,0BAAW,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,CAChE,CAAC;IACN,CAAC;IAED,MAAM,CAAC,YAAY;QACf,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,CAC5B,IAAI,sBAAS,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,CAC9D,CAAC;IACN,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,GAAW;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,GAAW;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,GAAW;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAA,6BAAkB,EAAC,KAAK,EAAE,EAAc,EAAE,EAAE;YAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEjD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM,aAAa,GAAG,GAAG,EAAE;oBACvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC;gBAEF,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;aACjE;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApED,0CAoEC"}
@@ -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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"}