@liflig/cdk 2.19.8 → 2.20.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.
|
@@ -6,6 +6,7 @@ from urllib.error import URLError, HTTPError
|
|
|
6
6
|
import boto3
|
|
7
7
|
|
|
8
8
|
secrets_manager = boto3.client("secretsmanager")
|
|
9
|
+
cloudwatch = boto3.client("cloudwatch")
|
|
9
10
|
|
|
10
11
|
SLACK_URL_SECRET_NAME = os.getenv("SLACK_URL_SECRET_NAME", None)
|
|
11
12
|
PROJECT_NAME = os.getenv("PROJECT_NAME", "undefined")
|
|
@@ -15,9 +16,24 @@ ENVIRONMENT_NAME = os.getenv("ENVIRONMENT_NAME", "undefined")
|
|
|
15
16
|
def handler(event, context):
|
|
16
17
|
print("Event: " + json.dumps(event))
|
|
17
18
|
message = json.loads(event["Records"][0]["Sns"]["Message"])
|
|
18
|
-
|
|
19
|
+
topic_arn = event["Records"][0]["Sns"]["TopicArn"]
|
|
20
|
+
region = topic_arn.split(":")[3]
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
active_alarms = list_all_active_alarms(topic_arn)
|
|
23
|
+
return send_slack_notification(message, region, active_alarms)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def list_all_active_alarms(topic_arn: str) -> list[str]:
|
|
27
|
+
try:
|
|
28
|
+
response: dict = cloudwatch.describe_alarms(AlarmTypes=["CompositeAlarm", "MetricAlarm"],
|
|
29
|
+
StateValue="ALARM",
|
|
30
|
+
ActionPrefix=topic_arn)
|
|
31
|
+
all_alarms = response["CompositeAlarms"] + response["MetricAlarms"]
|
|
32
|
+
names: list[str] = [alarm["AlarmName"] for alarm in all_alarms if alarm["ActionsEnabled"]]
|
|
33
|
+
return names
|
|
34
|
+
except Exception as e:
|
|
35
|
+
print(f"Failed to list alarms: {e}")
|
|
36
|
+
return []
|
|
21
37
|
|
|
22
38
|
|
|
23
39
|
def get_masked_slack_webhook_url(slack_webhook_url: str):
|
|
@@ -37,7 +53,7 @@ def get_secret(secret):
|
|
|
37
53
|
raise Exception(f"Error retrieving secret: {e}")
|
|
38
54
|
|
|
39
55
|
|
|
40
|
-
def send_slack_notification(message, region):
|
|
56
|
+
def send_slack_notification(message: str, region: str, active_alarms: list[str]):
|
|
41
57
|
alarm_emojis = {
|
|
42
58
|
"ALARM": ":rotating_light:",
|
|
43
59
|
"INSUFFICIENT_DATA": ":warning:",
|
|
@@ -52,9 +68,9 @@ def send_slack_notification(message, region):
|
|
|
52
68
|
{
|
|
53
69
|
"color": color,
|
|
54
70
|
"title_link": "https://console.aws.amazon.com/cloudwatch/home?region="
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
71
|
+
+ region
|
|
72
|
+
+ "#alarm:alarmFilter=ANY;name="
|
|
73
|
+
+ message["AlarmName"],
|
|
58
74
|
"fallback": f"{alarm_emojis.get(message['NewStateValue'], '')} {message['AlarmName']}: {alarm_description}",
|
|
59
75
|
"fields": [
|
|
60
76
|
{"title": "Alarm Name", "value": message["AlarmName"], "short": False},
|
|
@@ -70,18 +86,23 @@ def send_slack_notification(message, region):
|
|
|
70
86
|
{
|
|
71
87
|
"title": "State Transition",
|
|
72
88
|
"value": message.get("OldStateValue", "Unknown")
|
|
73
|
-
|
|
74
|
-
|
|
89
|
+
+ " -> "
|
|
90
|
+
+ message["NewStateValue"],
|
|
75
91
|
"short": False,
|
|
76
92
|
},
|
|
77
93
|
{
|
|
78
94
|
"title": "Link to Alarm",
|
|
79
95
|
"value": "https://console.aws.amazon.com/cloudwatch/home?region="
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
96
|
+
+ region
|
|
97
|
+
+ "#alarm:alarmFilter=ANY;name="
|
|
98
|
+
+ message["AlarmName"],
|
|
83
99
|
"short": False,
|
|
84
100
|
},
|
|
101
|
+
{
|
|
102
|
+
"title": "All active alarms " + (alarm_emojis["ALARM"] if len(active_alarms) else ""),
|
|
103
|
+
"value": "\n".join(["- " + alarm for alarm in active_alarms]) if len(active_alarms) else "None",
|
|
104
|
+
"short": False,
|
|
105
|
+
}
|
|
85
106
|
],
|
|
86
107
|
}
|
|
87
108
|
]
|
|
@@ -4,6 +4,7 @@ exports.SlackAlarm = void 0;
|
|
|
4
4
|
const constructs = require("constructs");
|
|
5
5
|
const cloudwatchActions = require("aws-cdk-lib/aws-cloudwatch-actions");
|
|
6
6
|
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
8
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
9
|
const sns = require("aws-cdk-lib/aws-sns");
|
|
9
10
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
@@ -36,6 +37,11 @@ class SlackAlarm extends constructs.Construct {
|
|
|
36
37
|
principal: new iam.ServicePrincipal("sns.amazonaws.com"),
|
|
37
38
|
sourceArn: this.alarmTopic.topicArn,
|
|
38
39
|
});
|
|
40
|
+
slackLambda.addToRolePolicy(new aws_iam_1.PolicyStatement({
|
|
41
|
+
actions: ["cloudwatch:DescribeAlarms"],
|
|
42
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
43
|
+
resources: ["*"],
|
|
44
|
+
}));
|
|
39
45
|
new sns.Subscription(this, "Subscription", {
|
|
40
46
|
endpoint: slackLambda.functionArn,
|
|
41
47
|
protocol: sns.SubscriptionProtocol.LAMBDA,
|
|
@@ -44,4 +50,4 @@ class SlackAlarm extends constructs.Construct {
|
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
52
|
exports.SlackAlarm = SlackAlarm;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NsYWNrLWFsYXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4Qyx3RUFBdUU7QUFDdkUsMkNBQTBDO0FBQzFDLGlEQUE2RDtBQUM3RCxpREFBZ0Q7QUFDaEQsMkNBQTBDO0FBQzFDLDZDQUFzQztBQUN0Qyw2QkFBNEI7QUFnQjVCOzs7R0FHRztBQUNILE1BQWEsVUFBVyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBSWxELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUN4RDtZQUNELFdBQVcsRUFDVCwrRUFBK0U7WUFDakYsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUIsV0FBVyxFQUFFO2dCQUNYLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVO2dCQUM3RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQy9CLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVsRCxXQUFXLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFO1lBQzVDLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7U0FDcEMsQ0FBQyxDQUFBO1FBQ0YsV0FBVyxDQUFDLGVBQWUsQ0FDekIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7WUFDcEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFBO1FBRUQsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDekMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxXQUFXO1lBQ2pDLFFBQVEsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDdkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBakRELGdDQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaEFjdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYWNrQWxhcm1Qcm9wcyB7XG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgZW52TmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIHBsYWludGV4dCBzZWNyZXQgY29udGFpbmluZyB0aGUgVVJMIG9mIGEgU2xhY2sgaW5jb21pbmcgd2ViaG9vay5cbiAgICogVGhlIHdlYmhvb2sgc2hvdWxkIGJlIGNyZWF0ZWQgdGhyb3VnaCBhIFNsYWNrIGFwcCwgYW5kIG9ubHkgYWxsb3dzIHBvc3RpbmcgdG8gb25lIHNwZWNpZmljIFNsYWNrIGNoYW5uZWwuXG4gICAqIFNlZSBTbGFjaydzIG9mZmljaWFsIGRvY3VtZW50YXRpb24gKGUuZy4sIGh0dHBzOi8vYXBpLnNsYWNrLmNvbS9tZXNzYWdpbmcvd2ViaG9va3MpIGZvciBtb3JlIGRldGFpbHMuXG4gICAqXG4gICAqIE5PVEU6IEluY29taW5nIHdlYmhvb2tzIGNyZWF0ZWQgdGhyb3VnaCBsZWdhY3kgY3VzdG9tIGludGVncmF0aW9ucyBpbiBTbGFjayBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHNsYWNrV2ViaG9va1VybFNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldFxufVxuXG4vKipcbiAqIFNOUyBUb3BpYyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjdGlvbiBhbGFybXMsIHdpdGggYSBMYW1iZGFcbiAqIHRoYXQgd2lsbCBzZW5kIGEgbWVzc2FnZSB0byBTbGFjayBmb3IgdGhlIGFsYXJtLlxuICovXG5leHBvcnQgY2xhc3MgU2xhY2tBbGFybSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtVG9waWM6IHNucy5Ub3BpY1xuICBwdWJsaWMgcmVhZG9ubHkgc25zQWN0aW9uOiBjbG91ZHdhdGNoQWN0aW9ucy5TbnNBY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTbGFja0FsYXJtUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFsYXJtVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIFwiVG9waWNcIilcblxuICAgIHRoaXMuc25zQWN0aW9uID0gbmV3IGNsb3Vkd2F0Y2hBY3Rpb25zLlNuc0FjdGlvbih0aGlzLmFsYXJtVG9waWMpXG5cbiAgICBjb25zdCBzbGFja0xhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vYXNzZXRzL3NsYWNrLWFsYXJtLWxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZWNlaXZlcyBDbG91ZFdhdGNoIEFsYXJtcyB0aHJvdWdoIFNOUyBhbmQgc2VuZHMgYSBmb3JtYXR0ZWQgdmVyc2lvbiB0byBTbGFja1wiLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNiksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTTEFDS19VUkxfU0VDUkVUX05BTUU6IHByb3BzLnNsYWNrV2ViaG9va1VybFNlY3JldC5zZWNyZXROYW1lLFxuICAgICAgICBQUk9KRUNUX05BTUU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgICBFTlZJUk9OTUVOVF9OQU1FOiBwcm9wcy5lbnZOYW1lLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LmdyYW50UmVhZChzbGFja0xhbWJkYSlcblxuICAgIHNsYWNrTGFtYmRhLmFkZFBlcm1pc3Npb24oXCJJbnZva2VQZXJtaXNzaW9uXCIsIHtcbiAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwic25zLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBzb3VyY2VBcm46IHRoaXMuYWxhcm1Ub3BpYy50b3BpY0FybixcbiAgICB9KVxuICAgIHNsYWNrTGFtYmRhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJjbG91ZHdhdGNoOkRlc2NyaWJlQWxhcm1zXCJdLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgbmV3IHNucy5TdWJzY3JpcHRpb24odGhpcywgXCJTdWJzY3JpcHRpb25cIiwge1xuICAgICAgZW5kcG9pbnQ6IHNsYWNrTGFtYmRhLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvdG9jb2w6IHNucy5TdWJzY3JpcHRpb25Qcm90b2NvbC5MQU1CREEsXG4gICAgICB0b3BpYzogdGhpcy5hbGFybVRvcGljLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
package/lib/feature-flags.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import * as constructs from "constructs";
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated No longer in use, this is now the default behaviour.
|
|
4
|
-
*/
|
|
5
|
-
export declare const FEATURE_FLAG_CDK_PIPELINES_SPEED_UP = "@liflig-cdk/cdk-pipelines:enableExperimentalSpeedUp";
|
|
6
2
|
/**
|
|
7
3
|
* Exposes feature flags we can use in liflig-cdk to allow consumers to opt-in
|
|
8
4
|
* to experimental functionality without affecting current consumers and having
|
package/lib/feature-flags.js
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FeatureFlags =
|
|
3
|
+
exports.FeatureFlags = void 0;
|
|
4
4
|
// Custom feature flags for liflig-cdk
|
|
5
|
-
|
|
6
|
-
* @deprecated No longer in use, this is now the default behaviour.
|
|
7
|
-
*/
|
|
8
|
-
exports.FEATURE_FLAG_CDK_PIPELINES_SPEED_UP = "@liflig-cdk/cdk-pipelines:enableExperimentalSpeedUp";
|
|
9
|
-
const FLAGS = {
|
|
10
|
-
[exports.FEATURE_FLAG_CDK_PIPELINES_SPEED_UP]: {
|
|
11
|
-
default: true,
|
|
12
|
-
description: "Reduce execution time of CDK Pipelines by making various tweaks (e.g., skip creation of CloudFormation changesets, disable CodePipeline S3 polling).",
|
|
13
|
-
deprecationReason: "This feature flag is no longer in use, this is now the default behaviour.",
|
|
14
|
-
},
|
|
15
|
-
};
|
|
5
|
+
const FLAGS = {};
|
|
16
6
|
const getFeatureFlagDefault = (flagName) => {
|
|
17
7
|
var _a, _b;
|
|
18
8
|
return (_b = (_a = FLAGS[flagName]) === null || _a === void 0 ? void 0 : _a.default) !== null && _b !== void 0 ? _b : false;
|
|
@@ -55,4 +45,4 @@ class FeatureFlags {
|
|
|
55
45
|
}
|
|
56
46
|
}
|
|
57
47
|
exports.FeatureFlags = FeatureFlags;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mZWF0dXJlLWZsYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRCQSxzQ0FBc0M7QUFDdEMsTUFBTSxLQUFLLEdBQXVDLEVBQUUsQ0FBQTtBQUVwRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFOztJQUNqRCxPQUFPLE1BQUEsTUFBQSxLQUFLLENBQUMsUUFBUSxDQUFDLDBDQUFFLE9BQU8sbUNBQUksS0FBSyxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQUVELHFDQUFxQztBQUNyQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFBcUMsS0FBNEI7UUFBNUIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7SUFBRyxDQUFDO0lBQzlELE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBMkI7UUFDMUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBQ00sU0FBUyxDQUFDLFFBQWdCOztRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQUEsS0FBSyxDQUFDLFFBQVEsQ0FBQywwQ0FBRSxpQkFBaUIsQ0FBQTtRQUM1RCxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLElBQUksQ0FDViwwQkFBMEIsUUFBUSxvQkFBb0IsaUJBQWlCLEVBQUUsQ0FDMUUsQ0FBQTtRQUNILENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFZLENBQUE7UUFDdkUsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN4QyxDQUFDO2FBQU0sSUFDTCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssa0JBQWtCLEVBQ25FLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixzQ0FBc0MsUUFBUSxzQ0FBc0MsQ0FDckYsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQTdCRCxvQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcblxuaW50ZXJmYWNlIEZlYXR1cmVGbGFnSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGZlYXR1cmUgZmxhZy5cbiAgICpcbiAgICogTk9URTogVGhpcyB3aWxsIGJlIHRoZSB2YWx1ZSB1c2VkIGZvciBjb25zdW1lcnMgdGhhdCBoYXZlIG5vdFxuICAgKiBleHBsaWNpdGx5IHNldCB0aGUgZmVhdHVyZSBmbGFnICh3aGljaCB3aWxsIGJlIG1vc3Qgb2YgdGhlbSEpLFxuICAgKiBzbyB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhlIGRlZmF1bHQgdmFsdWUgZG9lcyBOT1QgbGVhZFxuICAgKiB0byBhbnkgYnJlYWtpbmcgYmVoYXZpb3IuXG4gICAqL1xuICBkZWZhdWx0OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGZlYXR1cmUgZmxhZy5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGVwcmVjYXRpb24gbWVzc2FnZSBmb3IgdGhlIGZlYXR1cmUgZmxhZywgZXhwbGFpbmluZ1xuICAgKiB0aGUgcmVhc29uIGZvciB0aGUgZGVwcmVjYXRpb24uXG4gICAqXG4gICAqIE5COiBUaGUgbWVzc2FnZSB3aWxsIG9ubHkgYmUgbG9nZ2VkIHdoZW4gaXQgaXMgYm90aCBzZXQgYnkgdGhlIGNvbnN1bWVyXG4gICAqIGFuZCB1c2VkIGJ5IHRoZSBsaWJyYXJ5LCBhcyB0aGUgZmxhZ3MgYXJlIHBhcnNlZCBsYXppbHkgd2hlbiBhY2Nlc3NlZC5cbiAgICovXG4gIGRlcHJlY2F0aW9uUmVhc29uPzogc3RyaW5nXG59XG5cbi8vIEN1c3RvbSBmZWF0dXJlIGZsYWdzIGZvciBsaWZsaWctY2RrXG5jb25zdCBGTEFHUzogeyBba2V5OiBzdHJpbmddOiBGZWF0dXJlRmxhZ0luZm8gfSA9IHt9XG5cbmNvbnN0IGdldEZlYXR1cmVGbGFnRGVmYXVsdCA9IChmbGFnTmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBGTEFHU1tmbGFnTmFtZV0/LmRlZmF1bHQgPz8gZmFsc2Vcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuLyoqXG4gKiBFeHBvc2VzIGZlYXR1cmUgZmxhZ3Mgd2UgY2FuIHVzZSBpbiBsaWZsaWctY2RrIHRvIGFsbG93IGNvbnN1bWVycyB0byBvcHQtaW5cbiAqIHRvIGV4cGVyaW1lbnRhbCBmdW5jdGlvbmFsaXR5IHdpdGhvdXQgYWZmZWN0aW5nIGN1cnJlbnQgY29uc3VtZXJzIGFuZCBoYXZpbmdcbiAqIHRvIHBvbGx1dGUgdGhlIG9mZmljaWFsIGxpYnJhcnkgQVBJIHdpdGggZXhwZXJpbWVudGFsIHByb3BlcnRpZXMgYW5kIGJlaGF2aW9yLlxuICpcbiAqIE5PVEU6IFdlIHNob3VsZCBvbmx5IHVzZSB0aGVzZSBmbGFncyB0ZW1wb3JhcmlseSBhbmQgdmVyeSBzcGFyaW5nbHkgYXMgdGhleSBsZWFkXG4gKiB0byBhIGJyaXR0bGUgYW5kIG1vcmUgY29tcGxleCBjb2RlYmFzZSB3aXRoIGEgbG90IG9mIGJyYW5jaGluZyBsb2dpYy5cbiAqIE9uY2UgYW4gZXhwZXJpbWVudCBoYXMgY29uY2x1ZGVkIHdlIHNob3VsZCByZW1vdmUgdGhlbSBhbmQgdXBkYXRlIHRoZVxuICogb2ZmaWNpYWwgbGlicmFyeSBBUEkuXG4gKi9cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ3Mge1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IGNvbnN0cnVjdHMuSUNvbnN0cnVjdCkge31cbiAgcHVibGljIHN0YXRpYyBvZihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFncyhzY29wZSlcbiAgfVxuICBwdWJsaWMgaXNFbmFibGVkKGZsYWdOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKEZMQUdTKS5pbmNsdWRlcyhmbGFnTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZmVhdHVyZSBmbGFnICR7ZmxhZ05hbWV9YClcbiAgICB9XG5cbiAgICBjb25zdCBkZXByZWNhdGlvblJlYXNvbiA9IEZMQUdTW2ZsYWdOYW1lXT8uZGVwcmVjYXRpb25SZWFzb25cbiAgICBpZiAoZGVwcmVjYXRpb25SZWFzb24pIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFdhcm5pbmc6IEZlYXR1cmUgZmxhZyAnJHtmbGFnTmFtZX0nIGlzIGRlcHJlY2F0ZWQ6ICR7ZGVwcmVjYXRpb25SZWFzb259YCxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0VmFsdWUgPSB0aGlzLnNjb3BlLm5vZGUudHJ5R2V0Q29udGV4dChmbGFnTmFtZSkgYXMgdW5rbm93blxuICAgIGlmIChjb250ZXh0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGdldEZlYXR1cmVGbGFnRGVmYXVsdChmbGFnTmFtZSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGNvbnRleHRWYWx1ZSkgPT09IFwiW29iamVjdCBCb29sZWFuXVwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihjb250ZXh0VmFsdWUpXG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgZmVhdHVyZSBmbGFnICR7ZmxhZ05hbWV9LiBPbmx5IGJvb2xlYW4gdmFsdWVzIGFyZSBzdXBwb3J0ZWQuYCxcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.20.0",
|
|
4
4
|
"description": "CDK library for Liflig",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@aws-cdk/assert": "2.68.0",
|
|
43
|
-
"@commitlint/cli": "19.
|
|
43
|
+
"@commitlint/cli": "19.3.0",
|
|
44
44
|
"@commitlint/config-conventional": "19.2.2",
|
|
45
45
|
"@types/aws-lambda": "8.10.137",
|
|
46
46
|
"@types/jest": "29.5.12",
|
|
47
|
-
"@types/node": "20.12.
|
|
47
|
+
"@types/node": "20.12.8",
|
|
48
48
|
"@typescript-eslint/eslint-plugin": "5.62.0",
|
|
49
49
|
"@typescript-eslint/parser": "5.62.0",
|
|
50
50
|
"aws-cdk": "2.137.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
66
|
"@capraconsulting/webapp-deploy-lambda": "2.2.0",
|
|
67
|
-
"aws-sdk": "2.
|
|
67
|
+
"aws-sdk": "2.1608.0",
|
|
68
68
|
"cpy": "8.1.2",
|
|
69
69
|
"del": "6.1.1",
|
|
70
70
|
"execa": "5.1.1",
|