@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
@@ -1,227 +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 DEFAULT_NODE_VERSION = '24';
6
- const EXACT_VERSION = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/;
7
- const createMainBuildSpec = (features, options) => {
8
- const runtime = getRuntimeOptions(options);
9
- const env = {};
10
- const buildCommands = [];
11
- buildCommands.push(...(0, exports.exportCommitHashAsVersion)());
12
- env['parameter-store'] = {
13
- ACCOUNT_NAME: '/config/account/name',
14
- TEAM_IDENTIFIER: '/config/team/identifier',
15
- };
16
- if (features.gradleBuild) {
17
- buildCommands.push(...gradleBuildCommands(features.kafkaIntegration ?? false));
18
- env['parameter-store'] = {
19
- ...(env['parameter-store'] ?? {}),
20
- SERVICE_KEYSTORE_PASSWORD: '/config/${SERVICE_NAME}/service-keystore-password',
21
- LICENSE_BUCKET_NAME: '/config/oss-licenses/bucket-name',
22
- };
23
- }
24
- if (features.kafkaIntegration) {
25
- env['parameter-store'] = {
26
- ...(env['parameter-store'] ?? {}),
27
- CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION: '/config/kafka-integration/create-and-sign-certificate-script-s3-location',
28
- };
29
- }
30
- if (features.npmBuild) {
31
- env.variables = {
32
- CI: 'true',
33
- };
34
- buildCommands.push(...npmBuildCommands());
35
- }
36
- if (features.additionalBuildCommands) {
37
- buildCommands.push('### ADDITIONAL BUILD COMMANDS ###', ...features.additionalBuildCommands);
38
- }
39
- buildCommands.push(...infrastructureBuildCommands());
40
- return aws_codebuild_1.BuildSpec.fromObject({
41
- version: '0.2',
42
- env,
43
- phases: {
44
- install: {
45
- 'runtime-versions': getRuntimes(features, runtime.nodejsVersion),
46
- ...(runtime.commands.length > 0 ? { commands: runtime.commands } : {}),
47
- },
48
- pre_build: {
49
- commands: (0, exports.logCommitHash)(),
50
- },
51
- build: {
52
- commands: buildCommands,
53
- },
54
- post_build: {
55
- commands: (0, exports.logCommitHash)(),
56
- },
57
- },
58
- reports: createReports(features),
59
- cache: {
60
- paths: cachePaths(),
61
- },
62
- });
63
- };
64
- exports.createMainBuildSpec = createMainBuildSpec;
65
- const createVulnerabilityBuildSpec = (features, options) => {
66
- const runtime = getRuntimeOptions(options);
67
- const env = {};
68
- const buildCommands = [];
69
- if (features.gradleBuild) {
70
- env.variables = {
71
- LANG: 'C.UTF-8',
72
- };
73
- env['parameter-store'] = {
74
- NIST_DATA_MIRROR_URL: '/config/nist-data-mirror/url',
75
- };
76
- env['secrets-manager'] = {
77
- SONATYPE_OSS_INDEX_USERNAME: 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials:username',
78
- SONATYPE_OSS_INDEX_PASSWORD: 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials:password',
79
- };
80
- buildCommands.push(...['### GRADLE VULNERABILITY CHECK ###', './gradlew -Dorg.gradle.jvmargs=-Xmx4g dependencyCheckAnalyze']);
81
- }
82
- if (features.npmBuild) {
83
- buildCommands.push(...[
84
- '### NPM VULNERABILITY CHECK ###',
85
- 'npm audit --registry https://registry.npmjs.org --audit-level moderate --omit=dev',
86
- ]);
87
- }
88
- buildCommands.push(...[
89
- '### INFRASTRUCTURE VULNERABILITY CHECK ###',
90
- 'cd infrastructure',
91
- 'npm audit --registry https://registry.npmjs.org --audit-level moderate --omit=dev',
92
- 'cd ..',
93
- ]);
94
- return aws_codebuild_1.BuildSpec.fromObject({
95
- version: '0.2',
96
- env,
97
- phases: {
98
- install: {
99
- 'runtime-versions': getRuntimes(features, runtime.nodejsVersion),
100
- ...(runtime.commands.length > 0 ? { commands: runtime.commands } : {}),
101
- },
102
- pre_build: {
103
- commands: (0, exports.logCommitHash)(),
104
- },
105
- build: {
106
- commands: buildCommands,
107
- },
108
- post_build: {
109
- commands: (0, exports.logCommitHash)(),
110
- },
111
- },
112
- cache: {
113
- paths: cachePathsVulnerability(),
114
- },
115
- });
116
- };
117
- exports.createVulnerabilityBuildSpec = createVulnerabilityBuildSpec;
118
- const getRuntimes = (features, nodejsVersion) => {
119
- const runtimes = {};
120
- if (features.gradleBuild) {
121
- runtimes.java = 'corretto21';
122
- }
123
- runtimes.nodejs = nodejsVersion;
124
- return runtimes;
125
- };
126
- const getRuntimeOptions = (options) => {
127
- const commands = [];
128
- if (options?.nodejsVersion !== undefined) {
129
- assertExactVersion('nodejsVersion', options.nodejsVersion);
130
- commands.push(`test "$(node --version)" = "v${options.nodejsVersion}"`);
131
- }
132
- if (options?.npmVersion !== undefined) {
133
- assertExactVersion('npmVersion', options.npmVersion);
134
- commands.push(`test "$(npm --version)" = "${options.npmVersion}"`);
135
- }
136
- return { nodejsVersion: options?.nodejsVersion ?? DEFAULT_NODE_VERSION, commands };
137
- };
138
- const assertExactVersion = (name, version) => {
139
- if (version.match(EXACT_VERSION)?.[0] !== version) {
140
- throw new Error(`${name} must be an exact major.minor.patch version`);
141
- }
142
- };
143
- const logCommitHash = () => [
144
- '(echo "Build triggered by commit " && git log --pretty=format:"%h%x09%an%x09%s" -n 1 ) | tr -d "\\n"',
145
- ];
146
- exports.logCommitHash = logCommitHash;
147
- const exportCommitHashAsVersion = () => ['export GIT_VERSION=$(git rev-parse HEAD)'];
148
- exports.exportCommitHashAsVersion = exportCommitHashAsVersion;
149
- const infrastructureBuildCommands = () => [
150
- '### INFRASTRUCTURE BUILD ###',
151
- 'cd infrastructure',
152
- 'npm ci',
153
- `npx rio-license-checker --type npm-backend --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
154
- 'npm run cdk synth 1> /dev/null',
155
- // In pipeline: Error parsing reference: is not a valid repository/tag: invalid reference format.
156
- // workaround due to https://github.com/aws/aws-cdk/issues/18044',
157
- '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\'',
158
- 'cd ..',
159
- ];
160
- const gradleBuildCommands = (kafkaIntegration) => {
161
- const commands = [];
162
- commands.push(...[
163
- '### GRADLE BUILD ###',
164
- './gradlew clean build',
165
- '# license check',
166
- 'npm ci',
167
- `npx rio-license-checker --type gradle --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
168
- '# self signed certificate',
169
- '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}',
170
- ]);
171
- if (kafkaIntegration) {
172
- commands.push(...[
173
- '# kafka certificate',
174
- 'set -u; aws s3 cp --quiet s3://${CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION} create-and-sign-certificate',
175
- 'chmod +x create-and-sign-certificate',
176
- 'set -u; ./create-and-sign-certificate --keystore-password ${SERVICE_KEYSTORE_PASSWORD} --fqdn ${SERVICE_NAME}.${HOSTED_ZONE}',
177
- 'cp /cert/certificate.p12 containerfiles/kafka-keystore.p12',
178
- ]);
179
- }
180
- commands.push(...['# docker image build', './gradlew jibBuildTar --quiet']);
181
- return commands;
182
- };
183
- const npmBuildCommands = () => [
184
- '### NPM BUILD ###',
185
- 'export VITE_GIT_VERSION=$GIT_VERSION',
186
- 'export VITE_AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID',
187
- 'export VITE_AWS_ACCOUNT_NAME=$ACCOUNT_NAME',
188
- 'export VITE_SERVICE_NAME=$SERVICE_NAME',
189
- 'export VITE_TEAM_IDENTIFIER=$TEAM_IDENTIFIER',
190
- 'npm ci',
191
- 'npm run lint',
192
- 'npm run test:ci',
193
- `npx rio-license-checker --type npm-frontend --account-name \${ACCOUNT_NAME} --service-name \${SERVICE_NAME} --upload`,
194
- 'npm run build',
195
- ];
196
- const cachePaths = () => [
197
- '/cert/**/*',
198
- '/root/.cache/**/*',
199
- '/root/.npm/**/*',
200
- '/root/.gradle/caches/**/*',
201
- '/root/.gradle/wrapper/**/*',
202
- '/root/google-cloud-tools-java/jib/**/*',
203
- 'target/jib-cache/**/*',
204
- ];
205
- const cachePathsVulnerability = () => [
206
- '/root/.cache/**/*',
207
- '/root/.gradle/caches/**/*',
208
- '/root/.gradle/wrapper/**/*',
209
- '/root/.gradle/dependency-check-data/**/*',
210
- ];
211
- const createReports = (features) => {
212
- const reports = {};
213
- if (features.gradleBuild) {
214
- reports.GradleBuildTestResults = {
215
- files: ['**/*'],
216
- 'base-directory': 'build/test-results',
217
- };
218
- }
219
- if (features.npmBuild) {
220
- reports.NpmBuildTestResults = {
221
- files: ['**/*'],
222
- 'base-directory': 'results',
223
- };
224
- }
225
- return reports;
226
- };
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRzcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZHNwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFzRDtBQUd0RCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNLGFBQWEsR0FBRyxrREFBa0QsQ0FBQztBQUVsRSxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBMEIsRUFBRSxPQUEwQixFQUFhLEVBQUU7SUFDdkcsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxHQUFHLEdBQTJDLEVBQUUsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDbkMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsaUNBQXlCLEdBQUUsQ0FBQyxDQUFDO0lBRW5ELEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxzQkFBc0I7UUFDcEMsZUFBZSxFQUFFLHlCQUF5QjtLQUMzQyxDQUFDO0lBRUYsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9FLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMseUJBQXlCLEVBQUUsbURBQW1EO1lBQzlFLG1CQUFtQixFQUFFLGtDQUFrQztTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdB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QUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsc0JBQXNCLEdBQUc7WUFDL0IsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsb0JBQW9CO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLG1CQUFtQixHQUFHO1lBQzVCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNmLGdCQUFnQixFQUFFLFNBQVM7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFNwZWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IENvZGVCdWlsZE9wdGlvbnMsIFBpcGVsaW5lRmVhdHVyZXMgfSBmcm9tICcuL3BpcGVsaW5lLXN0YWNrJztcblxuY29uc3QgREVGQVVMVF9OT0RFX1ZFUlNJT04gPSAnMjQnO1xuY29uc3QgRVhBQ1RfVkVSU0lPTiA9IC9eKD86MHxbMS05XVxcZCopXFwuKD86MHxbMS05XVxcZCopXFwuKD86MHxbMS05XVxcZCopJC87XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYWluQnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzLCBvcHRpb25zPzogQ29kZUJ1aWxkT3B0aW9ucyk6IEJ1aWxkU3BlYyA9PiB7XG4gIGNvbnN0IHJ1bnRpbWUgPSBnZXRSdW50aW1lT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHt9O1xuICBjb25zdCBidWlsZENvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBidWlsZENvbW1hbmRzLnB1c2goLi4uZXhwb3J0Q29tbWl0SGFzaEFzVmVyc2lvbigpKTtcblxuICBlbnZbJ3BhcmFtZXRlci1zdG9yZSddID0ge1xuICAgIEFDQ09VTlRfTkFNRTogJy9jb25maWcvYWNjb3VudC9uYW1lJyxcbiAgICBURUFNX0lERU5USUZJRVI6ICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcicsXG4gIH07XG5cbiAgaWYgKGZlYXR1cmVzLmdyYWRsZUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLmdyYWRsZUJ1aWxkQ29tbWFuZHMoZmVhdHVyZXMua2Fma2FJbnRlZ3JhdGlvbiA/PyBmYWxzZSkpO1xuICAgIGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPSB7XG4gICAgICAuLi4oZW52WydwYXJhbWV0ZXItc3RvcmUnXSA/PyB7fSksXG4gICAgICBTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEOiAnL2NvbmZpZy8ke1NFUlZJQ0VfTkFNRX0vc2VydmljZS1rZXlzdG9yZS1wYXNzd29yZCcsXG4gICAgICBMSUNFTlNFX0JVQ0tFVF9OQU1FOiAnL2NvbmZpZy9vc3MtbGljZW5zZXMvYnVja2V0LW5hbWUnLFxuICAgIH07XG4gIH1cbiAgaWYgKGZlYXR1cmVzLmthZmthSW50ZWdyYXRpb24pIHtcbiAgICBlbnZbJ3BhcmFtZXRlci1zdG9yZSddID0ge1xuICAgICAgLi4uKGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPz8ge30pLFxuICAgICAgQ1JFQVRFX0FORF9TSUdOX0NFUlRJRklDQVRFX1NDUklQVF9TM19MT0NBVElPTjpcbiAgICAgICAgJy9jb25maWcva2Fma2EtaW50ZWdyYXRpb24vY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlLXNjcmlwdC1zMy1sb2NhdGlvbicsXG4gICAgfTtcbiAgfVxuICBpZiAoZmVhdHVyZXMubnBtQnVpbGQpIHtcbiAgICBlbnYudmFyaWFibGVzID0ge1xuICAgICAgQ0k6ICd0cnVlJyxcbiAgICB9O1xuICAgIGJ1aWxkQ29tbWFuZHMucHVzaCguLi5ucG1CdWlsZENvbW1hbmRzKCkpO1xuICB9XG4gIGlmIChmZWF0dXJlcy5hZGRpdGlvbmFsQnVpbGRDb21tYW5kcykge1xuICAgIGJ1aWxkQ29tbWFuZHMucHVzaCgnIyMjIEFERElUSU9OQUwgQlVJTEQgQ09NTUFORFMgIyMjJywgLi4uZmVhdHVyZXMuYWRkaXRpb25hbEJ1aWxkQ29tbWFuZHMpO1xuICB9XG5cbiAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLmluZnJhc3RydWN0dXJlQnVpbGRDb21tYW5kcygpKTtcblxuICByZXR1cm4gQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgIHZlcnNpb246ICcwLjInLFxuICAgIGVudixcbiAgICBwaGFzZXM6IHtcbiAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgJ3J1bnRpbWUtdmVyc2lvbnMnOiBnZXRSdW50aW1lcyhmZWF0dXJlcywgcnVudGltZS5ub2RlanNWZXJzaW9uKSxcbiAgICAgICAgLi4uKHJ1bnRpbWUuY29tbWFuZHMubGVuZ3RoID4gMCA/IHsgY29tbWFuZHM6IHJ1bnRpbWUuY29tbWFuZHMgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGxvZ0NvbW1pdEhhc2goKSxcbiAgICAgIH0sXG4gICAgICBidWlsZDoge1xuICAgICAgICBjb21tYW5kczogYnVpbGRDb21tYW5kcyxcbiAgICAgIH0sXG4gICAgICBwb3N0X2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVwb3J0czogY3JlYXRlUmVwb3J0cyhmZWF0dXJlcyksXG4gICAgY2FjaGU6IHtcbiAgICAgIHBhdGhzOiBjYWNoZVBhdGhzKCksXG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVnVsbmVyYWJpbGl0eUJ1aWxkU3BlYyA9IChmZWF0dXJlczogUGlwZWxpbmVGZWF0dXJlcywgb3B0aW9ucz86IENvZGVCdWlsZE9wdGlvbnMpID0+IHtcbiAgY29uc3QgcnVudGltZSA9IGdldFJ1bnRpbWVPcHRpb25zKG9wdGlvbnMpO1xuICBjb25zdCBlbnY6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge307XG4gIGNvbnN0IGJ1aWxkQ29tbWFuZHM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYgKGZlYXR1cmVzLmdyYWRsZUJ1aWxkKSB7XG4gICAgZW52LnZhcmlhYmxlcyA9IHtcbiAgICAgIExBTkc6ICdDLlVURi04JyxcbiAgICB9O1xuICAgIGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPSB7XG4gICAgICBOSVNUX0RBVEFfTUlSUk9SX1VSTDogJy9jb25maWcvbmlzdC1kYXRhLW1pcnJvci91cmwnLFxuICAgIH07XG4gICAgZW52WydzZWNyZXRzLW1hbmFnZXInXSA9IHtcbiAgICAgIFNPTkFUWVBFX09TU19JTkRFWF9VU0VSTkFNRTpcbiAgICAgICAgJ2Fybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOjU3NzE0Njg5Nzc4NTpzZWNyZXQ6L3Jpby9jb25maWcvc29uYXR5cGUtb3NzLWluZGV4L2NyZWRlbnRpYWxzOnVzZXJuYW1lJyxcbiAgICAgIFNPTkFUWVBFX09TU19JTkRFWF9QQVNTV09SRDpcbiAgICAgICAgJ2Fybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOjU3NzE0Njg5Nzc4NTpzZWNyZXQ6L3Jpby9jb25maWcvc29uYXR5cGUtb3NzLWluZGV4L2NyZWRlbnRpYWxzOnBhc3N3b3JkJyxcbiAgICB9O1xuICAgIGJ1aWxkQ29tbWFuZHMucHVzaChcbiAgICAgIC4uLlsnIyMjIEdSQURMRSBWVUxORVJBQklMSVRZIENIRUNLICMjIycsICcuL2dyYWRsZXcgLURvcmcuZ3JhZGxlLmp2bWFyZ3M9LVhteDRnIGRlcGVuZGVuY3lDaGVja0FuYWx5emUnXVxuICAgICk7XG4gIH1cbiAgaWYgKGZlYXR1cmVzLm5wbUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKFxuICAgICAgLi4uW1xuICAgICAgICAnIyMjIE5QTSBWVUxORVJBQklMSVRZIENIRUNLICMjIycsXG4gICAgICAgICducG0gYXVkaXQgLS1yZWdpc3RyeSBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZyAtLWF1ZGl0LWxldmVsIG1vZGVyYXRlIC0tb21pdD1kZXYnLFxuICAgICAgXVxuICAgICk7XG4gIH1cbiAgYnVpbGRDb21tYW5kcy5wdXNoKFxuICAgIC4uLltcbiAgICAgICcjIyMgSU5GUkFTVFJVQ1RVUkUgVlVMTkVSQUJJTElUWSBDSEVDSyAjIyMnLFxuICAgICAgJ2NkIGluZnJhc3RydWN0dXJlJyxcbiAgICAgICducG0gYXVkaXQgLS1yZWdpc3RyeSBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZyAtLWF1ZGl0LWxldmVsIG1vZGVyYXRlIC0tb21pdD1kZXYnLFxuICAgICAgJ2NkIC4uJyxcbiAgICBdXG4gICk7XG5cbiAgcmV0dXJuIEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICB2ZXJzaW9uOiAnMC4yJyxcbiAgICBlbnYsXG4gICAgcGhhc2VzOiB7XG4gICAgICBpbnN0YWxsOiB7XG4gICAgICAgICdydW50aW1lLXZlcnNpb25zJzogZ2V0UnVudGltZXMoZmVhdHVyZXMsIHJ1bnRpbWUubm9kZWpzVmVyc2lvbiksXG4gICAgICAgIC4uLihydW50aW1lLmNvbW1hbmRzLmxlbmd0aCA+IDAgPyB7IGNvbW1hbmRzOiBydW50aW1lLmNvbW1hbmRzIH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgcHJlX2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgICAgYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGJ1aWxkQ29tbWFuZHMsXG4gICAgICB9LFxuICAgICAgcG9zdF9idWlsZDoge1xuICAgICAgICBjb21tYW5kczogbG9nQ29tbWl0SGFzaCgpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBwYXRoczogY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkoKSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmNvbnN0IGdldFJ1bnRpbWVzID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzLCBub2RlanNWZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgcnVudGltZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGZlYXR1cmVzLmdyYWRsZUJ1aWxkKSB7XG4gICAgcnVudGltZXMuamF2YSA9ICdjb3JyZXR0bzIxJztcbiAgfVxuICBydW50aW1lcy5ub2RlanMgPSBub2RlanNWZXJzaW9uO1xuICByZXR1cm4gcnVudGltZXM7XG59O1xuXG5jb25zdCBnZXRSdW50aW1lT3B0aW9ucyA9IChvcHRpb25zPzogQ29kZUJ1aWxkT3B0aW9ucykgPT4ge1xuICBjb25zdCBjb21tYW5kczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKG9wdGlvbnM/Lm5vZGVqc1ZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGFzc2VydEV4YWN0VmVyc2lvbignbm9kZWpzVmVyc2lvbicsIG9wdGlvbnMubm9kZWpzVmVyc2lvbik7XG4gICAgY29tbWFuZHMucHVzaChgdGVzdCBcIiQobm9kZSAtLXZlcnNpb24pXCIgPSBcInYke29wdGlvbnMubm9kZWpzVmVyc2lvbn1cImApO1xuICB9XG4gIGlmIChvcHRpb25zPy5ucG1WZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBhc3NlcnRFeGFjdFZlcnNpb24oJ25wbVZlcnNpb24nLCBvcHRpb25zLm5wbVZlcnNpb24pO1xuICAgIGNvbW1hbmRzLnB1c2goYHRlc3QgXCIkKG5wbSAtLXZlcnNpb24pXCIgPSBcIiR7b3B0aW9ucy5ucG1WZXJzaW9ufVwiYCk7XG4gIH1cbiAgcmV0dXJuIHsgbm9kZWpzVmVyc2lvbjogb3B0aW9ucz8ubm9kZWpzVmVyc2lvbiA/PyBERUZBVUxUX05PREVfVkVSU0lPTiwgY29tbWFuZHMgfTtcbn07XG5cbmNvbnN0IGFzc2VydEV4YWN0VmVyc2lvbiA9IChuYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykgPT4ge1xuICBpZiAodmVyc2lvbi5tYXRjaChFWEFDVF9WRVJTSU9OKT8uWzBdICE9PSB2ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9IG11c3QgYmUgYW4gZXhhY3QgbWFqb3IubWlub3IucGF0Y2ggdmVyc2lvbmApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbG9nQ29tbWl0SGFzaCA9ICgpID0+IFtcbiAgJyhlY2hvIFwiQnVpbGQgdHJpZ2dlcmVkIGJ5IGNvbW1pdCBcIiAmJiBnaXQgbG9nIC0tcHJldHR5PWZvcm1hdDpcIiVoJXgwOSVhbiV4MDklc1wiIC1uIDEgKSB8IHRyIC1kIFwiXFxcXG5cIicsXG5dO1xuXG5leHBvcnQgY29uc3QgZXhwb3J0Q29tbWl0SGFzaEFzVmVyc2lvbiA9ICgpID0+IFsnZXhwb3J0IEdJVF9WRVJTSU9OPSQoZ2l0IHJldi1wYXJzZSBIRUFEKSddO1xuXG5jb25zdCBpbmZyYXN0cnVjdHVyZUJ1aWxkQ29tbWFuZHMgPSAoKSA9PiBbXG4gICcjIyMgSU5GUkFTVFJVQ1RVUkUgQlVJTEQgIyMjJyxcbiAgJ2NkIGluZnJhc3RydWN0dXJlJyxcbiAgJ25wbSBjaScsXG4gIGBucHggcmlvLWxpY2Vuc2UtY2hlY2tlciAtLXR5cGUgbnBtLWJhY2tlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBjZGsgc3ludGggMT4gL2Rldi9udWxsJyxcbiAgLy8gSW4gcGlwZWxpbmU6IEVycm9yIHBhcnNpbmcgcmVmZXJlbmNlOiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5L3RhZzogaW52YWxpZCByZWZlcmVuY2UgZm9ybWF0LlxuICAvLyB3b3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE4MDQ0JyxcbiAgJ2ZpbmQgLi8gLXR5cGUgZiAtbmFtZSBcIipEZXBsb3lBcHBsaWNhdGlvblN0YWNrcyouYXNzZXRzLmpzb25cIiAtcHJpbnQwIHwgeGFyZ3MgLS1uby1ydW4taWYtZW1wdHkgLTAgc2VkIC0taW4tcGxhY2UgXFwnc3xkb2NrZXIgbG9hZCAtaSBhc3NldC58ZG9ja2VyIGxvYWQgLWkgLi4vYXNzZXQufGdcXCcnLFxuICAnY2QgLi4nLFxuXTtcblxuY29uc3QgZ3JhZGxlQnVpbGRDb21tYW5kcyA9IChrYWZrYUludGVncmF0aW9uOiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb21tYW5kcy5wdXNoKFxuICAgIC4uLltcbiAgICAgICcjIyMgR1JBRExFIEJVSUxEICMjIycsXG4gICAgICAnLi9ncmFkbGV3IGNsZWFuIGJ1aWxkJyxcbiAgICAgICcjIGxpY2Vuc2UgY2hlY2snLFxuICAgICAgJ25wbSBjaScsXG4gICAgICBgbnB4IHJpby1saWNlbnNlLWNoZWNrZXIgLS10eXBlIGdyYWRsZSAtLWFjY291bnQtbmFtZSBcXCR7QUNDT1VOVF9OQU1FfSAtLXNlcnZpY2UtbmFtZSBcXCR7U0VSVklDRV9OQU1FfSAtLXVwbG9hZGAsXG4gICAgICAnIyBzZWxmIHNpZ25lZCBjZXJ0aWZpY2F0ZScsXG4gICAgICAnc2V0IC11OyBrZXl0b29sIC1nZW5rZXkgLWFsaWFzIEludGVybmFsU2VydmljZUNlcnRpZmljYXRlIC1rZXlhbGcgUlNBIC1rZXlzdG9yZSBjb250YWluZXJmaWxlcy9zZXJ2aWNlLWtleXN0b3JlLnAxMiAtdmFsaWRpdHkgMzY1MCAtc3RvcmV0eXBlIFBLQ1MxMiAtZG5hbWUgXCJDTj1pbnRlcm5hbC5zZXJ2aWNlLiR7U0VSVklDRV9OQU1FfS4ke0hPU1RFRF9aT05FfSwgT1U9TG9naXN0aWNzLCBPPVJpbywgTD1NdW5pY2gsIFNUPUJZLCBDPURFXCIgLWtleXBhc3MgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfSAtc3RvcmVwYXNzICR7U0VSVklDRV9LRVlTVE9SRV9QQVNTV09SRH0nLFxuICAgIF1cbiAgKTtcbiAgaWYgKGthZmthSW50ZWdyYXRpb24pIHtcbiAgICBjb21tYW5kcy5wdXNoKFxuICAgICAgLi4uW1xuICAgICAgICAnIyBrYWZrYSBjZXJ0aWZpY2F0ZScsXG4gICAgICAgICdzZXQgLXU7IGF3cyBzMyBjcCAtLXF1aWV0IHMzOi8vJHtDUkVBVEVfQU5EX1NJR05fQ0VSVElGSUNBVEVfU0NSSVBUX1MzX0xPQ0FUSU9OfSBjcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGUnLFxuICAgICAgICAnY2htb2QgK3ggY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlJyxcbiAgICAgICAgJ3NldCAtdTsgLi9jcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGUgLS1rZXlzdG9yZS1wYXNzd29yZCAke1NFUlZJQ0VfS0VZU1RPUkVfUEFTU1dPUkR9IC0tZnFkbiAke1NFUlZJQ0VfTkFNRX0uJHtIT1NURURfWk9ORX0nLFxuICAgICAgICAnY3AgL2NlcnQvY2VydGlmaWNhdGUucDEyIGNvbnRhaW5lcmZpbGVzL2thZmthLWtleXN0b3JlLnAxMicsXG4gICAgICBdXG4gICAgKTtcbiAgfVxuICBjb21tYW5kcy5wdXNoKC4uLlsnIyBkb2NrZXIgaW1hZ2UgYnVpbGQnLCAnLi9ncmFkbGV3IGppYkJ1aWxkVGFyIC0tcXVpZXQnXSk7XG4gIHJldHVybiBjb21tYW5kcztcbn07XG5cbmNvbnN0IG5wbUJ1aWxkQ29tbWFuZHMgPSAoKSA9PiBbXG4gICcjIyMgTlBNIEJVSUxEICMjIycsXG4gICdleHBvcnQgVklURV9HSVRfVkVSU0lPTj0kR0lUX1ZFUlNJT04nLFxuICAnZXhwb3J0IFZJVEVfQVdTX0FDQ09VTlRfSUQ9JEFXU19BQ0NPVU5UX0lEJyxcbiAgJ2V4cG9ydCBWSVRFX0FXU19BQ0NPVU5UX05BTUU9JEFDQ09VTlRfTkFNRScsXG4gICdleHBvcnQgVklURV9TRVJWSUNFX05BTUU9JFNFUlZJQ0VfTkFNRScsXG4gICdleHBvcnQgVklURV9URUFNX0lERU5USUZJRVI9JFRFQU1fSURFTlRJRklFUicsXG4gICducG0gY2knLFxuICAnbnBtIHJ1biBsaW50JyxcbiAgJ25wbSBydW4gdGVzdDpjaScsXG4gIGBucHggcmlvLWxpY2Vuc2UtY2hlY2tlciAtLXR5cGUgbnBtLWZyb250ZW5kIC0tYWNjb3VudC1uYW1lIFxcJHtBQ0NPVU5UX05BTUV9IC0tc2VydmljZS1uYW1lIFxcJHtTRVJWSUNFX05BTUV9IC0tdXBsb2FkYCxcbiAgJ25wbSBydW4gYnVpbGQnLFxuXTtcblxuY29uc3QgY2FjaGVQYXRocyA9ICgpID0+IFtcbiAgJy9jZXJ0LyoqLyonLFxuICAnL3Jvb3QvLmNhY2hlLyoqLyonLFxuICAnL3Jvb3QvLm5wbS8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvY2FjaGVzLyoqLyonLFxuICAnL3Jvb3QvLmdyYWRsZS93cmFwcGVyLyoqLyonLFxuICAnL3Jvb3QvZ29vZ2xlLWNsb3VkLXRvb2xzLWphdmEvamliLyoqLyonLFxuICAndGFyZ2V0L2ppYi1jYWNoZS8qKi8qJyxcbl07XG5cbmNvbnN0IGNhY2hlUGF0aHNWdWxuZXJhYmlsaXR5ID0gKCkgPT4gW1xuICAnL3Jvb3QvLmNhY2hlLyoqLyonLFxuICAnL3Jvb3QvLmdyYWRsZS9jYWNoZXMvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL3dyYXBwZXIvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL2RlcGVuZGVuY3ktY2hlY2stZGF0YS8qKi8qJyxcbl07XG5cbmNvbnN0IGNyZWF0ZVJlcG9ydHMgPSAoZmVhdHVyZXM6IFBpcGVsaW5lRmVhdHVyZXMpID0+IHtcbiAgY29uc3QgcmVwb3J0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBpZiAoZmVhdHVyZXMuZ3JhZGxlQnVpbGQpIHtcbiAgICByZXBvcnRzLkdyYWRsZUJ1aWxkVGVzdFJlc3VsdHMgPSB7XG4gICAgICBmaWxlczogWycqKi8qJ10sXG4gICAgICAnYmFzZS1kaXJlY3RvcnknOiAnYnVpbGQvdGVzdC1yZXN1bHRzJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5ucG1CdWlsZCkge1xuICAgIHJlcG9ydHMuTnBtQnVpbGRUZXN0UmVzdWx0cyA9IHtcbiAgICAgIGZpbGVzOiBbJyoqLyonXSxcbiAgICAgICdiYXNlLWRpcmVjdG9yeSc6ICdyZXN1bHRzJyxcbiAgICB9O1xuICB9XG4gIHJldHVybiByZXBvcnRzO1xufTtcbiJdfQ==
@@ -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=