@rio-cloud/cdk-v2-constructs 4.27.0 → 4.29.0
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 +105 -95
- package/API.md +20 -7
- package/CHANGELOG.md +28 -1
- package/README.md +3 -0
- package/developers-readme.md +16 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.d.ts +29 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +66 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/index.d.ts +1 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/index.js +18 -0
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.d.ts +2 -2
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.js +24 -25
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.d.ts +8 -2
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +9 -5
- package/lib/datadogv2/datadog-dashboard.d.ts +0 -4
- package/lib/datadogv2/datadog-dashboard.js +1 -3
- package/lib/datadogv2/datadog-monitor.d.ts +0 -1
- package/lib/datadogv2/datadog-monitor.js +15 -4
- package/lib/fargate/datadog.d.ts +7 -1
- package/lib/fargate/datadog.js +18 -7
- package/lib/fargate/rio-fargate-service.d.ts +2 -0
- package/lib/fargate/rio-fargate-service.js +9 -1
- package/lib/watchfulv2/datadog-log-alarm.js +4 -1
- package/package.json +5 -5
- package/version.json +1 -1
package/API.md
CHANGED
|
@@ -6233,7 +6233,6 @@ public readonly evaluationDelay: number;
|
|
|
6233
6233
|
```
|
|
6234
6234
|
|
|
6235
6235
|
- *Type:* number
|
|
6236
|
-
- *Default:* 900
|
|
6237
6236
|
|
|
6238
6237
|
Time in seconds to delay evaluation.
|
|
6239
6238
|
|
|
@@ -10330,10 +10329,11 @@ const pipelineStackProps: PipelineStackProps = { ... }
|
|
|
10330
10329
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.pipelineType">pipelineType</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineType">PipelineType</a></code> | Defines which kind of pipeline is deployed. |
|
|
10331
10330
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.serviceName">serviceName</a></code> | <code>string</code> | The name of the service - This has to be the same name as the repository as the s3 trigger file created by the bitbucket-integration uses this as a prefix - The serviceName is available as an environment variable SERVICE_NAME in the CodeBuildStep - The serviceName is available in the AppStackProps in the appStackFactory - The serviceName is available as stackName property in the AppStackProps in the appStackFactory. |
|
|
10332
10331
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.codeBuildOptions">codeBuildOptions</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.CodeBuildOptions">CodeBuildOptions</a></code> | CodeBuild options overriding the rio-specific defaults. |
|
|
10333
|
-
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType">datadogAlertType</a></code> | <code>string</code> |
|
|
10332
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType">datadogAlertType</a></code> | <code>string</code> | *No description.* |
|
|
10334
10333
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.monitoringDeployStepProps">monitoringDeployStepProps</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps">PipelineStackRioMonitoringDeployStepProps</a></code> | If present, the capability monitoring deploy step is added to the pipeline. |
|
|
10335
10334
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.pipelineSchedules">pipelineSchedules</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineSchedulesProps">PipelineSchedulesProps</a></code> | Defines how often the pipeline is triggered automatically. Is defined via a cron expression. |
|
|
10336
10335
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.secretsDeployStepProps">secretsDeployStepProps</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackRioSecretsDeployStepProps">PipelineStackRioSecretsDeployStepProps</a></code> | Path to secrets file containing encrypted secrets. |
|
|
10336
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.vulnerabilityNotification">vulnerabilityNotification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | Notification type for the auto-generated vulnerability pipeline monitor. |
|
|
10337
10337
|
|
|
10338
10338
|
---
|
|
10339
10339
|
|
|
@@ -10601,7 +10601,10 @@ CodeBuild options overriding the rio-specific defaults.
|
|
|
10601
10601
|
|
|
10602
10602
|
---
|
|
10603
10603
|
|
|
10604
|
-
#####
|
|
10604
|
+
##### ~~`datadogAlertType`~~<sup>Optional</sup> <a name="datadogAlertType" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType"></a>
|
|
10605
|
+
|
|
10606
|
+
- *Deprecated:* Please use the `vulnerabilityNotification` property instead.
|
|
10607
|
+
If `opsgenie` is specified, an Exception is thrown, as this is not supported anymore.
|
|
10605
10608
|
|
|
10606
10609
|
```typescript
|
|
10607
10610
|
public readonly datadogAlertType: string;
|
|
@@ -10609,10 +10612,6 @@ public readonly datadogAlertType: string;
|
|
|
10609
10612
|
|
|
10610
10613
|
- *Type:* string
|
|
10611
10614
|
|
|
10612
|
-
Determines the alert type of the pipeline monitors that trigger an alert.
|
|
10613
|
-
|
|
10614
|
-
Default is opsgenie.
|
|
10615
|
-
|
|
10616
10615
|
---
|
|
10617
10616
|
|
|
10618
10617
|
##### `monitoringDeployStepProps`<sup>Optional</sup> <a name="monitoringDeployStepProps" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.monitoringDeployStepProps"></a>
|
|
@@ -10661,6 +10660,20 @@ No secrets are deployed if no path is provided.
|
|
|
10661
10660
|
|
|
10662
10661
|
---
|
|
10663
10662
|
|
|
10663
|
+
##### `vulnerabilityNotification`<sup>Optional</sup> <a name="vulnerabilityNotification" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.vulnerabilityNotification"></a>
|
|
10664
|
+
|
|
10665
|
+
```typescript
|
|
10666
|
+
public readonly vulnerabilityNotification: INotification;
|
|
10667
|
+
```
|
|
10668
|
+
|
|
10669
|
+
- *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
|
|
10670
|
+
|
|
10671
|
+
Notification type for the auto-generated vulnerability pipeline monitor.
|
|
10672
|
+
|
|
10673
|
+
Defaults to slack.
|
|
10674
|
+
|
|
10675
|
+
---
|
|
10676
|
+
|
|
10664
10677
|
### PipelineStackRioMonitoringDeployStepProps <a name="PipelineStackRioMonitoringDeployStepProps" id="@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps"></a>
|
|
10665
10678
|
|
|
10666
10679
|
#### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps.Initializer"></a>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to this project will be documented in this file. See [
|
|
3
|
+
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
## [4.29.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.28.0&sourceBranch=refs%2Ftags%2Fv4.29.0) (2024-02-21)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* set evaluationDelay explicitlty if required
|
|
11
|
+
|
|
12
|
+
* chore!(datadogv2): change default evaluationDelay of monitor. ([4d758b0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/4d758b055f96f7960ef85d2b5f08398265344f93))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **pipeline:** Switch to new DatadogMonitor (v2) construct ([d0e3ea0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/d0e3ea031b72da859fd5a01e4810aec5f7ed24a3))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* monitor id returns number but we need string ([65489a5](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/65489a5b0c72e7a68b16eb9060819499cbc99255))
|
|
23
|
+
|
|
24
|
+
## [4.28.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.27.0&sourceBranch=refs%2Ftags%2Fv4.28.0) (2024-02-08)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* add ecs abruptly stopped monitor into the contribution folder ([6f9dc42](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/6f9dc4239c13ba6c6d956bb85444e35d0a27b621))
|
|
30
|
+
* Switched to non blocking configuration in case of firelens ([0eebbd8](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/0eebbd8a8bd769d6911f9ab02f499148aeff7e1f))
|
|
4
31
|
|
|
5
32
|
## [4.27.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.26.0&sourceBranch=refs%2Ftags%2Fv4.27.0) (2024-02-07)
|
|
6
33
|
|
package/README.md
CHANGED
|
@@ -22,6 +22,9 @@ $ npm install --save @rio-cloud/cdk-v2-constructs
|
|
|
22
22
|
* [Changelog](./CHANGELOG.md)
|
|
23
23
|
* [brief API desciption](./API.md)
|
|
24
24
|
|
|
25
|
+
## Internal documentation for library devs
|
|
26
|
+
[Documentation](./developers-readme.md)
|
|
27
|
+
|
|
25
28
|
## FAQ's
|
|
26
29
|
- How can I udpate the thresholds of monitors created by watchful?
|
|
27
30
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Documentation for developers
|
|
2
|
+
|
|
3
|
+
This documentation is intended for the library devs
|
|
4
|
+
|
|
5
|
+
## Firelens non blocking configuration
|
|
6
|
+
|
|
7
|
+
Firelens logging configured with fargate is using fluentbit under the hood. For making the setup fault tolerant, we are aiming to make the logging setup non-blocking.
|
|
8
|
+
This means that if for some reason the central logging server (Datadog) is not available, the application should not stop working because of that.
|
|
9
|
+
|
|
10
|
+
More details about the setup can found under these links:
|
|
11
|
+
|
|
12
|
+
https://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/
|
|
13
|
+
|
|
14
|
+
https://aws.amazon.com/blogs/containers/choosing-container-logging-options-to-avoid-backpressure/
|
|
15
|
+
|
|
16
|
+
Since the setup needs custom config, we are using a central config file stored in s3. To make this happen, we are using special init firelens docker images. More details can be found under [here](https://github.com/aws/aws-for-fluent-bit/blob/mainline/use_cases/init-process-for-fluent-bit/README.md)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { INotification } from '../../../datadogv2';
|
|
3
|
+
export interface EcsAbruptlyStoppedMonitorProps {
|
|
4
|
+
serviceName: string;
|
|
5
|
+
notification: INotification;
|
|
6
|
+
/**
|
|
7
|
+
* ARN of the cluster that should be monitored.
|
|
8
|
+
* If no cluster is provided, all ECS will be part of the monitor.
|
|
9
|
+
*/
|
|
10
|
+
clusterArn?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* # WARNING: This construct is still on beta phase.
|
|
14
|
+
*
|
|
15
|
+
* The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
|
|
16
|
+
* out of memory, failed health checks.
|
|
17
|
+
*
|
|
18
|
+
* The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
|
|
19
|
+
* better analyses and trigger an alert.
|
|
20
|
+
*
|
|
21
|
+
* More details on the AWS ECS events can be found here:
|
|
22
|
+
* {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
|
|
23
|
+
*
|
|
24
|
+
* This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
|
|
25
|
+
* to bigger issues, like a service being that requires more resources.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AwsEcsAbruptlyStoppedMonitor extends Construct {
|
|
28
|
+
constructor(scope: Construct, id: string, props: EcsAbruptlyStoppedMonitorProps);
|
|
29
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsEcsAbruptlyStoppedMonitor = void 0;
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const datadogv2_1 = require("../../../datadogv2");
|
|
7
|
+
/**
|
|
8
|
+
* # WARNING: This construct is still on beta phase.
|
|
9
|
+
*
|
|
10
|
+
* The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
|
|
11
|
+
* out of memory, failed health checks.
|
|
12
|
+
*
|
|
13
|
+
* The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
|
|
14
|
+
* better analyses and trigger an alert.
|
|
15
|
+
*
|
|
16
|
+
* More details on the AWS ECS events can be found here:
|
|
17
|
+
* {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
|
|
18
|
+
*
|
|
19
|
+
* This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
|
|
20
|
+
* to bigger issues, like a service being that requires more resources.
|
|
21
|
+
*/
|
|
22
|
+
class AwsEcsAbruptlyStoppedMonitor extends constructs_1.Construct {
|
|
23
|
+
constructor(scope, id, props) {
|
|
24
|
+
super(scope, id);
|
|
25
|
+
const ecsStateChangeLogGroup = new cdk.aws_logs.LogGroup(this, 'EcsStateChangeLogGroup');
|
|
26
|
+
new cdk.aws_logs.LogRetention(this, 'EcsStateChangeLogRetention', {
|
|
27
|
+
logGroupName: ecsStateChangeLogGroup.logGroupName,
|
|
28
|
+
retention: 3,
|
|
29
|
+
});
|
|
30
|
+
// Rule to cover all clusters status changes
|
|
31
|
+
new cdk.aws_events.Rule(this, 'EcsStateChangeRule', {
|
|
32
|
+
eventPattern: {
|
|
33
|
+
source: ['aws.ecs'],
|
|
34
|
+
detailType: ['ECS Task State Change', 'ECS Container Instance State Change', 'ECS Service Action'],
|
|
35
|
+
detail: {
|
|
36
|
+
desiredStatus: ['STOPPED'],
|
|
37
|
+
lastStatus: ['STOPPED'],
|
|
38
|
+
...(props.clusterArn && { clusterArn: [props.clusterArn] }),
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
targets: [new cdk.aws_events_targets.CloudWatchLogGroup(ecsStateChangeLogGroup)],
|
|
42
|
+
});
|
|
43
|
+
const logForwarderLambda = cdk.aws_lambda.Function.fromFunctionAttributes(this, 'EcsStateChangeLogForwarderLambda', {
|
|
44
|
+
functionArn: cdk.Fn.importValue('custom-resource-datadog-logforwarder-function-arn'),
|
|
45
|
+
sameEnvironment: true,
|
|
46
|
+
});
|
|
47
|
+
new cdk.aws_logs.SubscriptionFilter(this, 'EcsStateChangeLogFilter', {
|
|
48
|
+
destination: new cdk.aws_logs_destinations.LambdaDestination(logForwarderLambda),
|
|
49
|
+
filterPattern: cdk.aws_logs.FilterPattern.anyTerm('Container killed due to', 'Task failed container health checks'),
|
|
50
|
+
logGroup: ecsStateChangeLogGroup,
|
|
51
|
+
});
|
|
52
|
+
// After being migrated to the new version it can be added to the CLAID construct repository
|
|
53
|
+
new datadogv2_1.DatadogMonitor(this, 'EcsStateChangeLogGroupMonitor', {
|
|
54
|
+
name: 'Unexpected ECS status changes',
|
|
55
|
+
serviceName: props.serviceName,
|
|
56
|
+
monitorType: datadogv2_1.DatadogMonitorQueryAlertType.LOG_ALERT,
|
|
57
|
+
query: `logs("account_id:${cdk.Stack.of(this).account} @aws.awslogs.logGroup:\"${ecsStateChangeLogGroup.logGroupName}\"").index("*").rollup("count").last("5m") >= 1`,
|
|
58
|
+
message: '{{#is_alert}}There are unexpected ECS status changes in the account ' +
|
|
59
|
+
'{{log.tags.account_id}}, more details here {{log.link}} {{/is_alert}}',
|
|
60
|
+
priority: 3,
|
|
61
|
+
notification: props.notification,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.AwsEcsAbruptlyStoppedMonitor = AwsEcsAbruptlyStoppedMonitor;
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1hYnJ1cHRseS1zdG9wcGVkLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUNuQywyQ0FBdUM7QUFDdkMsa0RBQWlHO0FBWWpHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSw0QkFBNkIsU0FBUSxzQkFBUztJQUN6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBRXpGLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQ2hFLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxZQUFZO1lBQ2pELFNBQVMsRUFBRSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ2xELFlBQVksRUFBRTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFDQUFxQyxFQUFFLG9CQUFvQixDQUFDO2dCQUNsRyxNQUFNLEVBQUU7b0JBQ04sYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUMxQixVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZCLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7aUJBQzVEO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ2pGLENBQUMsQ0FBQztRQUVILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQ3ZFLElBQUksRUFDSixrQ0FBa0MsRUFDbEM7WUFDRSxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsbURBQW1ELENBQUM7WUFDcEYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtZQUNuRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7WUFDaEYsYUFBYSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDL0MseUJBQXlCLEVBQ3pCLHFDQUFxQyxDQUN0QztZQUNELFFBQVEsRUFBRSxzQkFBc0I7U0FDakMsQ0FBQyxDQUFDO1FBRUgsNEZBQTRGO1FBQzVGLElBQUksMEJBQWMsQ0FBQyxJQUFJLEVBQUUsK0JBQStCLEVBQUU7WUFDeEQsSUFBSSxFQUFFLCtCQUErQjtZQUNyQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFNBQVM7WUFDbkQsS0FBSyxFQUFFLG9CQUFvQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLDRCQUNuRCxzQkFBc0IsQ0FBQyxZQUN6QixpREFBaUQ7WUFDakQsT0FBTyxFQUFFLHNFQUFzRTtnQkFDckUsdUVBQXVFO1lBQ2pGLFFBQVEsRUFBRSxDQUFDO1lBQ1gsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpERCxvRUF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhZG9nTW9uaXRvciwgRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWNzQWJydXB0bHlTdG9wcGVkTW9uaXRvclByb3BzIHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uO1xuICAvKipcbiAgICAgKiBBUk4gb2YgdGhlIGNsdXN0ZXIgdGhhdCBzaG91bGQgYmUgbW9uaXRvcmVkLlxuICAgICAqIElmIG5vIGNsdXN0ZXIgaXMgcHJvdmlkZWQsIGFsbCBFQ1Mgd2lsbCBiZSBwYXJ0IG9mIHRoZSBtb25pdG9yLlxuICAgICAqL1xuICBjbHVzdGVyQXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqICMgV0FSTklORzogVGhpcyBjb25zdHJ1Y3QgaXMgc3RpbGwgb24gYmV0YSBwaGFzZS5cbiAqXG4gKiBUaGUgY29uc3RydWN0IGNyZWF0ZXMgbW9uaXRvcmluZyBmb3IgZGV0ZWN0aW5nIEVDUyBjb250YWluZXJzIHRoYXQgd2VyZSBzdG9wcGVkIGFicnVwdGx5IGZvciByZWFzb25zIHN1Y2ggYXMsXG4gKiBvdXQgb2YgbWVtb3J5LCBmYWlsZWQgaGVhbHRoIGNoZWNrcy5cbiAqXG4gKiBUaGUgbW9uaXRvciB3aWxsIGNvbnN1bWUgdGhlIEVDUyBldmVudHMgYW5kIHNlbmQgdGhlbSB0byBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwLCB3aGljaCBhcmUgZm9yd2FyZGVkIHRvIERhdGFkb2cgZm9yXG4gKiBiZXR0ZXIgYW5hbHlzZXMgYW5kIHRyaWdnZXIgYW4gYWxlcnQuXG4gKlxuICogTW9yZSBkZXRhaWxzIG9uIHRoZSBBV1MgRUNTIGV2ZW50cyBjYW4gYmUgZm91bmQgaGVyZTpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9lY3NfY3dlX2V2ZW50cy5odG1sfVxuICpcbiAqIFRoaXMgbW9uaXRvciBhZGRzIHRyYW5zcGFyZW5jeSB0byBzdWNoIGNhc2VzLCB3aGljaCBvdGhlcndpc2Ugd291bGQgaGFwcGVuIHdpdGhvdXQgYmVpbmcgbm90aWNlZCBhbmQgY291bGQgZXNjYWxhdGVcbiAqIHRvIGJpZ2dlciBpc3N1ZXMsIGxpa2UgYSBzZXJ2aWNlIGJlaW5nIHRoYXQgcmVxdWlyZXMgbW9yZSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NFY3NBYnJ1cHRseVN0b3BwZWRNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVjc0FicnVwdGx5U3RvcHBlZE1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwID0gbmV3IGNkay5hd3NfbG9ncy5Mb2dHcm91cCh0aGlzLCAnRWNzU3RhdGVDaGFuZ2VMb2dHcm91cCcpO1xuXG4gICAgbmV3IGNkay5hd3NfbG9ncy5Mb2dSZXRlbnRpb24odGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nUmV0ZW50aW9uJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgIHJldGVudGlvbjogMyxcbiAgICB9KTtcblxuICAgIC8vIFJ1bGUgdG8gY292ZXIgYWxsIGNsdXN0ZXJzIHN0YXR1cyBjaGFuZ2VzXG4gICAgbmV3IGNkay5hd3NfZXZlbnRzLlJ1bGUodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlUnVsZScsIHtcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBzb3VyY2U6IFsnYXdzLmVjcyddLFxuICAgICAgICBkZXRhaWxUeXBlOiBbJ0VDUyBUYXNrIFN0YXRlIENoYW5nZScsICdFQ1MgQ29udGFpbmVyIEluc3RhbmNlIFN0YXRlIENoYW5nZScsICdFQ1MgU2VydmljZSBBY3Rpb24nXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgZGVzaXJlZFN0YXR1czogWydTVE9QUEVEJ10sXG4gICAgICAgICAgbGFzdFN0YXR1czogWydTVE9QUEVEJ10sXG4gICAgICAgICAgLi4uKHByb3BzLmNsdXN0ZXJBcm4gJiYgeyBjbHVzdGVyQXJuOiBbcHJvcHMuY2x1c3RlckFybl0gfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW25ldyBjZGsuYXdzX2V2ZW50c190YXJnZXRzLkNsb3VkV2F0Y2hMb2dHcm91cChlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwKV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dGb3J3YXJkZXJMYW1iZGEgPSBjZGsuYXdzX2xhbWJkYS5GdW5jdGlvbi5mcm9tRnVuY3Rpb25BdHRyaWJ1dGVzKFxuICAgICAgdGhpcyxcbiAgICAgICdFY3NTdGF0ZUNoYW5nZUxvZ0ZvcndhcmRlckxhbWJkYScsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uQXJuOiBjZGsuRm4uaW1wb3J0VmFsdWUoJ2N1c3RvbS1yZXNvdXJjZS1kYXRhZG9nLWxvZ2ZvcndhcmRlci1mdW5jdGlvbi1hcm4nKSxcbiAgICAgICAgc2FtZUVudmlyb25tZW50OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbmV3IGNkay5hd3NfbG9ncy5TdWJzY3JpcHRpb25GaWx0ZXIodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nRmlsdGVyJywge1xuICAgICAgZGVzdGluYXRpb246IG5ldyBjZGsuYXdzX2xvZ3NfZGVzdGluYXRpb25zLkxhbWJkYURlc3RpbmF0aW9uKGxvZ0ZvcndhcmRlckxhbWJkYSksXG4gICAgICBmaWx0ZXJQYXR0ZXJuOiBjZGsuYXdzX2xvZ3MuRmlsdGVyUGF0dGVybi5hbnlUZXJtKFxuICAgICAgICAnQ29udGFpbmVyIGtpbGxlZCBkdWUgdG8nLFxuICAgICAgICAnVGFzayBmYWlsZWQgY29udGFpbmVyIGhlYWx0aCBjaGVja3MnLFxuICAgICAgKSxcbiAgICAgIGxvZ0dyb3VwOiBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLFxuICAgIH0pO1xuXG4gICAgLy8gQWZ0ZXIgYmVpbmcgbWlncmF0ZWQgdG8gdGhlIG5ldyB2ZXJzaW9uIGl0IGNhbiBiZSBhZGRlZCB0byB0aGUgQ0xBSUQgY29uc3RydWN0IHJlcG9zaXRvcnlcbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nR3JvdXBNb25pdG9yJywge1xuICAgICAgbmFtZTogJ1VuZXhwZWN0ZWQgRUNTIHN0YXR1cyBjaGFuZ2VzJyxcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLkxPR19BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbG9ncyhcImFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH0gQGF3cy5hd3Nsb2dzLmxvZ0dyb3VwOlxcXCIke1xuICAgICAgICBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZVxuICAgICAgfVxcXCJcIikuaW5kZXgoXCIqXCIpLnJvbGx1cChcImNvdW50XCIpLmxhc3QoXCI1bVwiKSA+PSAxYCxcbiAgICAgIG1lc3NhZ2U6ICd7eyNpc19hbGVydH19VGhlcmUgYXJlIHVuZXhwZWN0ZWQgRUNTIHN0YXR1cyBjaGFuZ2VzIGluIHRoZSBhY2NvdW50ICcgK1xuICAgICAgICAgICAgICAgICd7e2xvZy50YWdzLmFjY291bnRfaWR9fSwgbW9yZSBkZXRhaWxzIGhlcmUge3tsb2cubGlua319IHt7L2lzX2FsZXJ0fX0nLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBub3RpZmljYXRpb246IHByb3BzLm5vdGlmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './aws-ecs-abruptly-stopped-monitor';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./aws-ecs-abruptly-stopped-monitor"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxRUFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yJztcbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Reference } from 'aws-cdk-lib';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
-
import {
|
|
3
|
+
import { DatadogMonitor, INotification } from '../../../datadogv2';
|
|
4
4
|
interface DatadogPipelineMonitorProps {
|
|
5
5
|
pipelineName: string | Reference;
|
|
6
6
|
serviceName: string;
|
|
7
7
|
accountId: string;
|
|
8
|
-
|
|
8
|
+
notification?: INotification;
|
|
9
9
|
}
|
|
10
10
|
export declare class DatadogPipelineErrorAlert extends DatadogMonitor {
|
|
11
11
|
constructor(scope: Construct, id: string, props: DatadogPipelineMonitorProps);
|
|
@@ -1,44 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DataDogPipelineErrorAlertForVulnerabilityChecks = exports.DatadogPipelineErrorAlert = void 0;
|
|
4
|
-
const
|
|
5
|
-
class DatadogPipelineErrorAlert extends
|
|
4
|
+
const datadogv2_1 = require("../../../datadogv2");
|
|
5
|
+
class DatadogPipelineErrorAlert extends datadogv2_1.DatadogMonitor {
|
|
6
6
|
constructor(scope, id, props) {
|
|
7
7
|
super(scope, id, {
|
|
8
8
|
serviceName: props.serviceName,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
notification: props.notification,
|
|
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
|
+
name: 'CI pipeline status',
|
|
14
|
+
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}}',
|
|
15
|
+
priority: 5,
|
|
16
|
+
optionOverrides: {
|
|
17
|
+
requireFullWindow: false,
|
|
18
|
+
evaluationDelay: 0,
|
|
19
19
|
},
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
exports.DatadogPipelineErrorAlert = DatadogPipelineErrorAlert;
|
|
24
|
-
class DataDogPipelineErrorAlertForVulnerabilityChecks extends
|
|
24
|
+
class DataDogPipelineErrorAlertForVulnerabilityChecks extends datadogv2_1.DatadogMonitor {
|
|
25
25
|
constructor(scope, id, props) {
|
|
26
26
|
super(scope, id, {
|
|
27
27
|
serviceName: props.serviceName,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
28
|
+
notification: props.notification,
|
|
29
|
+
monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
|
|
30
|
+
extraTags: ['cicd'],
|
|
31
|
+
query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
|
|
32
|
+
name: 'Vulnerability checks',
|
|
33
|
+
message: 'Vulnerabilities detected',
|
|
34
|
+
priority: 3,
|
|
35
|
+
optionOverrides: {
|
|
36
|
+
requireFullWindow: false,
|
|
37
|
+
evaluationDelay: 0,
|
|
39
38
|
},
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
exports.DataDogPipelineErrorAlertForVulnerabilityChecks = DataDogPipelineErrorAlertForVulnerabilityChecks;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9kYXRhZG9nLW1vbml0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGtEQUFpRztBQVNqRyxNQUFhLHlCQUEwQixTQUFRLDBCQUFjO0lBQzNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNuQixLQUFLLEVBQUUscUVBQXFFLEtBQUssQ0FBQyxZQUFZLGVBQWUsS0FBSyxDQUFDLFNBQVMsT0FBTztZQUNuSSxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSwwSUFBMEk7WUFDbkosUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsZUFBZSxFQUFFLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqQkQsOERBaUJDO0FBRUQsTUFBYSwrQ0FBZ0QsU0FBUSwwQkFBYztJQUNqRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxXQUFXLEVBQUUsd0NBQTRCLENBQUMsV0FBVztZQUNyRCxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkIsS0FBSyxFQUFFLHFFQUFxRSxLQUFLLENBQUMsWUFBWSxlQUFlLEtBQUssQ0FBQyxTQUFTLE9BQU87WUFDbkksSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLFFBQVEsRUFBRSxDQUFDO1lBQ1gsZUFBZSxFQUFFO2dCQUNmLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGVBQWUsRUFBRSxDQUFDO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBakJELDBHQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsIElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuXG5pbnRlcmZhY2UgRGF0YWRvZ1BpcGVsaW5lTW9uaXRvclByb3BzIHtcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBSZWZlcmVuY2U7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1BpcGVsaW5lRXJyb3JBbGVydCBleHRlbmRzIERhdGFkb2dNb25pdG9yIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIGV4dHJhVGFnczogWydjaWNkJ10sXG4gICAgICBxdWVyeTogYG1pbihsYXN0XzVtKTptaW46ZGVwbG95bWVudC5jb2RlcGlwZWxpbmUuZXhlY3V0aW9uc3twaXBlbGluZV9uYW1lOiR7cHJvcHMucGlwZWxpbmVOYW1lfSxhY2NvdW50X2lkOiR7cHJvcHMuYWNjb3VudElkfX0gPCAxYCxcbiAgICAgIG5hbWU6ICdDSSBwaXBlbGluZSBzdGF0dXMnLFxuICAgICAgbWVzc2FnZTogJ3t7I2lzX2FsZXJ0fX1cXFxcblRoZSBDSSBidWlsZCBpcyBicm9rZW5cXFxcbnt7L2lzX2FsZXJ0fX0gXFxcXG5cXFxcbnt7I2lzX2FsZXJ0X3JlY292ZXJ5fX1cXFxcblRoZSBDSSBidWlsZCB3b3JrcyBhZ2Fpbi5cXFxcbnt7L2lzX2FsZXJ0X3JlY292ZXJ5fX0nLFxuICAgICAgcHJpb3JpdHk6IDUsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgcmVxdWlyZUZ1bGxXaW5kb3c6IGZhbHNlLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyBleHRlbmRzIERhdGFkb2dNb25pdG9yIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIGV4dHJhVGFnczogWydjaWNkJ10sXG4gICAgICBxdWVyeTogYG1pbihsYXN0XzVtKTptaW46ZGVwbG95bWVudC5jb2RlcGlwZWxpbmUuZXhlY3V0aW9uc3twaXBlbGluZV9uYW1lOiR7cHJvcHMucGlwZWxpbmVOYW1lfSxhY2NvdW50X2lkOiR7cHJvcHMuYWNjb3VudElkfX0gPCAxYCxcbiAgICAgIG5hbWU6ICdWdWxuZXJhYmlsaXR5IGNoZWNrcycsXG4gICAgICBtZXNzYWdlOiAnVnVsbmVyYWJpbGl0aWVzIGRldGVjdGVkJyxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHJlcXVpcmVGdWxsV2luZG93OiBmYWxzZSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiAwLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -3,7 +3,8 @@ import { Stack, StackProps } from 'aws-cdk-lib';
|
|
|
3
3
|
import { BuildEnvironment } from 'aws-cdk-lib/aws-codebuild';
|
|
4
4
|
import { CodeBuildStep } from 'aws-cdk-lib/pipelines';
|
|
5
5
|
import { Construct } from 'constructs';
|
|
6
|
-
import { DatadogAlertType } from '../../../datadog
|
|
6
|
+
import { DatadogAlertType } from '../../../datadog';
|
|
7
|
+
import { INotification } from '../../../datadogv2';
|
|
7
8
|
export interface PipelineSchedulesProps {
|
|
8
9
|
readonly mainPipeline?: string;
|
|
9
10
|
readonly vulnerabilityPipeline?: string;
|
|
@@ -59,9 +60,14 @@ export interface PipelineStackProps extends StackProps {
|
|
|
59
60
|
*/
|
|
60
61
|
readonly monitoringDeployStepProps?: PipelineStackRioMonitoringDeployStepProps;
|
|
61
62
|
/**
|
|
62
|
-
*
|
|
63
|
+
* @deprecated Please use the `vulnerabilityNotification` property instead.
|
|
64
|
+
* If `opsgenie` is specified, an Exception is thrown, as this is not supported anymore.
|
|
63
65
|
*/
|
|
64
66
|
readonly datadogAlertType?: DatadogAlertType;
|
|
67
|
+
/**
|
|
68
|
+
* Notification type for the auto-generated vulnerability pipeline monitor. Defaults to slack.
|
|
69
|
+
*/
|
|
70
|
+
readonly vulnerabilityNotification?: INotification;
|
|
65
71
|
}
|
|
66
72
|
/**
|
|
67
73
|
* Provider interface to create the AppStack within the specific scope
|