@liflig/cdk 3.18.0 → 3.19.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/README.md +13 -12
- package/assets/pipeline-slack-notification-lambda/index.py +9 -0
- package/lib/cdk-pipelines/index.d.ts +1 -1
- package/lib/cdk-pipelines/index.js +2 -2
- package/lib/cdk-pipelines/slack-notification.d.ts +42 -0
- package/lib/cdk-pipelines/slack-notification.js +73 -1
- package/package.json +23 -23
package/README.md
CHANGED
|
@@ -13,22 +13,23 @@ are not yet resolved. Some relevant information:
|
|
|
13
13
|
|
|
14
14
|
- <https://github.com/aws/aws-cdk-rfcs/blob/master/text/0006-monolothic-packaging.md>
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Development
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Project commands are defined using `Make`. Examples:
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
```sh
|
|
21
|
+
# Primary commands
|
|
22
|
+
$ make # runs '$ make build'
|
|
23
|
+
$ make build # build project, apply lint and formatting fixes, update snapshots
|
|
24
|
+
$ make verify # verify project, ensure lint, formatting and snapshots are up-to-date
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
# Misc commands
|
|
27
|
+
$ make lint # lint code
|
|
28
|
+
$ make fmt # reformat code
|
|
29
|
+
$ make snapshots # regenerate snapshots
|
|
30
|
+
```
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
For a complete list of commands, refer to the `Makefile`.
|
|
32
33
|
|
|
33
34
|
## Testing library changes before releasing
|
|
34
35
|
|
|
@@ -14,6 +14,7 @@ secrets_manager = boto3.client("secretsmanager")
|
|
|
14
14
|
ACCOUNT_FRIENDLY_NAME = os.getenv("ACCOUNT_FRIENDLY_NAME", None)
|
|
15
15
|
SLACK_URL_SECRET_NAME = os.getenv("SLACK_URL_SECRET_NAME", None)
|
|
16
16
|
NOTIFICATION_LEVEL = os.getenv("NOTIFICATION_LEVEL", "WARN")
|
|
17
|
+
SLACK_MENTIONS = os.getenv("SLACK_MENTIONS", None)
|
|
17
18
|
|
|
18
19
|
# Example event:
|
|
19
20
|
#
|
|
@@ -260,6 +261,9 @@ def handler(event, context):
|
|
|
260
261
|
for s in [f"*Execution:* <{execution_url}|{execution_id}>", text_for_failed]
|
|
261
262
|
if s
|
|
262
263
|
)
|
|
264
|
+
|
|
265
|
+
mentions_str = SLACK_MENTIONS if state == "FAILED" and not previous_failed else ""
|
|
266
|
+
|
|
263
267
|
pretext = " ".join(
|
|
264
268
|
s
|
|
265
269
|
for s in [
|
|
@@ -269,6 +273,11 @@ def handler(event, context):
|
|
|
269
273
|
]
|
|
270
274
|
if s
|
|
271
275
|
)
|
|
276
|
+
|
|
277
|
+
# Add mentions to pretext
|
|
278
|
+
if mentions_str:
|
|
279
|
+
pretext = f"{pretext} {mentions_str}"
|
|
280
|
+
|
|
272
281
|
fallback = f"Pipeline {pipeline_name} {state}"
|
|
273
282
|
attachments = [
|
|
274
283
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { LifligCdkPipelineProps } from "./liflig-cdk-pipeline";
|
|
2
2
|
export { LifligCdkPipeline } from "./liflig-cdk-pipeline";
|
|
3
3
|
export type { SlackNotificationProps } from "./slack-notification";
|
|
4
|
-
export { SlackNotification } from "./slack-notification";
|
|
4
|
+
export { SlackMention, SlackNotification } from "./slack-notification";
|
|
5
5
|
export { getVariable } from "./variables";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { LifligCdkPipeline } from "./liflig-cdk-pipeline";
|
|
2
|
-
export { SlackNotification } from "./slack-notification";
|
|
2
|
+
export { SlackMention, SlackNotification } from "./slack-notification";
|
|
3
3
|
export { getVariable } from "./variables";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrLXBpcGVsaW5lcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgTGlmbGlnQ2RrUGlwZWxpbmVQcm9wcyB9IGZyb20gXCIuL2xpZmxpZy1jZGstcGlwZWxpbmVcIlxuZXhwb3J0IHsgTGlmbGlnQ2RrUGlwZWxpbmUgfSBmcm9tIFwiLi9saWZsaWctY2RrLXBpcGVsaW5lXCJcbmV4cG9ydCB0eXBlIHsgU2xhY2tOb3RpZmljYXRpb25Qcm9wcyB9IGZyb20gXCIuL3NsYWNrLW5vdGlmaWNhdGlvblwiXG5leHBvcnQgeyBTbGFja01lbnRpb24sIFNsYWNrTm90aWZpY2F0aW9uIH0gZnJvbSBcIi4vc2xhY2stbm90aWZpY2F0aW9uXCJcbmV4cG9ydCB7IGdldFZhcmlhYmxlIH0gZnJvbSBcIi4vdmFyaWFibGVzXCJcbiJdfQ==
|
|
@@ -41,6 +41,12 @@ export interface SlackNotificationProps {
|
|
|
41
41
|
* @default - the Lambda function can read all objects in the artifacts bucket.
|
|
42
42
|
*/
|
|
43
43
|
triggerObjectKey?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Slack mentions to include in failure notifications (only on new failures, not repeated ones).
|
|
46
|
+
* Use special mentions (@here, @channel, @everyone) or user/group IDs (e.g., 'U1234567890', 'S9876543210').
|
|
47
|
+
* @default - none
|
|
48
|
+
*/
|
|
49
|
+
mentions?: string[];
|
|
44
50
|
}
|
|
45
51
|
/**
|
|
46
52
|
* Monitor a CodePipeline and send message to Slack on failure
|
|
@@ -49,3 +55,39 @@ export interface SlackNotificationProps {
|
|
|
49
55
|
export declare class SlackNotification extends constructs.Construct {
|
|
50
56
|
constructor(scope: constructs.Construct, id: string, props: SlackNotificationProps);
|
|
51
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Slack mention formatter with validation per Slack API format:
|
|
60
|
+
* https://docs.slack.dev/messaging/formatting-message-text/
|
|
61
|
+
*
|
|
62
|
+
* Supported mention types:
|
|
63
|
+
* - Special mentions: @here, @channel, @everyone
|
|
64
|
+
* - User IDs: U or W prefix + alphanumeric (e.g., U024BE7LH, W024BE7LH)
|
|
65
|
+
* - User group IDs: S prefix + alphanumeric (e.g., SAZ94GDB8)
|
|
66
|
+
*
|
|
67
|
+
* Usage:
|
|
68
|
+
* SlackMention.format(['@here', 'U024BE7LH', 'SAZ94GDB8'])
|
|
69
|
+
*/
|
|
70
|
+
export declare class SlackMention {
|
|
71
|
+
private static readonly SPECIAL_MENTIONS;
|
|
72
|
+
private static readonly USER_PATTERN;
|
|
73
|
+
private static readonly USER_GROUP_PATTERN;
|
|
74
|
+
/**
|
|
75
|
+
* Format an array of mentions into a single Slack-formatted string.
|
|
76
|
+
* @param mentions Array of mention strings
|
|
77
|
+
*/
|
|
78
|
+
static format(mentions: string[]): string;
|
|
79
|
+
/**
|
|
80
|
+
* Format a mention string for Slack API message format.
|
|
81
|
+
* Validates format and converts to proper Slack markup:
|
|
82
|
+
* '@here' -> '<!here>'
|
|
83
|
+
* 'U1234567890' -> '<@U1234567890>'
|
|
84
|
+
* 'S1234567890' -> '<!subteam^S1234567890>'
|
|
85
|
+
*
|
|
86
|
+
* @param mention Mention string (e.g., '@here', 'U1234567890', 'S1234567890')
|
|
87
|
+
* @throws if mention format is invalid
|
|
88
|
+
*/
|
|
89
|
+
static formatMention(mention: string): string;
|
|
90
|
+
private static formatSpecialMention;
|
|
91
|
+
private static formatUser;
|
|
92
|
+
private static formatUserGroup;
|
|
93
|
+
}
|
|
@@ -21,6 +21,9 @@ export class SlackNotification extends constructs.Construct {
|
|
|
21
21
|
if (props.accountFriendlyName != null) {
|
|
22
22
|
environment.ACCOUNT_FRIENDLY_NAME = props.accountFriendlyName;
|
|
23
23
|
}
|
|
24
|
+
if (props.mentions != null && props.mentions.length > 0) {
|
|
25
|
+
environment.SLACK_MENTIONS = SlackMention.format(props.mentions);
|
|
26
|
+
}
|
|
24
27
|
const reportFunction = new lambda.Function(this, "Function", {
|
|
25
28
|
code: lambda.Code.fromAsset(path.join(__dirname, "../../assets/pipeline-slack-notification-lambda")),
|
|
26
29
|
handler: "index.handler",
|
|
@@ -49,4 +52,73 @@ export class SlackNotification extends constructs.Construct {
|
|
|
49
52
|
});
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Slack mention formatter with validation per Slack API format:
|
|
57
|
+
* https://docs.slack.dev/messaging/formatting-message-text/
|
|
58
|
+
*
|
|
59
|
+
* Supported mention types:
|
|
60
|
+
* - Special mentions: @here, @channel, @everyone
|
|
61
|
+
* - User IDs: U or W prefix + alphanumeric (e.g., U024BE7LH, W024BE7LH)
|
|
62
|
+
* - User group IDs: S prefix + alphanumeric (e.g., SAZ94GDB8)
|
|
63
|
+
*
|
|
64
|
+
* Usage:
|
|
65
|
+
* SlackMention.format(['@here', 'U024BE7LH', 'SAZ94GDB8'])
|
|
66
|
+
*/
|
|
67
|
+
export class SlackMention {
|
|
68
|
+
static SPECIAL_MENTIONS = [
|
|
69
|
+
"@here",
|
|
70
|
+
"@channel",
|
|
71
|
+
"@everyone",
|
|
72
|
+
];
|
|
73
|
+
// Note: Slack doesn't specify length constraints for these identifiers, leaving them unbounded
|
|
74
|
+
static USER_PATTERN = /^[UW][A-Z0-9]+$/;
|
|
75
|
+
static USER_GROUP_PATTERN = /^S[A-Z0-9]+$/;
|
|
76
|
+
/**
|
|
77
|
+
* Format an array of mentions into a single Slack-formatted string.
|
|
78
|
+
* @param mentions Array of mention strings
|
|
79
|
+
*/
|
|
80
|
+
static format(mentions) {
|
|
81
|
+
return mentions.map((m) => SlackMention.formatMention(m)).join(" ");
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Format a mention string for Slack API message format.
|
|
85
|
+
* Validates format and converts to proper Slack markup:
|
|
86
|
+
* '@here' -> '<!here>'
|
|
87
|
+
* 'U1234567890' -> '<@U1234567890>'
|
|
88
|
+
* 'S1234567890' -> '<!subteam^S1234567890>'
|
|
89
|
+
*
|
|
90
|
+
* @param mention Mention string (e.g., '@here', 'U1234567890', 'S1234567890')
|
|
91
|
+
* @throws if mention format is invalid
|
|
92
|
+
*/
|
|
93
|
+
static formatMention(mention) {
|
|
94
|
+
if (mention.startsWith("@")) {
|
|
95
|
+
return SlackMention.formatSpecialMention(mention);
|
|
96
|
+
}
|
|
97
|
+
if (mention.startsWith("U") || mention.startsWith("W")) {
|
|
98
|
+
return SlackMention.formatUser(mention);
|
|
99
|
+
}
|
|
100
|
+
if (mention.startsWith("S")) {
|
|
101
|
+
return SlackMention.formatUserGroup(mention);
|
|
102
|
+
}
|
|
103
|
+
throw new Error(`Unknown Slack mention format: ${mention}`);
|
|
104
|
+
}
|
|
105
|
+
static formatSpecialMention(mention) {
|
|
106
|
+
if (!SlackMention.SPECIAL_MENTIONS.includes(mention)) {
|
|
107
|
+
throw new Error(`Invalid special mention: ${mention}`);
|
|
108
|
+
}
|
|
109
|
+
return `<!${mention.substring(1)}>`;
|
|
110
|
+
}
|
|
111
|
+
static formatUser(mention) {
|
|
112
|
+
if (!SlackMention.USER_PATTERN.test(mention)) {
|
|
113
|
+
throw new Error(`Invalid user ID: ${mention}`);
|
|
114
|
+
}
|
|
115
|
+
return `<@${mention}>`;
|
|
116
|
+
}
|
|
117
|
+
static formatUserGroup(mention) {
|
|
118
|
+
if (!SlackMention.USER_GROUP_PATTERN.test(mention)) {
|
|
119
|
+
throw new Error(`Invalid user group ID: ${mention}`);
|
|
120
|
+
}
|
|
121
|
+
return `<!subteam^${mention}>`;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay1waXBlbGluZXMvc2xhY2stbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUFFbEMsT0FBTyxLQUFLLGFBQWEsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sd0JBQXdCLENBQUE7QUFHaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFFeEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQWlEMUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3pELFlBQ0UsS0FBMkIsRUFDM0IsRUFBVSxFQUNWLEtBQTZCO1FBRTdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsTUFBTSxXQUFXLEdBQTJCO1lBQzFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVO1lBQzdELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxNQUFNO1NBQ3RELENBQUE7UUFFRCxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QyxXQUFXLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFBO1FBQy9ELENBQUM7UUFFRCxJ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QUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBZTtRQUNqRCxJQUNFLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDckMsT0FBNkMsQ0FDOUMsRUFDRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUN4RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDaEQsQ0FBQztRQUNELE9BQU8sS0FBSyxPQUFPLEdBQUcsQ0FBQTtJQUN4QixDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFlO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUN0RCxDQUFDO1FBQ0QsT0FBTyxhQUFhLE9BQU8sR0FBRyxDQUFBO0lBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB0eXBlICogYXMgY29kZXBpcGVsaW5lIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCJcbmltcG9ydCAqIGFzIGV2ZW50c1RhcmdldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCB0eXBlICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiXG5pbXBvcnQgdHlwZSAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShfX2ZpbGVuYW1lKVxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYWNrTm90aWZpY2F0aW9uUHJvcHMge1xuICAvKipcbiAgICogQ29kZVBpcGVsaW5lIHRvIG1vbml0b3IuXG4gICAqL1xuICBwaXBlbGluZTogY29kZXBpcGVsaW5lLklQaXBlbGluZVxuICAvKipcbiAgICogQXJ0aWZhY3RzIGJ1Y2tldCB1c2VkIGJ5IHBpcGVsaW5lXG4gICAqL1xuICBhcnRpZmFjdHNCdWNrZXQ6IHMzLklCdWNrZXRcbiAgLyoqXG4gICAqIEEgcGxhaW50ZXh0IHNlY3JldCBjb250YWluaW5nIHRoZSBVUkwgb2YgYSBTbGFjayBpbmNvbWluZyB3ZWJob29rLlxuICAgKiBUaGUgd2ViaG9vayBzaG91bGQgYmUgY3JlYXRlZCB0aHJvdWdoIGEgU2xhY2sgYXBwLCBhbmQgb25seSBhbGxvd3MgcG9zdGluZyB0byBvbmUgc3BlY2lmaWMgU2xhY2sgY2hhbm5lbC5cbiAgICogU2VlIFNsYWNrJ3Mgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiAoZS5nLiwgaHR0cHM6Ly9hcGkuc2xhY2suY29tL21lc3NhZ2luZy93ZWJob29rcykgZm9yIG1vcmUgZGV0YWlscy5cbiAgICpcbiAgICogTk9URTogSW5jb21pbmcgd2ViaG9va3MgY3JlYXRlZCB0aHJvdWdoIGxlZ2FjeSBjdXN0b20gaW50ZWdyYXRpb25zIGluIFNsYWNrIGFyZSBub3Qgc3VwcG9ydGVkLlxuICAgKi9cbiAgc2xhY2tXZWJob29rVXJsU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBmcmllbmRseSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBTbGFjayBub3RpZmljYXRpb25zIGluc3RlYWQgb2YgdGhlIEFXUyBhY2NvdW50IElEXG4gICAqL1xuICBhY2NvdW50RnJpZW5kbHlOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBDb250cm9sIHRoZSBhbW91bnQgYW5kIHR5cGVzIG9mIG5vdGlmaWNhdGlvbnMgYmVpbmcgc2VudCB0byBTbGFjay5cbiAgICogXCJXQVJOXCIgaXMgdGhlIGxlYXN0IHZlcmJvc2UsIHdoaWxlIFwiREVCVUdcIiBpcyB0aGUgbW9zdCB2ZXJib3NlLlxuICAgKlxuICAgKiBcIldBUk5cIiAtIEluY2x1ZGVzIG5vdGlmaWNhdGlvbnMgcmVsYXRlZCB0byB0aGUgZmFpbHVyZSBvZiBhIHBpcGVsaW5lIGV4ZWN1dGlvbi5cbiAgICogXCJJTkZPXCIgLSBBZGRzIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBzdWNjZXNzIG9mIGEgcGlwZWxpbmUgZXhlY3V0aW9uLlxuICAgKiBcIkRFQlVHXCIgLSBBZGRzIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBzdGFydCBhbmQgc3VwZXJzZWRpbmcgb2YgYSBwaXBlbGluZSBleGVjdXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiV0FSTlwiXG4gICAqL1xuICBub3RpZmljYXRpb25MZXZlbD86IFwiV0FSTlwiIHwgXCJJTkZPXCIgfCBcIkRFQlVHXCJcbiAgLyoqXG4gICAqIFRoZSBrZXkgb2YgdGhlIG9iamVjdCAoZS5nLiwgYG15LXByZWZpeC9teS1maWxlLmpzb25gKSB0aGF0IHRyaWdnZXJzIHRoZSBTMyBTb3VyY2UgQWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmUuXG4gICAqIEJ5IGNvbmZpZ3VyaW5nIHRoaXMgcGFyYW1ldGVyIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBvYmplY3RzIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBzZW5kcyBtZXNzYWdlcyB0byBTbGFjayBjYW4gYWNjZXNzIGluIHRoZSBhcnRpZmFjdHMgYnVja2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBMYW1iZGEgZnVuY3Rpb24gY2FuIHJlYWQgYWxsIG9iamVjdHMgaW4gdGhlIGFydGlmYWN0cyBidWNrZXQuXG4gICAqL1xuICB0cmlnZ2VyT2JqZWN0S2V5Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBTbGFjayBtZW50aW9ucyB0byBpbmNsdWRlIGluIGZhaWx1cmUgbm90aWZpY2F0aW9ucyAob25seSBvbiBuZXcgZmFpbHVyZXMsIG5vdCByZXBlYXRlZCBvbmVzKS5cbiAgICogVXNlIHNwZWNpYWwgbWVudGlvbnMgKEBoZXJlLCBAY2hhbm5lbCwgQGV2ZXJ5b25lKSBvciB1c2VyL2dyb3VwIElEcyAoZS5nLiwgJ1UxMjM0NTY3ODkwJywgJ1M5ODc2NTQzMjEwJykuXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgbWVudGlvbnM/OiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIE1vbml0b3IgYSBDb2RlUGlwZWxpbmUgYW5kIHNlbmQgbWVzc2FnZSB0byBTbGFjayBvbiBmYWlsdXJlXG4gKiBhbmQgc29tZSBzdWNjZWVkZWQgZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2xhY2tOb3RpZmljYXRpb24gZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTbGFja05vdGlmaWNhdGlvblByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFNMQUNLX1VSTF9TRUNSRVRfTkFNRTogcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LnNlY3JldE5hbWUsXG4gICAgICBOT1RJRklDQVRJT05fTEVWRUw6IHByb3BzLm5vdGlmaWNhdGlvbkxldmVsID8/IFwiV0FSTlwiLFxuICAgIH1cblxuICAgIGlmIChwcm9wcy5hY2NvdW50RnJpZW5kbHlOYW1lICE9IG51bGwpIHtcbiAgICAgIGVudmlyb25tZW50LkFDQ09VTlRfRlJJRU5ETFlfTkFNRSA9IHByb3BzLmFjY291bnRGcmllbmRseU5hbWVcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubWVudGlvbnMgIT0gbnVsbCAmJiBwcm9wcy5tZW50aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBlbnZpcm9ubWVudC5TTEFDS19NRU5USU9OUyA9IFNsYWNrTWVudGlvbi5mb3JtYXQocHJvcHMubWVudGlvbnMpXG4gICAgfVxuXG4gICAgY29uc3QgcmVwb3J0RnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL2Fzc2V0cy9waXBlbGluZS1zbGFjay1ub3RpZmljYXRpb24tbGFtYmRhXCIpLFxuICAgICAgKSxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTMsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkhhbmRsZSBDb2RlUGlwZWxpbmUgcGlwZWxpbmUgc3RhdGUgY2hhbmdlIGFuZCByZXBvcnQgdG8gU2xhY2tcIixcbiAgICB9KVxuXG4gICAgcmVwb3J0RnVuY3Rpb24uZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImNvZGVwaXBlbGluZTpMaXN0QWN0aW9uRXhlY3V0aW9uc1wiLFxuICAgICAgICAgIFwiY29kZXBpcGVsaW5lOkxpc3RQaXBlbGluZUV4ZWN1dGlvbnNcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMucGlwZWxpbmUucGlwZWxpbmVBcm5dLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LmdyYW50UmVhZChyZXBvcnRGdW5jdGlvbilcblxuICAgIHByb3BzLmFydGlmYWN0c0J1Y2tldC5ncmFudFJlYWQocmVwb3J0RnVuY3Rpb24sIHByb3BzLnRyaWdnZXJPYmplY3RLZXkpXG5cbiAgICBwcm9wcy5waXBlbGluZS5vblN0YXRlQ2hhbmdlKGBFdmVudCR7aWR9YCwge1xuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIC8vIEF2YWlsYWJsZSBzdGF0ZXM6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlcGlwZWxpbmUvbGF0ZXN0L3VzZXJndWlkZS9kZXRlY3Qtc3RhdGUtY2hhbmdlcy1jbG91ZHdhdGNoLWV2ZW50cy5odG1sXG4gICAgICAgICAgc3RhdGU6IFtcIlNVQ0NFRURFRFwiLCBcIkZBSUxFRFwiLCBcIlNUQVJURURcIiwgXCJTVVBFUlNFREVEXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldDogbmV3IGV2ZW50c1RhcmdldHMuTGFtYmRhRnVuY3Rpb24ocmVwb3J0RnVuY3Rpb24pLFxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBTbGFjayBtZW50aW9uIGZvcm1hdHRlciB3aXRoIHZhbGlkYXRpb24gcGVyIFNsYWNrIEFQSSBmb3JtYXQ6XG4gKiBodHRwczovL2RvY3Muc2xhY2suZGV2L21lc3NhZ2luZy9mb3JtYXR0aW5nLW1lc3NhZ2UtdGV4dC9cbiAqXG4gKiBTdXBwb3J0ZWQgbWVudGlvbiB0eXBlczpcbiAqIC0gU3BlY2lhbCBtZW50aW9uczogQGhlcmUsIEBjaGFubmVsLCBAZXZlcnlvbmVcbiAqIC0gVXNlciBJRHM6IFUgb3IgVyBwcmVmaXggKyBhbHBoYW51bWVyaWMgKGUuZy4sIFUwMjRCRTdMSCwgVzAyNEJFN0xIKVxuICogLSBVc2VyIGdyb3VwIElEczogUyBwcmVmaXggKyBhbHBoYW51bWVyaWMgKGUuZy4sIFNBWjk0R0RCOClcbiAqXG4gKiBVc2FnZTpcbiAqICAgU2xhY2tNZW50aW9uLmZvcm1hdChbJ0BoZXJlJywgJ1UwMjRCRTdMSCcsICdTQVo5NEdEQjgnXSlcbiAqL1xuZXhwb3J0IGNsYXNzIFNsYWNrTWVudGlvbiB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNQRUNJQUxfTUVOVElPTlMgPSBbXG4gICAgXCJAaGVyZVwiLFxuICAgIFwiQGNoYW5uZWxcIixcbiAgICBcIkBldmVyeW9uZVwiLFxuICBdIGFzIGNvbnN0XG5cbiAgLy8gTm90ZTogU2xhY2sgZG9lc24ndCBzcGVjaWZ5IGxlbmd0aCBjb25zdHJhaW50cyBmb3IgdGhlc2UgaWRlbnRpZmllcnMsIGxlYXZpbmcgdGhlbSB1bmJvdW5kZWRcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVNFUl9QQVRURVJOID0gL15bVVddW0EtWjAtOV0rJC9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVNFUl9HUk9VUF9QQVRURVJOID0gL15TW0EtWjAtOV0rJC9cblxuICAvKipcbiAgICogRm9ybWF0IGFuIGFycmF5IG9mIG1lbnRpb25zIGludG8gYSBzaW5nbGUgU2xhY2stZm9ybWF0dGVkIHN0cmluZy5cbiAgICogQHBhcmFtIG1lbnRpb25zIEFycmF5IG9mIG1lbnRpb24gc3RyaW5nc1xuICAgKi9cbiAgc3RhdGljIGZvcm1hdChtZW50aW9uczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBtZW50aW9ucy5tYXAoKG0pID0+IFNsYWNrTWVudGlvbi5mb3JtYXRNZW50aW9uKG0pKS5qb2luKFwiIFwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBhIG1lbnRpb24gc3RyaW5nIGZvciBTbGFjayBBUEkgbWVzc2FnZSBmb3JtYXQuXG4gICAqIFZhbGlkYXRlcyBmb3JtYXQgYW5kIGNvbnZlcnRzIHRvIHByb3BlciBTbGFjayBtYXJrdXA6XG4gICAqICAgJ0BoZXJlJyAtPiAnPCFoZXJlPidcbiAgICogICAnVTEyMzQ1Njc4OTAnIC0+ICc8QFUxMjM0NTY3ODkwPidcbiAgICogICAnUzEyMzQ1Njc4OTAnIC0+ICc8IXN1YnRlYW1eUzEyMzQ1Njc4OTA+J1xuICAgKlxuICAgKiBAcGFyYW0gbWVudGlvbiBNZW50aW9uIHN0cmluZyAoZS5nLiwgJ0BoZXJlJywgJ1UxMjM0NTY3ODkwJywgJ1MxMjM0NTY3ODkwJylcbiAgICogQHRocm93cyBpZiBtZW50aW9uIGZvcm1hdCBpcyBpbnZhbGlkXG4gICAqL1xuICBzdGF0aWMgZm9ybWF0TWVudGlvbihtZW50aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChtZW50aW9uLnN0YXJ0c1dpdGgoXCJAXCIpKSB7XG4gICAgICByZXR1cm4gU2xhY2tNZW50aW9uLmZvcm1hdFNwZWNpYWxNZW50aW9uKG1lbnRpb24pXG4gICAgfVxuICAgIGlmIChtZW50aW9uLnN0YXJ0c1dpdGgoXCJVXCIpIHx8IG1lbnRpb24uc3RhcnRzV2l0aChcIldcIikpIHtcbiAgICAgIHJldHVybiBTbGFja01lbnRpb24uZm9ybWF0VXNlcihtZW50aW9uKVxuICAgIH1cbiAgICBpZiAobWVudGlvbi5zdGFydHNXaXRoKFwiU1wiKSkge1xuICAgICAgcmV0dXJuIFNsYWNrTWVudGlvbi5mb3JtYXRVc2VyR3JvdXAobWVudGlvbilcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIFNsYWNrIG1lbnRpb24gZm9ybWF0OiAke21lbnRpb259YClcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdFNwZWNpYWxNZW50aW9uKG1lbnRpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgIVNsYWNrTWVudGlvbi5TUEVDSUFMX01FTlRJT05TLmluY2x1ZGVzKFxuICAgICAgICBtZW50aW9uIGFzIFwiQGhlcmVcIiB8IFwiQGNoYW5uZWxcIiB8IFwiQGV2ZXJ5b25lXCIsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3BlY2lhbCBtZW50aW9uOiAke21lbnRpb259YClcbiAgICB9XG4gICAgcmV0dXJuIGA8ISR7bWVudGlvbi5zdWJzdHJpbmcoMSl9PmBcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdFVzZXIobWVudGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIVNsYWNrTWVudGlvbi5VU0VSX1BBVFRFUk4udGVzdChtZW50aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVzZXIgSUQ6ICR7bWVudGlvbn1gKVxuICAgIH1cbiAgICByZXR1cm4gYDxAJHttZW50aW9ufT5gXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmb3JtYXRVc2VyR3JvdXAobWVudGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIVNsYWNrTWVudGlvbi5VU0VSX0dST1VQX1BBVFRFUk4udGVzdChtZW50aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVzZXIgZ3JvdXAgSUQ6ICR7bWVudGlvbn1gKVxuICAgIH1cbiAgICByZXR1cm4gYDwhc3VidGVhbV4ke21lbnRpb259PmBcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.19.0",
|
|
4
4
|
"description": "CDK library for Liflig",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -40,31 +40,31 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@aws-cdk/assert": "2.68.0",
|
|
43
|
-
"@aws-sdk/client-cloudwatch-logs": "3.
|
|
44
|
-
"@aws-sdk/client-codebuild": "3.
|
|
45
|
-
"@aws-sdk/client-codepipeline": "3.
|
|
46
|
-
"@aws-sdk/client-ecs": "3.
|
|
47
|
-
"@aws-sdk/client-s3": "3.
|
|
48
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
49
|
-
"@aws-sdk/client-ses": "3.
|
|
50
|
-
"@aws-sdk/client-sesv2": "3.
|
|
51
|
-
"@aws-sdk/client-sfn": "3.
|
|
52
|
-
"@aws-sdk/client-ssm": "3.
|
|
53
|
-
"@aws-sdk/lib-storage": "3.
|
|
54
|
-
"@biomejs/biome": "2.3.
|
|
55
|
-
"@commitlint/cli": "20.
|
|
56
|
-
"@commitlint/config-conventional": "20.
|
|
43
|
+
"@aws-sdk/client-cloudwatch-logs": "3.958.0",
|
|
44
|
+
"@aws-sdk/client-codebuild": "3.958.0",
|
|
45
|
+
"@aws-sdk/client-codepipeline": "3.958.0",
|
|
46
|
+
"@aws-sdk/client-ecs": "3.958.0",
|
|
47
|
+
"@aws-sdk/client-s3": "3.958.0",
|
|
48
|
+
"@aws-sdk/client-secrets-manager": "3.958.0",
|
|
49
|
+
"@aws-sdk/client-ses": "3.958.0",
|
|
50
|
+
"@aws-sdk/client-sesv2": "3.958.0",
|
|
51
|
+
"@aws-sdk/client-sfn": "3.958.0",
|
|
52
|
+
"@aws-sdk/client-ssm": "3.958.0",
|
|
53
|
+
"@aws-sdk/lib-storage": "3.958.0",
|
|
54
|
+
"@biomejs/biome": "2.3.10",
|
|
55
|
+
"@commitlint/cli": "20.3.0",
|
|
56
|
+
"@commitlint/config-conventional": "20.3.0",
|
|
57
57
|
"@types/aws-lambda": "8.10.159",
|
|
58
58
|
"@types/jest": "30.0.0",
|
|
59
|
-
"@types/node": "24.10.
|
|
60
|
-
"aws-cdk": "2.
|
|
61
|
-
"aws-cdk-lib": "2.
|
|
62
|
-
"constructs": "10.4.
|
|
63
|
-
"esbuild": "0.27.
|
|
59
|
+
"@types/node": "24.10.4",
|
|
60
|
+
"aws-cdk": "2.1100.1",
|
|
61
|
+
"aws-cdk-lib": "2.232.2",
|
|
62
|
+
"constructs": "10.4.4",
|
|
63
|
+
"esbuild": "0.27.2",
|
|
64
64
|
"jest": "30.2.0",
|
|
65
65
|
"jest-cdk-snapshot": "2.3.6",
|
|
66
|
-
"lefthook": "2.0.
|
|
67
|
-
"npm-check-updates": "19.
|
|
66
|
+
"lefthook": "2.0.13",
|
|
67
|
+
"npm-check-updates": "19.2.0",
|
|
68
68
|
"semantic-release": "25.0.2",
|
|
69
69
|
"ts-jest": "29.4.6",
|
|
70
70
|
"tsx": "4.21.0",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"typescript": "5.9.3"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@capraconsulting/webapp-deploy-lambda": "2.5.
|
|
75
|
+
"@capraconsulting/webapp-deploy-lambda": "2.5.3",
|
|
76
76
|
"aws-jwt-verify": "5.1.1"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|