@composurecdk/s3 0.7.0 → 0.8.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/dist/commonjs/alarm-config.d.ts.map +1 -0
- package/dist/commonjs/alarm-config.js +3 -0
- package/dist/{alarm-config.js.map → commonjs/alarm-config.js.map} +1 -1
- package/dist/commonjs/alarm-defaults.d.ts.map +1 -0
- package/dist/commonjs/alarm-defaults.js +27 -0
- package/dist/commonjs/alarm-defaults.js.map +1 -0
- package/dist/commonjs/bucket-alarms.d.ts.map +1 -0
- package/dist/commonjs/bucket-alarms.js +100 -0
- package/dist/commonjs/bucket-alarms.js.map +1 -0
- package/dist/commonjs/bucket-builder.d.ts.map +1 -0
- package/dist/commonjs/bucket-builder.js +118 -0
- package/dist/commonjs/bucket-builder.js.map +1 -0
- package/dist/commonjs/bucket-deployment-builder.d.ts.map +1 -0
- package/dist/commonjs/bucket-deployment-builder.js +116 -0
- package/dist/commonjs/bucket-deployment-builder.js.map +1 -0
- package/dist/commonjs/bucket-deployment-defaults.d.ts.map +1 -0
- package/dist/commonjs/bucket-deployment-defaults.js +68 -0
- package/dist/commonjs/bucket-deployment-defaults.js.map +1 -0
- package/dist/commonjs/bucket-deployment-props.d.ts.map +1 -0
- package/dist/commonjs/bucket-deployment-props.js +3 -0
- package/dist/commonjs/bucket-deployment-props.js.map +1 -0
- package/dist/commonjs/defaults.d.ts.map +1 -0
- package/dist/commonjs/defaults.js +118 -0
- package/dist/commonjs/defaults.js.map +1 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +16 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/esm/alarm-config.d.ts +48 -0
- package/dist/esm/alarm-config.d.ts.map +1 -0
- package/dist/esm/alarm-config.js.map +1 -0
- package/dist/esm/alarm-defaults.d.ts +14 -0
- package/dist/esm/alarm-defaults.d.ts.map +1 -0
- package/dist/esm/alarm-defaults.js.map +1 -0
- package/dist/esm/bucket-alarms.d.ts +34 -0
- package/dist/esm/bucket-alarms.d.ts.map +1 -0
- package/dist/esm/bucket-alarms.js.map +1 -0
- package/dist/esm/bucket-builder.d.ts +130 -0
- package/dist/esm/bucket-builder.d.ts.map +1 -0
- package/dist/esm/bucket-builder.js.map +1 -0
- package/dist/esm/bucket-deployment-builder.d.ts +113 -0
- package/dist/esm/bucket-deployment-builder.d.ts.map +1 -0
- package/dist/esm/bucket-deployment-builder.js.map +1 -0
- package/dist/esm/bucket-deployment-defaults.d.ts +51 -0
- package/dist/esm/bucket-deployment-defaults.d.ts.map +1 -0
- package/dist/esm/bucket-deployment-defaults.js.map +1 -0
- package/dist/esm/bucket-deployment-props.d.ts +18 -0
- package/dist/esm/bucket-deployment-props.d.ts.map +1 -0
- package/dist/esm/bucket-deployment-props.js.map +1 -0
- package/dist/esm/defaults.d.ts +28 -0
- package/dist/esm/defaults.d.ts.map +1 -0
- package/dist/esm/defaults.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/package.json +36 -18
- package/dist/alarm-config.d.ts.map +0 -1
- package/dist/alarm-defaults.d.ts.map +0 -1
- package/dist/alarm-defaults.js.map +0 -1
- package/dist/bucket-alarms.d.ts.map +0 -1
- package/dist/bucket-alarms.js.map +0 -1
- package/dist/bucket-builder.d.ts.map +0 -1
- package/dist/bucket-builder.js.map +0 -1
- package/dist/bucket-deployment-builder.d.ts.map +0 -1
- package/dist/bucket-deployment-builder.js.map +0 -1
- package/dist/bucket-deployment-defaults.d.ts.map +0 -1
- package/dist/bucket-deployment-defaults.js.map +0 -1
- package/dist/bucket-deployment-props.d.ts.map +0 -1
- package/dist/bucket-deployment-props.js.map +0 -1
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- /package/dist/{alarm-config.d.ts → commonjs/alarm-config.d.ts} +0 -0
- /package/dist/{alarm-defaults.d.ts → commonjs/alarm-defaults.d.ts} +0 -0
- /package/dist/{bucket-alarms.d.ts → commonjs/bucket-alarms.d.ts} +0 -0
- /package/dist/{bucket-builder.d.ts → commonjs/bucket-builder.d.ts} +0 -0
- /package/dist/{bucket-deployment-builder.d.ts → commonjs/bucket-deployment-builder.d.ts} +0 -0
- /package/dist/{bucket-deployment-defaults.d.ts → commonjs/bucket-deployment-defaults.d.ts} +0 -0
- /package/dist/{bucket-deployment-props.d.ts → commonjs/bucket-deployment-props.d.ts} +0 -0
- /package/dist/{defaults.d.ts → commonjs/defaults.d.ts} +0 -0
- /package/dist/{index.d.ts → commonjs/index.d.ts} +0 -0
- /package/dist/{alarm-config.js → esm/alarm-config.js} +0 -0
- /package/dist/{alarm-defaults.js → esm/alarm-defaults.js} +0 -0
- /package/dist/{bucket-alarms.js → esm/bucket-alarms.js} +0 -0
- /package/dist/{bucket-builder.js → esm/bucket-builder.js} +0 -0
- /package/dist/{bucket-deployment-builder.js → esm/bucket-deployment-builder.js} +0 -0
- /package/dist/{bucket-deployment-defaults.js → esm/bucket-deployment-defaults.js} +0 -0
- /package/dist/{bucket-deployment-props.js → esm/bucket-deployment-props.js} +0 -0
- /package/dist/{defaults.js → esm/defaults.js} +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUCKET_DEPLOYMENT_DEFAULTS = exports.createBucketDeploymentBuilder = exports.BUCKET_ALARM_DEFAULTS = exports.DEFAULT_BUCKET_LIFECYCLE_RULES = exports.DEFAULT_ACCESS_LOG_BUCKET_LIFECYCLE_RULES = exports.BUCKET_DEFAULTS = exports.createBucketBuilder = void 0;
|
|
4
|
+
var bucket_builder_js_1 = require("./bucket-builder.js");
|
|
5
|
+
Object.defineProperty(exports, "createBucketBuilder", { enumerable: true, get: function () { return bucket_builder_js_1.createBucketBuilder; } });
|
|
6
|
+
var defaults_js_1 = require("./defaults.js");
|
|
7
|
+
Object.defineProperty(exports, "BUCKET_DEFAULTS", { enumerable: true, get: function () { return defaults_js_1.BUCKET_DEFAULTS; } });
|
|
8
|
+
Object.defineProperty(exports, "DEFAULT_ACCESS_LOG_BUCKET_LIFECYCLE_RULES", { enumerable: true, get: function () { return defaults_js_1.DEFAULT_ACCESS_LOG_BUCKET_LIFECYCLE_RULES; } });
|
|
9
|
+
Object.defineProperty(exports, "DEFAULT_BUCKET_LIFECYCLE_RULES", { enumerable: true, get: function () { return defaults_js_1.DEFAULT_BUCKET_LIFECYCLE_RULES; } });
|
|
10
|
+
var alarm_defaults_js_1 = require("./alarm-defaults.js");
|
|
11
|
+
Object.defineProperty(exports, "BUCKET_ALARM_DEFAULTS", { enumerable: true, get: function () { return alarm_defaults_js_1.BUCKET_ALARM_DEFAULTS; } });
|
|
12
|
+
var bucket_deployment_builder_js_1 = require("./bucket-deployment-builder.js");
|
|
13
|
+
Object.defineProperty(exports, "createBucketDeploymentBuilder", { enumerable: true, get: function () { return bucket_deployment_builder_js_1.createBucketDeploymentBuilder; } });
|
|
14
|
+
var bucket_deployment_defaults_js_1 = require("./bucket-deployment-defaults.js");
|
|
15
|
+
Object.defineProperty(exports, "BUCKET_DEPLOYMENT_DEFAULTS", { enumerable: true, get: function () { return bucket_deployment_defaults_js_1.BUCKET_DEPLOYMENT_DEFAULTS; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAM6B;AAL3B,wHAAA,mBAAmB,OAAA;AAMrB,6CAIuB;AAHrB,8GAAA,eAAe,OAAA;AACf,wIAAA,yCAAyC,OAAA;AACzC,6HAAA,8BAA8B,OAAA;AAGhC,yDAA4D;AAAnD,0HAAA,qBAAqB,OAAA;AAC9B,+EAIwC;AAHtC,6IAAA,6BAA6B,OAAA;AAK/B,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AlarmConfig } from "@composurecdk/cloudwatch";
|
|
2
|
+
/**
|
|
3
|
+
* Controls which recommended alarms are created for an S3 bucket.
|
|
4
|
+
* All applicable alarms are enabled by default with AWS-recommended thresholds.
|
|
5
|
+
* Set individual alarms to `false` to disable them, or provide an
|
|
6
|
+
* {@link AlarmConfig} to tune thresholds.
|
|
7
|
+
*
|
|
8
|
+
* S3 request metric alarms (5xxErrors, 4xxErrors) require
|
|
9
|
+
* [CloudWatch request metrics](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-request-metrics-bucket.html)
|
|
10
|
+
* to be enabled on the bucket. Alarms are automatically created for each
|
|
11
|
+
* entry in the bucket's {@link BucketProps.metrics} array, keyed by the
|
|
12
|
+
* metrics configuration ID (e.g. `serverErrors:EntireBucket`).
|
|
13
|
+
*
|
|
14
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
15
|
+
*/
|
|
16
|
+
export interface BucketAlarmConfig {
|
|
17
|
+
/**
|
|
18
|
+
* Master switch: set to `false` to disable all recommended alarms.
|
|
19
|
+
* Individual alarms can also be disabled via their own entry.
|
|
20
|
+
* @default true
|
|
21
|
+
*/
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Alarm when S3 returns server-side errors (5xx HTTP status codes).
|
|
25
|
+
*
|
|
26
|
+
* Metric: `AWS/S3 5xxErrors`, statistic Sum, period 5 minutes.
|
|
27
|
+
* Default threshold: > 0 errors.
|
|
28
|
+
*
|
|
29
|
+
* Only created when the bucket has request metrics configured via
|
|
30
|
+
* {@link BucketProps.metrics}. One alarm per metrics configuration.
|
|
31
|
+
*
|
|
32
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
33
|
+
*/
|
|
34
|
+
serverErrors?: AlarmConfig | false;
|
|
35
|
+
/**
|
|
36
|
+
* Alarm when S3 returns client-side errors (4xx HTTP status codes).
|
|
37
|
+
*
|
|
38
|
+
* Metric: `AWS/S3 4xxErrors`, statistic Sum, period 5 minutes.
|
|
39
|
+
* Default threshold: > 0 errors.
|
|
40
|
+
*
|
|
41
|
+
* Only created when the bucket has request metrics configured via
|
|
42
|
+
* {@link BucketProps.metrics}. One alarm per metrics configuration.
|
|
43
|
+
*
|
|
44
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
45
|
+
*/
|
|
46
|
+
clientErrors?: AlarmConfig | false;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=alarm-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alarm-config.d.ts","sourceRoot":"","sources":["../../src/alarm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAEnC;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alarm-config.js","sourceRoot":"","sources":["../../src/alarm-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AlarmConfigDefaults } from "@composurecdk/cloudwatch";
|
|
2
|
+
interface BucketAlarmDefaults {
|
|
3
|
+
enabled: true;
|
|
4
|
+
serverErrors: AlarmConfigDefaults;
|
|
5
|
+
clientErrors: AlarmConfigDefaults;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* AWS-recommended default alarm configuration for S3 buckets.
|
|
9
|
+
*
|
|
10
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
11
|
+
*/
|
|
12
|
+
export declare const BUCKET_ALARM_DEFAULTS: BucketAlarmDefaults;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=alarm-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alarm-defaults.d.ts","sourceRoot":"","sources":["../../src/alarm-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,UAAU,mBAAmB;IAC3B,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,mBAkBnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alarm-defaults.js","sourceRoot":"","sources":["../../src/alarm-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAS9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,OAAO,EAAE,IAAI;IAEb,iEAAiE;IACjE,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,gBAAgB,CAAC,aAAa;KACjD;IAED,yEAAyE;IACzE,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,gBAAgB,CAAC,aAAa;KACjD;CACF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Alarm } from "aws-cdk-lib/aws-cloudwatch";
|
|
2
|
+
import type { Bucket, BucketMetrics } from "aws-cdk-lib/aws-s3";
|
|
3
|
+
import type { IConstruct } from "constructs";
|
|
4
|
+
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
5
|
+
import type { AlarmDefinition } from "@composurecdk/cloudwatch";
|
|
6
|
+
import type { BucketAlarmConfig } from "./alarm-config.js";
|
|
7
|
+
/**
|
|
8
|
+
* Resolves the recommended alarm configuration into fully-resolved
|
|
9
|
+
* {@link AlarmDefinition}s for an S3 bucket.
|
|
10
|
+
*
|
|
11
|
+
* Creates alarms for each entry in `metricsConfigs`, keyed as
|
|
12
|
+
* `{alarmType}:{filterId}` (e.g. `serverErrors:EntireBucket`).
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveBucketAlarmDefinitions(bucket: Bucket, config: BucketAlarmConfig | undefined, metricsConfigs: BucketMetrics[]): AlarmDefinition[];
|
|
15
|
+
/**
|
|
16
|
+
* Creates AWS-recommended CloudWatch alarms for an S3 bucket,
|
|
17
|
+
* merging recommended definitions with any custom alarm builders.
|
|
18
|
+
*
|
|
19
|
+
* Alarms are created for each entry in `metricsConfigs` (from
|
|
20
|
+
* {@link BucketProps.metrics}). If no metrics configurations are
|
|
21
|
+
* provided, only custom alarms are created.
|
|
22
|
+
*
|
|
23
|
+
* @param scope - CDK construct scope for creating alarm constructs.
|
|
24
|
+
* @param id - Base identifier for alarm construct ids.
|
|
25
|
+
* @param bucket - The S3 bucket to create alarms for.
|
|
26
|
+
* @param config - User-provided alarm configuration, or `false` to disable all.
|
|
27
|
+
* @param metricsConfigs - The bucket's request metrics configurations.
|
|
28
|
+
* @param customAlarms - Custom alarm builders added via `addAlarm()`.
|
|
29
|
+
* @returns A record mapping alarm keys to their created Alarm constructs.
|
|
30
|
+
*
|
|
31
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
32
|
+
*/
|
|
33
|
+
export declare function createBucketAlarms(scope: IConstruct, id: string, bucket: Bucket, config: BucketAlarmConfig | false | undefined, metricsConfigs: BucketMetrics[], customAlarms?: AlarmDefinitionBuilder<Bucket>[]): Record<string, Alarm>;
|
|
34
|
+
//# sourceMappingURL=bucket-alarms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-alarms.d.ts","sourceRoot":"","sources":["../../src/bucket-alarms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAqC,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAoC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA2B3D;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,cAAc,EAAE,aAAa,EAAE,GAC9B,eAAe,EAAE,CAyCnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GAAG,KAAK,GAAG,SAAS,EAC7C,cAAc,EAAE,aAAa,EAAE,EAC/B,YAAY,GAAE,sBAAsB,CAAC,MAAM,CAAC,EAAO,GAClD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAUvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-alarms.js","sourceRoot":"","sources":["../../src/bucket-alarms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { type Alarm } from "aws-cdk-lib/aws-cloudwatch";
|
|
2
|
+
import { Bucket, type BucketProps, type IBucket } from "aws-cdk-lib/aws-s3";
|
|
3
|
+
import { type IConstruct } from "constructs";
|
|
4
|
+
import { COPY_STATE, type Lifecycle } from "@composurecdk/core";
|
|
5
|
+
import { type ITaggedBuilder } from "@composurecdk/cloudformation";
|
|
6
|
+
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
7
|
+
import type { BucketAlarmConfig } from "./alarm-config.js";
|
|
8
|
+
/**
|
|
9
|
+
* Configures how server access logs are handled. Pass `false` to disable
|
|
10
|
+
* logging; pass an object to wire a destination, prefix, or customize the
|
|
11
|
+
* auto-created sub-builder.
|
|
12
|
+
*
|
|
13
|
+
* `configure` cannot be combined with `destination` — a user-managed
|
|
14
|
+
* destination is not built by this builder.
|
|
15
|
+
*/
|
|
16
|
+
export type ServerAccessLogsConfig = false | {
|
|
17
|
+
destination?: IBucket;
|
|
18
|
+
prefix?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Customize the auto-created logging sub-builder. Receives a builder
|
|
21
|
+
* pre-seeded with `versioned: false`, `removalPolicy: RETAIN`, and
|
|
22
|
+
* recursive access logging disabled.
|
|
23
|
+
*/
|
|
24
|
+
configure?: (b: IBucketBuilder) => IBucketBuilder;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Configuration properties for the S3 bucket builder. Extends CDK
|
|
28
|
+
* {@link BucketProps} with builder-specific options.
|
|
29
|
+
*/
|
|
30
|
+
export interface BucketBuilderProps extends Omit<BucketProps, "serverAccessLogsBucket" | "serverAccessLogsPrefix"> {
|
|
31
|
+
/** See {@link ServerAccessLogsConfig}. Defaults to `{ prefix: "logs/" }`. */
|
|
32
|
+
serverAccessLogs?: ServerAccessLogsConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for AWS-recommended CloudWatch alarms.
|
|
35
|
+
*
|
|
36
|
+
* S3 request metric alarms (5xxErrors, 4xxErrors) require
|
|
37
|
+
* [CloudWatch request metrics](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-request-metrics-bucket.html)
|
|
38
|
+
* to be enabled on the bucket. Set {@link BucketAlarmConfig.requestMetricsFilterId}
|
|
39
|
+
* to the ID of the request metrics configuration to create these alarms.
|
|
40
|
+
*
|
|
41
|
+
* No alarm actions are configured by default since notification
|
|
42
|
+
* methods are user-specific. Access alarms from the build result
|
|
43
|
+
* or use an `afterBuild` hook to apply actions.
|
|
44
|
+
*
|
|
45
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
46
|
+
*/
|
|
47
|
+
recommendedAlarms?: BucketAlarmConfig | false;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The build output of a {@link IBucketBuilder}. Contains the CDK constructs
|
|
51
|
+
* created during {@link Lifecycle.build}, keyed by role.
|
|
52
|
+
*/
|
|
53
|
+
export interface BucketBuilderResult {
|
|
54
|
+
/** The S3 bucket construct created by the builder. */
|
|
55
|
+
bucket: Bucket;
|
|
56
|
+
/**
|
|
57
|
+
* The S3 bucket created for access logging, or `undefined` if access
|
|
58
|
+
* logging was disabled or the user provided their own destination.
|
|
59
|
+
*/
|
|
60
|
+
accessLogsBucket?: Bucket;
|
|
61
|
+
/**
|
|
62
|
+
* CloudWatch alarms created for the bucket, keyed by alarm name.
|
|
63
|
+
*
|
|
64
|
+
* Includes both AWS-recommended alarms and any custom alarms added
|
|
65
|
+
* via {@link IBucketBuilder.addAlarm}. Access individual alarms
|
|
66
|
+
* by key (e.g., `result.alarms.serverErrors`).
|
|
67
|
+
*
|
|
68
|
+
* No alarm actions are configured — apply them via the result or an
|
|
69
|
+
* `afterBuild` hook.
|
|
70
|
+
*
|
|
71
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3
|
|
72
|
+
*/
|
|
73
|
+
alarms: Record<string, Alarm>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A fluent builder for configuring and creating an Amazon S3 bucket.
|
|
77
|
+
*
|
|
78
|
+
* Each configuration property from the CDK {@link BucketProps} is exposed
|
|
79
|
+
* as an overloaded method: call with a value to set it (returns the builder
|
|
80
|
+
* for chaining), or call with no arguments to read the current value.
|
|
81
|
+
*
|
|
82
|
+
* The builder implements {@link Lifecycle}, so it can be used directly as a
|
|
83
|
+
* component in a {@link compose | composed system}. When built, it creates
|
|
84
|
+
* an S3 bucket with the configured properties and returns a
|
|
85
|
+
* {@link BucketBuilderResult}.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const site = createBucketBuilder()
|
|
90
|
+
* .bucketName("my-website-bucket")
|
|
91
|
+
* .versioned(false);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export type IBucketBuilder = ITaggedBuilder<BucketBuilderProps, BucketBuilder>;
|
|
95
|
+
declare class BucketBuilder implements Lifecycle<BucketBuilderResult> {
|
|
96
|
+
#private;
|
|
97
|
+
props: Partial<BucketBuilderProps>;
|
|
98
|
+
addAlarm(key: string, configure: (alarm: AlarmDefinitionBuilder<Bucket>) => AlarmDefinitionBuilder<Bucket>): this;
|
|
99
|
+
/** @internal — see ADR-0005. */
|
|
100
|
+
[COPY_STATE](target: BucketBuilder): void;
|
|
101
|
+
build(scope: IConstruct, id: string): BucketBuilderResult;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates a new {@link IBucketBuilder} for configuring an Amazon S3 bucket.
|
|
105
|
+
*
|
|
106
|
+
* This is the entry point for defining an S3 bucket component. The returned
|
|
107
|
+
* builder exposes every {@link BucketProps} property as a fluent setter/getter
|
|
108
|
+
* and implements {@link Lifecycle} for use with {@link compose}.
|
|
109
|
+
*
|
|
110
|
+
* @returns A fluent builder for an Amazon S3 bucket.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* const site = createBucketBuilder()
|
|
115
|
+
* .bucketName("my-site")
|
|
116
|
+
* .versioned(false);
|
|
117
|
+
*
|
|
118
|
+
* // Use standalone:
|
|
119
|
+
* const result = site.build(stack, "SiteBucket");
|
|
120
|
+
*
|
|
121
|
+
* // Or compose into a system:
|
|
122
|
+
* const system = compose(
|
|
123
|
+
* { site, cdn: createDistributionBuilder() },
|
|
124
|
+
* { site: [], cdn: ["site"] },
|
|
125
|
+
* );
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function createBucketBuilder(): IBucketBuilder;
|
|
129
|
+
export {};
|
|
130
|
+
//# sourceMappingURL=bucket-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-builder.d.ts","sourceRoot":"","sources":["../../src/bucket-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAC9B,KAAK,GACL;IACE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,cAAc,CAAC;CACnD,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,WAAW,EACX,wBAAwB,GAAG,wBAAwB,CACpD;IACC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AAE/E,cAAM,aAAc,YAAW,SAAS,CAAC,mBAAmB,CAAC;;IAC3D,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAM;IAGxC,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC,MAAM,CAAC,GACnF,IAAI;IAKP,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIzC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,mBAAmB;CA+B1D;AAgED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-builder.js","sourceRoot":"","sources":["../../src/bucket-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
|
|
2
|
+
import { type IBucket } from "aws-cdk-lib/aws-s3";
|
|
3
|
+
import { type IDistribution } from "aws-cdk-lib/aws-cloudfront";
|
|
4
|
+
import type { LogGroup } from "aws-cdk-lib/aws-logs";
|
|
5
|
+
import { type IConstruct } from "constructs";
|
|
6
|
+
import { COPY_STATE, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
7
|
+
import { type ITaggedBuilder } from "@composurecdk/cloudformation";
|
|
8
|
+
import { type BucketDeploymentBuilderProps } from "./bucket-deployment-props.js";
|
|
9
|
+
/**
|
|
10
|
+
* The build output of a {@link IBucketDeploymentBuilder}.
|
|
11
|
+
*/
|
|
12
|
+
export interface BucketDeploymentBuilderResult {
|
|
13
|
+
/** The CDK BucketDeployment construct created by the builder. */
|
|
14
|
+
deployment: BucketDeployment;
|
|
15
|
+
/**
|
|
16
|
+
* The CloudWatch LogGroup created for the deployment's backing Lambda,
|
|
17
|
+
* or `undefined` if the user provided their own via the `logGroup`
|
|
18
|
+
* property.
|
|
19
|
+
*
|
|
20
|
+
* By default the builder creates a managed LogGroup using
|
|
21
|
+
* {@link createLogGroupBuilder} with well-architected defaults (retention
|
|
22
|
+
* policy, removal policy). This prevents the backing Lambda from
|
|
23
|
+
* creating an auto-managed log group with infinite retention.
|
|
24
|
+
*
|
|
25
|
+
* @see https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3_deployment.BucketDeploymentProps.html#loggroup
|
|
26
|
+
*/
|
|
27
|
+
logGroup?: LogGroup;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A fluent builder for configuring and creating an S3 BucketDeployment.
|
|
31
|
+
*
|
|
32
|
+
* Each configuration property from the CDK {@link BucketDeploymentProps} is
|
|
33
|
+
* exposed as an overloaded method: call with a value to set it (returns the
|
|
34
|
+
* builder for chaining), or call with no arguments to read the current value.
|
|
35
|
+
*
|
|
36
|
+
* The `destinationBucket` and `distribution` are set via dedicated methods
|
|
37
|
+
* that accept {@link Resolvable} values for cross-component wiring.
|
|
38
|
+
*
|
|
39
|
+
* The builder implements {@link Lifecycle}, so it can be used directly as a
|
|
40
|
+
* component in a {@link compose | composed system}.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* const deploy = createBucketDeploymentBuilder()
|
|
45
|
+
* .sources([Source.asset("./site")])
|
|
46
|
+
* .destinationBucket(ref("site", (r: BucketBuilderResult) => r.bucket))
|
|
47
|
+
* .distribution(ref("cdn", (r: DistributionBuilderResult) => r.distribution))
|
|
48
|
+
* .distributionPaths(["/*"]);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export type IBucketDeploymentBuilder = ITaggedBuilder<BucketDeploymentBuilderProps, BucketDeploymentBuilder>;
|
|
52
|
+
declare class BucketDeploymentBuilder implements Lifecycle<BucketDeploymentBuilderResult> {
|
|
53
|
+
#private;
|
|
54
|
+
props: Partial<BucketDeploymentBuilderProps>;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the destination bucket for the deployment.
|
|
57
|
+
*
|
|
58
|
+
* Accepts a concrete {@link IBucket} or a {@link Ref} that resolves to one
|
|
59
|
+
* at build time.
|
|
60
|
+
*
|
|
61
|
+
* @param bucket - The bucket or a Ref to one.
|
|
62
|
+
* @returns This builder for chaining.
|
|
63
|
+
*/
|
|
64
|
+
destinationBucket(bucket: Resolvable<IBucket>): this;
|
|
65
|
+
/**
|
|
66
|
+
* Sets the CloudFront distribution to invalidate on deployment.
|
|
67
|
+
*
|
|
68
|
+
* Accepts a concrete {@link IDistribution} or a {@link Ref} that resolves
|
|
69
|
+
* to one at build time. This is optional — deployments can target a bucket
|
|
70
|
+
* without CloudFront invalidation.
|
|
71
|
+
*
|
|
72
|
+
* @param distribution - The distribution or a Ref to one.
|
|
73
|
+
* @returns This builder for chaining.
|
|
74
|
+
*/
|
|
75
|
+
distribution(distribution: Resolvable<IDistribution>): this;
|
|
76
|
+
/** @internal — see ADR-0005. */
|
|
77
|
+
[COPY_STATE](target: BucketDeploymentBuilder): void;
|
|
78
|
+
build(scope: IConstruct, id: string, context?: Record<string, object>): BucketDeploymentBuilderResult;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Creates a new {@link IBucketDeploymentBuilder} for deploying content to an
|
|
82
|
+
* S3 bucket with optional CloudFront cache invalidation.
|
|
83
|
+
*
|
|
84
|
+
* This is the entry point for defining an S3 deployment component. The
|
|
85
|
+
* returned builder exposes {@link BucketDeploymentBuilderProps} properties as
|
|
86
|
+
* fluent setters/getters, plus {@link IBucketDeploymentBuilder.destinationBucket | destinationBucket()}
|
|
87
|
+
* and {@link IBucketDeploymentBuilder.distribution | distribution()} for
|
|
88
|
+
* cross-component wiring with Ref support. It implements {@link Lifecycle}
|
|
89
|
+
* for use with {@link compose}.
|
|
90
|
+
*
|
|
91
|
+
* @returns A fluent builder for an S3 BucketDeployment.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* const deploy = createBucketDeploymentBuilder()
|
|
96
|
+
* .sources([Source.asset("./site")])
|
|
97
|
+
* .destinationBucket(ref("site", (r: BucketBuilderResult) => r.bucket))
|
|
98
|
+
* .distribution(ref("cdn", (r: DistributionBuilderResult) => r.distribution))
|
|
99
|
+
* .distributionPaths(["/*"]);
|
|
100
|
+
*
|
|
101
|
+
* // Use standalone:
|
|
102
|
+
* const result = deploy.build(stack, "Deploy");
|
|
103
|
+
*
|
|
104
|
+
* // Or compose into a system:
|
|
105
|
+
* const system = compose(
|
|
106
|
+
* { site: createBucketBuilder(), cdn: createDistributionBuilder(), deploy },
|
|
107
|
+
* { site: [], cdn: ["site"], deploy: ["site", "cdn"] },
|
|
108
|
+
* );
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare function createBucketDeploymentBuilder(): IBucketDeploymentBuilder;
|
|
112
|
+
export {};
|
|
113
|
+
//# sourceMappingURL=bucket-deployment-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-builder.d.ts","sourceRoot":"","sources":["../../src/bucket-deployment-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA8B,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAW,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAGlF,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,iEAAiE;IACjE,UAAU,EAAE,gBAAgB,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,4BAA4B,EAC5B,uBAAuB,CACxB,CAAC;AAEF,cAAM,uBAAwB,YAAW,SAAS,CAAC,6BAA6B,CAAC;;IAC/E,KAAK,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAM;IAIlD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI;IAKpD;;;;;;;;;OASG;IACH,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI;IAK3D,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAKnD,KAAK,CACH,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,6BAA6B;CAiDjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,6BAA6B,IAAI,wBAAwB,CAIxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-builder.js","sourceRoot":"","sources":["../../src/bucket-deployment-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { BucketDeploymentBuilderProps } from "./bucket-deployment-props.js";
|
|
2
|
+
/**
|
|
3
|
+
* Secure, AWS-recommended defaults applied to every S3 BucketDeployment
|
|
4
|
+
* built with {@link createBucketDeploymentBuilder}. Each property can be
|
|
5
|
+
* individually overridden via the builder's fluent API.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BUCKET_DEPLOYMENT_DEFAULTS: {
|
|
8
|
+
sources?: import("aws-cdk-lib/aws-s3-deployment").ISource[];
|
|
9
|
+
accessControl?: import("aws-cdk-lib/aws-s3").BucketAccessControl;
|
|
10
|
+
destinationKeyPrefix?: string;
|
|
11
|
+
extract?: boolean;
|
|
12
|
+
exclude?: string[];
|
|
13
|
+
include?: string[];
|
|
14
|
+
prune?: boolean;
|
|
15
|
+
retainOnDelete?: boolean;
|
|
16
|
+
distributionPaths?: string[];
|
|
17
|
+
waitForDistributionInvalidation?: boolean;
|
|
18
|
+
logRetention?: import("aws-cdk-lib/aws-logs").RetentionDays;
|
|
19
|
+
logGroup?: import("aws-cdk-lib/aws-logs").ILogGroupRef;
|
|
20
|
+
memoryLimit?: number;
|
|
21
|
+
ephemeralStorageSize?: import("aws-cdk-lib").Size;
|
|
22
|
+
useEfs?: boolean;
|
|
23
|
+
role?: import("aws-cdk-lib/aws-iam").IRole;
|
|
24
|
+
metadata?: {
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
};
|
|
27
|
+
cacheControl?: import("aws-cdk-lib/aws-s3-deployment").CacheControl[];
|
|
28
|
+
contentDisposition?: string;
|
|
29
|
+
contentEncoding?: string;
|
|
30
|
+
contentLanguage?: string;
|
|
31
|
+
contentType?: string;
|
|
32
|
+
expires?: import("aws-cdk-lib").Expiration;
|
|
33
|
+
serverSideEncryption?: import("aws-cdk-lib/aws-s3-deployment").ServerSideEncryption;
|
|
34
|
+
storageClass?: import("aws-cdk-lib/aws-s3-deployment").StorageClass;
|
|
35
|
+
websiteRedirectLocation?: string;
|
|
36
|
+
serverSideEncryptionAwsKmsKeyId?: string;
|
|
37
|
+
serverSideEncryptionCustomerAlgorithm?: string;
|
|
38
|
+
vpc?: import("aws-cdk-lib/aws-ec2").IVpc;
|
|
39
|
+
vpcSubnets?: import("aws-cdk-lib/aws-ec2").SubnetSelection;
|
|
40
|
+
signContent?: boolean;
|
|
41
|
+
outputObjectKeys?: boolean;
|
|
42
|
+
securityGroups?: import("aws-cdk-lib/aws-ec2").ISecurityGroup[];
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Returns the appropriate defaults based on whether a CloudFront
|
|
46
|
+
* distribution is present. CDK throws if `distributionPaths` is set
|
|
47
|
+
* without a distribution, so distribution-specific defaults are only
|
|
48
|
+
* included when applicable.
|
|
49
|
+
*/
|
|
50
|
+
export declare function effectiveDefaults(hasDistribution: boolean): Partial<BucketDeploymentBuilderProps>;
|
|
51
|
+
//# sourceMappingURL=bucket-deployment-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-defaults.d.ts","sourceRoot":"","sources":["../../src/bucket-deployment-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAmDjF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAEjG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-defaults.js","sourceRoot":"","sources":["../../src/bucket-deployment-defaults.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,aAAa,GAA0C;IAC3D;;;;;OAKG;IACH,KAAK,EAAE,IAAI;IAEX;;;;;;OAMG;IACH,WAAW,EAAE,GAAG;IAEhB;;;;;;;OAOG;IACH,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAA0C;IACnE;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,GAAG,aAAa;IAChB,GAAG,qBAAqB;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,eAAwB;IACxD,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { BucketDeploymentProps, ISource } from "aws-cdk-lib/aws-s3-deployment";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration properties for the S3 bucket deployment builder.
|
|
4
|
+
*
|
|
5
|
+
* Extends the CDK {@link BucketDeploymentProps} but replaces
|
|
6
|
+
* `destinationBucket` and `distribution` with builder-managed fields that
|
|
7
|
+
* support {@link Resolvable} for cross-component wiring via {@link ref}.
|
|
8
|
+
*
|
|
9
|
+
* `sources` is set via the builder's fluent API rather than the constructor.
|
|
10
|
+
*/
|
|
11
|
+
export interface BucketDeploymentBuilderProps extends Omit<BucketDeploymentProps, "sources" | "destinationBucket" | "distribution"> {
|
|
12
|
+
/**
|
|
13
|
+
* The sources from which to deploy content. Typically created with
|
|
14
|
+
* `Source.asset("./path")` or `Source.data("key", "content")`.
|
|
15
|
+
*/
|
|
16
|
+
sources?: ISource[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=bucket-deployment-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-props.d.ts","sourceRoot":"","sources":["../../src/bucket-deployment-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAEpF;;;;;;;;GAQG;AACH,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CACxD,qBAAqB,EACrB,SAAS,GAAG,mBAAmB,GAAG,cAAc,CACjD;IACC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-deployment-props.js","sourceRoot":"","sources":["../../src/bucket-deployment-props.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type LifecycleRule } from "aws-cdk-lib/aws-s3";
|
|
2
|
+
import type { BucketBuilderProps } from "./bucket-builder.js";
|
|
3
|
+
/**
|
|
4
|
+
* Lifecycle rules applied to general-purpose buckets built with
|
|
5
|
+
* {@link createBucketBuilder}. Bounds storage cost from orphaned multipart
|
|
6
|
+
* parts and from accumulated noncurrent versions of objects in versioned
|
|
7
|
+
* buckets, while preserving a generous recovery window.
|
|
8
|
+
*
|
|
9
|
+
* Users who need different rules can override the entire set via the
|
|
10
|
+
* `.lifecycleRules([...])` builder method.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_BUCKET_LIFECYCLE_RULES: LifecycleRule[];
|
|
13
|
+
/**
|
|
14
|
+
* Lifecycle rules applied to auto-created S3 server access log buckets and
|
|
15
|
+
* CloudFront access log buckets. Mirrors the 2-year retention used by
|
|
16
|
+
* {@link LOG_GROUP_DEFAULTS} so the audit window is consistent across log
|
|
17
|
+
* destinations in the library.
|
|
18
|
+
*
|
|
19
|
+
* @see https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_detect_investigate_events_app_service_logging.html
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_ACCESS_LOG_BUCKET_LIFECYCLE_RULES: LifecycleRule[];
|
|
22
|
+
/**
|
|
23
|
+
* Secure, AWS-recommended defaults applied to every S3 bucket built
|
|
24
|
+
* with {@link createBucketBuilder}. Each property can be individually
|
|
25
|
+
* overridden via the builder's fluent API.
|
|
26
|
+
*/
|
|
27
|
+
export declare const BUCKET_DEFAULTS: Partial<BucketBuilderProps>;
|
|
28
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAe9D;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,EAAE,aAAa,EAczD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yCAAyC,EAAE,aAAa,EAMpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,CA6DvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;;;GAOG;AACH,MAAM,kCAAkC,GAAkB;IACxD,EAAE,EAAE,0CAA0C;IAC9C,mCAAmC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAoB;IAC7D,kCAAkC;IAClC;QACE;;;;;;;WAOG;QACH,EAAE,EAAE,sCAAsC;QAC1C,2BAA2B,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;KAChD;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAoB;IACxE,kCAAkC;IAClC;QACE,EAAE,EAAE,6BAA6B;QACjC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D;;;;;;;OAOG;IACH,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAErC;;;;;OAKG;IACH,iBAAiB,EAAE,iBAAiB,CAAC,SAAS;IAE9C;;;;OAIG;IACH,UAAU,EAAE,gBAAgB,CAAC,UAAU;IAEvC;;;OAGG;IACH,UAAU,EAAE,IAAI;IAEhB;;;;OAIG;IACH,SAAS,EAAE,IAAI;IAEf;;;;;;;;;OASG;IACH,cAAc,EAAE,8BAA8B;IAE9C;;;;;;;;OAQG;IACH,aAAa,EAAE,aAAa,CAAC,MAAM;CACpC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { createBucketBuilder, type BucketBuilderProps, type BucketBuilderResult, type IBucketBuilder, type ServerAccessLogsConfig, } from "./bucket-builder.js";
|
|
2
|
+
export { BUCKET_DEFAULTS, DEFAULT_ACCESS_LOG_BUCKET_LIFECYCLE_RULES, DEFAULT_BUCKET_LIFECYCLE_RULES, } from "./defaults.js";
|
|
3
|
+
export { type BucketAlarmConfig } from "./alarm-config.js";
|
|
4
|
+
export { BUCKET_ALARM_DEFAULTS } from "./alarm-defaults.js";
|
|
5
|
+
export { createBucketDeploymentBuilder, type BucketDeploymentBuilderResult, type IBucketDeploymentBuilder, } from "./bucket-deployment-builder.js";
|
|
6
|
+
export { type BucketDeploymentBuilderProps } from "./bucket-deployment-props.js";
|
|
7
|
+
export { BUCKET_DEPLOYMENT_DEFAULTS } from "./bucket-deployment-defaults.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,6BAA6B,EAC7B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAKpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,6BAA6B,GAG9B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
|