@digitraffic/common 2022.10.6-1 → 2022.10.10-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 (95) hide show
  1. package/README.md +54 -0
  2. package/aws/index.d.ts +1 -0
  3. package/aws/index.js +18 -0
  4. package/aws/infra/api/index.d.ts +1 -0
  5. package/aws/infra/api/index.js +18 -0
  6. package/aws/infra/api/responses.js +1 -1
  7. package/aws/infra/stack/lambda-configs.js +1 -1
  8. package/aws/infra/stack/rest_apis.d.ts +1 -0
  9. package/aws/infra/stack/rest_apis.js +8 -2
  10. package/aws/infra/stack/stack-checking-aspect.d.ts +4 -3
  11. package/aws/infra/stack/stack-checking-aspect.js +8 -7
  12. package/aws/infra/stack/stack.d.ts +4 -1
  13. package/aws/infra/stack/stack.js +1 -1
  14. package/aws/infra/usage-plans.js +1 -1
  15. package/aws/types/errors.js +1 -1
  16. package/aws/types/tags.js +1 -1
  17. package/database/last-updated.js +10 -10
  18. package/package.json +3 -2
  19. package/test/httpserver.js +1 -1
  20. package/types/index.d.ts +1 -0
  21. package/types/index.js +18 -0
  22. package/types/language.js +1 -1
  23. package/utils/geometry.js +1 -1
  24. package/src/aws/infra/api/integration.js +0 -52
  25. package/src/aws/infra/api/response.js +0 -61
  26. package/src/aws/infra/api/responses.js +0 -79
  27. package/src/aws/infra/api/static-integration.js +0 -54
  28. package/src/aws/infra/canaries/canary-alarm.js +0 -26
  29. package/src/aws/infra/canaries/canary-parameters.js +0 -3
  30. package/src/aws/infra/canaries/canary-role.js +0 -46
  31. package/src/aws/infra/canaries/canary.js +0 -29
  32. package/src/aws/infra/canaries/database-canary.js +0 -55
  33. package/src/aws/infra/canaries/database-checker.js +0 -109
  34. package/src/aws/infra/canaries/url-canary.js +0 -46
  35. package/src/aws/infra/canaries/url-checker.js +0 -238
  36. package/src/aws/infra/documentation.js +0 -95
  37. package/src/aws/infra/scheduler.js +0 -31
  38. package/src/aws/infra/security-rule.js +0 -39
  39. package/src/aws/infra/sqs-integration.js +0 -93
  40. package/src/aws/infra/sqs-queue.js +0 -130
  41. package/src/aws/infra/stack/lambda-configs.js +0 -93
  42. package/src/aws/infra/stack/monitoredfunction.js +0 -135
  43. package/src/aws/infra/stack/rest_apis.js +0 -179
  44. package/src/aws/infra/stack/stack-checking-aspect.js +0 -163
  45. package/src/aws/infra/stack/stack.js +0 -58
  46. package/src/aws/infra/stack/subscription.js +0 -41
  47. package/src/aws/infra/usage-plans.js +0 -42
  48. package/src/aws/runtime/apikey.js +0 -13
  49. package/src/aws/runtime/digitraffic-integration-response.js +0 -26
  50. package/src/aws/runtime/messaging.js +0 -31
  51. package/src/aws/runtime/s3.js +0 -30
  52. package/src/aws/runtime/secrets/dbsecret.js +0 -96
  53. package/src/aws/runtime/secrets/proxy-holder.js +0 -26
  54. package/src/aws/runtime/secrets/rds-holder.js +0 -26
  55. package/src/aws/runtime/secrets/secret-holder.js +0 -73
  56. package/src/aws/runtime/secrets/secret.js +0 -43
  57. package/src/aws/types/errors.js +0 -9
  58. package/src/aws/types/lambda-response.js +0 -28
  59. package/src/aws/types/mediatypes.js +0 -15
  60. package/src/aws/types/model-with-reference.js +0 -3
  61. package/src/aws/types/proxytypes.js +0 -3
  62. package/src/aws/types/tags.js +0 -7
  63. package/src/database/cached.js +0 -32
  64. package/src/database/database.js +0 -62
  65. package/src/database/last-updated.js +0 -54
  66. package/src/marine/id_utils.js +0 -33
  67. package/src/marine/rtz.js +0 -3
  68. package/src/test/asserter.js +0 -45
  69. package/src/test/db-testutils.js +0 -31
  70. package/src/test/httpserver.js +0 -67
  71. package/src/test/secret.js +0 -25
  72. package/src/test/secrets-manager.js +0 -59
  73. package/src/test/testutils.js +0 -44
  74. package/src/types/input-error.js +0 -7
  75. package/src/types/language.js +0 -10
  76. package/src/types/traffictype.js +0 -13
  77. package/src/types/validator.js +0 -14
  78. package/src/utils/api-model.js +0 -129
  79. package/src/utils/base64.js +0 -21
  80. package/src/utils/date-utils.js +0 -34
  81. package/src/utils/geojson-types.js +0 -18
  82. package/src/utils/geometry.js +0 -140
  83. package/src/utils/retry.js +0 -50
  84. package/src/utils/slack.js +0 -25
  85. package/src/utils/utils.js +0 -40
  86. package/test/marine/id_utils.test.js +0 -69
  87. package/test/promise/promise.test.js +0 -125
  88. package/test/secrets/dbsecret.test.js +0 -71
  89. package/test/secrets/secret-holder.test.js +0 -124
  90. package/test/secrets/secret.test.js +0 -66
  91. package/test/test/httpserver.test.js +0 -87
  92. package/test/utils/date-utils.test.js +0 -51
  93. package/test/utils/geometry.test.js +0 -49
  94. package/test/utils/utils.test.js +0 -49
  95. package/yarn.lock +0 -3200
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficStack = exports.SSM_KEY_ALARM_TOPIC = exports.SSM_KEY_WARNING_TOPIC = exports.SOLUTION_KEY = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
6
- const aws_sns_1 = require("aws-cdk-lib/aws-sns");
7
- const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
8
- const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
9
- const stack_checking_aspect_1 = require("./stack-checking-aspect");
10
- const SSM_ROOT = '/digitraffic';
11
- exports.SOLUTION_KEY = 'Solution';
12
- const MONITORING_ROOT = '/monitoring';
13
- exports.SSM_KEY_WARNING_TOPIC = `${SSM_ROOT}${MONITORING_ROOT}/warning-topic`;
14
- exports.SSM_KEY_ALARM_TOPIC = `${SSM_ROOT}${MONITORING_ROOT}/alarm-topic`;
15
- class DigitrafficStack extends aws_cdk_lib_1.Stack {
16
- constructor(scope, id, configuration) {
17
- super(scope, id, configuration.stackProps);
18
- this.configuration = configuration;
19
- if (configuration.secretId) {
20
- this.secret = aws_secretsmanager_1.Secret.fromSecretNameV2(this, 'Secret', configuration.secretId);
21
- }
22
- // VPC reference construction requires vpcId and availability zones
23
- // private subnets are used in Lambda configuration
24
- if (configuration.vpcId) {
25
- this.vpc = aws_ec2_1.Vpc.fromVpcAttributes(this, 'vpc', {
26
- vpcId: configuration.vpcId,
27
- privateSubnetIds: configuration.privateSubnetIds,
28
- availabilityZones: configuration.availabilityZones,
29
- });
30
- }
31
- // security group that allows Lambda database access
32
- if (configuration.lambdaDbSgId) {
33
- this.lambdaDbSg = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, 'LambdaDbSG', configuration.lambdaDbSgId);
34
- }
35
- this.alarmTopic = aws_sns_1.Topic.fromTopicArn(this, 'AlarmTopic', aws_ssm_1.StringParameter.fromStringParameterName(this, 'AlarmTopicParam', exports.SSM_KEY_ALARM_TOPIC).stringValue);
36
- this.warningTopic = aws_sns_1.Topic.fromTopicArn(this, 'WarningTopic', aws_ssm_1.StringParameter.fromStringParameterName(this, 'WarningTopicParam', exports.SSM_KEY_WARNING_TOPIC).stringValue);
37
- this.addAspects();
38
- }
39
- addAspects() {
40
- aws_cdk_lib_1.Aspects.of(this).add(stack_checking_aspect_1.StackCheckingAspect.create(this));
41
- }
42
- createLambdaEnvironment() {
43
- return this.createDefaultLambdaEnvironment(this.configuration.shortName);
44
- }
45
- createDefaultLambdaEnvironment(dbApplication) {
46
- return this.configuration.secretId ? {
47
- SECRET_ID: this.configuration.secretId,
48
- DB_APPLICATION: dbApplication,
49
- } : {
50
- DB_APPLICATION: dbApplication,
51
- };
52
- }
53
- grantSecret(...lambdas) {
54
- lambdas.forEach((l) => this.secret.grantRead(l));
55
- }
56
- }
57
- exports.DigitrafficStack = DigitrafficStack;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL3N0YWNrL3N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1RDtBQUN2RCxpREFBNkQ7QUFFN0QsaURBQWtEO0FBQ2xELGlEQUFvRDtBQUNwRCx1RUFBK0Q7QUFHL0QsbUVBQTREO0FBSzVELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQztBQUNuQixRQUFBLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDdkMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDO0FBRXpCLFFBQUEscUJBQXFCLEdBQUcsR0FBRyxRQUFRLEdBQUcsZUFBZSxnQkFBZ0IsQ0FBQztBQUN0RSxRQUFBLG1CQUFtQixHQUFHLEdBQUcsUUFBUSxHQUFHLGVBQWUsY0FBYyxDQUFDO0FBc0IvRSxNQUFhLGdCQUFpQixTQUFRLG1CQUFLO0lBU3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsYUFBaUM7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBRW5DLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLDJCQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakY7UUFFRCxtRUFBbUU7UUFDbkUsbURBQW1EO1FBQ25ELElBQUksYUFBYSxDQUFDLEtBQUssRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQzFCLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxnQkFBZ0I7Z0JBQ2hELGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxpQkFBNkI7YUFDakUsQ0FBQyxDQUFDO1NBQ047UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsdUJBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQ3JDLFlBQVksRUFDWix5QkFBZSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSwyQkFBbUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUN2RCx5QkFBZSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSw2QkFBcUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNOLHFCQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQ0FBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBbUIsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxhQUFxQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQ3RDLGNBQWMsRUFBRSxhQUFhO1NBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBQ0EsY0FBYyxFQUFFLGFBQWE7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBRyxPQUFtQjtRQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSjtBQTlERCw0Q0E4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzcGVjdHMsIFN0YWNrLCBTdGFja1Byb3BzfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7SVZwYywgU2VjdXJpdHlHcm91cCwgVnBjfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHtJU2VjdXJpdHlHcm91cH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzIvbGliL3NlY3VyaXR5LWdyb3VwXCI7XG5pbXBvcnQge0lUb3BpYywgVG9waWN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc25zXCI7XG5pbXBvcnQge1N0cmluZ1BhcmFtZXRlcn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7SVNlY3JldCwgU2VjcmV0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQge0Z1bmN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuXG5pbXBvcnQge1N0YWNrQ2hlY2tpbmdBc3BlY3R9IGZyb20gXCIuL3N0YWNrLWNoZWNraW5nLWFzcGVjdFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1RyYWZmaWNUeXBlfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXMvdHJhZmZpY3R5cGVcIjtcbmltcG9ydCB7REJMYW1iZGFFbnZpcm9ubWVudH0gZnJvbSBcIi4vbGFtYmRhLWNvbmZpZ3NcIjtcblxuY29uc3QgU1NNX1JPT1QgPSAnL2RpZ2l0cmFmZmljJztcbmV4cG9ydCBjb25zdCBTT0xVVElPTl9LRVkgPSAnU29sdXRpb24nO1xuY29uc3QgTU9OSVRPUklOR19ST09UID0gJy9tb25pdG9yaW5nJztcblxuZXhwb3J0IGNvbnN0IFNTTV9LRVlfV0FSTklOR19UT1BJQyA9IGAke1NTTV9ST09UfSR7TU9OSVRPUklOR19ST09UfS93YXJuaW5nLXRvcGljYDtcbmV4cG9ydCBjb25zdCBTU01fS0VZX0FMQVJNX1RPUElDID0gYCR7U1NNX1JPT1R9JHtNT05JVE9SSU5HX1JPT1R9L2FsYXJtLXRvcGljYDtcblxuZXhwb3J0IHR5cGUgU3RhY2tDb25maWd1cmF0aW9uID0ge1xuICAgIHJlYWRvbmx5IHNob3J0TmFtZT86IHN0cmluZztcbiAgICByZWFkb25seSBzZWNyZXRJZD86IHN0cmluZztcbiAgICByZWFkb25seSBhbGFybVRvcGljQXJuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgd2FybmluZ1RvcGljQXJuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW5hYmxlQ2FuYXJpZXM6IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgbG9nc0Rlc3RpbmF0aW9uQXJuPzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbGFtYmRhRGJTZ0lkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lcz86IHN0cmluZ1tdO1xuXG4gICAgcmVhZG9ubHkgdHJhZmZpY1R5cGU6IFRyYWZmaWNUeXBlO1xuICAgIHJlYWRvbmx5IHByb2R1Y3Rpb246IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgc3RhY2tQcm9wczogU3RhY2tQcm9wcztcblxuICAgIHJlYWRvbmx5IHdoaXRlbGlzdGVkUmVzb3VyY2VzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBEaWdpdHJhZmZpY1N0YWNrIGV4dGVuZHMgU3RhY2sge1xuICAgIHJlYWRvbmx5IHZwYzogSVZwYztcbiAgICByZWFkb25seSBsYW1iZGFEYlNnOiBJU2VjdXJpdHlHcm91cDtcbiAgICByZWFkb25seSBhbGFybVRvcGljOiBJVG9waWM7XG4gICAgcmVhZG9ubHkgd2FybmluZ1RvcGljOiBJVG9waWM7XG4gICAgcmVhZG9ubHkgc2VjcmV0OiBJU2VjcmV0O1xuXG4gICAgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogU3RhY2tDb25maWd1cmF0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29uZmlndXJhdGlvbjogU3RhY2tDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgY29uZmlndXJhdGlvbi5zdGFja1Byb3BzKTtcblxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuXG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uLnNlY3JldElkKSB7XG4gICAgICAgICAgICB0aGlzLnNlY3JldCA9IFNlY3JldC5mcm9tU2VjcmV0TmFtZVYyKHRoaXMsICdTZWNyZXQnLCBjb25maWd1cmF0aW9uLnNlY3JldElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZQQyByZWZlcmVuY2UgY29uc3RydWN0aW9uIHJlcXVpcmVzIHZwY0lkIGFuZCBhdmFpbGFiaWxpdHkgem9uZXNcbiAgICAgICAgLy8gcHJpdmF0ZSBzdWJuZXRzIGFyZSB1c2VkIGluIExhbWJkYSBjb25maWd1cmF0aW9uXG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uLnZwY0lkKSB7XG4gICAgICAgICAgICB0aGlzLnZwYyA9IFZwYy5mcm9tVnBjQXR0cmlidXRlcyh0aGlzLCAndnBjJywge1xuICAgICAgICAgICAgICAgIHZwY0lkOiBjb25maWd1cmF0aW9uLnZwY0lkLFxuICAgICAgICAgICAgICAgIHByaXZhdGVTdWJuZXRJZHM6IGNvbmZpZ3VyYXRpb24ucHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lczogY29uZmlndXJhdGlvbi5hdmFpbGFiaWxpdHlab25lcyBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2VjdXJpdHkgZ3JvdXAgdGhhdCBhbGxvd3MgTGFtYmRhIGRhdGFiYXNlIGFjY2Vzc1xuICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5sYW1iZGFEYlNnSWQpIHtcbiAgICAgICAgICAgIHRoaXMubGFtYmRhRGJTZyA9IFNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZCh0aGlzLCAnTGFtYmRhRGJTRycsIGNvbmZpZ3VyYXRpb24ubGFtYmRhRGJTZ0lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWxhcm1Ub3BpYyA9IFRvcGljLmZyb21Ub3BpY0Fybih0aGlzLFxuICAgICAgICAgICAgJ0FsYXJtVG9waWMnLFxuICAgICAgICAgICAgU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdBbGFybVRvcGljUGFyYW0nLCBTU01fS0VZX0FMQVJNX1RPUElDKS5zdHJpbmdWYWx1ZSk7XG4gICAgICAgIHRoaXMud2FybmluZ1RvcGljID0gVG9waWMuZnJvbVRvcGljQXJuKHRoaXMsICdXYXJuaW5nVG9waWMnLFxuICAgICAgICAgICAgU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdXYXJuaW5nVG9waWNQYXJhbScsIFNTTV9LRVlfV0FSTklOR19UT1BJQykuc3RyaW5nVmFsdWUpO1xuXG4gICAgICAgIHRoaXMuYWRkQXNwZWN0cygpO1xuICAgIH1cblxuICAgIGFkZEFzcGVjdHMoKSB7XG4gICAgICAgIEFzcGVjdHMub2YodGhpcykuYWRkKFN0YWNrQ2hlY2tpbmdBc3BlY3QuY3JlYXRlKHRoaXMpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVMYW1iZGFFbnZpcm9ubWVudCgpOiBEQkxhbWJkYUVudmlyb25tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGVmYXVsdExhbWJkYUVudmlyb25tZW50KHRoaXMuY29uZmlndXJhdGlvbi5zaG9ydE5hbWUgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBjcmVhdGVEZWZhdWx0TGFtYmRhRW52aXJvbm1lbnQoZGJBcHBsaWNhdGlvbjogc3RyaW5nKTogREJMYW1iZGFFbnZpcm9ubWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uc2VjcmV0SWQgPyB7XG4gICAgICAgICAgICBTRUNSRVRfSUQ6IHRoaXMuY29uZmlndXJhdGlvbi5zZWNyZXRJZCxcbiAgICAgICAgICAgIERCX0FQUExJQ0FUSU9OOiBkYkFwcGxpY2F0aW9uLFxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgREJfQVBQTElDQVRJT046IGRiQXBwbGljYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ3JhbnRTZWNyZXQoLi4ubGFtYmRhczogRnVuY3Rpb25bXSkge1xuICAgICAgICBsYW1iZGFzLmZvckVhY2goKGw6IEZ1bmN0aW9uKSA9PiB0aGlzLnNlY3JldC5ncmFudFJlYWQobCkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficLogSubscriptions = exports.createSubscription = void 0;
4
- const aws_logs_1 = require("aws-cdk-lib/aws-logs");
5
- /**
6
- * Creates a subscription filter that subscribes to a Lambda Log Group and delivers the logs to another destination.
7
- * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
8
- * @param lambda The Lambda function, needed to create a dependency
9
- * @param lambdaName The Lambda name from which the Log Group name is derived
10
- * @param logDestinationArn Destination for streamed logs
11
- * @param stack CloudFormation stack
12
- */
13
- function createSubscription(lambda, lambdaName, logDestinationArn, stack) {
14
- if (logDestinationArn == undefined) {
15
- return undefined;
16
- }
17
- const filter = new aws_logs_1.CfnSubscriptionFilter(stack, `${lambdaName}LogsSubscription`, {
18
- logGroupName: `/aws/lambda/${lambdaName}`,
19
- filterPattern: '',
20
- destinationArn: logDestinationArn,
21
- });
22
- filter.node.addDependency(lambda);
23
- return filter;
24
- }
25
- exports.createSubscription = createSubscription;
26
- class DigitrafficLogSubscriptions {
27
- constructor(stack, ...lambdas) {
28
- if (stack.configuration.logsDestinationArn) {
29
- lambdas.forEach(lambda => {
30
- const filter = new aws_logs_1.CfnSubscriptionFilter(stack, `${lambda.givenName}LogsSubscription`, {
31
- logGroupName: `/aws/lambda/${lambda.givenName}`,
32
- filterPattern: '',
33
- destinationArn: stack.configuration.logsDestinationArn,
34
- });
35
- filter.node.addDependency(lambda);
36
- });
37
- }
38
- }
39
- }
40
- exports.DigitrafficLogSubscriptions = DigitrafficLogSubscriptions;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9pbmZyYS9zdGFjay9zdWJzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTJEO0FBTTNEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFnQixFQUFFLFVBQWtCLEVBQUUsaUJBQXFDLEVBQUUsS0FBZ0I7SUFDNUgsSUFBSSxpQkFBaUIsSUFBSSxTQUFTLEVBQUU7UUFDaEMsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFxQixDQUFDLEtBQUssRUFBRSxHQUFHLFVBQVUsa0JBQWtCLEVBQUU7UUFDN0UsWUFBWSxFQUFFLGVBQWUsVUFBVSxFQUFFO1FBQ3pDLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLGNBQWMsRUFBRSxpQkFBaUI7S0FDcEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQWJELGdEQWFDO0FBRUQsTUFBYSwyQkFBMkI7SUFDcEMsWUFBWSxLQUF1QixFQUFFLEdBQUcsT0FBNEI7UUFDaEUsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksZ0NBQXFCLENBQUMsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsa0JBQWtCLEVBQUU7b0JBQ25GLFlBQVksRUFBRSxlQUFlLE1BQU0sQ0FBQyxTQUFTLEVBQUU7b0JBQy9DLGFBQWEsRUFBRSxFQUFFO29CQUNqQixjQUFjLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQkFBNEI7aUJBQ25FLENBQUMsQ0FBQztnQkFFSCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztDQUNKO0FBZEQsa0VBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NmblN1YnNjcmlwdGlvbkZpbHRlcn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHtGdW5jdGlvbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQge0RpZ2l0cmFmZmljU3RhY2t9IGZyb20gXCIuL3N0YWNrXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7TW9uaXRvcmVkRnVuY3Rpb259IGZyb20gXCIuL21vbml0b3JlZGZ1bmN0aW9uXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN1YnNjcmlwdGlvbiBmaWx0ZXIgdGhhdCBzdWJzY3JpYmVzIHRvIGEgTGFtYmRhIExvZyBHcm91cCBhbmQgZGVsaXZlcnMgdGhlIGxvZ3MgdG8gYW5vdGhlciBkZXN0aW5hdGlvbi5cbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1sb2dzLXN1YnNjcmlwdGlvbmZpbHRlci5odG1sXG4gKiBAcGFyYW0gbGFtYmRhIFRoZSBMYW1iZGEgZnVuY3Rpb24sIG5lZWRlZCB0byBjcmVhdGUgYSBkZXBlbmRlbmN5XG4gKiBAcGFyYW0gbGFtYmRhTmFtZSBUaGUgTGFtYmRhIG5hbWUgZnJvbSB3aGljaCB0aGUgTG9nIEdyb3VwIG5hbWUgaXMgZGVyaXZlZFxuICogQHBhcmFtIGxvZ0Rlc3RpbmF0aW9uQXJuIERlc3RpbmF0aW9uIGZvciBzdHJlYW1lZCBsb2dzXG4gKiBAcGFyYW0gc3RhY2sgQ2xvdWRGb3JtYXRpb24gc3RhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihsYW1iZGE6IEZ1bmN0aW9uLCBsYW1iZGFOYW1lOiBzdHJpbmcsIGxvZ0Rlc3RpbmF0aW9uQXJuOiBzdHJpbmcgfCB1bmRlZmluZWQsIHN0YWNrOiBDb25zdHJ1Y3QpOiBDZm5TdWJzY3JpcHRpb25GaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChsb2dEZXN0aW5hdGlvbkFybiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyID0gbmV3IENmblN1YnNjcmlwdGlvbkZpbHRlcihzdGFjaywgYCR7bGFtYmRhTmFtZX1Mb2dzU3Vic2NyaXB0aW9uYCwge1xuICAgICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke2xhbWJkYU5hbWV9YCxcbiAgICAgICAgZmlsdGVyUGF0dGVybjogJycsXG4gICAgICAgIGRlc3RpbmF0aW9uQXJuOiBsb2dEZXN0aW5hdGlvbkFybixcbiAgICB9KTtcblxuICAgIGZpbHRlci5ub2RlLmFkZERlcGVuZGVuY3kobGFtYmRhKTtcblxuICAgIHJldHVybiBmaWx0ZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWdpdHJhZmZpY0xvZ1N1YnNjcmlwdGlvbnMge1xuICAgIGNvbnN0cnVjdG9yKHN0YWNrOiBEaWdpdHJhZmZpY1N0YWNrLCAuLi5sYW1iZGFzOiBNb25pdG9yZWRGdW5jdGlvbltdKSB7XG4gICAgICAgIGlmIChzdGFjay5jb25maWd1cmF0aW9uLmxvZ3NEZXN0aW5hdGlvbkFybikge1xuICAgICAgICAgICAgbGFtYmRhcy5mb3JFYWNoKGxhbWJkYSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IENmblN1YnNjcmlwdGlvbkZpbHRlcihzdGFjaywgYCR7bGFtYmRhLmdpdmVuTmFtZX1Mb2dzU3Vic2NyaXB0aW9uYCwge1xuICAgICAgICAgICAgICAgICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke2xhbWJkYS5naXZlbk5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGF0dGVybjogJycsXG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQXJuOiBzdGFjay5jb25maWd1cmF0aW9uLmxvZ3NEZXN0aW5hdGlvbkFybiBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBmaWx0ZXIubm9kZS5hZGREZXBlbmRlbmN5KGxhbWJkYSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDefaultUsagePlan = exports.createUsagePlan = void 0;
4
- /**
5
- * Creates an usage plan for a REST API with a single API key
6
- * @param api The REST API
7
- * @param apiKeyId Id for the API key, this is a surrogate id for CDK, not displayed anywhere
8
- * @param apiKeyName Name for the API key, this is displayed in the AWS Console
9
- * @deprecated Creates randomized API key names, use createDefaultUsagePlan instead
10
- */
11
- function createUsagePlan(api, apiKeyId, apiKeyName) {
12
- const apiKey = api.addApiKey(apiKeyId);
13
- const plan = api.addUsagePlan(apiKeyName, {
14
- name: apiKeyName,
15
- });
16
- plan.addApiStage({
17
- stage: api.deploymentStage,
18
- });
19
- plan.addApiKey(apiKey);
20
- return apiKey;
21
- }
22
- exports.createUsagePlan = createUsagePlan;
23
- /**
24
- * Creates a default usage plan for a REST API with a single API key
25
- * @param api The REST API
26
- * @param apiName Name of the api. Will generate key: apiName + ' API Key' and plan: apiName + ' API Usage Plan'
27
- */
28
- function createDefaultUsagePlan(api, apiName) {
29
- const apiKeyName = apiName + ' API Key';
30
- const usagePlanName = apiName + ' API Usage Plan';
31
- const apiKey = api.addApiKey(apiKeyName, { apiKeyName: apiKeyName });
32
- const plan = api.addUsagePlan(usagePlanName, {
33
- name: usagePlanName,
34
- });
35
- plan.addApiStage({
36
- stage: api.deploymentStage,
37
- });
38
- plan.addApiKey(apiKey);
39
- return apiKey;
40
- }
41
- exports.createDefaultUsagePlan = createDefaultUsagePlan;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGxhbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL3VzYWdlLXBsYW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7Ozs7R0FNRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFZLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQjtJQUM5RSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO1FBQ3RDLElBQUksRUFBRSxVQUFVO0tBQ25CLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxXQUFXLENBQUM7UUFDYixLQUFLLEVBQUUsR0FBRyxDQUFDLGVBQWU7S0FDN0IsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBWEQsMENBV0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsR0FBWSxFQUFFLE9BQWU7SUFDaEUsTUFBTSxVQUFVLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBRyxPQUFPLEdBQUcsaUJBQWlCLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRTtRQUN6QyxJQUFJLEVBQUUsYUFBYTtLQUN0QixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxlQUFlO0tBQzdCLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdkIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQWJELHdEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJQXBpS2V5LCBSZXN0QXBpfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhbiB1c2FnZSBwbGFuIGZvciBhIFJFU1QgQVBJIHdpdGggYSBzaW5nbGUgQVBJIGtleVxyXG4gKiBAcGFyYW0gYXBpIFRoZSBSRVNUIEFQSVxyXG4gKiBAcGFyYW0gYXBpS2V5SWQgSWQgZm9yIHRoZSBBUEkga2V5LCB0aGlzIGlzIGEgc3Vycm9nYXRlIGlkIGZvciBDREssIG5vdCBkaXNwbGF5ZWQgYW55d2hlcmVcclxuICogQHBhcmFtIGFwaUtleU5hbWUgTmFtZSBmb3IgdGhlIEFQSSBrZXksIHRoaXMgaXMgZGlzcGxheWVkIGluIHRoZSBBV1MgQ29uc29sZVxyXG4gKiBAZGVwcmVjYXRlZCBDcmVhdGVzIHJhbmRvbWl6ZWQgQVBJIGtleSBuYW1lcywgdXNlIGNyZWF0ZURlZmF1bHRVc2FnZVBsYW4gaW5zdGVhZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzYWdlUGxhbihhcGk6IFJlc3RBcGksIGFwaUtleUlkOiBzdHJpbmcsIGFwaUtleU5hbWU6IHN0cmluZyk6IElBcGlLZXkge1xyXG4gICAgY29uc3QgYXBpS2V5ID0gYXBpLmFkZEFwaUtleShhcGlLZXlJZCk7XHJcbiAgICBjb25zdCBwbGFuID0gYXBpLmFkZFVzYWdlUGxhbihhcGlLZXlOYW1lLCB7XHJcbiAgICAgICAgbmFtZTogYXBpS2V5TmFtZSxcclxuICAgIH0pO1xyXG4gICAgcGxhbi5hZGRBcGlTdGFnZSh7XHJcbiAgICAgICAgc3RhZ2U6IGFwaS5kZXBsb3ltZW50U3RhZ2UsXHJcbiAgICB9KTtcclxuICAgIHBsYW4uYWRkQXBpS2V5KGFwaUtleSk7XHJcblxyXG4gICAgcmV0dXJuIGFwaUtleTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBkZWZhdWx0IHVzYWdlIHBsYW4gZm9yIGEgUkVTVCBBUEkgd2l0aCBhIHNpbmdsZSBBUEkga2V5XHJcbiAqIEBwYXJhbSBhcGkgVGhlIFJFU1QgQVBJXHJcbiAqIEBwYXJhbSBhcGlOYW1lIE5hbWUgb2YgdGhlIGFwaS4gV2lsbCBnZW5lcmF0ZSBrZXk6IGFwaU5hbWUgKyAnIEFQSSBLZXknIGFuZCBwbGFuOiBhcGlOYW1lICsgJyBBUEkgVXNhZ2UgUGxhbidcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0VXNhZ2VQbGFuKGFwaTogUmVzdEFwaSwgYXBpTmFtZTogc3RyaW5nKTogSUFwaUtleSB7XHJcbiAgICBjb25zdCBhcGlLZXlOYW1lID0gYXBpTmFtZSArICcgQVBJIEtleSc7XHJcbiAgICBjb25zdCB1c2FnZVBsYW5OYW1lID0gYXBpTmFtZSArICcgQVBJIFVzYWdlIFBsYW4nO1xyXG4gICAgY29uc3QgYXBpS2V5ID0gYXBpLmFkZEFwaUtleShhcGlLZXlOYW1lLCB7IGFwaUtleU5hbWU6IGFwaUtleU5hbWUgfSk7XHJcbiAgICBjb25zdCBwbGFuID0gYXBpLmFkZFVzYWdlUGxhbih1c2FnZVBsYW5OYW1lLCB7XHJcbiAgICAgICAgbmFtZTogdXNhZ2VQbGFuTmFtZSxcclxuICAgIH0pO1xyXG4gICAgcGxhbi5hZGRBcGlTdGFnZSh7XHJcbiAgICAgICAgc3RhZ2U6IGFwaS5kZXBsb3ltZW50U3RhZ2UsXHJcbiAgICB9KTtcclxuICAgIHBsYW4uYWRkQXBpS2V5KGFwaUtleSk7XHJcblxyXG4gICAgcmV0dXJuIGFwaUtleTtcclxufVxyXG4iXX0=
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getApiKeyFromAPIGateway = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
- function getApiKeyFromAPIGateway(keyId) {
6
- const agw = new aws_sdk_1.APIGateway();
7
- return agw.getApiKey({
8
- apiKey: keyId,
9
- includeValue: true,
10
- }).promise();
11
- }
12
- exports.getApiKeyFromAPIGateway = getApiKeyFromAPIGateway;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpa2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL2FwaWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBbUM7QUFFbkMsU0FBZ0IsdUJBQXVCLENBQUMsS0FBYTtJQUNqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztJQUM3QixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDakIsTUFBTSxFQUFFLEtBQUs7UUFDYixZQUFZLEVBQUUsSUFBSTtLQUNyQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDakIsQ0FBQztBQU5ELDBEQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUElHYXRld2F5fSBmcm9tIFwiYXdzLXNka1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBpS2V5RnJvbUFQSUdhdGV3YXkoa2V5SWQ6IHN0cmluZyk6IFByb21pc2U8QVBJR2F0ZXdheS5UeXBlcy5BcGlLZXk+IHtcbiAgICBjb25zdCBhZ3cgPSBuZXcgQVBJR2F0ZXdheSgpO1xuICAgIHJldHVybiBhZ3cuZ2V0QXBpS2V5KHtcbiAgICAgICAgYXBpS2V5OiBrZXlJZCxcbiAgICAgICAgaW5jbHVkZVZhbHVlOiB0cnVlLFxuICAgIH0pLnByb21pc2UoKTtcbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficIntegrationResponse = void 0;
4
- const mediatypes_1 = require("../types/mediatypes");
5
- const response_1 = require("../infra/api/response");
6
- class DigitrafficIntegrationResponse {
7
- static ok(mediaType) {
8
- return this.create("200", mediaType);
9
- }
10
- static badRequest(mediaType) {
11
- return this.create("400", mediaType ?? mediatypes_1.MediaType.TEXT_PLAIN);
12
- }
13
- static notImplemented(mediaType) {
14
- return this.create("501", mediaType ?? mediatypes_1.MediaType.TEXT_PLAIN);
15
- }
16
- static create(statusCode, mediaType) {
17
- return {
18
- statusCode,
19
- responseTemplates: {
20
- [mediaType]: response_1.RESPONSE_DEFAULT_LAMBDA,
21
- },
22
- };
23
- }
24
- }
25
- exports.DigitrafficIntegrationResponse = DigitrafficIntegrationResponse;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRyYWZmaWMtaW50ZWdyYXRpb24tcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3J1bnRpbWUvZGlnaXRyYWZmaWMtaW50ZWdyYXRpb24tcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0RBQThDO0FBQzlDLG9EQUE4RDtBQUU5RCxNQUFzQiw4QkFBOEI7SUFFaEQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQXFCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxJQUFJLHNCQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksc0JBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFrQixFQUFFLFNBQW9CO1FBQ2xELE9BQU87WUFDSCxVQUFVO1lBQ1YsaUJBQWlCLEVBQUU7Z0JBQ2YsQ0FBQyxTQUFTLENBQUMsRUFBRSxrQ0FBdUI7YUFDdkM7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKO0FBdEJELHdFQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW50ZWdyYXRpb25SZXNwb25zZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQge01lZGlhVHlwZX0gZnJvbSBcIi4uL3R5cGVzL21lZGlhdHlwZXNcIjtcbmltcG9ydCB7UkVTUE9OU0VfREVGQVVMVF9MQU1CREF9IGZyb20gXCIuLi9pbmZyYS9hcGkvcmVzcG9uc2VcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERpZ2l0cmFmZmljSW50ZWdyYXRpb25SZXNwb25zZSB7XG5cbiAgICBzdGF0aWMgb2sobWVkaWFUeXBlOiBNZWRpYVR5cGUpOiBJbnRlZ3JhdGlvblJlc3BvbnNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKFwiMjAwXCIsIG1lZGlhVHlwZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGJhZFJlcXVlc3QobWVkaWFUeXBlPzogTWVkaWFUeXBlKTogSW50ZWdyYXRpb25SZXNwb25zZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShcIjQwMFwiLCBtZWRpYVR5cGUgPz8gTWVkaWFUeXBlLlRFWFRfUExBSU4pO1xuICAgIH1cblxuICAgIHN0YXRpYyBub3RJbXBsZW1lbnRlZChtZWRpYVR5cGU/OiBNZWRpYVR5cGUpOiBJbnRlZ3JhdGlvblJlc3BvbnNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKFwiNTAxXCIsIG1lZGlhVHlwZSA/PyBNZWRpYVR5cGUuVEVYVF9QTEFJTik7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZShzdGF0dXNDb2RlOiBzdHJpbmcsIG1lZGlhVHlwZTogTWVkaWFUeXBlKTogSW50ZWdyYXRpb25SZXNwb25zZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICAgICAgcmVzcG9uc2VUZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgICAgICBbbWVkaWFUeXBlXTogUkVTUE9OU0VfREVGQVVMVF9MQU1CREEsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuIl19
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.snsPublish = void 0;
4
- /**
5
- * Utility function for publishing SNS messages.
6
- * Made because using *await* with AWS APIs doesn't require calling promise() but nothing works if it isn't called.
7
- * Retries a single time in case of failure.
8
- * @param message
9
- * @param topicArn
10
- * @param sns
11
- */
12
- async function snsPublish(message, topicArn, sns) {
13
- const publishParams = {
14
- Message: message,
15
- TopicArn: topicArn,
16
- };
17
- try {
18
- await sns.publish(publishParams).promise();
19
- }
20
- catch (error) {
21
- console.error('method=snsPublish error, retrying', error);
22
- try {
23
- await sns.publish(publishParams).promise();
24
- }
25
- catch (e2) {
26
- console.error('method=snsPublish error after retry', e2);
27
- }
28
- }
29
- }
30
- exports.snsPublish = snsPublish;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL21lc3NhZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLFVBQVUsQ0FBQyxPQUFlLEVBQUUsUUFBZ0IsRUFBRSxHQUFRO0lBQ3hFLE1BQU0sYUFBYSxHQUFHO1FBQ2xCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSxRQUFRO0tBQ3JCLENBQUM7SUFDRixJQUFJO1FBQ0EsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQzlDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDQSxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDOUM7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUQ7S0FDSjtBQUNMLENBQUM7QUFmRCxnQ0FlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U05TfSBmcm9tIFwiYXdzLXNka1wiO1xuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHB1Ymxpc2hpbmcgU05TIG1lc3NhZ2VzLlxuICogTWFkZSBiZWNhdXNlIHVzaW5nICphd2FpdCogd2l0aCBBV1MgQVBJcyBkb2Vzbid0IHJlcXVpcmUgY2FsbGluZyBwcm9taXNlKCkgYnV0IG5vdGhpbmcgd29ya3MgaWYgaXQgaXNuJ3QgY2FsbGVkLlxuICogUmV0cmllcyBhIHNpbmdsZSB0aW1lIGluIGNhc2Ugb2YgZmFpbHVyZS5cbiAqIEBwYXJhbSBtZXNzYWdlXG4gKiBAcGFyYW0gdG9waWNBcm5cbiAqIEBwYXJhbSBzbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNuc1B1Ymxpc2gobWVzc2FnZTogc3RyaW5nLCB0b3BpY0Fybjogc3RyaW5nLCBzbnM6IFNOUykge1xuICAgIGNvbnN0IHB1Ymxpc2hQYXJhbXMgPSB7XG4gICAgICAgIE1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIFRvcGljQXJuOiB0b3BpY0FybixcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNucy5wdWJsaXNoKHB1Ymxpc2hQYXJhbXMpLnByb21pc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdtZXRob2Q9c25zUHVibGlzaCBlcnJvciwgcmV0cnlpbmcnLCBlcnJvcik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBzbnMucHVibGlzaChwdWJsaXNoUGFyYW1zKS5wcm9taXNlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdtZXRob2Q9c25zUHVibGlzaCBlcnJvciBhZnRlciByZXRyeScsIGUyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uploadToS3 = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
- async function uploadToS3(bucketName, body, objectName, cannedAcl, contentType) {
6
- const s3 = new aws_sdk_1.S3();
7
- try {
8
- await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
9
- }
10
- catch (error) {
11
- console.warn('method=uploadToS3 retrying upload to bucket %s', bucketName);
12
- try {
13
- await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
14
- }
15
- catch (e2) {
16
- console.error('method=uploadToS3 failed retrying upload to bucket %s', bucketName);
17
- }
18
- }
19
- }
20
- exports.uploadToS3 = uploadToS3;
21
- function doUpload(s3, bucketName, body, filename, cannedAcl, contentType) {
22
- return s3.upload({
23
- Bucket: bucketName,
24
- Body: body,
25
- Key: filename,
26
- ACL: cannedAcl,
27
- ContentType: contentType,
28
- }).promise();
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3J1bnRpbWUvczMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTJCO0FBRXBCLEtBQUssVUFBVSxVQUFVLENBQzVCLFVBQWtCLEVBQ2xCLElBQVUsRUFDVixVQUFrQixFQUNsQixTQUFrQixFQUNsQixXQUFvQjtJQUdwQixNQUFNLEVBQUUsR0FBRyxJQUFJLFlBQUUsRUFBRSxDQUFDO0lBQ3BCLElBQUk7UUFDQSxNQUFNLFFBQVEsQ0FDVixFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FDM0QsQ0FBQztLQUNMO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLElBQUk7WUFDQSxNQUFNLFFBQVEsQ0FDVixFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FDM0QsQ0FBQztTQUNMO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0o7QUFDTCxDQUFDO0FBdkJELGdDQXVCQztBQUVELFNBQVMsUUFBUSxDQUNiLEVBQU0sRUFDTixVQUFrQixFQUNsQixJQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsU0FBa0IsRUFDbEIsV0FBb0I7SUFHcEIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2IsTUFBTSxFQUFFLFVBQVU7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxTQUFTO1FBQ2QsV0FBVyxFQUFFLFdBQVc7S0FDM0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1MzfSBmcm9tIFwiYXdzLXNka1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkVG9TMzxCb2R5PihcbiAgICBidWNrZXROYW1lOiBzdHJpbmcsXG4gICAgYm9keTogQm9keSxcbiAgICBvYmplY3ROYW1lOiBzdHJpbmcsXG4gICAgY2FubmVkQWNsPzogc3RyaW5nLFxuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nLFxuKSB7XG5cbiAgICBjb25zdCBzMyA9IG5ldyBTMygpO1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRvVXBsb2FkKFxuICAgICAgICAgICAgczMsIGJ1Y2tldE5hbWUsIGJvZHksIG9iamVjdE5hbWUsIGNhbm5lZEFjbCwgY29udGVudFR5cGUsXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdtZXRob2Q9dXBsb2FkVG9TMyByZXRyeWluZyB1cGxvYWQgdG8gYnVja2V0ICVzJywgYnVja2V0TmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBkb1VwbG9hZChcbiAgICAgICAgICAgICAgICBzMywgYnVja2V0TmFtZSwgYm9keSwgb2JqZWN0TmFtZSwgY2FubmVkQWNsLCBjb250ZW50VHlwZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGUyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdtZXRob2Q9dXBsb2FkVG9TMyBmYWlsZWQgcmV0cnlpbmcgdXBsb2FkIHRvIGJ1Y2tldCAlcycsIGJ1Y2tldE5hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkb1VwbG9hZDxCb2R5PihcbiAgICBzMzogUzMsXG4gICAgYnVja2V0TmFtZTogc3RyaW5nLFxuICAgIGJvZHk6IEJvZHksXG4gICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICBjYW5uZWRBY2w/OiBzdHJpbmcsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4pIHtcblxuICAgIHJldHVybiBzMy51cGxvYWQoe1xuICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgIEJvZHk6IGJvZHksXG4gICAgICAgIEtleTogZmlsZW5hbWUsXG4gICAgICAgIEFDTDogY2FubmVkQWNsLFxuICAgICAgICBDb250ZW50VHlwZTogY29udGVudFR5cGUsXG4gICAgfSkucHJvbWlzZSgpO1xufVxuIl19
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkExpectedSecretKeys = exports.withDbSecret = exports.DatabaseEnvironmentKeys = exports.RdsSecretKey = exports.RdsProxySecretKey = void 0;
4
- const secret_1 = require("./secret");
5
- var RdsProxySecretKey;
6
- (function (RdsProxySecretKey) {
7
- RdsProxySecretKey["username"] = "username";
8
- RdsProxySecretKey["password"] = "password";
9
- RdsProxySecretKey["proxy_host"] = "proxy_host";
10
- RdsProxySecretKey["proxy_ro_host"] = "proxy_ro_host";
11
- })(RdsProxySecretKey = exports.RdsProxySecretKey || (exports.RdsProxySecretKey = {}));
12
- var RdsSecretKey;
13
- (function (RdsSecretKey) {
14
- RdsSecretKey["username"] = "username";
15
- RdsSecretKey["password"] = "password";
16
- RdsSecretKey["host"] = "host";
17
- RdsSecretKey["ro_host"] = "ro_host";
18
- })(RdsSecretKey = exports.RdsSecretKey || (exports.RdsSecretKey = {}));
19
- var DatabaseEnvironmentKeys;
20
- (function (DatabaseEnvironmentKeys) {
21
- DatabaseEnvironmentKeys["DB_USER"] = "DB_USER";
22
- DatabaseEnvironmentKeys["DB_PASS"] = "DB_PASS";
23
- DatabaseEnvironmentKeys["DB_URI"] = "DB_URI";
24
- DatabaseEnvironmentKeys["DB_RO_URI"] = "DB_RO_URI";
25
- DatabaseEnvironmentKeys["DB_APPLICATION"] = "DB_APPLICATION";
26
- })(DatabaseEnvironmentKeys = exports.DatabaseEnvironmentKeys || (exports.DatabaseEnvironmentKeys = {}));
27
- function setDbSecret(secret) {
28
- process.env[DatabaseEnvironmentKeys.DB_USER] = secret.username;
29
- process.env[DatabaseEnvironmentKeys.DB_PASS] = secret.password;
30
- process.env[DatabaseEnvironmentKeys.DB_URI] = secret.host;
31
- process.env[DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
32
- }
33
- // cached at Lambda container level
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
- let cachedSecret;
36
- const missingSecretErrorText = 'Missing or empty secretId';
37
- /**
38
- * Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
39
- *
40
- * @deprecated use SecretHolder & ProxyHolder
41
- * @see SecretOptions
42
- *
43
- * @param {string} secretId
44
- * @param {function} fn
45
- * @param {SecretOptions} options
46
- */
47
- async function withDbSecret(secretId, fn, options) {
48
- if (!secretId) {
49
- console.error(missingSecretErrorText);
50
- return Promise.reject(missingSecretErrorText);
51
- }
52
- if (!cachedSecret) {
53
- // if prefix is given, first set db values and then fetch secret
54
- if (options?.prefix) {
55
- // first set db values
56
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
57
- setDbSecret(fetchedSecret);
58
- });
59
- // then actual secret
60
- await (0, secret_1.withSecretAndPrefix)(secretId, options.prefix, (fetchedSecret) => {
61
- cachedSecret = fetchedSecret;
62
- });
63
- }
64
- else {
65
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
66
- setDbSecret(fetchedSecret);
67
- cachedSecret = fetchedSecret;
68
- });
69
- }
70
- }
71
- try {
72
- if (options?.expectedKeys?.length) {
73
- checkExpectedSecretKeys(options.expectedKeys, cachedSecret);
74
- }
75
- return fn(cachedSecret);
76
- }
77
- catch (error) {
78
- console.error('method=withDbSecret Caught an error, refreshing secret', error);
79
- // try to refetch secret in case it has changed
80
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
81
- setDbSecret(fetchedSecret);
82
- cachedSecret = fetchedSecret;
83
- });
84
- return fn(cachedSecret);
85
- }
86
- }
87
- exports.withDbSecret = withDbSecret;
88
- function checkExpectedSecretKeys(keys, secret) {
89
- const missingKeys = keys.filter(key => !(key in secret));
90
- if (missingKeys.length) {
91
- console.error(`method=checkExpectedSecretKeys secret didn't contain the key(s) ${missingKeys}`);
92
- throw new Error('Expected keys were not found');
93
- }
94
- }
95
- exports.checkExpectedSecretKeys = checkExpectedSecretKeys;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJzZWNyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXdzL3J1bnRpbWUvc2VjcmV0cy9kYnNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBeUQ7QUFTekQsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLDBDQUFxQixDQUFBO0lBQUUsMENBQXFCLENBQUE7SUFBRSw4Q0FBeUIsQ0FBQTtJQUFFLG9EQUErQixDQUFBO0FBQzVHLENBQUMsRUFGVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUU1QjtBQUVELElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUNwQixxQ0FBcUIsQ0FBQTtJQUFFLHFDQUFxQixDQUFBO0lBQUUsNkJBQWEsQ0FBQTtJQUFFLG1DQUFtQixDQUFBO0FBQ3BGLENBQUMsRUFGVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUV2QjtBQUtELElBQVksdUJBTVg7QUFORCxXQUFZLHVCQUF1QjtJQUMvQiw4Q0FBbUIsQ0FBQTtJQUNuQiw4Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBaUIsQ0FBQTtJQUNqQixrREFBdUIsQ0FBQTtJQUN2Qiw0REFBaUMsQ0FBQTtBQUNyQyxDQUFDLEVBTlcsdUJBQXVCLEdBQXZCLCtCQUF1QixLQUF2QiwrQkFBdUIsUUFNbEM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFnQjtJQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDcEUsQ0FBQztBQUVELG1DQUFtQztBQUNuQyw4REFBOEQ7QUFDOUQsSUFBSSxZQUFpQixDQUFDO0FBRXRCLE1BQU0sc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7QUFtQjNEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQW1CLFFBQWdCLEVBQUUsRUFBNkMsRUFBRSxPQUF1QjtJQUN6SSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNmLGdFQUFnRTtRQUNoRSxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDakIsc0JBQXNCO1lBQ3RCLE1BQU0sSUFBQSxtQkFBVSxFQUFDLFFBQVEsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtnQkFDbkQsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBRUgscUJBQXFCO1lBQ3JCLE1BQU0sSUFBQSw0QkFBbUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQXFCLEVBQUUsRUFBRTtnQkFDMUUsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxNQUFNLElBQUEsbUJBQVUsRUFBQyxRQUFRLEVBQUUsQ0FBQyxhQUF1QixFQUFFLEVBQUU7Z0JBQ25ELFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0IsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0o7SUFDRCxJQUFJO1FBQ0EsSUFBSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRTtZQUMvQix1QkFBdUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDM0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0UsK0NBQStDO1FBQy9DLE1BQU0sSUFBQSxtQkFBVSxFQUFDLFFBQVEsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtZQUNuRCxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0IsWUFBWSxHQUFHLGFBQWEsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQzNCO0FBQ0wsQ0FBQztBQXZDRCxvQ0F1Q0M7QUFFRCxTQUFnQix1QkFBdUIsQ0FBUyxJQUFjLEVBQUUsTUFBYztJQUMxRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pELElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLG1FQUFtRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztLQUNuRDtBQUNMLENBQUM7QUFORCwwREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7d2l0aFNlY3JldCwgd2l0aFNlY3JldEFuZFByZWZpeH0gZnJvbSBcIi4vc2VjcmV0XCI7XG5cbmV4cG9ydCB0eXBlIERiU2VjcmV0ID0ge1xuICAgIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmdcbiAgICByZWFkb25seSBwYXNzd29yZDogc3RyaW5nXG4gICAgcmVhZG9ubHkgaG9zdDogc3RyaW5nXG4gICAgcmVhZG9ubHkgcm9faG9zdDogc3RyaW5nXG59O1xuXG5leHBvcnQgZW51bSBSZHNQcm94eVNlY3JldEtleSB7XG4gICAgdXNlcm5hbWUgPSBcInVzZXJuYW1lXCIsIHBhc3N3b3JkID0gXCJwYXNzd29yZFwiLCBwcm94eV9ob3N0ID0gXCJwcm94eV9ob3N0XCIsIHByb3h5X3JvX2hvc3QgPSBcInByb3h5X3JvX2hvc3RcIlxufVxuXG5leHBvcnQgZW51bSBSZHNTZWNyZXRLZXkge1xuICAgIHVzZXJuYW1lID0gXCJ1c2VybmFtZVwiLCBwYXNzd29yZCA9IFwicGFzc3dvcmRcIiwgaG9zdCA9IFwiaG9zdFwiLCByb19ob3N0ID0gXCJyb19ob3N0XCJcbn1cblxuZXhwb3J0IHR5cGUgUmRzUHJveHlTZWNyZXQgPSBSZWNvcmQ8UmRzUHJveHlTZWNyZXRLZXksIHN0cmluZz47XG5leHBvcnQgdHlwZSBSZHNTZWNyZXQgPSBSZWNvcmQ8UmRzU2VjcmV0S2V5LCBzdHJpbmc+O1xuXG5leHBvcnQgZW51bSBEYXRhYmFzZUVudmlyb25tZW50S2V5cyB7XG4gICAgREJfVVNFUiA9IFwiREJfVVNFUlwiLFxuICAgIERCX1BBU1MgPSBcIkRCX1BBU1NcIixcbiAgICBEQl9VUkkgPSBcIkRCX1VSSVwiLFxuICAgIERCX1JPX1VSSSA9IFwiREJfUk9fVVJJXCIsXG4gICAgREJfQVBQTElDQVRJT04gPSBcIkRCX0FQUExJQ0FUSU9OXCIsXG59XG5cbmZ1bmN0aW9uIHNldERiU2VjcmV0KHNlY3JldDogRGJTZWNyZXQpIHtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSA9IHNlY3JldC51c2VybmFtZTtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9QQVNTXSA9IHNlY3JldC5wYXNzd29yZDtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VUkldID0gc2VjcmV0Lmhvc3Q7XG4gICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUk9fVVJJXSA9IHNlY3JldC5yb19ob3N0O1xufVxuXG4vLyBjYWNoZWQgYXQgTGFtYmRhIGNvbnRhaW5lciBsZXZlbFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmxldCBjYWNoZWRTZWNyZXQ6IGFueTtcblxuY29uc3QgbWlzc2luZ1NlY3JldEVycm9yVGV4dCA9ICdNaXNzaW5nIG9yIGVtcHR5IHNlY3JldElkJztcblxuLyoqXG4gKiBZb3UgY2FuIGdpdmUgdGhlIGZvbGxvd2luZyBvcHRpb25zIGZvciByZXRyaWV2aW5nIGEgc2VjcmV0OlxuICpcbiAqIGV4cGVjdGVkS2V5czogdGhlIGxpc3Qgb2Yga2V5cyB0aGUgc2VjcmV0IG11c3QgaW5jbHVkZS4gIElmIG5vdCwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gKiBwcmVmaXg6IGEgcHJlZml4IHRoYXQncyBpbmNsdWRlZCBpbiByZXRyaWV2ZWQgc2VjcmV0J3Mga2V5cy4gIE9ubHkga2V5cyBiZWdpbmluZyB3aXRoIHRoZSBwcmVmaXggd2lsbCBiZSBpbmNsdWRlZC5cbiAqIFRoZSBzZWNyZXQgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGdpdmVuIGZ1bmN0aW9uIHdpbGwgbm90IGluY2x1ZGUgdGhlIHByZWZpeCBpbiBpdCdzIGtleXMuXG5cbiAqL1xuZXhwb3J0IHR5cGUgU2VjcmV0T3B0aW9ucyA9IHtcbiAgICByZWFkb25seSBleHBlY3RlZEtleXM/OiBzdHJpbmdbXSxcbiAgICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjcmV0VG9Qcm9taXNlRnVuY3Rpb248U2VjcmV0LCBSZXNwb25zZSA9IHZvaWQ+ID0gKHNlY3JldDogU2VjcmV0KSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IHZvaWQ7XG5leHBvcnQgdHlwZSBTZWNyZXRGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlID0gdm9pZD4gPSAoc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+LCBvcHRpb25zPzogU2VjcmV0T3B0aW9ucykgPT4gUHJvbWlzZTxSZXNwb25zZSB8IHZvaWQ+O1xuZXhwb3J0IHR5cGUgRW1wdHlTZWNyZXRGdW5jdGlvbjxSZXNwb25zZSA9IHZvaWQ+ID0gU2VjcmV0RnVuY3Rpb248RGJTZWNyZXQsIFJlc3BvbnNlPjtcblxuLyoqXG4gKiBSdW4gdGhlIGdpdmVuIGZ1bmN0aW9uIHdpdGggc2VjcmV0IHJldHJpZXZlZCBmcm9tIFNlY3JldHMgTWFuYWdlci4gIEFsc28gaW5qZWN0cyBkYXRhYmFzZS1jcmVkZW50aWFscyBpbnRvIGVudmlyb25tZW50LlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZSBTZWNyZXRIb2xkZXIgJiBQcm94eUhvbGRlclxuICogQHNlZSBTZWNyZXRPcHRpb25zXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNlY3JldElkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtTZWNyZXRPcHRpb25zfSBvcHRpb25zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3aXRoRGJTZWNyZXQ8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+LCBvcHRpb25zPzogU2VjcmV0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2UgfCB2b2lkPiB7XG4gICAgaWYgKCFzZWNyZXRJZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1pc3NpbmdTZWNyZXRFcnJvclRleHQpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobWlzc2luZ1NlY3JldEVycm9yVGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKCFjYWNoZWRTZWNyZXQpIHtcbiAgICAgICAgLy8gaWYgcHJlZml4IGlzIGdpdmVuLCBmaXJzdCBzZXQgZGIgdmFsdWVzIGFuZCB0aGVuIGZldGNoIHNlY3JldFxuICAgICAgICBpZiAob3B0aW9ucz8ucHJlZml4KSB7XG4gICAgICAgICAgICAvLyBmaXJzdCBzZXQgZGIgdmFsdWVzXG4gICAgICAgICAgICBhd2FpdCB3aXRoU2VjcmV0KHNlY3JldElkLCAoZmV0Y2hlZFNlY3JldDogRGJTZWNyZXQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXREYlNlY3JldChmZXRjaGVkU2VjcmV0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyB0aGVuIGFjdHVhbCBzZWNyZXRcbiAgICAgICAgICAgIGF3YWl0IHdpdGhTZWNyZXRBbmRQcmVmaXgoc2VjcmV0SWQsIG9wdGlvbnMucHJlZml4LCAoZmV0Y2hlZFNlY3JldDogU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgd2l0aFNlY3JldChzZWNyZXRJZCwgKGZldGNoZWRTZWNyZXQ6IERiU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RGJTZWNyZXQoZmV0Y2hlZFNlY3JldCk7XG4gICAgICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmIChvcHRpb25zPy5leHBlY3RlZEtleXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY2hlY2tFeHBlY3RlZFNlY3JldEtleXMob3B0aW9ucy5leHBlY3RlZEtleXMsIGNhY2hlZFNlY3JldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZuKGNhY2hlZFNlY3JldCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignbWV0aG9kPXdpdGhEYlNlY3JldCBDYXVnaHQgYW4gZXJyb3IsIHJlZnJlc2hpbmcgc2VjcmV0JywgZXJyb3IpO1xuICAgICAgICAvLyB0cnkgdG8gcmVmZXRjaCBzZWNyZXQgaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICAgICAgICBhd2FpdCB3aXRoU2VjcmV0KHNlY3JldElkLCAoZmV0Y2hlZFNlY3JldDogRGJTZWNyZXQpID0+IHtcbiAgICAgICAgICAgIHNldERiU2VjcmV0KGZldGNoZWRTZWNyZXQpO1xuICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmbihjYWNoZWRTZWNyZXQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRTZWNyZXRLZXlzPFNlY3JldD4oa2V5czogc3RyaW5nW10sIHNlY3JldDogU2VjcmV0KSB7XG4gICAgY29uc3QgbWlzc2luZ0tleXMgPSBrZXlzLmZpbHRlcihrZXkgPT4gIShrZXkgaW4gc2VjcmV0KSk7XG4gICAgaWYgKG1pc3NpbmdLZXlzLmxlbmd0aCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBtZXRob2Q9Y2hlY2tFeHBlY3RlZFNlY3JldEtleXMgc2VjcmV0IGRpZG4ndCBjb250YWluIHRoZSBrZXkocykgJHttaXNzaW5nS2V5c31gKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBrZXlzIHdlcmUgbm90IGZvdW5kJyk7XG4gICAgfVxufVxuIl19
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProxyHolder = void 0;
4
- const secret_holder_1 = require("./secret-holder");
5
- const dbsecret_1 = require("./dbsecret");
6
- const RDS_PROXY_SECRET_KEYS = Object.values(dbsecret_1.RdsProxySecretKey);
7
- /**
8
- * Holds credentials for RDS Proxy access.
9
- */
10
- class ProxyHolder {
11
- constructor(secretId) {
12
- this.secretHolder = new secret_holder_1.SecretHolder(secretId, '', RDS_PROXY_SECRET_KEYS);
13
- }
14
- static create() {
15
- return new ProxyHolder(process.env.SECRET_ID);
16
- }
17
- async setCredentials() {
18
- const secret = await this.secretHolder.get();
19
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
20
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
21
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.proxy_host;
22
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.proxy_ro_host;
23
- }
24
- }
25
- exports.ProxyHolder = ProxyHolder;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHktaG9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvcHJveHktaG9sZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUE2QztBQUM3Qyx5Q0FBc0Y7QUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLDRCQUFpQixDQUFDLENBQUM7QUFFL0Q7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFHcEIsWUFBWSxRQUFnQjtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBaUIsUUFBUSxFQUFFLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTTtRQUNULE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDMUUsQ0FBQztDQUNKO0FBbkJELGtDQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VjcmV0SG9sZGVyfSBmcm9tIFwiLi9zZWNyZXQtaG9sZGVyXCI7XG5pbXBvcnQge0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLCBSZHNQcm94eVNlY3JldEtleSwgUmRzUHJveHlTZWNyZXR9IGZyb20gXCIuL2Ric2VjcmV0XCI7XG5cbmNvbnN0IFJEU19QUk9YWV9TRUNSRVRfS0VZUyA9IE9iamVjdC52YWx1ZXMoUmRzUHJveHlTZWNyZXRLZXkpO1xuXG4vKipcbiAqIEhvbGRzIGNyZWRlbnRpYWxzIGZvciBSRFMgUHJveHkgYWNjZXNzLlxuICovXG5leHBvcnQgY2xhc3MgUHJveHlIb2xkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjcmV0SG9sZGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc2VjcmV0SWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlY3JldEhvbGRlciA9IG5ldyBTZWNyZXRIb2xkZXI8UmRzUHJveHlTZWNyZXQ+KHNlY3JldElkLCAnJywgUkRTX1BST1hZX1NFQ1JFVF9LRVlTKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5SG9sZGVyKHByb2Nlc3MuZW52LlNFQ1JFVF9JRCBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDcmVkZW50aWFscygpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5zZWNyZXRIb2xkZXIuZ2V0KCk7XG5cbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfVVNFUl0gPSBzZWNyZXQudXNlcm5hbWU7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1BBU1NdID0gc2VjcmV0LnBhc3N3b3JkO1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VUkldID0gc2VjcmV0LnByb3h5X2hvc3Q7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1JPX1VSSV0gPSBzZWNyZXQucHJveHlfcm9faG9zdDtcbiAgICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RdsHolder = void 0;
4
- const secret_holder_1 = require("./secret-holder");
5
- const dbsecret_1 = require("./dbsecret");
6
- const RDS_SECRET_KEYS = Object.values(dbsecret_1.RdsSecretKey);
7
- /**
8
- * Holds credentials for RDS access.
9
- */
10
- class RdsHolder {
11
- constructor(secretId) {
12
- this.secretHolder = new secret_holder_1.SecretHolder(secretId, '', RDS_SECRET_KEYS);
13
- }
14
- static create() {
15
- return new RdsHolder(process.env.SECRET_ID);
16
- }
17
- async setCredentials() {
18
- const secret = await this.secretHolder.get();
19
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
20
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
21
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
22
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
23
- }
24
- }
25
- exports.RdsHolder = RdsHolder;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLWhvbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hd3MvcnVudGltZS9zZWNyZXRzL3Jkcy1ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZDO0FBQzdDLHlDQUE0RTtBQUU1RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUFZLENBQUMsQ0FBQztBQUVwRDs7R0FFRztBQUNILE1BQWEsU0FBUztJQUdsQixZQUFZLFFBQWdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFZLFFBQVEsRUFBRSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNwRSxDQUFDO0NBQ0o7QUFuQkQsOEJBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWNyZXRIb2xkZXJ9IGZyb20gXCIuL3NlY3JldC1ob2xkZXJcIjtcbmltcG9ydCB7RGF0YWJhc2VFbnZpcm9ubWVudEtleXMsIFJkc1NlY3JldCwgUmRzU2VjcmV0S2V5fSBmcm9tIFwiLi9kYnNlY3JldFwiO1xuXG5jb25zdCBSRFNfU0VDUkVUX0tFWVMgPSBPYmplY3QudmFsdWVzKFJkc1NlY3JldEtleSk7XG5cbi8qKlxuICogSG9sZHMgY3JlZGVudGlhbHMgZm9yIFJEUyBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZHNIb2xkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjcmV0SG9sZGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc2VjcmV0SWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlY3JldEhvbGRlciA9IG5ldyBTZWNyZXRIb2xkZXI8UmRzU2VjcmV0PihzZWNyZXRJZCwgJycsIFJEU19TRUNSRVRfS0VZUyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZHNIb2xkZXIocHJvY2Vzcy5lbnYuU0VDUkVUX0lEIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCB0aGlzLnNlY3JldEhvbGRlci5nZXQoKTtcblxuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSA9IHNlY3JldC51c2VybmFtZTtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUEFTU10gPSBzZWNyZXQucGFzc3dvcmQ7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VSSV0gPSBzZWNyZXQuaG9zdDtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUk9fVVJJXSA9IHNlY3JldC5yb19ob3N0O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecretHolder = void 0;
4
- const secret_1 = require("./secret");
5
- const dbsecret_1 = require("./dbsecret");
6
- // eslint-disable-next-line @typescript-eslint/no-var-requires
7
- const NodeTtl = require('node-ttl');
8
- const DEFAULT_PREFIX = '';
9
- const DEFAULT_SECRET_KEY = 'SECRET';
10
- const DEFAULT_CONFIGURATION = {
11
- ttl: 5 * 60, // timeout secrets in 5 minutes
12
- };
13
- /**
14
- * Utility class for getting secrets from Secret Manager.
15
- * Supports prefix for secrets, checking of expected keys and ttl-configuration.
16
- *
17
- * By default, secrets are cached for 5 minutes and then reread from the Secrets Manager(This can be overridden with configuration).
18
- *
19
- * Supports setting the database environment paramaters from the secret too.
20
- */
21
- class SecretHolder {
22
- constructor(secretId, prefix = '', expectedKeys = [], configuration = DEFAULT_CONFIGURATION) {
23
- this.secretId = secretId;
24
- this.prefix = prefix;
25
- this.expectedKeys = expectedKeys;
26
- this.secretCache = new NodeTtl(configuration);
27
- }
28
- async initSecret() {
29
- const secretValue = await (0, secret_1.getSecret)(this.secretId);
30
- console.info("refreshing secret " + this.secretId);
31
- this.secretCache.push(DEFAULT_SECRET_KEY, secretValue);
32
- }
33
- static create(prefix = DEFAULT_PREFIX, expectedKeys = []) {
34
- return new SecretHolder(process.env.SECRET_ID, prefix, expectedKeys);
35
- }
36
- async get() {
37
- const secret = await this.getSecret();
38
- const parsedSecret = this.prefix === DEFAULT_PREFIX ? secret : this.parseSecret(secret, `${this.prefix}.`);
39
- if (this.expectedKeys.length > 0) {
40
- (0, dbsecret_1.checkExpectedSecretKeys)(this.expectedKeys, parsedSecret);
41
- }
42
- return parsedSecret;
43
- }
44
- parseSecret(secret, prefix) {
45
- const parsed = {};
46
- const skip = prefix.length;
47
- for (const key in secret) {
48
- if (key.startsWith(prefix)) {
49
- parsed[key.substring(skip)] = secret[key];
50
- }
51
- }
52
- return parsed;
53
- }
54
- async getSecret() {
55
- const secret = this.secretCache.get(DEFAULT_SECRET_KEY);
56
- if (!secret) {
57
- await this.initSecret();
58
- }
59
- return secret || this.secretCache.get(DEFAULT_SECRET_KEY);
60
- }
61
- /**
62
- * @deprecated Use ProxyHolder
63
- */
64
- async setDatabaseCredentials() {
65
- const secret = await this.getSecret();
66
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
67
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
68
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
69
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
70
- }
71
- }
72
- exports.SecretHolder = SecretHolder;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LWhvbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hd3MvcnVudGltZS9zZWNyZXRzL3NlY3JldC1ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWtEO0FBQ2xELHlDQUFzRjtBQUV0Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXBDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztBQUNwQyxNQUFNLHFCQUFxQixHQUFHO0lBQzFCLEdBQUcsRUFBRSxDQUFDLEdBQUMsRUFBRSxFQUFFLCtCQUErQjtDQUM3QyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQWEsWUFBWTtJQU9yQixZQUFZLFFBQWdCLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxlQUF5QixFQUFFLEVBQUUsYUFBYSxHQUFHLHFCQUFxQjtRQUN6RyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUVqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUNwQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUEsa0JBQVMsRUFBUyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUksTUFBTSxHQUFHLGNBQWMsRUFBRSxlQUF5QixFQUFFO1FBQ3hFLE9BQU8sSUFBSSxZQUFZLENBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQixFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUc7UUFDWixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQVUsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQWtDLEVBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV4SSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QixJQUFBLGtDQUF1QixFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQXFCLEVBQUUsTUFBYztRQUNyRCxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QztTQUNKO1FBRUQsT0FBTyxNQUEyQixDQUFDO0lBQ3ZDLENBQUM7SUFHTyxLQUFLLENBQUMsU0FBUztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUMzQjtRQUVELE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQjtRQUMvQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQVksQ0FBQztRQUVoRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDcEUsQ0FBQztDQUNKO0FBekVELG9DQXlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R2VuZXJpY1NlY3JldCwgZ2V0U2VjcmV0fSBmcm9tIFwiLi9zZWNyZXRcIjtcbmltcG9ydCB7Y2hlY2tFeHBlY3RlZFNlY3JldEtleXMsIERhdGFiYXNlRW52aXJvbm1lbnRLZXlzLCBEYlNlY3JldH0gZnJvbSBcIi4vZGJzZWNyZXRcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IE5vZGVUdGwgPSByZXF1aXJlKCdub2RlLXR0bCcpO1xuXG5jb25zdCBERUZBVUxUX1BSRUZJWCA9ICcnO1xuY29uc3QgREVGQVVMVF9TRUNSRVRfS0VZID0gJ1NFQ1JFVCc7XG5jb25zdCBERUZBVUxUX0NPTkZJR1VSQVRJT04gPSB7XG4gICAgdHRsOiA1KjYwLCAvLyB0aW1lb3V0IHNlY3JldHMgaW4gNSBtaW51dGVzXG59O1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGdldHRpbmcgc2VjcmV0cyBmcm9tIFNlY3JldCBNYW5hZ2VyLlxuICogU3VwcG9ydHMgcHJlZml4IGZvciBzZWNyZXRzLCBjaGVja2luZyBvZiBleHBlY3RlZCBrZXlzIGFuZCB0dGwtY29uZmlndXJhdGlvbi5cbiAqXG4gKiBCeSBkZWZhdWx0LCBzZWNyZXRzIGFyZSBjYWNoZWQgZm9yIDUgbWludXRlcyBhbmQgdGhlbiByZXJlYWQgZnJvbSB0aGUgU2VjcmV0cyBNYW5hZ2VyKFRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBjb25maWd1cmF0aW9uKS5cbiAqXG4gKiBTdXBwb3J0cyBzZXR0aW5nIHRoZSBkYXRhYmFzZSBlbnZpcm9ubWVudCBwYXJhbWF0ZXJzIGZyb20gdGhlIHNlY3JldCB0b28uXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXRIb2xkZXI8U2VjcmV0PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWNyZXRJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHBlY3RlZEtleXM6IHN0cmluZ1tdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWNyZXRDYWNoZTtcblxuICAgIGNvbnN0cnVjdG9yKHNlY3JldElkOiBzdHJpbmcsIHByZWZpeCA9ICcnLCBleHBlY3RlZEtleXM6IHN0cmluZ1tdID0gW10sIGNvbmZpZ3VyYXRpb24gPSBERUZBVUxUX0NPTkZJR1VSQVRJT04pIHtcbiAgICAgICAgdGhpcy5zZWNyZXRJZCA9IHNlY3JldElkO1xuICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICAgICAgdGhpcy5leHBlY3RlZEtleXMgPSBleHBlY3RlZEtleXM7XG5cbiAgICAgICAgdGhpcy5zZWNyZXRDYWNoZSA9IG5ldyBOb2RlVHRsKGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFNlY3JldCgpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0VmFsdWUgPSBhd2FpdCBnZXRTZWNyZXQ8U2VjcmV0Pih0aGlzLnNlY3JldElkKTtcblxuICAgICAgICBjb25zb2xlLmluZm8oXCJyZWZyZXNoaW5nIHNlY3JldCBcIiArIHRoaXMuc2VjcmV0SWQpO1xuXG4gICAgICAgIHRoaXMuc2VjcmV0Q2FjaGUucHVzaChERUZBVUxUX1NFQ1JFVF9LRVksIHNlY3JldFZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxTPihwcmVmaXggPSBERUZBVUxUX1BSRUZJWCwgZXhwZWN0ZWRLZXlzOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2VjcmV0SG9sZGVyPFM+KHByb2Nlc3MuZW52LlNFQ1JFVF9JRCBhcyBzdHJpbmcsIHByZWZpeCwgZXhwZWN0ZWRLZXlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0KCk6IFByb21pc2U8U2VjcmV0PiB7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMuZ2V0U2VjcmV0PFNlY3JldD4oKTtcbiAgICAgICAgY29uc3QgcGFyc2VkU2VjcmV0ID0gdGhpcy5wcmVmaXggPT09IERFRkFVTFRfUFJFRklYID8gc2VjcmV0IDogdGhpcy5wYXJzZVNlY3JldChzZWNyZXQgYXMgdW5rbm93biBhcyBHZW5lcmljU2VjcmV0LCAgYCR7dGhpcy5wcmVmaXh9LmApO1xuXG4gICAgICAgIGlmICh0aGlzLmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjaGVja0V4cGVjdGVkU2VjcmV0S2V5cyh0aGlzLmV4cGVjdGVkS2V5cywgcGFyc2VkU2VjcmV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWRTZWNyZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVNlY3JldChzZWNyZXQ6IEdlbmVyaWNTZWNyZXQsIHByZWZpeDogc3RyaW5nKTogU2VjcmV0IHtcbiAgICAgICAgY29uc3QgcGFyc2VkOiBHZW5lcmljU2VjcmV0ID0ge307XG4gICAgICAgIGNvbnN0IHNraXAgPSBwcmVmaXgubGVuZ3RoO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNlY3JldCkge1xuICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRba2V5LnN1YnN0cmluZyhza2lwKV0gPSBzZWNyZXRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWQgYXMgdW5rbm93biBhcyBTZWNyZXQ7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFNlY3JldDxTPigpOiBQcm9taXNlPFM+IHtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gdGhpcy5zZWNyZXRDYWNoZS5nZXQoREVGQVVMVF9TRUNSRVRfS0VZKTtcblxuICAgICAgICBpZiAoIXNlY3JldCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0U2VjcmV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VjcmV0IHx8IHRoaXMuc2VjcmV0Q2FjaGUuZ2V0KERFRkFVTFRfU0VDUkVUX0tFWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIFByb3h5SG9sZGVyXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHNldERhdGFiYXNlQ3JlZGVudGlhbHMoKSB7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMuZ2V0U2VjcmV0PERiU2VjcmV0PigpO1xuXG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VTRVJdID0gc2VjcmV0LnVzZXJuYW1lO1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9QQVNTXSA9IHNlY3JldC5wYXNzd29yZDtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfVVJJXSA9IHNlY3JldC5ob3N0O1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9ST19VUkldID0gc2VjcmV0LnJvX2hvc3Q7XG4gICAgfVxufVxuIl19
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withSecretAndPrefix = exports.getSecret = exports.withSecret = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
- const smClient = new aws_sdk_1.SecretsManager({
6
- region: process.env.AWS_REGION,
7
- });
8
- /**
9
- @deprecated use SecretHolder & ProxyHolder
10
- */
11
- async function withSecret(secretId, fn) {
12
- return fn(await getSecret(secretId));
13
- }
14
- exports.withSecret = withSecret;
15
- async function getSecret(secretId, prefix = '') {
16
- const secretObj = await smClient.getSecretValue({
17
- SecretId: secretId,
18
- }).promise();
19
- if (!secretObj.SecretString) {
20
- throw new Error('No secret found!');
21
- }
22
- const secret = JSON.parse(secretObj.SecretString);
23
- if (prefix === '') {
24
- return secret;
25
- }
26
- return parseSecret(secret, `${prefix}.`);
27
- }
28
- exports.getSecret = getSecret;
29
- function parseSecret(secret, prefix) {
30
- const parsed = {};
31
- const skip = prefix.length;
32
- for (const key in secret) {
33
- if (key.startsWith(prefix)) {
34
- parsed[key.substring(skip)] = secret[key];
35
- }
36
- }
37
- return parsed;
38
- }
39
- async function withSecretAndPrefix(secretId, prefix, fn) {
40
- return fn(await getSecret(secretId, prefix));
41
- }
42
- exports.withSecretAndPrefix = withSecretAndPrefix;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF1QztBQUd2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLHdCQUFjLENBQUM7SUFDaEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtDQUNqQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQW1CLFFBQWdCLEVBQUUsRUFBNkM7SUFDOUcsT0FBTyxFQUFFLENBQUMsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsU0FBUyxDQUFTLFFBQWdCLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDakUsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQzVDLFFBQVEsRUFBRSxRQUFRO0tBQ3JCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUViLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWxELElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRTtRQUNmLE9BQU8sTUFBTSxDQUFDO0tBQ2pCO0lBRUQsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBaEJELDhCQWdCQztBQUVELFNBQVMsV0FBVyxDQUFTLE1BQXFCLEVBQUUsTUFBYztJQUM5RCxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdEIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdDO0tBQ0o7SUFFRCxPQUFPLE1BQTJCLENBQUM7QUFDdkMsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBbUIsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBNkM7SUFDdkksT0FBTyxFQUFFLENBQUMsTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUZELGtEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWNyZXRzTWFuYWdlcn0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQge1NlY3JldFRvUHJvbWlzZUZ1bmN0aW9ufSBmcm9tIFwiLi9kYnNlY3JldFwiO1xuXG5jb25zdCBzbUNsaWVudCA9IG5ldyBTZWNyZXRzTWFuYWdlcih7XG4gICAgcmVnaW9uOiBwcm9jZXNzLmVudi5BV1NfUkVHSU9OLFxufSk7XG5cbmV4cG9ydCB0eXBlIEdlbmVyaWNTZWNyZXQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4vKipcbiBAZGVwcmVjYXRlZCB1c2UgU2VjcmV0SG9sZGVyICYgUHJveHlIb2xkZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhTZWNyZXQ8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+KTogUHJvbWlzZTxSZXNwb25zZSB8IHZvaWQ+IHtcbiAgICByZXR1cm4gZm4oYXdhaXQgZ2V0U2VjcmV0KHNlY3JldElkKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWNyZXQ8U2VjcmV0PihzZWNyZXRJZDogc3RyaW5nLCBwcmVmaXggPSAnJyk6IFByb21pc2U8U2VjcmV0PiB7XG4gICAgY29uc3Qgc2VjcmV0T2JqID0gYXdhaXQgc21DbGllbnQuZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgICBTZWNyZXRJZDogc2VjcmV0SWQsXG4gICAgfSkucHJvbWlzZSgpO1xuXG4gICAgaWYgKCFzZWNyZXRPYmouU2VjcmV0U3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2VjcmV0IGZvdW5kIScpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldCA9IEpTT04ucGFyc2Uoc2VjcmV0T2JqLlNlY3JldFN0cmluZyk7XG5cbiAgICBpZiAocHJlZml4ID09PSAnJykge1xuICAgICAgICByZXR1cm4gc2VjcmV0O1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVNlY3JldChzZWNyZXQsIGAke3ByZWZpeH0uYCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2VjcmV0PFNlY3JldD4oc2VjcmV0OiBHZW5lcmljU2VjcmV0LCBwcmVmaXg6IHN0cmluZyk6IFNlY3JldCB7XG4gICAgY29uc3QgcGFyc2VkOiBHZW5lcmljU2VjcmV0ID0ge307XG4gICAgY29uc3Qgc2tpcCA9IHByZWZpeC5sZW5ndGg7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzZWNyZXQpIHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgIHBhcnNlZFtrZXkuc3Vic3RyaW5nKHNraXApXSA9IHNlY3JldFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZCBhcyB1bmtub3duIGFzIFNlY3JldDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhTZWNyZXRBbmRQcmVmaXg8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIGZuOiBTZWNyZXRUb1Byb21pc2VGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlPik6IFByb21pc2U8UmVzcG9uc2UgfCB2b2lkPiB7XG4gICAgcmV0dXJuIGZuKGF3YWl0IGdldFNlY3JldChzZWNyZXRJZCwgcHJlZml4KSk7XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAD_REQUEST_MESSAGE = exports.OK_MESSAGE = exports.ERROR_MESSAGE = exports.NOT_FOUND_MESSAGE = void 0;
4
- // DEPRECATED, remove this!
5
- exports.NOT_FOUND_MESSAGE = 'NOT_FOUND';
6
- exports.ERROR_MESSAGE = 'ERROR';
7
- exports.OK_MESSAGE = 'OK';
8
- exports.BAD_REQUEST_MESSAGE = 'BAD REQUEST';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy90eXBlcy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQTJCO0FBQ2QsUUFBQSxpQkFBaUIsR0FBRyxXQUFXLENBQUM7QUFDaEMsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBQ3hCLFFBQUEsVUFBVSxHQUFHLElBQUksQ0FBQztBQUNsQixRQUFBLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIERFUFJFQ0FURUQsIHJlbW92ZSB0aGlzIVxyXG5leHBvcnQgY29uc3QgTk9UX0ZPVU5EX01FU1NBR0UgPSAnTk9UX0ZPVU5EJztcclxuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0UgPSAnRVJST1InO1xyXG5leHBvcnQgY29uc3QgT0tfTUVTU0FHRSA9ICdPSyc7XHJcbmV4cG9ydCBjb25zdCBCQURfUkVRVUVTVF9NRVNTQUdFID0gJ0JBRCBSRVFVRVNUJztcclxuIl19