image-scanner-with-trivy 0.0.5

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/lib/index.js ADDED
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ImageScannerWithTrivy = exports.ImageConfigScanners = exports.Scanners = exports.Severity = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path_1 = require("path");
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
8
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
9
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
10
+ const constructs_1 = require("constructs");
11
+ /**
12
+ * Enum for Severity Selection
13
+ *
14
+ * @see https://aquasecurity.github.io/trivy/latest/docs/scanner/vulnerability/#severity-selection
15
+ */
16
+ var Severity;
17
+ (function (Severity) {
18
+ Severity["UNKNOWN"] = "UNKNOWN";
19
+ Severity["LOW"] = "LOW";
20
+ Severity["MEDIUM"] = "MEDIUM";
21
+ Severity["HIGH"] = "HIGH";
22
+ Severity["CRITICAL"] = "CRITICAL";
23
+ })(Severity = exports.Severity || (exports.Severity = {}));
24
+ /**
25
+ * Enum for Scanners
26
+ *
27
+ * @see https://aquasecurity.github.io/trivy/latest/docs/configuration/others/#enabledisable-scanners
28
+ */
29
+ var Scanners;
30
+ (function (Scanners) {
31
+ Scanners["VULN"] = "vuln";
32
+ Scanners["CONFIG"] = "config";
33
+ Scanners["SECRET"] = "secret";
34
+ Scanners["LICENSE"] = "license";
35
+ })(Scanners = exports.Scanners || (exports.Scanners = {}));
36
+ /**
37
+ * Enum for ImageConfigScanners
38
+ *
39
+ * @see https://aquasecurity.github.io/trivy/latest/docs/target/container_image/#container-image-metadata
40
+ */
41
+ var ImageConfigScanners;
42
+ (function (ImageConfigScanners) {
43
+ ImageConfigScanners["CONFIG"] = "config";
44
+ ImageConfigScanners["SECRET"] = "secret";
45
+ })(ImageConfigScanners = exports.ImageConfigScanners || (exports.ImageConfigScanners = {}));
46
+ // Maximum memory size for default AWS account without quota limit increase
47
+ const DEFAULT_MEMORY_SIZE = 3008;
48
+ class ImageScannerWithTrivy extends constructs_1.Construct {
49
+ constructor(scope, id, props) {
50
+ super(scope, id);
51
+ if (props.memorySize) {
52
+ if (props.memorySize < 3008 || props.memorySize > 10240) {
53
+ throw new Error('You can specify between `3008` and `10240` for `memorySize`.');
54
+ }
55
+ }
56
+ const customResourceLambda = new aws_lambda_1.SingletonFunction(this, 'CustomResourceLambda', {
57
+ uuid: '470b6343-d267-f753-226c-1e99f09f319a',
58
+ lambdaPurpose: 'Custom::ImageScannerWithTrivyCustomResourceLambda',
59
+ runtime: aws_lambda_1.Runtime.FROM_IMAGE,
60
+ handler: aws_lambda_1.Handler.FROM_IMAGE,
61
+ code: aws_lambda_1.AssetCode.fromAssetImage((0, path_1.join)(__dirname, '../assets/lambda')),
62
+ architecture: aws_lambda_1.Architecture.ARM_64,
63
+ timeout: aws_cdk_lib_1.Duration.seconds(900),
64
+ retryAttempts: 0,
65
+ memorySize: props.memorySize ?? DEFAULT_MEMORY_SIZE,
66
+ });
67
+ props.repository.grantPull(customResourceLambda);
68
+ const imageScannerProvider = new custom_resources_1.Provider(this, 'Provider', {
69
+ onEventHandler: customResourceLambda,
70
+ });
71
+ const imageScannerProperties = {};
72
+ imageScannerProperties.addr = this.node.addr;
73
+ imageScannerProperties.imageUri = props.imageUri;
74
+ imageScannerProperties.ignoreUnfixed = props.ignoreUnfixed ?? false;
75
+ imageScannerProperties.severity = props.severity ?? [Severity.CRITICAL];
76
+ imageScannerProperties.scanners = props.scanners ?? [];
77
+ imageScannerProperties.imageConfigScanners = props.imageConfigScanners ?? [];
78
+ imageScannerProperties.exitCode = props.exitCode ?? 1;
79
+ imageScannerProperties.exitOnEol = props.exitOnEol ?? 1;
80
+ imageScannerProperties.trivyIgnore = props.trivyIgnore ?? [];
81
+ imageScannerProperties.platform = props.platform ?? '';
82
+ new aws_cdk_lib_1.CustomResource(this, 'Default', {
83
+ resourceType: 'Custom::ImageScannerWithTrivy',
84
+ properties: imageScannerProperties,
85
+ serviceToken: imageScannerProvider.serviceToken,
86
+ });
87
+ }
88
+ }
89
+ _a = JSII_RTTI_SYMBOL_1;
90
+ ImageScannerWithTrivy[_a] = { fqn: "image-scanner-with-trivy.ImageScannerWithTrivy", version: "0.0.5" };
91
+ exports.ImageScannerWithTrivy = ImageScannerWithTrivy;
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsNkNBQXVEO0FBRXZELHVEQU1nQztBQUNoQyxtRUFBd0Q7QUFDeEQsMkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsK0JBQW1CLENBQUE7SUFDbkIsdUJBQVcsQ0FBQTtJQUNYLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixpQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFNbkI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxRQUtYO0FBTEQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiwrQkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUc5QjtBQWtLRCwyRUFBMkU7QUFDM0UsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFakMsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUU7Z0JBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQzthQUNqRjtTQUNGO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDhCQUFpQixDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUMvRSxJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLGFBQWEsRUFBRSxtREFBbUQ7WUFDbEUsT0FBTyxFQUFFLG9CQUFPLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxVQUFVO1lBQzNCLElBQUksRUFBRSxzQkFBUyxDQUFDLGNBQWMsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUNuRSxZQUFZLEVBQUUseUJBQVksQ0FBQyxNQUFNO1lBQ2pDLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDOUIsYUFBYSxFQUFFLENBQUM7WUFDaEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksbUJBQW1CO1NBQ3BELENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMxRCxjQUFjLEVBQUUsb0JBQW9CO1NBQ3JDLENBQUMsQ0FBQztRQUVILE1BQU0sc0JBQXNCLEdBQTRELEVBQUUsQ0FBQztRQUMzRixzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0Msc0JBQXNCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDakQsc0JBQXNCLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDO1FBQ3BFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN2RCxzQkFBc0IsQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1FBQzdFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUN0RCxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDeEQsc0JBQXNCLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdELHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV2RCxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNsQyxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFVBQVUsRUFBRSxzQkFBc0I7WUFDbEMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFlBQVk7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztBQTVDVSxzREFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3InO1xuaW1wb3J0IHtcbiAgQXJjaGl0ZWN0dXJlLFxuICBBc3NldENvZGUsXG4gIEhhbmRsZXIsXG4gIFJ1bnRpbWUsXG4gIFNpbmdsZXRvbkZ1bmN0aW9uLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBFbnVtIGZvciBTZXZlcml0eSBTZWxlY3Rpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9zY2FubmVyL3Z1bG5lcmFiaWxpdHkvI3NldmVyaXR5LXNlbGVjdGlvblxuICovXG5leHBvcnQgZW51bSBTZXZlcml0eSB7XG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG4gIExPVyA9ICdMT1cnLFxuICBNRURJVU0gPSAnTUVESVVNJyxcbiAgSElHSCA9ICdISUdIJyxcbiAgQ1JJVElDQUwgPSAnQ1JJVElDQUwnLFxufVxuXG4vKipcbiAqIEVudW0gZm9yIFNjYW5uZXJzXG4gKlxuICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2VuYWJsZWRpc2FibGUtc2Nhbm5lcnNcbiAqL1xuZXhwb3J0IGVudW0gU2Nhbm5lcnMge1xuICBWVUxOID0gJ3Z1bG4nLFxuICBDT05GSUcgPSAnY29uZmlnJyxcbiAgU0VDUkVUID0gJ3NlY3JldCcsXG4gIExJQ0VOU0UgPSAnbGljZW5zZScsXG59XG5cbi8qKlxuICogRW51bSBmb3IgSW1hZ2VDb25maWdTY2FubmVyc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9hcXVhc2VjdXJpdHkuZ2l0aHViLmlvL3RyaXZ5L2xhdGVzdC9kb2NzL3RhcmdldC9jb250YWluZXJfaW1hZ2UvI2NvbnRhaW5lci1pbWFnZS1tZXRhZGF0YVxuICovXG5leHBvcnQgZW51bSBJbWFnZUNvbmZpZ1NjYW5uZXJzIHtcbiAgQ09ORklHID0gJ2NvbmZpZycsXG4gIFNFQ1JFVCA9ICdzZWNyZXQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlU2Nhbm5lcldpdGhUcml2eVByb3BzIHtcbiAgLyoqXG4gICAqIEltYWdlIFVSSSBmb3Igc2NhbiB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IGluY2x1ZGluZyB0aGUgaW1hZ2UgVVJJIGZvciBzY2FuIHRhcmdldC5cbiAgICpcbiAgICogQmVjYXVzZSBvZiBncmFudFB1bGwgdG8gQ3VzdG9tUmVzb3VyY2VMYW1iZGEuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5OiBJUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogVGhlIHVuZml4ZWQvdW5maXhhYmxlIHZ1bG5lcmFiaWxpdGllcyBtZWFuIHRoYXQgdGhlIHBhdGNoIGhhcyBub3QgeWV0IGJlZW4gcHJvdmlkZWQgb24gdGhlaXIgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBUbyBoaWRlIHVuZml4ZWQvdW5maXhhYmxlIHZ1bG5lcmFiaWxpdGllcywgeW91IGNhbiB1c2UgdGhlIGAtLWlnbm9yZS11bmZpeGVkYCBmbGFnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9zY2FubmVyL3Z1bG5lcmFiaWxpdHkvI3VuZml4ZWQtdnVsbmVyYWJpbGl0aWVzXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVVbmZpeGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgU2VsZWN0aW9uXG4gICAqXG4gICAqIFRoZSBzZXZlcml0eSBpcyB0YWtlbiBmcm9tIHRoZSBzZWxlY3RlZCBkYXRhIHNvdXJjZSBzaW5jZSB0aGUgc2V2ZXJpdHkgZnJvbSB2ZW5kb3JzIGlzIG1vcmUgYWNjdXJhdGUuXG4gICAqIFVzaW5nIENWRS0yMDIzLTA0NjQgYXMgYW4gZXhhbXBsZSwgd2hpbGUgaXQgaXMgcmF0ZWQgYXMgXCJISUdIXCIgaW4gTlZELCBSZWQgSGF0IGhhcyBtYXJrZWQgaXRzICdJbXBhY3QnIGFzIFwiTG93XCIuIEFzIGEgcmVzdWx0LCBUcml2eSB3aWxsIGRpc3BsYXkgaXQgYXMgXCJMb3dcIi5cbiAgICpcbiAgICogVGhlIHNldmVyaXR5IGRlcGVuZHMgb24gdGhlIGNvbXBpbGUgb3B0aW9uLCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBldGMuIE5WRCBkb2Vzbid0IGtub3cgaG93IHRoZSB2ZW5kb3IgZGlzdHJpYnV0ZXMgdGhlIHNvZnR3YXJlLlxuICAgKiBSZWQgSGF0IGV2YWx1YXRlcyB0aGUgc2V2ZXJpdHkgbW9yZSBhY2N1cmF0ZWx5LiBUaGF0J3Mgd2h5IFRyaXZ5IHByZWZlcnMgdmVuZG9yIHNjb3JlcyBvdmVyIE5WRC5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gYENSSVRJQ0FMYCBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELCBidXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiBUcml2eSBpcyBcIkNSSVRJQ0FMLEhJR0gsTUVESVVNLExPVyxVTktOT1dOXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtTZXZlcml0eS5DUklUSUNBTF1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3Mvc2Nhbm5lci92dWxuZXJhYmlsaXR5LyNzZXZlcml0eS1zZWxlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHNldmVyaXR5PzogU2V2ZXJpdHlbXTtcblxuICAvKipcbiAgICogRW5hYmxlL0Rpc2FibGUgU2Nhbm5lcnNcbiAgICpcbiAgICogWW91IGNhbiBlbmFibGUvZGlzYWJsZSBzY2FubmVycyB3aXRoIHRoZSBgc2Nhbm5lcnNgLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgY29udGFpbmVyIGltYWdlIHNjYW5uaW5nIGVuYWJsZXMgdnVsbmVyYWJpbGl0eSAoVlVMTikgYW5kIHNlY3JldCBzY2FubmVycyAoU0VDUkVUKSBieSBkZWZhdWx0LlxuICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBzZWNyZXQgc2Nhbm5pbmcsIGl0IGNhbiBiZSBkaXNhYmxlZCBieSBzcGVjaWZ5aW5nIFNjYW5uZXJzLlZVTE4gb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgW1NlY3VyaXR5LlZVTE4sU2Nhbm5lcnMuU0VDUkVUXVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9jb25maWd1cmF0aW9uL290aGVycy8jZW5hYmxlZGlzYWJsZS1zY2FubmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc2Nhbm5lcnM/OiBTY2FubmVyc1tdO1xuXG4gIC8qKlxuICAgKiBFbnVtIGZvciBJbWFnZUNvbmZpZ1NjYW5uZXJzXG4gICAqXG4gICAqIENvbnRhaW5lciBpbWFnZXMgaGF2ZSBjb25maWd1cmF0aW9uLiBkb2NrZXIgaW5zcGVjdCBhbmQgYGRvY2tlciBoaXN0b3J5YCBzaG93IHRoZSBpbmZvcm1hdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqIFRyaXZ5IHNjYW5zIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbnRhaW5lciBpbWFnZXMgZm9yXG4gICAqXG4gICAqIC0gTWlzY29uZmlndXJhdGlvbnNcbiAgICogLSBTZWNyZXRzXG4gICAqXG4gICAqIFRoZXkgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFlvdSBjYW4gZW5hYmxlIHRoZW0gd2l0aCBgaW1hZ2VDb25maWdTY2FubmVyc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hcXVhc2VjdXJpdHkuZ2l0aHViLmlvL3RyaXZ5L2xhdGVzdC9kb2NzL3RhcmdldC9jb250YWluZXJfaW1hZ2UvI2NvbnRhaW5lci1pbWFnZS1tZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VDb25maWdTY2FubmVycz86IEltYWdlQ29uZmlnU2Nhbm5lcnNbXTtcblxuICAvKipcbiAgICogRXhpdCBDb2RlXG4gICAqXG4gICAqIFVzZSB0aGUgYGV4aXRDb2RlYCBvcHRpb24gaWYgeW91IHdhbnQgdG8gZXhpdCB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgMCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gZXhpdCBldmVuIHdoZW4gdnVsbmVyYWJpbGl0aWVzIGFyZSBkZXRlY3RlZC5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gMSBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELiBJbiB0aGUgb3JpZ2luYWwgdHJpdnksIGl0IGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2V4aXQtY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpdENvZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEV4aXQgb24gRU9MXG4gICAqXG4gICAqIFNvbWV0aW1lcyB5b3UgbWF5IHN1cnByaXNpbmdseSBnZXQgMCB2dWxuZXJhYmlsaXRpZXMgaW4gYW4gb2xkIGltYWdlOlxuICAgKiAgLSBFbmFibGluZyAtLWlnbm9yZS11bmZpeGVkIG9wdGlvbiB3aGlsZSBhbGwgcGFja2FnZXMgaGF2ZSBubyBmaXhlZCB2ZXJzaW9ucy5cbiAgICogIC0gU2Nhbm5pbmcgYSByYXRoZXIgb3V0ZGF0ZWQgT1MgKGUuZy4gVWJ1bnR1IDEwLjA0KS5cbiAgICpcbiAgICogQW4gT1MgYXQgdGhlIGVuZCBvZiBzZXJ2aWNlL2xpZmUgKEVPTCkgdXN1YWxseSBnZXRzIGludG8gdGhpcyBzaXR1YXRpb24sIHdoaWNoIGlzIGRlZmluaXRlbHkgZnVsbCBvZiB2dWxuZXJhYmlsaXRpZXMuXG4gICAqIGBleGl0T25Fb2xgIGNhbiBmYWlsIHNjYW5uaW5nIG9uIEVPTCBPUyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gMSBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELiBJbiB0aGUgb3JpZ2luYWwgdHJpdnksIGl0IGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2V4aXQtb24tZW9sXG4gICAqL1xuICByZWFkb25seSBleGl0T25Fb2w/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ5IEZpbmRpbmcgSURzXG4gICAqXG4gICAqIFRoZSBpZ25vcmUgcnVsZXMgd3JpdHRlbiB0byB0aGUgLnRyaXZ5aWdub3JlIGluIHRyaXZ5LlxuICAgKiBQdXQgZWFjaCBsaW5lIHlvdSB3cml0ZSBpbiB0aGUgZmlsZSBpbnRvIG9uZSBlbGVtZW50IG9mIHRoZSBhcnJheS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogICAgICQgY2F0IC50cml2eWlnbm9yZVxuICAgKiAgICAgIyBBY2NlcHQgdGhlIHJpc2tcbiAgICogICAgIENWRS0yMDE4LTE0NjE4XG4gICAqXG4gICAqICAgICAjIEFjY2VwdCB0aGUgcmlzayB1bnRpbCAyMDIzLTAxLTAxXG4gICAqICAgICBDVkUtMjAxOS0xNDY5NyBleHA6MjAyMy0wMS0wMVxuICAgKlxuICAgKiAgICAgIyBObyBpbXBhY3QgaW4gb3VyIHNldHRpbmdzXG4gICAqICAgICBDVkUtMjAxOS0xNTQzXG4gICAqXG4gICAqICAgICAjIElnbm9yZSBtaXNjb25maWd1cmF0aW9uc1xuICAgKiAgICAgQVZELURTLTAwMDJcbiAgICpcbiAgICogICAgICMgSWdub3JlIHNlY3JldHNcbiAgICogICAgIGdlbmVyaWMtdW53YW50ZWQtcnVsZVxuICAgKiAgICAgYXdzLWFjY291bnQtaWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9maWx0ZXJpbmcvI3RyaXZ5aWdub3JlXG4gICAqL1xuICByZWFkb25seSB0cml2eUlnbm9yZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gUmVzb3VyY2UgTWVtb3J5IFNpemUgKE1CKVxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYmV0d2VlbiBgMzAwOGAgYW5kIGAxMDI0MGAuXG4gICAqXG4gICAqIElmIHRoaXMgQ29uc3RydWN0IGV4ZWN1dGlvbiB0ZXJtaW5hdGVzIGFibm9ybWFsbHkgZHVlIHRvIFNJR0tJTEwsIHRyeSBhIGxhcmdlciBzaXplLlxuICAgKlxuICAgKiBEZWZhdWx0IHZhbHVlIChgMzAwOGAgTUIpIGlzIE1heGltdW0gbWVtb3J5IHNpemUgZm9yIGRlZmF1bHQgQVdTIGFjY291bnQgd2l0aG91dCBxdW90YSBsaW1pdCBpbmNyZWFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwOFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogU2NhbiBJbWFnZSBvbiBhIHNwZWNpZmljIEFyY2hpdGVjdHVyZSBhbmQgT1NcbiAgICpcbiAgICogQnkgZGVmYXVsdCwgVHJpdnkgbG9hZHMgYW4gaW1hZ2Ugb24gYSBgbGludXgvYW1kNjRgIG1hY2hpbmUuXG4gICAqXG4gICAqIFRvIGN1c3RvbWl6ZSB0aGlzLCBwYXNzIGEgYHBsYXRmb3JtYCBhcmd1bWVudCBpbiB0aGUgZm9ybWF0IE9TL0FyY2hpdGVjdHVyZSBmb3IgdGhlIGltYWdlLCBzdWNoIGFzIGBsaW51eC9hcm02NGBcbiAgICpcbiAgICogQGRlZmF1bHQgLVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG59XG5cbi8vIE1heGltdW0gbWVtb3J5IHNpemUgZm9yIGRlZmF1bHQgQVdTIGFjY291bnQgd2l0aG91dCBxdW90YSBsaW1pdCBpbmNyZWFzZVxuY29uc3QgREVGQVVMVF9NRU1PUllfU0laRSA9IDMwMDg7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVNjYW5uZXJXaXRoVHJpdnkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW1hZ2VTY2FubmVyV2l0aFRyaXZ5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLm1lbW9yeVNpemUpIHtcbiAgICAgIGlmIChwcm9wcy5tZW1vcnlTaXplIDwgMzAwOCB8fCBwcm9wcy5tZW1vcnlTaXplID4gMTAyNDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2FuIHNwZWNpZnkgYmV0d2VlbiBgMzAwOGAgYW5kIGAxMDI0MGAgZm9yIGBtZW1vcnlTaXplYC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjdXN0b21SZXNvdXJjZUxhbWJkYSA9IG5ldyBTaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnQ3VzdG9tUmVzb3VyY2VMYW1iZGEnLCB7XG4gICAgICB1dWlkOiAnNDcwYjYzNDMtZDI2Ny1mNzUzLTIyNmMtMWU5OWYwOWYzMTlhJyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDdXN0b206OkltYWdlU2Nhbm5lcldpdGhUcml2eUN1c3RvbVJlc291cmNlTGFtYmRhJyxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuRlJPTV9JTUFHRSxcbiAgICAgIGhhbmRsZXI6IEhhbmRsZXIuRlJPTV9JTUFHRSxcbiAgICAgIGNvZGU6IEFzc2V0Q29kZS5mcm9tQXNzZXRJbWFnZShqb2luKF9fZGlybmFtZSwgJy4uL2Fzc2V0cy9sYW1iZGEnKSksXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDkwMCksXG4gICAgICByZXRyeUF0dGVtcHRzOiAwLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSA/PyBERUZBVUxUX01FTU9SWV9TSVpFLFxuICAgIH0pO1xuICAgIHByb3BzLnJlcG9zaXRvcnkuZ3JhbnRQdWxsKGN1c3RvbVJlc291cmNlTGFtYmRhKTtcblxuICAgIGNvbnN0IGltYWdlU2Nhbm5lclByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsICdQcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBjdXN0b21SZXNvdXJjZUxhbWJkYSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlU2Nhbm5lclByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFuIHwgbnVtYmVyIH0gPSB7fTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmFkZHIgPSB0aGlzLm5vZGUuYWRkcjtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmltYWdlVXJpID0gcHJvcHMuaW1hZ2VVcmk7XG4gICAgaW1hZ2VTY2FubmVyUHJvcGVydGllcy5pZ25vcmVVbmZpeGVkID0gcHJvcHMuaWdub3JlVW5maXhlZCA/PyBmYWxzZTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLnNldmVyaXR5ID0gcHJvcHMuc2V2ZXJpdHkgPz8gW1NldmVyaXR5LkNSSVRJQ0FMXTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLnNjYW5uZXJzID0gcHJvcHMuc2Nhbm5lcnMgPz8gW107XG4gICAgaW1hZ2VTY2FubmVyUHJvcGVydGllcy5pbWFnZUNvbmZpZ1NjYW5uZXJzID0gcHJvcHMuaW1hZ2VDb25maWdTY2FubmVycyA/PyBbXTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmV4aXRDb2RlID0gcHJvcHMuZXhpdENvZGUgPz8gMTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmV4aXRPbkVvbCA9IHByb3BzLmV4aXRPbkVvbCA/PyAxO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMudHJpdnlJZ25vcmUgPSBwcm9wcy50cml2eUlnbm9yZSA/PyBbXTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLnBsYXRmb3JtID0gcHJvcHMucGxhdGZvcm0gPz8gJyc7XG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkltYWdlU2Nhbm5lcldpdGhUcml2eScsXG4gICAgICBwcm9wZXJ0aWVzOiBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLFxuICAgICAgc2VydmljZVRva2VuOiBpbWFnZVNjYW5uZXJQcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/lib/integ.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/lib/integ.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_ecr_assets_1 = require("aws-cdk-lib/aws-ecr-assets");
6
+ const _1 = require(".");
7
+ const app = new aws_cdk_lib_1.App();
8
+ const stack = new aws_cdk_lib_1.Stack(app, 'ImageScannerWithTrivyStack');
9
+ const image = new aws_ecr_assets_1.DockerImageAsset(stack, 'DockerImage', {
10
+ directory: (0, path_1.resolve)(__dirname, '../assets/lambda'),
11
+ platform: aws_ecr_assets_1.Platform.LINUX_ARM64,
12
+ });
13
+ new _1.ImageScannerWithTrivy(stack, 'ImageScannerWithTrivy4', {
14
+ imageUri: image.imageUri,
15
+ repository: image.repository,
16
+ ignoreUnfixed: false,
17
+ severity: [_1.Severity.CRITICAL],
18
+ scanners: [_1.Scanners.VULN, _1.Scanners.SECRET],
19
+ exitCode: 1,
20
+ exitOnEol: 1,
21
+ trivyIgnore: ['CVE-2023-37920', 'CVE-2019-14697 exp:2023-01-01'],
22
+ memorySize: 3008,
23
+ platform: 'linux/arm64',
24
+ });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBK0I7QUFDL0IsNkNBQXlDO0FBQ3pDLCtEQUF3RTtBQUN4RSx3QkFBOEQ7QUFFOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0FBRTNELE1BQU0sS0FBSyxHQUFHLElBQUksaUNBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtJQUN2RCxTQUFTLEVBQUUsSUFBQSxjQUFPLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDO0lBQ2pELFFBQVEsRUFBRSx5QkFBUSxDQUFDLFdBQVc7Q0FDL0IsQ0FBQyxDQUFDO0FBRUgsSUFBSSx3QkFBcUIsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7SUFDekQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO0lBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtJQUM1QixhQUFhLEVBQUUsS0FBSztJQUNwQixRQUFRLEVBQUUsQ0FBQyxXQUFRLENBQUMsUUFBUSxDQUFDO0lBQzdCLFFBQVEsRUFBRSxDQUFDLFdBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBUSxDQUFDLE1BQU0sQ0FBQztJQUMxQyxRQUFRLEVBQUUsQ0FBQztJQUNYLFNBQVMsRUFBRSxDQUFDO0lBQ1osV0FBVyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsK0JBQStCLENBQUM7SUFDaEUsVUFBVSxFQUFFLElBQUk7SUFDaEIsUUFBUSxFQUFFLGFBQWE7Q0FDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERvY2tlckltYWdlQXNzZXQsIFBsYXRmb3JtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgSW1hZ2VTY2FubmVyV2l0aFRyaXZ5LCBTY2FubmVycywgU2V2ZXJpdHkgfSBmcm9tICcuJztcblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCAnSW1hZ2VTY2FubmVyV2l0aFRyaXZ5U3RhY2snKTtcblxuY29uc3QgaW1hZ2UgPSBuZXcgRG9ja2VySW1hZ2VBc3NldChzdGFjaywgJ0RvY2tlckltYWdlJywge1xuICBkaXJlY3Rvcnk6IHJlc29sdmUoX19kaXJuYW1lLCAnLi4vYXNzZXRzL2xhbWJkYScpLFxuICBwbGF0Zm9ybTogUGxhdGZvcm0uTElOVVhfQVJNNjQsXG59KTtcblxubmV3IEltYWdlU2Nhbm5lcldpdGhUcml2eShzdGFjaywgJ0ltYWdlU2Nhbm5lcldpdGhUcml2eTQnLCB7XG4gIGltYWdlVXJpOiBpbWFnZS5pbWFnZVVyaSxcbiAgcmVwb3NpdG9yeTogaW1hZ2UucmVwb3NpdG9yeSxcbiAgaWdub3JlVW5maXhlZDogZmFsc2UsXG4gIHNldmVyaXR5OiBbU2V2ZXJpdHkuQ1JJVElDQUxdLFxuICBzY2FubmVyczogW1NjYW5uZXJzLlZVTE4sIFNjYW5uZXJzLlNFQ1JFVF0sXG4gIGV4aXRDb2RlOiAxLFxuICBleGl0T25Fb2w6IDEsXG4gIHRyaXZ5SWdub3JlOiBbJ0NWRS0yMDIzLTM3OTIwJywgJ0NWRS0yMDE5LTE0Njk3IGV4cDoyMDIzLTAxLTAxJ10sXG4gIG1lbW9yeVNpemU6IDMwMDgsXG4gIHBsYXRmb3JtOiAnbGludXgvYXJtNjQnLFxufSk7XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "image-scanner-with-trivy",
3
+ "repository": {
4
+ "type": "git",
5
+ "url": "https://github.com/go-to-k/image-scanner-with-trivy"
6
+ },
7
+ "bin": {
8
+ "0": "./assets"
9
+ },
10
+ "scripts": {
11
+ "build": "npx projen build",
12
+ "bump": "npx projen bump",
13
+ "clobber": "npx projen clobber",
14
+ "compat": "npx projen compat",
15
+ "compile": "npx projen compile",
16
+ "default": "npx projen default",
17
+ "docgen": "npx projen docgen",
18
+ "eject": "npx projen eject",
19
+ "eslint": "npx projen eslint",
20
+ "package": "npx projen package",
21
+ "package-all": "npx projen package-all",
22
+ "package:js": "npx projen package:js",
23
+ "post-compile": "npx projen post-compile",
24
+ "post-upgrade": "npx projen post-upgrade",
25
+ "pre-compile": "npx projen pre-compile",
26
+ "release": "npx projen release",
27
+ "test": "npx projen test",
28
+ "test:watch": "npx projen test:watch",
29
+ "unbump": "npx projen unbump",
30
+ "upgrade": "npx projen upgrade",
31
+ "watch": "npx projen watch",
32
+ "projen": "npx projen",
33
+ "cdk": "cdk",
34
+ "integ:deploy": "cdk deploy --app='./lib/integ.js'",
35
+ "integ:destroy": "cdk destroy --app='./lib/integ.js'"
36
+ },
37
+ "author": {
38
+ "name": "go-to-k",
39
+ "email": "24818752+go-to-k@users.noreply.github.com",
40
+ "organization": false
41
+ },
42
+ "devDependencies": {
43
+ "@types/jest": "^29.5.4",
44
+ "@types/node": "^18",
45
+ "@typescript-eslint/eslint-plugin": "^6",
46
+ "@typescript-eslint/parser": "^6",
47
+ "aws-cdk-lib": "2.95.1",
48
+ "constructs": "10.0.5",
49
+ "eslint": "^8",
50
+ "eslint-config-prettier": "^9.0.0",
51
+ "eslint-import-resolver-node": "^0.3.9",
52
+ "eslint-import-resolver-typescript": "^3.6.0",
53
+ "eslint-plugin-import": "^2.28.1",
54
+ "eslint-plugin-prettier": "^5.0.0",
55
+ "jest": "^29.6.4",
56
+ "jest-junit": "^15",
57
+ "jsii": "~5.0.0",
58
+ "jsii-diff": "^1.88.0",
59
+ "jsii-docgen": "^9.1.2",
60
+ "jsii-pacmak": "^1.88.0",
61
+ "jsii-rosetta": "~5.0.0",
62
+ "npm-check-updates": "^16",
63
+ "prettier": "^3.0.3",
64
+ "projen": "^0.73.11",
65
+ "standard-version": "^9",
66
+ "ts-jest": "^29.1.1",
67
+ "ts-node": "^10.9.1",
68
+ "typescript": "^5.2.2"
69
+ },
70
+ "peerDependencies": {
71
+ "aws-cdk-lib": "^2.95.1",
72
+ "constructs": "^10.0.5"
73
+ },
74
+ "keywords": [
75
+ "aws",
76
+ "aws-cdk",
77
+ "cdk",
78
+ "container",
79
+ "docker",
80
+ "ecr",
81
+ "ecs",
82
+ "fargate",
83
+ "security",
84
+ "trivy"
85
+ ],
86
+ "engines": {
87
+ "node": ">= 18.0.0"
88
+ },
89
+ "main": "lib/index.js",
90
+ "license": "Apache-2.0",
91
+ "version": "0.0.5",
92
+ "types": "lib/index.d.ts",
93
+ "stability": "stable",
94
+ "jsii": {
95
+ "outdir": "dist",
96
+ "targets": {},
97
+ "tsc": {
98
+ "outDir": "lib",
99
+ "rootDir": "src"
100
+ }
101
+ },
102
+ "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
103
+ }