@rio-cloud/cdk-v2-constructs 9.0.0-alpha.0 → 9.0.0-alpha.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 (57) hide show
  1. package/.jsii +2825 -7033
  2. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +1 -5
  3. package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.js +1 -5
  4. package/lib/contributions/smart-route/gitlab-runner/runner-roles.js +1 -5
  5. package/lib/contributions/smart-route/gitlab-runner/spot-role.js +1 -5
  6. package/lib/contributions/team-claid/aws-backup-monitoring/aws-backup-monitoring.js +1 -7
  7. package/lib/contributions/team-claid/aws-glue/csv-table.js +1 -5
  8. package/lib/contributions/team-claid/aws-glue/schema.js +1 -5
  9. package/lib/contributions/team-claid/aws-glue/view-table.js +1 -5
  10. package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +1 -5
  11. package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +1 -5
  12. package/lib/contributions/team-outbound-order-book/index.d.ts +1 -0
  13. package/lib/contributions/team-outbound-order-book/index.js +18 -0
  14. package/lib/contributions/team-shipper-inbound-blue/index.d.ts +1 -0
  15. package/lib/contributions/team-shipper-inbound-blue/index.js +18 -0
  16. package/lib/contributions/team-shipper-inbound-blue/pipeline/code-build-project.js +1 -5
  17. package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.js +1 -5
  18. package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.js +41 -0
  19. package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.js +120 -0
  20. package/lib/contributions/{team-transport-two → team-transport}/datadog/index.js +1 -1
  21. package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.cjs +2 -2
  22. package/lib/contributions/team-transport/datadog-synthetics/datadog-synthetics-test.js +77 -0
  23. package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/index.js +1 -1
  24. package/lib/contributions/team-transport/index.d.ts +3 -0
  25. package/lib/contributions/team-transport/index.js +20 -0
  26. package/lib/contributions/team-transport/pipeline/application-stage.js +16 -0
  27. package/lib/contributions/team-transport/pipeline/build-project.js +39 -0
  28. package/lib/contributions/team-transport/pipeline/buildspecs.js +227 -0
  29. package/lib/contributions/team-transport/pipeline/datadog-monitors.js +45 -0
  30. package/lib/contributions/{team-transport-two → team-transport}/pipeline/index.js +1 -1
  31. package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.js +28 -0
  32. package/lib/contributions/team-transport/pipeline/pipeline-stack.js +430 -0
  33. package/lib/index.d.ts +0 -8
  34. package/lib/index.js +1 -9
  35. package/package.json +15 -5
  36. package/version.json +1 -1
  37. package/lib/contributions/team-transport-two/datadog/datadog-dashboard-construct.js +0 -45
  38. package/lib/contributions/team-transport-two/datadog/datadog-dashboard-downloader.js +0 -120
  39. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test.js +0 -81
  40. package/lib/contributions/team-transport-two/pipeline/application-stage.js +0 -16
  41. package/lib/contributions/team-transport-two/pipeline/build-project.js +0 -39
  42. package/lib/contributions/team-transport-two/pipeline/buildspecs.js +0 -227
  43. package/lib/contributions/team-transport-two/pipeline/datadog-monitors.js +0 -45
  44. package/lib/contributions/team-transport-two/pipeline/monitoring-deploy-step.js +0 -28
  45. package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +0 -434
  46. /package/lib/contributions/{team-transport-two → team-transport}/datadog/datadog-dashboard-construct.d.ts +0 -0
  47. /package/lib/contributions/{team-transport-two → team-transport}/datadog/datadog-dashboard-downloader.d.ts +0 -0
  48. /package/lib/contributions/{team-transport-two → team-transport}/datadog/index.d.ts +0 -0
  49. /package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/datadog-synthetics-test.d.ts +0 -0
  50. /package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/index.d.ts +0 -0
  51. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/application-stage.d.ts +0 -0
  52. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/build-project.d.ts +0 -0
  53. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/buildspecs.d.ts +0 -0
  54. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/datadog-monitors.d.ts +0 -0
  55. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/index.d.ts +0 -0
  56. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/monitoring-deploy-step.d.ts +0 -0
  57. /package/lib/contributions/{team-transport-two → team-transport}/pipeline/pipeline-stack.d.ts +0 -0
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "9.0.0-alpha.0",
18
+ "version": "9.0.0-alpha.1",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
@@ -23,8 +23,12 @@
23
23
  "./datadog": "./lib/datadog/index.js",
24
24
  "./datadogv2": "./lib/datadogv2/index.js",
25
25
  "./watchfulv2": "./lib/watchfulv2/index.js",
26
- "./contributions/team-shipper-inbound-blue/pipeline": "./lib/contributions/team-shipper-inbound-blue/pipeline/index.js",
27
26
  "./contributions/team-claid": "./lib/contributions/team-claid/index.js",
27
+ "./contributions/team-outbound-order-book": "./lib/contributions/team-outbound-order-book/index.js",
28
+ "./contributions/team-shipper-inbound-blue": "./lib/contributions/team-shipper-inbound-blue/index.js",
29
+ "./contributions/smart-route": "./lib/contributions/smart-route/index.js",
30
+ "./contributions/team-transport": "./lib/contributions/team-transport/index.js",
31
+ "./contributions/cop-frontend": "./lib/contributions/cop-frontend/index.js",
28
32
  "./AGENTS_DOCUMENTATION.md": "./docs/AGENTS_DOCUMENTATION.md",
29
33
  "./docs/AGENTS_RIO_INFRASTRUCTURE_GUIDE.md": "./docs/AGENTS_RIO_INFRASTRUCTURE_GUIDE.md"
30
34
  },
@@ -32,7 +36,7 @@
32
36
  "outdir": "dist",
33
37
  "targets": {},
