@rio-cloud/cdk-v2-constructs 8.8.2 → 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.
- package/.jsii +3550 -7420
- package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +1 -5
- package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.js +1 -5
- package/lib/contributions/smart-route/gitlab-runner/runner-roles.js +1 -5
- package/lib/contributions/smart-route/gitlab-runner/spot-role.js +1 -5
- package/lib/contributions/team-claid/aws-backup-monitoring/aws-backup-monitoring.js +1 -7
- package/lib/contributions/team-claid/aws-glue/csv-table.js +1 -5
- package/lib/contributions/team-claid/aws-glue/schema.js +1 -5
- package/lib/contributions/team-claid/aws-glue/view-table.js +1 -5
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +1 -5
- package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +1 -5
- package/lib/contributions/team-outbound-order-book/index.d.ts +1 -0
- package/lib/contributions/team-outbound-order-book/index.js +18 -0
- package/lib/contributions/team-shipper-inbound-blue/index.d.ts +1 -0
- package/lib/contributions/team-shipper-inbound-blue/index.js +18 -0
- package/lib/contributions/team-shipper-inbound-blue/pipeline/code-build-project.js +1 -5
- package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.js +1 -5
- package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.js +41 -0
- package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.js +120 -0
- package/lib/contributions/{team-transport-two → team-transport}/datadog/index.js +1 -1
- package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.cjs +109 -106
- package/lib/contributions/team-transport/datadog-synthetics/datadog-synthetics-test.js +77 -0
- package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/index.js +1 -1
- package/lib/contributions/team-transport/index.d.ts +3 -0
- package/lib/contributions/team-transport/index.js +20 -0
- package/lib/contributions/team-transport/pipeline/application-stage.js +16 -0
- package/lib/contributions/team-transport/pipeline/build-project.js +39 -0
- package/lib/contributions/{team-transport-two → team-transport}/pipeline/buildspecs.d.ts +3 -3
- package/lib/contributions/team-transport/pipeline/buildspecs.js +227 -0
- package/lib/contributions/team-transport/pipeline/datadog-monitors.js +45 -0
- package/lib/contributions/{team-transport-two → team-transport}/pipeline/index.js +1 -1
- package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.js +28 -0
- package/lib/contributions/{team-transport-two → team-transport}/pipeline/pipeline-stack.d.ts +2 -0
- package/lib/contributions/team-transport/pipeline/pipeline-stack.js +430 -0
- package/lib/datadogv2/datadog-lambda-instrumentation.d.ts +1 -1
- package/lib/datadogv2/datadog-lambda-instrumentation.js +5 -2
- package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +85 -76
- package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +85 -82
- package/lib/datadogv2/validate-lambda-environment.d.ts +3 -0
- package/lib/datadogv2/validate-lambda-environment.js +33 -0
- package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.cjs +85 -76
- package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.cjs +85 -76
- package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +90 -81
- package/lib/index.d.ts +0 -8
- package/lib/index.js +1 -9
- package/lib/sbom-catalog/lambda/handler.cjs +88 -84
- package/package.json +22 -11
- package/version.json +1 -1
- package/lib/contributions/team-transport-two/datadog/datadog-dashboard-construct.js +0 -45
- package/lib/contributions/team-transport-two/datadog/datadog-dashboard-downloader.js +0 -120
- package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test.js +0 -81
- package/lib/contributions/team-transport-two/pipeline/application-stage.js +0 -16
- package/lib/contributions/team-transport-two/pipeline/build-project.js +0 -39
- package/lib/contributions/team-transport-two/pipeline/buildspecs.js +0 -205
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.js +0 -45
- package/lib/contributions/team-transport-two/pipeline/monitoring-deploy-step.js +0 -28
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +0 -432
- /package/lib/contributions/{team-transport-two → team-transport}/datadog/datadog-dashboard-construct.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/datadog/datadog-dashboard-downloader.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/datadog/index.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/datadog-synthetics-test.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/datadog-synthetics/index.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/pipeline/application-stage.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/pipeline/build-project.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/pipeline/datadog-monitors.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/pipeline/index.d.ts +0 -0
- /package/lib/contributions/{team-transport-two → team-transport}/pipeline/monitoring-deploy-step.d.ts +0 -0
|
@@ -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=
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exportCommitHashAsVersion = exports.logCommitHash = exports.createVulnerabilityBuildSpec = exports.createMainBuildSpec = void 0;
|
|
4
|
-
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
5
|
-
const RIO_LICENSE_CHECK_VERSION = '1.1.7';
|
|
6
|
-
const LICENSE_CHECK_COMMAND = `npx -y @rio-cloud/rio-license-checker@${RIO_LICENSE_CHECK_VERSION}`;
|
|
7
|
-
const createMainBuildSpec = (features) => {
|
|
8
|
-
const env = {};
|
|
9
|
-
const buildCommands = [];
|
|
10
|
-
buildCommands.push(...(0, exports.exportCommitHashAsVersion)());
|
|
11
|
-
env['parameter-store'] = {
|
|
12
|
-
ACCOUNT_NAME: '/config/account/name',
|
|
13
|
-
TEAM_IDENTIFIER: '/config/team/identifier',
|
|
14
|
-
};
|
|
15
|
-
if (features.gradleBuild) {
|
|
16
|
-
buildCommands.push(...gradleBuildCommands(features.kafkaIntegration ?? false));
|
|
17
|
-
env['parameter-store'] = {
|
|
18
|
-
...(env['parameter-store'] ?? {}),
|
|
19
|
-
SERVICE_KEYSTORE_PASSWORD: '/config/${SERVICE_NAME}/service-keystore-password',
|
|
20
|
-
LICENSE_BUCKET_NAME: '/config/oss-licenses/bucket-name',
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
if (features.kafkaIntegration) {
|
|
24
|
-
env['parameter-store'] = {
|
|
25
|
-
...(env['parameter-store'] ?? {}),
|
|
26
|
-
CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION: '/config/kafka-integration/create-and-sign-certificate-script-s3-location',
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if (features.npmBuild) {
|
|
30
|
-
env.variables = {
|
|
31
|
-
CI: 'true',
|
|
32
|
-
};
|
|
33
|
-
buildCommands.push(...npmBuildCommands());
|
|
34
|
-
}
|
|
35
|
-
if (features.additionalBuildCommands) {
|
|
36
|
-
buildCommands.push('### ADDITIONAL BUILD COMMANDS ###', ...features.additionalBuildCommands);
|
|
37
|
-
}
|
|
38
|
-
buildCommands.push(...infrastructureBuildCommands());
|
|
39
|
-
return aws_codebuild_1.BuildSpec.fromObject({
|
|
40
|
-
version: '0.2',
|
|
41
|
-
env,
|
|
42
|
-
phases: {
|
|
43
|
-
install: {
|
|
44
|
-
'runtime-versions': getRuntimes(features),
|
|
45
|
-
},
|
|
46
|
-
pre_build: {
|
|
47
|
-
commands: (0, exports.logCommitHash)(),
|
|
48
|
-
},
|
|
49
|
-
build: {
|
|
50
|
-
commands: buildCommands,
|
|
51
|
-
},
|
|
52
|
-
post_build: {
|
|
53
|
-
commands: (0, exports.logCommitHash)(),
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
reports: createReports(features),
|
|
57
|
-
cache: {
|
|
58
|
-
paths: cachePaths(),
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
exports.createMainBuildSpec = createMainBuildSpec;
|
|
63
|
-
const createVulnerabilityBuildSpec = (features) => {
|
|
64
|
-
const env = {};
|
|
65
|
-
const buildCommands = [];
|
|
66
|
-
if (features.gradleBuild) {
|
|
67
|
-
env.variables = {
|
|
68
|
-
LANG: 'C.UTF-8',
|
|
69
|
-
};
|
|
70
|
-
env['parameter-store'] = {
|
|
71
|
-
NIST_DATA_MIRROR_URL: '/config/nist-data-mirror/url',
|
|
72
|
-
};
|
|
73
|
-
env['secrets-manager'] = {
|
|
74
|
-
SONATYPE_OSS_INDEX_USERNAME: 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials:username',
|
|
75
|
-
SONATYPE_OSS_INDEX_PASSWORD: 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials:password',
|
|
76
|
-
};
|
|
77
|
-
buildCommands.push(...['### GRADLE VULNERABILITY CHECK ###', './gradlew -Dorg.gradle.jvmargs=-Xmx4g dependencyCheckAnalyze']);
|
|
78
|
-
}
|
|
79
|
-
if (features.npmBuild) {
|
|
80
|
-
buildCommands.push(...[
|
|
81
|
-
'### NPM VULNERABILITY CHECK ###',
|
|
82
|
-
'npm audit --registry https://registry.npmjs.org --audit-level moderate --omit=dev',
|
|
83
|
-
]);
|
|
84
|
-
}
|
|
85
|
-
buildCommands.push(...[
|
|
86
|
-
'### INFRASTRUCTURE VULNERABILITY CHECK ###',
|
|
87
|
-
'cd infrastructure',
|
|
88
|
-
'npm audit --registry https://registry.npmjs.org --audit-level moderate --omit=dev',
|
|
89
|
-
'cd ..',
|
|
90
|
-
]);
|
|
91
|
-
return aws_codebuild_1.BuildSpec.fromObject({
|
|
92
|
-
version: '0.2',
|
|
93
|
-
env,
|
|
94
|
-
phases: {
|
|
95
|
-
install: {
|
|
96
|
-
'runtime-versions': getRuntimes(features),
|
|
97
|
-
},
|
|
98
|
-
pre_build: {
|
|
99
|
-
commands: (0, exports.logCommitHash)(),
|
|
100
|
-
},
|
|
101
|
-
build: {
|
|
102
|
-
commands: buildCommands,
|
|
103
|
-
},
|
|
104
|
-
post_build: {
|
|
105
|
-
commands: (0, exports.logCommitHash)(),
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
cache: {
|
|
109
|
-
paths: cachePathsVulnerability(),
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
exports.createVulnerabilityBuildSpec = createVulnerabilityBuildSpec;
|
|
114
|
-
const getRuntimes = (features) => {
|
|
115
|
-
const runtimes = {};
|
|
116
|
-
if (features.gradleBuild) {
|
|
117
|
-
runtimes.java = 'corretto21';
|
|
118
|
-
}
|
|
119
|
-
runtimes.nodejs = '24';
|
|
120
|
-
return runtimes;
|
|
121
|
-
};
|
|
122
|
-
const logCommitHash = () => [
|
|
123
|
-
'(echo "Build triggered by commit " && git log --pretty=format:"%h%x09%an%x09%s" -n 1 ) | tr -d "\\n"',
|
|
124
|
-
];
|
|
125
|
-
exports.logCommitHash = logCommitHash;
|
|
126
|
-
const exportCommitHashAsVersion = () => ['export GIT_VERSION=$(git rev-parse HEAD)'];
|
|
127
|
-
exports.exportCommitHashAsVersion = exportCommitHashAsVersion;
|
|
128
|
-
const infrastructureBuildCommands = () => [
|
|
129
|
-
'### INFRASTRUCTURE BUILD ###',
|
|
130
|
-
'cd infrastructure',
|
|
131
|
-
'npm ci',
|
|
132
|
-
`${LICENSE_CHECK_COMMAND} --type npm-backend --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
|
|
133
|
-
'npm run cdk synth 1> /dev/null',
|
|
134
|
-
// In pipeline: Error parsing reference: is not a valid repository/tag: invalid reference format.
|
|
135
|
-
// workaround due to https://github.com/aws/aws-cdk/issues/18044',
|
|
136
|
-
'find ./ -type f -name "*DeployApplicationStacks*.assets.json" -print0 | xargs --no-run-if-empty -0 sed --in-place \'s|docker load -i asset.|docker load -i ../asset.|g\'',
|
|
137
|
-
'cd ..',
|
|
138
|
-
];
|
|
139
|
-
const gradleBuildCommands = (kafkaIntegration) => {
|
|
140
|
-
const commands = [];
|
|
141
|
-
commands.push(...[
|
|
142
|
-
'### GRADLE BUILD ###',
|
|
143
|
-
'./gradlew clean build',
|
|
144
|
-
'# license check',
|
|
145
|
-
`${LICENSE_CHECK_COMMAND} --type gradle --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
|
|
146
|
-
'# self signed certificate',
|
|
147
|
-
'set -u; keytool -genkey -alias InternalServiceCertificate -keyalg RSA -keystore containerfiles/service-keystore.p12 -validity 3650 -storetype PKCS12 -dname "CN=internal.service.${SERVICE_NAME}.${HOSTED_ZONE}, OU=Logistics, O=Rio, L=Munich, ST=BY, C=DE" -keypass ${SERVICE_KEYSTORE_PASSWORD} -storepass ${SERVICE_KEYSTORE_PASSWORD}',
|
|
148
|
-
]);
|
|
149
|
-
if (kafkaIntegration) {
|
|
150
|
-
commands.push(...[
|
|
151
|
-
'# kafka certificate',
|
|
152
|
-
'set -u; aws s3 cp --quiet s3://${CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION} create-and-sign-certificate',
|
|
153
|
-
'chmod +x create-and-sign-certificate',
|
|
154
|
-
'set -u; ./create-and-sign-certificate --keystore-password ${SERVICE_KEYSTORE_PASSWORD} --fqdn ${SERVICE_NAME}.${HOSTED_ZONE}',
|
|
155
|
-
'cp /cert/certificate.p12 containerfiles/kafka-keystore.p12',
|
|
156
|
-
]);
|
|
157
|
-
}
|
|
158
|
-
commands.push(...['# docker image build', './gradlew jibBuildTar --quiet']);
|
|
159
|
-
return commands;
|
|
160
|
-
};
|
|
161
|
-
const npmBuildCommands = () => [
|
|
162
|
-
'### NPM BUILD ###',
|
|
163
|
-
'export VITE_GIT_VERSION=$GIT_VERSION',
|
|
164
|
-
'export VITE_AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID',
|
|
165
|
-
'export VITE_AWS_ACCOUNT_NAME=$ACCOUNT_NAME',
|
|
166
|
-
'export VITE_SERVICE_NAME=$SERVICE_NAME',
|
|
167
|
-
'export VITE_TEAM_IDENTIFIER=$TEAM_IDENTIFIER',
|
|
168
|
-
'npm ci',
|
|
169
|
-
'npm run lint',
|
|
170
|
-
'npm run test:ci',
|
|
171
|
-
`${LICENSE_CHECK_COMMAND} --type npm-frontend --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
|
|
172
|
-
'npm run build',
|
|
173
|
-
];
|
|
174
|
-
const cachePaths = () => [
|
|
175
|
-
'/cert/**/*',
|
|
176
|
-
'/root/.cache/**/*',
|
|
177
|
-
'/root/.npm/**/*',
|
|
178
|
-
'/root/.gradle/caches/**/*',
|
|
179
|
-
'/root/.gradle/wrapper/**/*',
|
|
180
|
-
'/root/google-cloud-tools-java/jib/**/*',
|
|
181
|
-
'target/jib-cache/**/*',
|
|
182
|
-
];
|
|
183
|
-
const cachePathsVulnerability = () => [
|
|
184
|
-
'/root/.cache/**/*',
|
|
185
|
-
'/root/.gradle/caches/**/*',
|
|
186
|
-
'/root/.gradle/wrapper/**/*',
|
|
187
|
-
'/root/.gradle/dependency-check-data/**/*',
|
|
188
|
-
];
|
|
189
|
-
const createReports = (features) => {
|
|
190
|
-
const reports = {};
|
|
191
|
-
if (features.gradleBuild) {
|
|
192
|
-
reports.GradleBuildTestResults = {
|
|
193
|
-
files: ['**/*'],
|
|
194
|
-
'base-directory': 'build/test-results',
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
if (features.npmBuild) {
|
|
198
|
-
reports.NpmBuildTestResults = {
|
|
199
|
-
files: ['**/*'],
|
|
200
|
-
'base-directory': 'results',
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
return reports;
|
|
204
|
-
};
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRzcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZHNwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFzRDtBQUd0RCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUMxQyxNQUFNLHFCQUFxQixHQUFHLHlDQUF5Qyx5QkFBeUIsRUFBRSxDQUFDO0FBRTVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUEwQixFQUFhLEVBQUU7SUFDM0UsTUFBTSxHQUFHLEdBQTJDLEVBQUUsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDbkMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsaUNBQXlCLEdBQUUsQ0FBQyxDQUFDO0lBRW5ELEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxzQkFBc0I7UUFDcEMsZUFBZSxFQUFFLHlCQUF5QjtLQUMzQyxDQUFDO0lBRUYsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9FLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMseUJBQXlCLEVBQUUsbURBQW1EO1lBQzlFLG1CQUFtQixFQUFFLGtDQUFrQztTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUc7WUFDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJ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S0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsU0FBUztTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkU3BlYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHsgUGlwZWxpbmVGZWF0dXJlcyB9IGZyb20gJy4vcGlwZWxpbmUtc3RhY2snO1xuXG5jb25zdCBSSU9fTElDRU5TRV9DSEVDS19WRVJTSU9OID0gJzEuMS43JztcbmNvbnN0IExJQ0VOU0VfQ0hFQ0tfQ09NTUFORCA9IGBucHggLXkgQHJpby1jbG91ZC9yaW8tbGljZW5zZS1jaGVja2VyQCR7UklPX0xJQ0VOU0VfQ0hFQ0tfVkVSU0lPTn1gO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFpbkJ1aWxkU3BlYyA9IChmZWF0dXJlczogUGlwZWxpbmVGZWF0dXJlcyk6IEJ1aWxkU3BlYyA9PiB7XG4gIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fTtcbiAgY29uc3QgYnVpbGRDb21tYW5kczogc3RyaW5nW10gPSBbXTtcbiAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLmV4cG9ydENvbW1pdEhhc2hBc1ZlcnNpb24oKSk7XG5cbiAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICBBQ0NPVU5UX05BTUU6ICcvY29uZmlnL2FjY291bnQvbmFtZScsXG4gICAgVEVBTV9JREVOVElGSUVSOiAnL2NvbmZpZy90ZWFtL2lkZW50aWZpZXInLFxuICB9O1xuXG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIGJ1aWxkQ29tbWFuZHMucHVzaCguLi5ncmFkbGVCdWlsZENvbW1hbmRzKGZlYXR1cmVzLmthZmthSW50ZWdyYXRpb24gPz8gZmFsc2UpKTtcbiAgICBlbnZbJ3BhcmFtZXRlci1zdG9yZSddID0ge1xuICAgICAgLi4uKGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPz8ge30pLFxuICAgICAgU0VSVklDRV9LRVlTVE9SRV9QQVNTV09SRDogJy9jb25maWcvJHtTRVJWSUNFX05BTUV9L3NlcnZpY2Uta2V5c3RvcmUtcGFzc3dvcmQnLFxuICAgICAgTElDRU5TRV9CVUNLRVRfTkFNRTogJy9jb25maWcvb3NzLWxpY2Vuc2VzL2J1Y2tldC1uYW1lJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5rYWZrYUludGVncmF0aW9uKSB7XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIC4uLihlbnZbJ3BhcmFtZXRlci1zdG9yZSddID8/IHt9KSxcbiAgICAgIENSRUFURV9BTkRfU0lHTl9DRVJUSUZJQ0FURV9TQ1JJUFRfUzNfTE9DQVRJT046XG4gICAgICAgICcvY29uZmlnL2thZmthLWludGVncmF0aW9uL2NyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZS1zY3JpcHQtczMtbG9jYXRpb24nLFxuICAgIH07XG4gIH1cbiAgaWYgKGZlYXR1cmVzLm5wbUJ1aWxkKSB7XG4gICAgZW52LnZhcmlhYmxlcyA9IHtcbiAgICAgIENJOiAndHJ1ZScsXG4gICAgfTtcbiAgICBidWlsZENvbW1hbmRzLnB1c2goLi4ubnBtQnVpbGRDb21tYW5kcygpKTtcbiAgfVxuICBpZiAoZmVhdHVyZXMuYWRkaXRpb25hbEJ1aWxkQ29tbWFuZHMpIHtcbiAgICBidWlsZENvbW1hbmRzLnB1c2goJyMjIyBBRERJVElPTkFMIEJVSUxEIENPTU1BTkRTICMjIycsIC4uLmZlYXR1cmVzLmFkZGl0aW9uYWxCdWlsZENvbW1hbmRzKTtcbiAgfVxuXG4gIGJ1aWxkQ29tbWFuZHMucHVzaCguLi5pbmZyYXN0cnVjdHVyZUJ1aWxkQ29tbWFuZHMoKSk7XG5cbiAgcmV0dXJuIEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICB2ZXJzaW9uOiAnMC4yJyxcbiAgICBlbnYsXG4gICAgcGhhc2VzOiB7XG4gICAgICBpbnN0YWxsOiB7XG4gICAgICAgICdydW50aW1lLXZlcnNpb25zJzogZ2V0UnVudGltZXMoZmVhdHVyZXMpLFxuICAgICAgfSxcbiAgICAgIHByZV9idWlsZDoge1xuICAgICAgICBjb21tYW5kczogbG9nQ29tbWl0SGFzaCgpLFxuICAgICAgfSxcbiAgICAgIGJ1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBidWlsZENvbW1hbmRzLFxuICAgICAgfSxcbiAgICAgIHBvc3RfYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGxvZ0NvbW1pdEhhc2goKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXBvcnRzOiBjcmVhdGVSZXBvcnRzKGZlYXR1cmVzKSxcbiAgICBjYWNoZToge1xuICAgICAgcGF0aHM6IGNhY2hlUGF0aHMoKSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVWdWxuZXJhYmlsaXR5QnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fTtcbiAgY29uc3QgYnVpbGRDb21tYW5kczogc3RyaW5nW10gPSBbXTtcblxuICBpZiAoZmVhdHVyZXMuZ3JhZGxlQnVpbGQpIHtcbiAgICBlbnYudmFyaWFibGVzID0ge1xuICAgICAgTEFORzogJ0MuVVRGLTgnLFxuICAgIH07XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIE5JU1RfREFUQV9NSVJST1JfVVJMOiAnL2NvbmZpZy9uaXN0LWRhdGEtbWlycm9yL3VybCcsXG4gICAgfTtcbiAgICBlbnZbJ3NlY3JldHMtbWFuYWdlciddID0ge1xuICAgICAgU09OQVRZUEVfT1NTX0lOREVYX1VTRVJOQU1FOlxuICAgICAgICAnYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6NTc3MTQ2ODk3Nzg1OnNlY3JldDovcmlvL2NvbmZpZy9zb25hdHlwZS1vc3MtaW5kZXgvY3JlZGVudGlhbHM6dXNlcm5hbWUnLFxuICAgICAgU09OQVRZUEVfT1NTX0lOREVYX1BBU1NXT1JEOlxuICAgICAgICAnYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6NTc3MTQ2ODk3Nzg1OnNlY3JldDovcmlvL2NvbmZpZy9zb25hdHlwZS1vc3MtaW5kZXgvY3JlZGVudGlhbHM6cGFzc3dvcmQnLFxuICAgIH07XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKFxuICAgICAgLi4uWycjIyMgR1JBRExFIFZVTE5FUkFCSUxJVFkgQ0hFQ0sgIyMjJywgJy4vZ3JhZGxldyAtRG9yZy5ncmFkbGUuanZtYXJncz0tWG14NGcgZGVwZW5kZW5jeUNoZWNrQW5hbHl6ZSddXG4gICAgKTtcbiAgfVxuICBpZiAoZmVhdHVyZXMubnBtQnVpbGQpIHtcbiAgICBidWlsZENvbW1hbmRzLnB1c2goXG4gICAgICAuLi5bXG4gICAgICAgICcjIyMgTlBNIFZVTE5FUkFCSUxJVFkgQ0hFQ0sgIyMjJyxcbiAgICAgICAgJ25wbSBhdWRpdCAtLXJlZ2lzdHJ5IGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnIC0tYXVkaXQtbGV2ZWwgbW9kZXJhdGUgLS1vbWl0PWRldicsXG4gICAgICBdXG4gICAgKTtcbiAgfVxuICBidWlsZENvbW1hbmRzLnB1c2goXG4gICAgLi4uW1xuICAgICAgJyMjIyBJTkZSQVNUUlVDVFVSRSBWVUxORVJBQklMSVRZIENIRUNLICMjIycsXG4gICAgICAnY2QgaW5mcmFzdHJ1Y3R1cmUnLFxuICAgICAgJ25wbSBhdWRpdCAtLXJlZ2lzdHJ5IGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnIC0tYXVkaXQtbGV2ZWwgbW9kZXJhdGUgLS1vbWl0PWRldicsXG4gICAgICAnY2QgLi4nLFxuICAgIF1cbiAgKTtcblxuICByZXR1cm4gQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgIHZlcnNpb246ICcwLjInLFxuICAgIGVudixcbiAgICBwaGFzZXM6IHtcbiAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgJ3J1bnRpbWUtdmVyc2lvbnMnOiBnZXRSdW50aW1lcyhmZWF0dXJlcyksXG4gICAgICB9LFxuICAgICAgcHJlX2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgICAgYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGJ1aWxkQ29tbWFuZHMsXG4gICAgICB9LFxuICAgICAgcG9zdF9idWlsZDoge1xuICAgICAgICBjb21tYW5kczogbG9nQ29tbWl0SGFzaCgpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBwYXRoczogY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkoKSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmNvbnN0IGdldFJ1bnRpbWVzID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IHJ1bnRpbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJ1bnRpbWVzLmphdmEgPSAnY29ycmV0dG8yMSc7XG4gIH1cbiAgcnVudGltZXMubm9kZWpzID0gJzI0JztcbiAgcmV0dXJuIHJ1bnRpbWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZ0NvbW1pdEhhc2ggPSAoKSA9PiBbXG4gICcoZWNobyBcIkJ1aWxkIHRyaWdnZXJlZCBieSBjb21taXQgXCIgJiYgZ2l0IGxvZyAtLXByZXR0eT1mb3JtYXQ6XCIlaCV4MDklYW4leDA5JXNcIiAtbiAxICkgfCB0ciAtZCBcIlxcXFxuXCInLFxuXTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydENvbW1pdEhhc2hBc1ZlcnNpb24gPSAoKSA9PiBbJ2V4cG9ydCBHSVRfVkVSU0lPTj0kKGdpdCByZXYtcGFyc2UgSEVBRCknXTtcblxuY29uc3QgaW5mcmFzdHJ1Y3R1cmVCdWlsZENvbW1hbmRzID0gKCkgPT4gW1xuICAnIyMjIElORlJBU1RSVUNUVVJFIEJVSUxEICMjIycsXG4gICdjZCBpbmZyYXN0cnVjdHVyZScsXG4gICducG0gY2knLFxuICBgJHtMSUNFTlNFX0NIRUNLX0NPTU1BTkR9IC0tdHlwZSBucG0tYmFja2VuZCAtLWFjY291bnQtbmFtZSBcXCR7QUNDT1VOVF9OQU1FfSAtLXNlcnZpY2UtbmFtZSBcXCR7U0VSVklDRV9OQU1FfSAtLXVwbG9hZGAsXG4gICducG0gcnVuIGNkayBzeW50aCAxPiAvZGV2L251bGwnLFxuICAvLyBJbiBwaXBlbGluZTogRXJyb3IgcGFyc2luZyByZWZlcmVuY2U6IGlzIG5vdCBhIHZhbGlkIHJlcG9zaXRvcnkvdGFnOiBpbnZhbGlkIHJlZmVyZW5jZSBmb3JtYXQuXG4gIC8vIHdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTgwNDQnLFxuICAnZmluZCAuLyAtdHlwZSBmIC1uYW1lIFwiKkRlcGxveUFwcGxpY2F0aW9uU3RhY2tzKi5hc3NldHMuanNvblwiIC1wcmludDAgfCB4YXJncyAtLW5vLXJ1bi1pZi1lbXB0eSAtMCBzZWQgLS1pbi1wbGFjZSBcXCdzfGRvY2tlciBsb2FkIC1pIGFzc2V0Lnxkb2NrZXIgbG9hZCAtaSAuLi9hc3NldC58Z1xcJycsXG4gICdjZCAuLicsXG5dO1xuXG5jb25zdCBncmFkbGVCdWlsZENvbW1hbmRzID0gKGthZmthSW50ZWdyYXRpb246IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgY29tbWFuZHM6IHN0cmluZ1tdID0gW107XG4gIGNvbW1hbmRzLnB1c2goXG4gICAgLi4uW1xuICAgICAgJyMjIyBHUkFETEUgQlVJTEQgIyMjJyxcbiAgICAgICcuL2dyYWRsZXcgY2xlYW4gYnVpbGQnLFxuICAgICAgJyMgbGljZW5zZSBjaGVjaycsXG4gICAgICBgJHtMSUNFTlNFX0NIRUNLX0NPTU1BTkR9IC0tdHlwZSBncmFkbGUgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAgICAgJyMgc2VsZiBzaWduZWQgY2VydGlmaWNhdGUnLFxuICAgICAgJ3NldCAtdTsga2V5dG9vbCAtZ2Vua2V5IC1hbGlhcyBJbnRlcm5hbFNlcnZpY2VDZXJ0aWZpY2F0ZSAta2V5YWxnIFJTQSAta2V5c3RvcmUgY29udGFpbmVyZmlsZXMvc2VydmljZS1rZXlzdG9yZS5wMTIgLXZhbGlkaXR5IDM2NTAgLXN0b3JldHlwZSBQS0NTMTIgLWRuYW1lIFwiQ049aW50ZXJuYWwuc2VydmljZS4ke1NFUlZJQ0VfTkFNRX0uJHtIT1NURURfWk9ORX0sIE9VPUxvZ2lzdGljcywgTz1SaW8sIEw9TXVuaWNoLCBTVD1CWSwgQz1ERVwiIC1rZXlwYXNzICR7U0VSVklDRV9LRVlTVE9SRV9QQVNTV09SRH0gLXN0b3JlcGFzcyAke1NFUlZJQ0VfS0VZU1RPUkVfUEFTU1dPUkR9JyxcbiAgICBdXG4gICk7XG4gIGlmIChrYWZrYUludGVncmF0aW9uKSB7XG4gICAgY29tbWFuZHMucHVzaChcbiAgICAgIC4uLltcbiAgICAgICAgJyMga2Fma2EgY2VydGlmaWNhdGUnLFxuICAgICAgICAnc2V0IC11OyBhd3MgczMgY3AgLS1xdWlldCBzMzovLyR7Q1JFQVRFX0FORF9TSUdOX0NFUlRJRklDQVRFX1NDUklQVF9TM19MT0NBVElPTn0gY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlJyxcbiAgICAgICAgJ2NobW9kICt4IGNyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZScsXG4gICAgICAgICdzZXQgLXU7IC4vY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlIC0ta2V5c3RvcmUtcGFzc3dvcmQgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfSAtLWZxZG4gJHtTRVJWSUNFX05BTUV9LiR7SE9TVEVEX1pPTkV9JyxcbiAgICAgICAgJ2NwIC9jZXJ0L2NlcnRpZmljYXRlLnAxMiBjb250YWluZXJmaWxlcy9rYWZrYS1rZXlzdG9yZS5wMTInLFxuICAgICAgXVxuICAgICk7XG4gIH1cbiAgY29tbWFuZHMucHVzaCguLi5bJyMgZG9ja2VyIGltYWdlIGJ1aWxkJywgJy4vZ3JhZGxldyBqaWJCdWlsZFRhciAtLXF1aWV0J10pO1xuICByZXR1cm4gY29tbWFuZHM7XG59O1xuXG5jb25zdCBucG1CdWlsZENvbW1hbmRzID0gKCkgPT4gW1xuICAnIyMjIE5QTSBCVUlMRCAjIyMnLFxuICAnZXhwb3J0IFZJVEVfR0lUX1ZFUlNJT049JEdJVF9WRVJTSU9OJyxcbiAgJ2V4cG9ydCBWSVRFX0FXU19BQ0NPVU5UX0lEPSRBV1NfQUNDT1VOVF9JRCcsXG4gICdleHBvcnQgVklURV9BV1NfQUNDT1VOVF9OQU1FPSRBQ0NPVU5UX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfU0VSVklDRV9OQU1FPSRTRVJWSUNFX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfVEVBTV9JREVOVElGSUVSPSRURUFNX0lERU5USUZJRVInLFxuICAnbnBtIGNpJyxcbiAgJ25wbSBydW4gbGludCcsXG4gICducG0gcnVuIHRlc3Q6Y2knLFxuICBgJHtMSUNFTlNFX0NIRUNLX0NPTU1BTkR9IC0tdHlwZSBucG0tZnJvbnRlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBidWlsZCcsXG5dO1xuXG5jb25zdCBjYWNoZVBhdGhzID0gKCkgPT4gW1xuICAnL2NlcnQvKiovKicsXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8ubnBtLyoqLyonLFxuICAnL3Jvb3QvLmdyYWRsZS9jYWNoZXMvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL3dyYXBwZXIvKiovKicsXG4gICcvcm9vdC9nb29nbGUtY2xvdWQtdG9vbHMtamF2YS9qaWIvKiovKicsXG4gICd0YXJnZXQvamliLWNhY2hlLyoqLyonLFxuXTtcblxuY29uc3QgY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkgPSAoKSA9PiBbXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL2NhY2hlcy8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvd3JhcHBlci8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvZGVwZW5kZW5jeS1jaGVjay1kYXRhLyoqLyonLFxuXTtcblxuY29uc3QgY3JlYXRlUmVwb3J0cyA9IChmZWF0dXJlczogUGlwZWxpbmVGZWF0dXJlcykgPT4ge1xuICBjb25zdCByZXBvcnRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJlcG9ydHMuR3JhZGxlQnVpbGRUZXN0UmVzdWx0cyA9IHtcbiAgICAgIGZpbGVzOiBbJyoqLyonXSxcbiAgICAgICdiYXNlLWRpcmVjdG9yeSc6ICdidWlsZC90ZXN0LXJlc3VsdHMnLFxuICAgIH07XG4gIH1cbiAgaWYgKGZlYXR1cmVzLm5wbUJ1aWxkKSB7XG4gICAgcmVwb3J0cy5OcG1CdWlsZFRlc3RSZXN1bHRzID0ge1xuICAgICAgZmlsZXM6IFsnKiovKiddLFxuICAgICAgJ2Jhc2UtZGlyZWN0b3J5JzogJ3Jlc3VsdHMnLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHJlcG9ydHM7XG59O1xuIl19
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DataDogPipelineErrorAlertForVulnerabilityChecks = exports.DatadogPipelineErrorAlert = void 0;
|
|
4
|
-
const datadogv2_1 = require("../../../datadogv2");
|
|
5
|
-
class DatadogPipelineErrorAlert extends datadogv2_1.DatadogMonitor {
|
|
6
|
-
constructor(scope, id, props) {
|
|
7
|
-
super(scope, id, {
|
|
8
|
-
serviceName: props.serviceName,
|
|
9
|
-
notification: new datadogv2_1.NoNotification(),
|
|
10
|
-
monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
|
|
11
|
-
extraTags: ['cicd'],
|
|
12
|
-
query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
|
|
13
|
-
lowercaseQuery: true,
|
|
14
|
-
name: 'CI pipeline status',
|
|
15
|
-
message: '{{#is_alert}}\\nThe CI build is broken\\n{{/is_alert}} \\n\\n{{#is_alert_recovery}}\\nThe CI build works again.\\n{{/is_alert_recovery}}',
|
|
16
|
-
priority: 5,
|
|
17
|
-
optionOverrides: {
|
|
18
|
-
requireFullWindow: false,
|
|
19
|
-
evaluationDelay: 0,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.DatadogPipelineErrorAlert = DatadogPipelineErrorAlert;
|
|
25
|
-
class DataDogPipelineErrorAlertForVulnerabilityChecks extends datadogv2_1.DatadogMonitor {
|
|
26
|
-
constructor(scope, id, props) {
|
|
27
|
-
super(scope, id, {
|
|
28
|
-
serviceName: props.serviceName,
|
|
29
|
-
notification: props.notification,
|
|
30
|
-
monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
|
|
31
|
-
extraTags: ['cicd'],
|
|
32
|
-
query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
|
|
33
|
-
lowercaseQuery: true,
|
|
34
|
-
name: 'Vulnerability checks',
|
|
35
|
-
message: 'Vulnerabilities detected',
|
|
36
|
-
priority: 3,
|
|
37
|
-
optionOverrides: {
|
|
38
|
-
requireFullWindow: false,
|
|
39
|
-
evaluationDelay: 0,
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.DataDogPipelineErrorAlertForVulnerabilityChecks = DataDogPipelineErrorAlertForVulnerabilityChecks;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9kYXRhZG9nLW1vbml0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGtEQUFpSDtBQVNqSCxNQUFhLHlCQUEwQixTQUFRLDBCQUFjO0lBQzNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0Q7UUFDaEcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLElBQUksMEJBQWMsRUFBRTtZQUNsQyxXQUFXLEVBQUUsd0NBQTRCLENBQUMsV0FBVztZQUNyRCxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkIsS0FBSyxFQUFFLHFFQUFxRSxLQUFLLENBQUMsWUFBWSxlQUFlLEtBQUssQ0FBQyxTQUFTLE9BQU87WUFDbkksY0FBYyxFQUFFLElBQUk7WUFDcEIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixPQUFPLEVBQ0wsMElBQTBJO1lBQzVJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsZUFBZSxFQUFFO2dCQUNmLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGVBQWUsRUFBRSxDQUFDO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbkJELDhEQW1CQztBQUVELE1BQWEsK0NBQWdELFNBQVEsMEJBQWM7SUFDakYsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFdBQVc7WUFDckQsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxxRUFBcUUsS0FBSyxDQUFDLFlBQVksZUFBZSxLQUFLLENBQUMsU0FBUyxPQUFPO1lBQ25JLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxRQUFRLEVBQUUsQ0FBQztZQUNYLGVBQWUsRUFBRTtnQkFDZixpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixlQUFlLEVBQUUsQ0FBQzthQUNuQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWxCRCwwR0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFkb2dNb25pdG9yLCBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLCBJTm90aWZpY2F0aW9uLCBOb05vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5cbmludGVyZmFjZSBEYXRhZG9nUGlwZWxpbmVNb25pdG9yUHJvcHMge1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IFJlZmVyZW5jZTtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhZG9nUGlwZWxpbmVFcnJvckFsZXJ0IGV4dGVuZHMgRGF0YWRvZ01vbml0b3Ige1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogT21pdDxEYXRhZG9nUGlwZWxpbmVNb25pdG9yUHJvcHMsICdub3RpZmljYXRpb24nPikge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBuZXcgTm9Ob3RpZmljYXRpb24oKSxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJULFxuICAgICAgZXh0cmFUYWdzOiBbJ2NpY2QnXSxcbiAgICAgIHF1ZXJ5OiBgbWluKGxhc3RfNW0pOm1pbjpkZXBsb3ltZW50LmNvZGVwaXBlbGluZS5leGVjdXRpb25ze3BpcGVsaW5lX25hbWU6JHtwcm9wcy5waXBlbGluZU5hbWV9LGFjY291bnRfaWQ6JHtwcm9wcy5hY2NvdW50SWR9fSA8IDFgLFxuICAgICAgbG93ZXJjYXNlUXVlcnk6IHRydWUsXG4gICAgICBuYW1lOiAnQ0kgcGlwZWxpbmUgc3RhdHVzJyxcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICd7eyNpc19hbGVydH19XFxcXG5UaGUgQ0kgYnVpbGQgaXMgYnJva2VuXFxcXG57ey9pc19hbGVydH19IFxcXFxuXFxcXG57eyNpc19hbGVydF9yZWNvdmVyeX19XFxcXG5UaGUgQ0kgYnVpbGQgd29ya3MgYWdhaW4uXFxcXG57ey9pc19hbGVydF9yZWNvdmVyeX19JyxcbiAgICAgIHByaW9yaXR5OiA1LFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHJlcXVpcmVGdWxsV2luZG93OiBmYWxzZSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiAwLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YURvZ1BpcGVsaW5lRXJyb3JBbGVydEZvclZ1bG5lcmFiaWxpdHlDaGVja3MgZXh0ZW5kcyBEYXRhZG9nTW9uaXRvciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nUGlwZWxpbmVNb25pdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogcHJvcHMubm90aWZpY2F0aW9uLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBleHRyYVRhZ3M6IFsnY2ljZCddLFxuICAgICAgcXVlcnk6IGBtaW4obGFzdF81bSk6bWluOmRlcGxveW1lbnQuY29kZXBpcGVsaW5lLmV4ZWN1dGlvbnN7cGlwZWxpbmVfbmFtZToke3Byb3BzLnBpcGVsaW5lTmFtZX0sYWNjb3VudF9pZDoke3Byb3BzLmFjY291bnRJZH19IDwgMWAsXG4gICAgICBsb3dlcmNhc2VRdWVyeTogdHJ1ZSxcbiAgICAgIG5hbWU6ICdWdWxuZXJhYmlsaXR5IGNoZWNrcycsXG4gICAgICBtZXNzYWdlOiAnVnVsbmVyYWJpbGl0aWVzIGRldGVjdGVkJyxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHJlcXVpcmVGdWxsV2luZG93OiBmYWxzZSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiAwLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RioCapabilityMonitoringDeployStep = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
6
|
-
const pipelines = require("aws-cdk-lib/pipelines");
|
|
7
|
-
class RioCapabilityMonitoringDeployStep extends pipelines.CodeBuildStep {
|
|
8
|
-
constructor(scope, id, props) {
|
|
9
|
-
super(id, {
|
|
10
|
-
additionalInputs: props.monitoringArtifacts.reduce((result, item) => ({
|
|
11
|
-
...result,
|
|
12
|
-
[`${Object.keys(result).length}`]: item.input,
|
|
13
|
-
}), {}),
|
|
14
|
-
commands: props.monitoringArtifacts
|
|
15
|
-
.map((item, index) => item.files.map((file) => [
|
|
16
|
-
`echo "Uploading ${index}/${file}" to S3`,
|
|
17
|
-
`aws s3 cp "${index}/${file}" s3://monitoring-testsuite-runner-${aws_cdk_lib_1.Stack.of(scope).account}`,
|
|
18
|
-
]))
|
|
19
|
-
.flat(2),
|
|
20
|
-
buildEnvironment: {
|
|
21
|
-
buildImage: aws_codebuild_1.LinuxLambdaBuildImage.AMAZON_LINUX_2023_NODE_20,
|
|
22
|
-
computeType: aws_codebuild_1.ComputeType.LAMBDA_1GB,
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.RioCapabilityMonitoringDeployStep = RioCapabilityMonitoringDeployStep;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1kZXBsb3ktc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9tb25pdG9yaW5nLWRlcGxveS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUNwQyw2REFBK0U7QUFDL0UsbURBQW1EO0FBWW5ELE1BQWEsaUNBQWtDLFNBQVEsU0FBUyxDQUFDLGFBQWE7SUFDNUUsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QztRQUNyRixLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ1IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxNQUFXLEVBQUUsSUFBc0MsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxNQUFNO2dCQUNULENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDOUMsQ0FBQyxFQUNGLEVBQUUsQ0FDSDtZQUNELFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CO2lCQUNoQyxHQUFHLENBQUMsQ0FBQyxJQUFzQyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDL0IsbUJBQW1CLEtBQUssSUFBSSxJQUFJLFNBQVM7Z0JBQ3pDLGNBQWMsS0FBSyxJQUFJLElBQUksc0NBQXNDLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTthQUMzRixDQUFDLENBQ0g7aUJBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNWLGdCQUFnQixFQUFFO2dCQUNoQixVQUFVLEVBQUUscUNBQXFCLENBQUMseUJBQXlCO2dCQUMzRCxXQUFXLEVBQUUsMkJBQVcsQ0FBQyxVQUFVO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEJELDhFQXdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29tcHV0ZVR5cGUsIExpbnV4TGFtYmRhQnVpbGRJbWFnZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0ICogYXMgcGlwZWxpbmVzIGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBSaW9DYXBhYmlsaXR5TW9uaXRvcmluZ0FydGlmYWN0cyB7XG4gIGlucHV0OiBwaXBlbGluZXMuSUZpbGVTZXRQcm9kdWNlcjtcbiAgZmlsZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJpb0NhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcFByb3BzIHtcbiAgbW9uaXRvcmluZ0FydGlmYWN0czogUmlvQ2FwYWJpbGl0eU1vbml0b3JpbmdBcnRpZmFjdHNbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFJpb0NhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcCBleHRlbmRzIHBpcGVsaW5lcy5Db2RlQnVpbGRTdGVwIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJpb0NhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcFByb3BzKSB7XG4gICAgc3VwZXIoaWQsIHtcbiAgICAgIGFkZGl0aW9uYWxJbnB1dHM6IHByb3BzLm1vbml0b3JpbmdBcnRpZmFjdHMucmVkdWNlKFxuICAgICAgICAocmVzdWx0OiBhbnksIGl0ZW06IFJpb0NhcGFiaWxpdHlNb25pdG9yaW5nQXJ0aWZhY3RzKSA9PiAoe1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICBbYCR7T2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGh9YF06IGl0ZW0uaW5wdXQsXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKSxcbiAgICAgIGNvbW1hbmRzOiBwcm9wcy5tb25pdG9yaW5nQXJ0aWZhY3RzXG4gICAgICAgIC5tYXAoKGl0ZW06IFJpb0NhcGFiaWxpdHlNb25pdG9yaW5nQXJ0aWZhY3RzLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgIGl0ZW0uZmlsZXMubWFwKChmaWxlOiBzdHJpbmcpID0+IFtcbiAgICAgICAgICAgIGBlY2hvIFwiVXBsb2FkaW5nICR7aW5kZXh9LyR7ZmlsZX1cIiB0byBTM2AsXG4gICAgICAgICAgICBgYXdzIHMzIGNwIFwiJHtpbmRleH0vJHtmaWxlfVwiIHMzOi8vbW9uaXRvcmluZy10ZXN0c3VpdGUtcnVubmVyLSR7U3RhY2sub2Yoc2NvcGUpLmFjY291bnR9YCxcbiAgICAgICAgICBdKVxuICAgICAgICApXG4gICAgICAgIC5mbGF0KDIpLFxuICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOiBMaW51eExhbWJkYUJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzIwMjNfTk9ERV8yMCxcbiAgICAgICAgY29tcHV0ZVR5cGU6IENvbXB1dGVUeXBlLkxBTUJEQV8xR0IsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|