34
38
  "excludeTypescript": [
35
- "src/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/*.ts",
39
+ "src/contributions/team-transport/datadog-synthetics/datadog-synthetics-test-custom-resource/*.ts",
36
40
  "src/fargate/codedeploy-custom-resources/*.ts",
37
41
  "src/datadogv2/secret-locator-custom-resource/*.ts",
38
42
  "src/datadogv2/service-catalog-custom-resource/*.ts",
@@ -90,6 +94,7 @@
90
94
  "@biomejs/biome": "2.5.0",
91
95
  "@octokit/auth-app": "8.3.1",
92
96
  "@octokit/rest": "22.0.1",
97
+ "@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624",
93
98
  "@rio-cloud/biome-config-claid": "1.0.0",
94
99
  "@types/node": "24.13.2",
95
100
  "@types/tmp": "^0.2.6",
@@ -111,7 +116,13 @@
111
116
  "peerDependencies": {
112
117
  "aws-cdk-lib": "^2.272.0",
113
118
  "constructs": "^10.5.1",
114
- "datadog-cdk-constructs-v2": "^5.2.0"
119
+ "datadog-cdk-constructs-v2": "^5.2.0",
120
+ "@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624"
121
+ },
122
+ "peerDependenciesMeta": {
123
+ "@pepperize/cdk-autoscaling-gitlab-runner": {
124
+ "optional": true
125
+ }
115
126
  },
116
127
  "dependencies": {
117
128
  "@aws-lambda-powertools/logger": "^2.10.0",
@@ -124,7 +135,6 @@
124
135
  "@aws-sdk/client-secrets-manager": "^3.1036.0",
125
136
  "@aws-sdk/client-ssm": "^3.1036.0",
126
137
  "@datadog/datadog-api-client": "^1.29.0",
127
- "@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624",
128
138
  "@smithy/util-retry": "^3.0.8",
129
139
  "@types/aws-lambda": "^8.10.145",
130
140
  "js-yaml": "~5.4.2",
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "9.0.0-alpha.0"
2
+ "version": "9.0.0-alpha.1"
3
3
  }
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DownloadableDatadogDashboard = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const fs = require("fs");
8
- const path = require("path");
9
- const rio_claidometer_1 = require("../../../rio-claidometer");
10
- /**
11
- * Wrapper around Datadog's CloudFormation `Datadog::Monitors::Dashboard`.
12
- *
13
- * Other than the {@link DatadogDashboard} this construct reads the dashboard from a file and
14
- * is integrated with the {@link datadogDashboardDownloader} helper.
15
- *
16
- * To use this the Datadog resources have to be {@link https://docs.datadoghq.com/integrations/guide/amazon_cloudformation/
17
- * |enabled in the CloudFormation registry} of the corresponding AWS account. Usually this is done
18
- * automatically by the Datadog Integrations (account module AND ServiceCatalog) provided by CLAID.
19
- */
20
- class DownloadableDatadogDashboard extends aws_cdk_lib_1.CfnResource {
21
- static readDashboard(dashboardPath) {
22
- // Validate that the file contains JSON. This also minimizes the file size.
23
- return JSON.stringify(JSON.parse(fs.readFileSync(dashboardPath, 'utf8')));
24
- }
25
- constructor(scope, id, props) {
26
- super(scope, id, {
27
- type: 'Datadog::Dashboards::Dashboard',
28
- properties: {
29
- DashboardDefinition: DownloadableDatadogDashboard.readDashboard(props.path),
30
- },
31
- });
32
- this.addMetadata('rio-dashboard-path', props.path);
33
- const [feature, packageName] = __dirname.split(path.sep).reverse();
34
- new rio_claidometer_1.Claidometer(this, 'Claidometer', {
35
- product: rio_claidometer_1.ClaidometerProduct.CDK_CONTRIBUTION,
36
- packageName,
37
- feature,
38
- version: '0.0.1',
39
- });
40
- }
41
- }
42
- exports.DownloadableDatadogDashboard = DownloadableDatadogDashboard;
43
- _a = JSII_RTTI_SYMBOL_1;
44
- DownloadableDatadogDashboard[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard", version: "0.0.0" };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1kYXNoYm9hcmQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS10cmFuc3BvcnQtdHdvL2RhdGFkb2cvZGF0YWRvZy1kYXNoYm9hcmQtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBRTFDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsOERBQTJFO0FBUzNFOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsNEJBQTZCLFNBQVEseUJBQVc7SUFDbkQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFxQjtRQUNoRCwyRUFBMkU7UUFDM0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxVQUFVLEVBQUU7Z0JBQ1YsbUJBQW1CLEVBQUUsNEJBQTRCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDNUU7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25FLElBQUksNkJBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxvQ0FBa0IsQ0FBQyxnQkFBZ0I7WUFDNUMsV0FBVztZQUNYLE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRCSCxvRUF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5SZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENsYWlkb21ldGVyLCBDbGFpZG9tZXRlclByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9yaW8tY2xhaWRvbWV0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZGFzaGJvYXJkIEpTT04gZmlsZSAocmVsYXRpdmUgZnJvbSB0aGUgY2RrIHJvb3QgZGlyZWN0b3J5KS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGFyb3VuZCBEYXRhZG9nJ3MgQ2xvdWRGb3JtYXRpb24gYERhdGFkb2c6Ok1vbml0b3JzOjpEYXNoYm9hcmRgLlxuICpcbiAqIE90aGVyIHRoYW4gdGhlIHtAbGluayBEYXRhZG9nRGFzaGJvYXJkfSB0aGlzIGNvbnN0cnVjdCByZWFkcyB0aGUgZGFzaGJvYXJkIGZyb20gYSBmaWxlIGFuZFxuICogaXMgaW50ZWdyYXRlZCB3aXRoIHRoZSB7QGxpbmsgZGF0YWRvZ0Rhc2hib2FyZERvd25sb2FkZXJ9IGhlbHBlci5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmQgZXh0ZW5kcyBDZm5SZXNvdXJjZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWREYXNoYm9hcmQoZGFzaGJvYXJkUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBmaWxlIGNvbnRhaW5zIEpTT04uIFRoaXMgYWxzbyBtaW5pbWl6ZXMgdGhlIGZpbGUgc2l6ZS5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZGFzaGJvYXJkUGF0aCwgJ3V0ZjgnKSkpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6OkRhc2hib2FyZHM6OkRhc2hib2FyZCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIERhc2hib2FyZERlZmluaXRpb246IERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmQucmVhZERhc2hib2FyZChwcm9wcy5wYXRoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5hZGRNZXRhZGF0YSgncmlvLWRhc2hib2FyZC1wYXRoJywgcHJvcHMucGF0aCk7XG5cbiAgICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gICAgbmV3IENsYWlkb21ldGVyKHRoaXMsICdDbGFpZG9tZXRlcicsIHtcbiAgICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgICAgcGFja2FnZU5hbWUsXG4gICAgICBmZWF0dXJlLFxuICAgICAgdmVyc2lvbjogJzAuMC4xJyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.datadogDashboardDownloader = exports.downloadDashboards = void 0;
4
- const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
5
- const client_ssm_1 = require("@aws-sdk/client-ssm");
6
- const datadog_api_client_1 = require("@datadog/datadog-api-client");
7
- const fs = require("fs");
8
- const CLI_GREEN = '\x1b[32m';
9
- const CLI_BLUE = '\x1b[34m';
10
- const CLI_RESET = '\x1b[0m';
11
- /**
12
- * Downloads dashboards from Datadog and saves them to the local filesystem.
13
- * Run this function with a reference to your CDK application to download dashboards defined via {@link DownloadableDatadogDashboard} and update
14
- * the existing dashboard definition files in place.
15
- *
16
- * See {@link datadogDashboardDownloader} for a convenience wrapper that can be used in your CDK entrypoint script.
17
- *
18
- * @param app - CDK application in entrypoint
19
- */
20
- const downloadDashboards = async (application) => {
21
- console.log('Downloading dashboards...');
22
- const assembly = application.synth();
23
- await Promise.all(assembly.stacksRecursively.map(async (stack) => {
24
- let isStackRelevant = false;
25
- const dashboardPathByLogicalId = {};
26
- Object.entries(stack.template.Resources || []).forEach(([logicalId, resource]) => {
27
- if (resource.Type === 'Datadog::Dashboards::Dashboard') {
28
- const metadata = resource.Metadata || {};
29
- const dashboardPath = metadata['rio-dashboard-path'];
30
- if (dashboardPath) {
31
- dashboardPathByLogicalId[logicalId] = dashboardPath;
32
- isStackRelevant = true;
33
- }
34
- }
35
- });
36
- if (!isStackRelevant) {
37
- return;
38
- }
39
- const datadogConfiguration = await getDatadogConfiguration();
40
- const cloudFormationClient = new client_cloudformation_1.CloudFormationClient();
41
- const response = await cloudFormationClient.send(new client_cloudformation_1.ListStackResourcesCommand({ StackName: stack.stackName }));
42
- await Promise.all((response.StackResourceSummaries || []).map(async (resource) => {
43
- if (resource.ResourceType === 'Datadog::Dashboards::Dashboard' && resource.LogicalResourceId) {
44
- const dashboardPath = dashboardPathByLogicalId[resource.LogicalResourceId];
45
- if (dashboardPath) {
46
- console.log(`Downloading ${CLI_GREEN}${resource.LogicalResourceId}${CLI_RESET} (${resource.PhysicalResourceId}) to ${CLI_BLUE}${dashboardPath}${CLI_RESET}`);
47
- const dashboard = await downloadDashboardViaDatadogApi(datadogConfiguration, resource.PhysicalResourceId);
48
- console.log('Saving ...');
49
- fs.writeFileSync(dashboardPath, prettifyDashboard(dashboard));
50
- }
51
- }
52
- }));
53
- }));
54
- };
55
- exports.downloadDashboards = downloadDashboards;
56
- const getSsmParameter = async (parameterName) => {
57
- const ssmClient = new client_ssm_1.SSMClient();
58
- const command = new client_ssm_1.GetParameterCommand({ Name: parameterName });
59
- const response = await ssmClient.send(command);
60
- return response.Parameter?.Value;
61
- };
62
- const getDatadogConfiguration = async () => {
63
- const apiKey = await getSsmParameter('/rio/config/datadog-integration/api-key');
64
- const appKey = await getSsmParameter('/rio/config/datadog-integration/application-key');
65
- const site = await getSsmParameter('/rio/config/datadog-integration/site');
66
- return {
67
- apiKey,
68
- appKey,
69
- site,
70
- };
71
- };
72
- const downloadDashboardViaDatadogApi = async (config, dashboardId) => {
73
- const configuration = datadog_api_client_1.client.createConfiguration({
74
- authMethods: {
75
- apiKeyAuth: config.apiKey,
76
- appKeyAuth: config.appKey,
77
- },
78
- });
79
- configuration.setServerVariables({
80
- site: config.site,
81
- });
82
- const apiInstance = new datadog_api_client_1.v1.DashboardsApi(configuration);
83
- return apiInstance.getDashboard({
84
- dashboardId: dashboardId,
85
- });
86
- };
87
- const prettifyDashboard = (dashboard) => {
88
- // drop keys that are not present in the output when using the "export" button in the GUI
89
- delete dashboard.id;
90
- delete dashboard.isReadOnly;
91
- delete dashboard.authorHandle;
92
- delete dashboard.authorName;
93
- delete dashboard.url;
94
- delete dashboard.createdAt;
95
- delete dashboard.modifiedAt;
96
- delete dashboard.restrictedRoles;
97
- const serializedDashboard = datadog_api_client_1.v1.ObjectSerializer.serialize(dashboard, 'Dashboard', '');
98
- return JSON.stringify(serializedDashboard, null, 2);
99
- };
100
- /**
101
- * Downloads dashboards from Datadog and saves them to the local filesystem.
102
- * Call this wrapper with your CDK app in your entrypoint script.
103
- *
104
- * Run `cdk synth` with the environment variable
105
- * `DOWNLOAD_DASHBOARDS=true`, to download dashboards defined via {@link DownloadableDatadogDashboard} and update
106
- * the existing dashboard definition files in place.
107
- *
108
- * @param app - CDK application in entrypoint
109
- */
110
- const datadogDashboardDownloader = (app) => {
111
- const downloadDashboardsFlag = process.env.DOWNLOAD_DASHBOARDS?.toLowerCase();
112
- if (downloadDashboardsFlag && ['true', '1', 'yes'].includes(downloadDashboardsFlag)) {
113
- return (0, exports.downloadDashboards)(app)
114
- .then(() => console.log('Dashboards downloaded successfully'))
115
- .catch(error => console.error('Failed to download dashboards', error));
116
- }
117
- return Promise.resolve();
118
- };
119
- exports.datadogDashboardDownloader = datadogDashboardDownloader;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1kYXNoYm9hcmQtZG93bmxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nL2RhdGFkb2ctZGFzaGJvYXJkLWRvd25sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEVBQWlHO0FBQ2pHLG9EQUFxRTtBQUNyRSxvRUFBeUQ7QUFFekQseUJBQXlCO0FBRXpCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUM3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDNUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBRTVCOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsV0FBZ0IsRUFBRSxFQUFFO0lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN6QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFckMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQzNDLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixNQUFNLHdCQUF3QixHQUE4QixFQUFFLENBQUM7UUFDL0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQy9FLElBQUssUUFBZ0IsQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLEVBQUUsQ0FBQztnQkFDaEUsTUFBTSxRQUFRLEdBQUksUUFBZ0IsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNsRCxNQUFNLGFBQWEsR0FBRyxRQUFR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LElBQUksc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7UUFDcEYsT0FBTyxJQUFBLDBCQUFrQixFQUFDLEdBQUcsQ0FBQzthQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQzdELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBUlcsUUFBQSwwQkFBMEIsOEJBUXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25DbGllbnQsIExpc3RTdGFja1Jlc291cmNlc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgR2V0UGFyYW1ldGVyQ29tbWFuZCwgU1NNQ2xpZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNzbSc7XG5pbXBvcnQgeyBjbGllbnQsIHYxIH0gZnJvbSAnQGRhdGFkb2cvZGF0YWRvZy1hcGktY2xpZW50JztcbmltcG9ydCB7IEFwcCB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcblxuY29uc3QgQ0xJX0dSRUVOID0gJ1xceDFiWzMybSc7XG5jb25zdCBDTElfQkxVRSA9ICdcXHgxYlszNG0nO1xuY29uc3QgQ0xJX1JFU0VUID0gJ1xceDFiWzBtJztcblxuLyoqXG4gKiBEb3dubG9hZHMgZGFzaGJvYXJkcyBmcm9tIERhdGFkb2cgYW5kIHNhdmVzIHRoZW0gdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uXG4gKiBSdW4gdGhpcyBmdW5jdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIHlvdXIgQ0RLIGFwcGxpY2F0aW9uIHRvIGRvd25sb2FkIGRhc2hib2FyZHMgZGVmaW5lZCB2aWEge0BsaW5rIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmR9IGFuZCB1cGRhdGVcbiAqIHRoZSBleGlzdGluZyBkYXNoYm9hcmQgZGVmaW5pdGlvbiBmaWxlcyBpbiBwbGFjZS5cbiAqXG4gKiBTZWUge0BsaW5rIGRhdGFkb2dEYXNoYm9hcmREb3dubG9hZGVyfSBmb3IgYSBjb252ZW5pZW5jZSB3cmFwcGVyIHRoYXQgY2FuIGJlIHVzZWQgaW4geW91ciBDREsgZW50cnlwb2ludCBzY3JpcHQuXG4gKlxuICogQHBhcmFtIGFwcCAtIENESyBhcHBsaWNhdGlvbiBpbiBlbnRyeXBvaW50XG4gKi9cbmV4cG9ydCBjb25zdCBkb3dubG9hZERhc2hib2FyZHMgPSBhc3luYyAoYXBwbGljYXRpb246IEFwcCkgPT4ge1xuICBjb25zb2xlLmxvZygnRG93bmxvYWRpbmcgZGFzaGJvYXJkcy4uLicpO1xuICBjb25zdCBhc3NlbWJseSA9IGFwcGxpY2F0aW9uLnN5bnRoKCk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgYXNzZW1ibHkuc3RhY2tzUmVjdXJzaXZlbHkubWFwKGFzeW5jIHN0YWNrID0+IHtcbiAgICAgIGxldCBpc1N0YWNrUmVsZXZhbnQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGRhc2hib2FyZFBhdGhCeUxvZ2ljYWxJZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgT2JqZWN0LmVudHJpZXMoc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzIHx8IFtdKS5mb3JFYWNoKChbbG9naWNhbElkLCByZXNvdXJjZV0pID0+IHtcbiAgICAgICAgaWYgKChyZXNvdXJjZSBhcyBhbnkpLlR5cGUgPT09ICdEYXRhZG9nOjpEYXNoYm9hcmRzOjpEYXNoYm9hcmQnKSB7XG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSAocmVzb3VyY2UgYXMgYW55KS5NZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBkYXNoYm9hcmRQYXRoID0gbWV0YWRhdGFbJ3Jpby1kYXNoYm9hcmQtcGF0aCddO1xuICAgICAgICAgIGlmIChkYXNoYm9hcmRQYXRoKSB7XG4gICAgICAgICAgICBkYXNoYm9hcmRQYXRoQnlMb2dpY2FsSWRbbG9naWNhbElkXSA9IGRhc2hib2FyZFBhdGg7XG4gICAgICAgICAgICBpc1N0YWNrUmVsZXZhbnQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghaXNTdGFja1JlbGV2YW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YWRvZ0NvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXREYXRhZG9nQ29uZmlndXJhdGlvbigpO1xuXG4gICAgICBjb25zdCBjbG91ZEZvcm1hdGlvbkNsaWVudCA9IG5ldyBDbG91ZEZvcm1hdGlvbkNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbG91ZEZvcm1hdGlvbkNsaWVudC5zZW5kKG5ldyBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kKHsgU3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUgfSkpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIChyZXNwb25zZS5TdGFja1Jlc291cmNlU3VtbWFyaWVzIHx8IFtdKS5tYXAoYXN5bmMgcmVzb3VyY2UgPT4ge1xuICAgICAgICAgIGlmIChyZXNvdXJjZS5SZXNvdXJjZVR5cGUgPT09ICdEYXRhZG9nOjpEYXNoYm9hcmRzOjpEYXNoYm9hcmQnICYmIHJlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgICAgICBjb25zdCBkYXNoYm9hcmRQYXRoID0gZGFzaGJvYXJkUGF0aEJ5TG9naWNhbElkW3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkXTtcbiAgICAgICAgICAgIGlmIChkYXNoYm9hcmRQYXRoKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGBEb3dubG9hZGluZyAke0NMSV9HUkVFTn0ke3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkfSR7Q0xJX1JFU0VUfSAoJHtyZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWR9KSB0byAke0NMSV9CTFVFfSR7ZGFzaGJvYXJkUGF0aH0ke0NMSV9SRVNFVH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZCA9IGF3YWl0IGRvd25sb2FkRGFzaGJvYXJkVmlhRGF0YWRvZ0FwaShcbiAgICAgICAgICAgICAgICBkYXRhZG9nQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgICAgICByZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWQgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTYXZpbmcgLi4uJyk7XG4gICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGFzaGJvYXJkUGF0aCwgcHJldHRpZnlEYXNoYm9hcmQoZGFzaGJvYXJkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KVxuICApO1xufTtcblxuY29uc3QgZ2V0U3NtUGFyYW1ldGVyID0gYXN5bmMgKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHNzbUNsaWVudCA9IG5ldyBTU01DbGllbnQoKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKHsgTmFtZTogcGFyYW1ldGVyTmFtZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzc21DbGllbnQuc2VuZChjb21tYW5kKTtcbiAgcmV0dXJuIHJlc3BvbnNlLlBhcmFtZXRlcj8uVmFsdWUgYXMgc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0RGF0YWRvZ0NvbmZpZ3VyYXRpb24gPSBhc3luYyAoKTogUHJvbWlzZTx7IGFwaUtleTogc3RyaW5nOyBhcHBLZXk6IHN0cmluZzsgc2l0ZTogc3RyaW5nIH0+ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXknKTtcbiAgY29uc3QgYXBwS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwcGxpY2F0aW9uLWtleScpO1xuICBjb25zdCBzaXRlID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBhcGlLZXksXG4gICAgYXBwS2V5LFxuICAgIHNpdGUsXG4gIH07XG59O1xuXG5jb25zdCBkb3dubG9hZERhc2hib2FyZFZpYURhdGFkb2dBcGkgPSBhc3luYyAoXG4gIGNvbmZpZzoge1xuICAgIGFwaUtleTogc3RyaW5nO1xuICAgIGFwcEtleTogc3RyaW5nO1xuICAgIHNpdGU6IHN0cmluZztcbiAgfSxcbiAgZGFzaGJvYXJkSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTx2MS5EYXNoYm9hcmQ+ID0+IHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNsaWVudC5jcmVhdGVDb25maWd1cmF0aW9uKHtcbiAgICBhdXRoTWV0aG9kczoge1xuICAgICAgYXBpS2V5QXV0aDogY29uZmlnLmFwaUtleSxcbiAgICAgIGFwcEtleUF1dGg6IGNvbmZpZy5hcHBLZXksXG4gICAgfSxcbiAgfSk7XG4gIGNvbmZpZ3VyYXRpb24uc2V0U2VydmVyVmFyaWFibGVzKHtcbiAgICBzaXRlOiBjb25maWcuc2l0ZSxcbiAgfSk7XG4gIGNvbnN0IGFwaUluc3RhbmNlID0gbmV3IHYxLkRhc2hib2FyZHNBcGkoY29uZmlndXJhdGlvbik7XG4gIHJldHVybiBhcGlJbnN0YW5jZS5nZXREYXNoYm9hcmQoe1xuICAgIGRhc2hib2FyZElkOiBkYXNoYm9hcmRJZCxcbiAgfSk7XG59O1xuXG5jb25zdCBwcmV0dGlmeURhc2hib2FyZCA9IChkYXNoYm9hcmQ6IHYxLkRhc2hib2FyZCk6IHN0cmluZyA9PiB7XG4gIC8vIGRyb3Aga2V5cyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgb3V0cHV0IHdoZW4gdXNpbmcgdGhlIFwiZXhwb3J0XCIgYnV0dG9uIGluIHRoZSBHVUlcbiAgZGVsZXRlIGRhc2hib2FyZC5pZDtcbiAgZGVsZXRlIGRhc2hib2FyZC5pc1JlYWRPbmx5O1xuICBkZWxldGUgZGFzaGJvYXJkLmF1dGhvckhhbmRsZTtcbiAgZGVsZXRlIGRhc2hib2FyZC5hdXRob3JOYW1lO1xuICBkZWxldGUgZGFzaGJvYXJkLnVybDtcbiAgZGVsZXRlIGRhc2hib2FyZC5jcmVhdGVkQXQ7XG4gIGRlbGV0ZSBkYXNoYm9hcmQubW9kaWZpZWRBdDtcbiAgZGVsZXRlIGRhc2hib2FyZC5yZXN0cmljdGVkUm9sZXM7XG5cbiAgY29uc3Qgc2VyaWFsaXplZERhc2hib2FyZCA9IHYxLk9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplKGRhc2hib2FyZCwgJ0Rhc2hib2FyZCcsICcnKTtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWREYXNoYm9hcmQsIG51bGwsIDIpO1xufTtcblxuLyoqXG4gKiBEb3dubG9hZHMgZGFzaGJvYXJkcyBmcm9tIERhdGFkb2cgYW5kIHNhdmVzIHRoZW0gdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uXG4gKiBDYWxsIHRoaXMgd3JhcHBlciB3aXRoIHlvdXIgQ0RLIGFwcCBpbiB5b3VyIGVudHJ5cG9pbnQgc2NyaXB0LlxuICpcbiAqIFJ1biBgY2RrIHN5bnRoYCB3aXRoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICogYERPV05MT0FEX0RBU0hCT0FSRFM9dHJ1ZWAsIHRvIGRvd25sb2FkIGRhc2hib2FyZHMgZGVmaW5lZCB2aWEge0BsaW5rIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmR9IGFuZCB1cGRhdGVcbiAqIHRoZSBleGlzdGluZyBkYXNoYm9hcmQgZGVmaW5pdGlvbiBmaWxlcyBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gQ0RLIGFwcGxpY2F0aW9uIGluIGVudHJ5cG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFkb2dEYXNoYm9hcmREb3dubG9hZGVyID0gKGFwcDogQXBwKSA9PiB7XG4gIGNvbnN0IGRvd25sb2FkRGFzaGJvYXJkc0ZsYWcgPSBwcm9jZXNzLmVudi5ET1dOTE9BRF9EQVNIQk9BUkRTPy50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZG93bmxvYWREYXNoYm9hcmRzRmxhZyAmJiBbJ3RydWUnLCAnMScsICd5ZXMnXS5pbmNsdWRlcyhkb3dubG9hZERhc2hib2FyZHNGbGFnKSkge1xuICAgIHJldHVybiBkb3dubG9hZERhc2hib2FyZHMoYXBwKVxuICAgICAgLnRoZW4oKCkgPT4gY29uc29sZS5sb2coJ0Rhc2hib2FyZHMgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHknKSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZG93bmxvYWQgZGFzaGJvYXJkcycsIGVycm9yKSk7XG4gIH1cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xufTtcbiJdfQ==
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DatadogSyntheticsTest = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const cdk = require("aws-cdk-lib");
7
- const lambda = require("aws-cdk-lib/aws-lambda");
8
- const logs = require("aws-cdk-lib/aws-logs");
9
- const customResources = require("aws-cdk-lib/custom-resources");
10
- const constructs_1 = require("constructs");
11
- const path = require("path");
12
- const path_1 = require("path");
13
- const constants_1 = require("../../../constants");
14
- const datadogv2_1 = require("../../../datadogv2");
15
- const rio_claidometer_1 = require("../../../rio-claidometer");
16
- const rio_landing_zone_1 = require("../../../rio-landing-zone");
17
- /**
18
- * Creates a Datadog Synthetics test via Datadog API through a custom resource.
19
- *
20
- * See https://docs.datadoghq.com/api/latest/synthetics/ for more information (especially the typescript examples).
21
- * Currently, tests of type `api`, `browser` and `mobile` are supported.
22
- *
23
- * The resource does the following modification to the passed `testConfig`:
24
- * - Adds team name and service name to the test name.
25
- * - Adds the usual tags (account_id, account_name, service, team, team_identifier) to the test tags.
26
- */
27
- class DatadogSyntheticsTest extends constructs_1.Construct {
28
- constructor(scope, id, props) {
29
- super(scope, id);
30
- const datadogSecret = datadogv2_1.DatadogSharedSecret.credentialsSecret(this);
31
- const teamName = rio_landing_zone_1.RioLandingZone.getTeamNameParameter(this).stringValue;
32
- const teamIdentifier = rio_landing_zone_1.RioLandingZone.getTeamIdentifierParameter(this).stringValue;
33
- const accountName = rio_landing_zone_1.RioLandingZone.getAccountNameParameter(this).stringValue;
34
- const datadogHandler = new lambda.Function(this, 'DatadogSyntheticsHandler', {
35
- runtime: constants_1.DEFAULT_NODE_RUNTIME,
36
- code: lambda.Code.fromAsset((0, path_1.join)(__dirname, 'datadog-synthetics-test-custom-resource'), {
37
- exclude: ['*.js', '*.d.ts'],
38
- }),
39
- handler: 'handler.handler',
40
- environment: {
41
- DATADOG_SECRET_ARN: datadogSecret.secretArn,
42
- },
43
- logRetention: logs.RetentionDays.ONE_WEEK,
44
- });
45
- datadogSecret.grantRead(datadogHandler);
46
- const provider = new customResources.Provider(this, 'DatadogSyntheticsProvider', {
47
- onEventHandler: datadogHandler,
48
- });
49
- const enhancedName = `${teamName} ${props.serviceName} ${props.testConfig.name}`;
50
- const enhancedTags = [
51
- ...(props.testConfig.tags ?? []),
52
- `account_id:${cdk.Stack.of(this).account}`,
53
- `account_name:${accountName}`,
54
- `service:${props.serviceName}`,
55
- `team:${teamName}`,
56
- `team_identifier:${teamIdentifier}`,
57
- ];
58
- const enhancedTestConfig = {
59
- ...props.testConfig,
60
- name: enhancedName,
61
- tags: enhancedTags,
62
- };
63
- new cdk.CustomResource(this, 'DatadogSyntheticsTestResource', {
64
- serviceToken: provider.serviceToken,
65
- properties: {
66
- TestConfig: JSON.stringify(enhancedTestConfig),
67
- },
68
- });
69
- const [feature, packageName] = __dirname.split(path.sep).reverse();
70
- new rio_claidometer_1.Claidometer(this, 'Claidometer', {
71
- product: rio_claidometer_1.ClaidometerProduct.CDK_CONTRIBUTION,
72
- packageName,
73
- feature,
74
- version: '0.0.1',
75
- });
76
- }
77
- }
78
- exports.DatadogSyntheticsTest = DatadogSyntheticsTest;
79
- _a = JSII_RTTI_SYMBOL_1;
80
- DatadogSyntheticsTest[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.DatadogSyntheticsTest", version: "0.0.0" };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zeW50aGV0aWNzLXRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vZGF0YWRvZy1zeW50aGV0aWNzL2RhdGFkb2ctc3ludGhldGljcy10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsbUNBQW1DO0FBQ25DLGlEQUFpRDtBQUNqRCw2Q0FBNkM7QUFDN0MsZ0VBQWdFO0FBQ2hFLDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFDN0IsK0JBQTRCO0FBQzVCLGtEQUEwRDtBQUMxRCxrREFBeUQ7QUFDekQsOERBQTJFO0FBQzNFLGdFQUEyRDtBQWlCM0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsK0JBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEUsTUFBTSxRQUFRLEdBQUcsaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdkUsTUFBTSxjQUFjLEdBQUcsaUNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDbkYsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUMzRSxPQUFPLEVBQUUsZ0NBQW9CO1lBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsRUFBRTtnQkFDdEYsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzthQUM1QixDQUFDO1lBQ0YsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUU7Z0JBQ1gsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFNBQVM7YUFDNUM7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1NBQzFDLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRTtZQUMvRSxjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakYsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUMxQyxnQkFBZ0IsV0FBVyxFQUFFO1lBQzdCLFdBQVcsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUM5QixRQUFRLFFBQVEsRUFBRTtZQUNsQixtQkFBbUIsY0FBYyxFQUFFO1NBQ3BDLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFtQjtZQUN6QyxHQUFHLEtBQUssQ0FBQyxVQUFVO1lBQ25CLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxZQUFZO1NBQ25CLENBQUM7UUFFRixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLCtCQUErQixFQUFFO1lBQzVELFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7YUFDL0M7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25FLElBQUksNkJBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxvQ0FBa0IsQ0FBQyxnQkFBZ0I7WUFDNUMsV0FBVztZQUNYLE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXhESCxzREF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFN5bnRoZXRpY3NBUElUZXN0LFxuICBTeW50aGV0aWNzQnJvd3NlclRlc3QsXG4gIFN5bnRoZXRpY3NNb2JpbGVUZXN0LFxufSBmcm9tICdAZGF0YWRvZy9kYXRhZG9nLWFwaS1jbGllbnQvZGlzdC9wYWNrYWdlcy9kYXRhZG9nLWFwaS1jbGllbnQtdjEnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGF0YWRvZ1NoYXJlZFNlY3JldCB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vLi4vLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbnR5cGUgU3ludGhldGljc1Rlc3QgPSBTeW50aGV0aWNzQVBJVGVzdCB8IFN5bnRoZXRpY3NCcm93c2VyVGVzdCB8IFN5bnRoZXRpY3NNb2JpbGVUZXN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dTeW50aGV0aWNzVGVzdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIHdoaWNoIHRoZSB0ZXN0IGJlbG9uZ3MuXG4gICAqXG4gICAqIFVzZWQgdG8gZW5oYW5jZSB0aGUgdGVzdCBuYW1lIGFuZCBhcHBseSB0aGUgYHNlcnZpY2VgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb25maWc6IFN5bnRoZXRpY3NUZXN0O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBEYXRhZG9nIFN5bnRoZXRpY3MgdGVzdCB2aWEgRGF0YWRvZyBBUEkgdGhyb3VnaCBhIGN1c3RvbSByZXNvdXJjZS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9zeW50aGV0aWNzLyBmb3IgbW9yZSBpbmZvcm1hdGlvbiAoZXNwZWNpYWxseSB0aGUgdHlwZXNjcmlwdCBleGFtcGxlcykuXG4gKiBDdXJyZW50bHksIHRlc3RzIG9mIHR5cGUgYGFwaWAsIGBicm93c2VyYCBhbmQgYG1vYmlsZWAgYXJlIHN1cHBvcnRlZC5cbiAqXG4gKiBUaGUgcmVzb3VyY2UgZG9lcyB0aGUgZm9sbG93aW5nIG1vZGlmaWNhdGlvbiB0byB0aGUgcGFzc2VkIGB0ZXN0Q29uZmlnYDpcbiAqIC0gQWRkcyB0ZWFtIG5hbWUgYW5kIHNlcnZpY2UgbmFtZSB0byB0aGUgdGVzdCBuYW1lLlxuICogLSBBZGRzIHRoZSB1c3VhbCB0YWdzIChhY2NvdW50X2lkLCBhY2NvdW50X25hbWUsIHNlcnZpY2UsIHRlYW0sIHRlYW1faWRlbnRpZmllcikgdG8gdGhlIHRlc3QgdGFncy5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTeW50aGV0aWNzVGVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nU3ludGhldGljc1Rlc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkYXRhZG9nU2VjcmV0ID0gRGF0YWRvZ1NoYXJlZFNlY3JldC5jcmVkZW50aWFsc1NlY3JldCh0aGlzKTtcblxuICAgIGNvbnN0IHRlYW1OYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbU5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpLnN0cmluZ1ZhbHVlO1xuXG4gICAgY29uc3QgZGF0YWRvZ0hhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdEYXRhZG9nU3ludGhldGljc0hhbmRsZXInLCB7XG4gICAgICBydW50aW1lOiBERUZBVUxUX05PREVfUlVOVElNRSxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChqb2luKF9fZGlybmFtZSwgJ2RhdGFkb2ctc3ludGhldGljcy10ZXN0LWN1c3RvbS1yZXNvdXJjZScpLCB7XG4gICAgICAgIGV4Y2x1ZGU6IFsnKi5qcycsICcqLmQudHMnXSxcbiAgICAgIH0pLFxuICAgICAgaGFuZGxlcjogJ2hhbmRsZXIuaGFuZGxlcicsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBEQVRBRE9HX1NFQ1JFVF9BUk46IGRhdGFkb2dTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgIH0pO1xuICAgIGRhdGFkb2dTZWNyZXQuZ3JhbnRSZWFkKGRhdGFkb2dIYW5kbGVyKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGN1c3RvbVJlc291cmNlcy5Qcm92aWRlcih0aGlzLCAnRGF0YWRvZ1N5bnRoZXRpY3NQcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBkYXRhZG9nSGFuZGxlcixcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuaGFuY2VkTmFtZSA9IGAke3RlYW1OYW1lfSAke3Byb3BzLnNlcnZpY2VOYW1lfSAke3Byb3BzLnRlc3RDb25maWcubmFtZX1gO1xuICAgIGNvbnN0IGVuaGFuY2VkVGFncyA9IFtcbiAgICAgIC4uLihwcm9wcy50ZXN0Q29uZmlnLnRhZ3MgPz8gW10pLFxuICAgICAgYGFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH1gLFxuICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lfWAsXG4gICAgICBgc2VydmljZToke3Byb3BzLnNlcnZpY2VOYW1lfWAsXG4gICAgICBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXJ9YCxcbiAgICBdO1xuICAgIGNvbnN0IGVuaGFuY2VkVGVzdENvbmZpZzogU3ludGhldGljc1Rlc3QgPSB7XG4gICAgICAuLi5wcm9wcy50ZXN0Q29uZmlnLFxuICAgICAgbmFtZTogZW5oYW5jZWROYW1lLFxuICAgICAgdGFnczogZW5oYW5jZWRUYWdzLFxuICAgIH07XG5cbiAgICBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdEYXRhZG9nU3ludGhldGljc1Rlc3RSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBUZXN0Q29uZmlnOiBKU09OLnN0cmluZ2lmeShlbmhhbmNlZFRlc3RDb25maWcpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Application = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- class Application extends aws_cdk_lib_1.Stage {
6
- constructor(scope, id, props) {
7
- super(scope, id, props);
8
- props.appStackFactory.create(this, {
9
- serviceName: props.serviceName,
10
- stackName: props.serviceName,
11
- version: props.version,
12
- });
13
- }
14
- }
15
- exports.Application = Application;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tc3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUvYXBwbGljYXRpb24tc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBVWhELE1BQWEsV0FBWSxTQUFRLG1CQUFLO0lBQ3BDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2pDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDNUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVZELGtDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhZ2UsIFN0YWdlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElBcHBTdGFja0ZhY3RvcnkgfSBmcm9tICcuL3BpcGVsaW5lLXN0YWNrJztcblxuaW50ZXJmYWNlIEFwcGxpY2F0aW9uUHJvcHMgZXh0ZW5kcyBTdGFnZVByb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBhcHBTdGFja0ZhY3Rvcnk6IElBcHBTdGFja0ZhY3Rvcnk7XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbiBleHRlbmRzIFN0YWdlIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcGxpY2F0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHByb3BzLmFwcFN0YWNrRmFjdG9yeS5jcmVhdGUodGhpcywge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIHZlcnNpb246IHByb3BzLnZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RioCodeBuildProject = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const codebuild = require("aws-cdk-lib/aws-codebuild");
6
- const codepipeline = require("aws-cdk-lib/aws-codepipeline");
7
- const pipelines = require("aws-cdk-lib/pipelines");
8
- class RioCodeBuildProject extends pipelines.CodeBuildStep {
9
- constructor(scope, id, props) {
10
- super(id, {
11
- input: props.input,
12
- partialBuildSpec: props.partialBuildSpec,
13
- commands: [],
14
- buildEnvironment: {
15
- buildImage: props?.buildEnvironment?.buildImage ||
16
- codebuild.LinuxBuildImage.fromCodeBuildImageId('aws/codebuild/amazonlinux2-x86_64-standard:5.0'),
17
- computeType: props?.buildEnvironment?.computeType || codebuild.ComputeType.LARGE,
18
- environmentVariables: {
19
- AWS_ACCOUNT_ID: { value: aws_cdk_lib_1.Stack.of(scope).account },
20
- SERVICE_NAME: { value: props.serviceName },
21
- HOSTED_ZONE: { value: props.hostedZoneName },
22
- ...props.buildEnvironment?.environmentVariables,
23
- },
24
- privileged: props?.buildEnvironment?.privileged,
25
- certificate: props?.buildEnvironment?.certificate,
26
- },
27
- primaryOutputDirectory: props.cdkOutDirectory ?? './',
28
- env: {
29
- PIPELINE_EXECUTION_ID: codepipeline.GlobalVariables.executionId,
30
- ...props.env,
31
- },
32
- cache: props.cacheBucket
33
- ? codebuild.Cache.bucket(props.cacheBucket, { prefix: `codebuild-cache/${props.serviceName}` })
34
- : undefined,
35
- });
36
- }
37
- }
38
- exports.RioCodeBuildProject = RioCodeBuildProject;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUNwQyx1REFBdUQ7QUFDdkQsNkRBQTZEO0FBRTdELG1EQUFtRDtBQWNuRCxNQUFhLG1CQUFvQixTQUFRLFNBQVMsQ0FBQyxhQUFhO0lBQzlELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVUsRUFDUixLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVTtvQkFDbkMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxnREFBZ0QsQ0FBQztnQkFDbEcsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUNoRixvQkFBb0IsRUFBRTtvQkFDcEIsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtvQkFDbEQsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQzFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFO29CQUM1QyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0I7aUJBQ2hEO2dCQUNELFVBQVUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVTtnQkFDL0MsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxXQUFXO2FBQ2xEO1lBQ0Qsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQ3JELEdBQUcsRUFBRTtnQkFDSCxxQkFBcUIsRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLFdBQVc7Z0JBQy9ELEdBQUcsS0FBSyxDQUFDLEdBQUc7YUFDYjtZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMvRixDQUFDLENBQUMsU0FBUztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTlCRCxrREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvZGVidWlsZCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCAqIGFzIGNvZGVwaXBlbGluZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lJztcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgcGlwZWxpbmVzIGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBSaW9Db2RlQnVpbGRQcm9qZWN0UHJvcHMge1xuICBpbnB1dDogcGlwZWxpbmVzLklGaWxlU2V0UHJvZHVjZXI7XG4gIGNka091dERpcmVjdG9yeT86IHN0cmluZztcbiAgcGFydGlhbEJ1aWxkU3BlYzogY29kZWJ1aWxkLkJ1aWxkU3BlYztcbiAgYnVpbGRFbnZpcm9ubWVudD86IGNvZGVidWlsZC5CdWlsZEVudmlyb25tZW50O1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBob3N0ZWRab25lTmFtZTogc3RyaW5nO1xuICBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjYWNoZUJ1Y2tldD86IElCdWNrZXQ7XG59XG5cbmV4cG9ydCBjbGFzcyBSaW9Db2RlQnVpbGRQcm9qZWN0IGV4dGVuZHMgcGlwZWxpbmVzLkNvZGVCdWlsZFN0ZXAge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvQ29kZUJ1aWxkUHJvamVjdFByb3BzKSB7XG4gICAgc3VwZXIoaWQsIHtcbiAgICAgIGlucHV0OiBwcm9wcy5pbnB1dCxcbiAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IHByb3BzLnBhcnRpYWxCdWlsZFNwZWMsXG4gICAgICBjb21tYW5kczogW10sXG4gICAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICAgIGJ1aWxkSW1hZ2U6XG4gICAgICAgICAgcHJvcHM/LmJ1aWxkRW52aXJvbm1lbnQ/LmJ1aWxkSW1hZ2UgfHxcbiAgICAgICAgICBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Db2RlQnVpbGRJbWFnZUlkKCdhd3MvY29kZWJ1aWxkL2FtYXpvbmxpbnV4Mi14ODZfNjQtc3RhbmRhcmQ6NS4wJyksXG4gICAgICAgIGNvbXB1dGVUeXBlOiBwcm9wcz8uYnVpbGRFbnZpcm9ubWVudD8uY29tcHV0ZVR5cGUgfHwgY29kZWJ1aWxkLkNvbXB1dGVUeXBlLkxBUkdFLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczoge1xuICAgICAgICAgIEFXU19BQ0NPVU5UX0lEOiB7IHZhbHVlOiBTdGFjay5vZihzY29wZSkuYWNjb3VudCB9LFxuICAgICAgICAgIFNFUlZJQ0VfTkFNRTogeyB2YWx1ZTogcHJvcHMuc2VydmljZU5hbWUgfSxcbiAgICAgICAgICBIT1NURURfWk9ORTogeyB2YWx1ZTogcHJvcHMuaG9zdGVkWm9uZU5hbWUgfSxcbiAgICAgICAgICAuLi5wcm9wcy5idWlsZEVudmlyb25tZW50Py5lbnZpcm9ubWVudFZhcmlhYmxlcyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpdmlsZWdlZDogcHJvcHM/LmJ1aWxkRW52aXJvbm1lbnQ/LnByaXZpbGVnZWQsXG4gICAgICAgIGNlcnRpZmljYXRlOiBwcm9wcz8uYnVpbGRFbnZpcm9ubWVudD8uY2VydGlmaWNhdGUsXG4gICAgICB9LFxuICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogcHJvcHMuY2RrT3V0RGlyZWN0b3J5ID8/ICcuLycsXG4gICAgICBlbnY6IHtcbiAgICAgICAgUElQRUxJTkVfRVhFQ1VUSU9OX0lEOiBjb2RlcGlwZWxpbmUuR2xvYmFsVmFyaWFibGVzLmV4ZWN1dGlvbklkLFxuICAgICAgICAuLi5wcm9wcy5lbnYsXG4gICAgICB9LFxuICAgICAgY2FjaGU6IHByb3BzLmNhY2hlQnVja2V0XG4gICAgICAgID8gY29kZWJ1aWxkLkNhY2hlLmJ1Y2tldChwcm9wcy5jYWNoZUJ1Y2tldCwgeyBwcmVmaXg6IGBjb2RlYnVpbGQtY2FjaGUvJHtwcm9wcy5zZXJ2aWNlTmFtZX1gIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=