@composurecdk/neptune 0.9.3 → 0.9.4
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 +23 -0
- package/dist/commonjs/cluster-builder.d.ts +25 -1
- package/dist/commonjs/cluster-builder.d.ts.map +1 -1
- package/dist/commonjs/cluster-builder.js +2 -1
- package/dist/commonjs/cluster-builder.js.map +1 -1
- package/dist/esm/cluster-builder.d.ts +25 -1
- package/dist/esm/cluster-builder.d.ts.map +1 -1
- package/dist/esm/cluster-builder.js +2 -1
- package/dist/esm/cluster-builder.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -76,6 +76,29 @@ interface ClusterBuilderResult {
|
|
|
76
76
|
|
|
77
77
|
The defaults are exported as `CLUSTER_DEFAULTS` for visibility and testing.
|
|
78
78
|
|
|
79
|
+
### Encryption at rest
|
|
80
|
+
|
|
81
|
+
`storageEncrypted` is on by default, using the AWS-managed Neptune key. `.kmsKey(...)` selects a customer-managed key instead — for independent rotation, a key policy you control, and CloudTrail visibility of decrypt calls. It accepts a concrete key or a `Resolvable`, so a key built by [`@composurecdk/kms`](../kms/README.md) can be a component of the same system rather than a construct created before `compose`:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { compose, ref } from "@composurecdk/core";
|
|
85
|
+
import { createKeyBuilder, type KeyBuilderResult } from "@composurecdk/kms";
|
|
86
|
+
|
|
87
|
+
compose(
|
|
88
|
+
{
|
|
89
|
+
graphKey: createKeyBuilder().description("Encrypts the knowledge-graph cluster at rest."),
|
|
90
|
+
graph: createClusterBuilder()
|
|
91
|
+
.vpc(vpc)
|
|
92
|
+
.instanceType(InstanceType.SERVERLESS)
|
|
93
|
+
.serverlessScalingConfiguration({ minCapacity: 1, maxCapacity: 8 })
|
|
94
|
+
.kmsKey(ref<KeyBuilderResult>("graphKey").get("key")),
|
|
95
|
+
},
|
|
96
|
+
{ graphKey: [], graph: ["graphKey"] },
|
|
97
|
+
).build(stack, "Knowledge");
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Both the key and the encryption setting are fixed at creation: Neptune cannot encrypt an existing unencrypted cluster, nor move to a different key, without restoring from a snapshot. Setting `.storageEncrypted(false)` alongside a key is a contradiction CDK rejects at synth — the builder does not silently reconcile it.
|
|
101
|
+
|
|
79
102
|
### Audit-log parameter group
|
|
80
103
|
|
|
81
104
|
Audit log _export_ only emits data once audit logging is _enabled_ in the cluster parameter group. So the builder auto-creates a cluster parameter group with `neptune_enable_audit_log = "1"` (parallel to how `createVpcBuilder` auto-creates a flow-log group), with the family derived from the configured engine version. Add or override parameters with `.clusterParameters({...})`, or supply your own group with `.clusterParameterGroup(myGroup)` (mutually exclusive with `.clusterParameters()`).
|
|
@@ -26,11 +26,12 @@ export type ClusterAccessor = IConnectable & IGrantable;
|
|
|
26
26
|
* - `vpc` is supplied via the dedicated {@link IClusterBuilder.vpc | .vpc()}
|
|
27
27
|
* method (it is required).
|
|
28
28
|
* - `securityGroups` accepts `Resolvable<ISecurityGroup>` entries.
|
|
29
|
+
* - `kmsKey` accepts a `Resolvable` key.
|
|
29
30
|
*
|
|
30
31
|
* It also adds builder-specific options for the auto-created cluster
|
|
31
32
|
* parameter group and recommended alarms.
|
|
32
33
|
*/
|
|
33
|
-
export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" | "securityGroups"> {
|
|
34
|
+
export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" | "securityGroups" | "kmsKey"> {
|
|
34
35
|
/**
|
|
35
36
|
* Security groups to attach to the cluster. Accepts concrete
|
|
36
37
|
* {@link ISecurityGroup}s or {@link Ref}s that resolve to them at build
|
|
@@ -39,6 +40,29 @@ export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" |
|
|
|
39
40
|
* @default - CDK creates a security group for the cluster.
|
|
40
41
|
*/
|
|
41
42
|
securityGroups?: readonly Resolvable<ISecurityGroup>[];
|
|
43
|
+
/**
|
|
44
|
+
* The customer-managed KMS key used to encrypt the cluster's storage at
|
|
45
|
+
* rest.
|
|
46
|
+
*
|
|
47
|
+
* Accepts a concrete key or a {@link Resolvable} — typically a {@link Ref}
|
|
48
|
+
* to a composed `@composurecdk/kms` key builder, so the key is a component
|
|
49
|
+
* of the system rather than a construct built outside it.
|
|
50
|
+
*
|
|
51
|
+
* The builder already sets `storageEncrypted: true`, so this selects a
|
|
52
|
+
* customer-managed key in place of the AWS-managed Neptune key rather than
|
|
53
|
+
* turning encryption on. Both the key and the encryption setting are fixed
|
|
54
|
+
* at creation — Neptune cannot encrypt an existing unencrypted cluster, nor
|
|
55
|
+
* rotate to a different key, without a snapshot restore.
|
|
56
|
+
*
|
|
57
|
+
* The inner type is read from CDK's own prop rather than named as `IKey`, so
|
|
58
|
+
* it tracks the `kms.IKey` → `kms.IKeyRef` migration in either direction —
|
|
59
|
+
* see the table in `@composurecdk/kms`'s README.
|
|
60
|
+
*
|
|
61
|
+
* @default - the AWS-managed key for Neptune (`aws/rds`).
|
|
62
|
+
*
|
|
63
|
+
* @see https://docs.aws.amazon.com/neptune/latest/userguide/encrypt.html
|
|
64
|
+
*/
|
|
65
|
+
kmsKey?: Resolvable<NonNullable<DatabaseClusterProps["kmsKey"]>>;
|
|
42
66
|
/**
|
|
43
67
|
* Parameters to set on the auto-created cluster parameter group, merged
|
|
44
68
|
* onto (and overriding) {@link CLUSTER_PARAMETER_GROUP_DEFAULTS}. Use this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-builder.d.ts","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAEL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,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;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3E;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"cluster-builder.d.ts","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ class ClusterBuilder {
|
|
|
68
68
|
if (!resolvedVpc) {
|
|
69
69
|
throw new Error(`ClusterBuilder "${id}" requires a VPC. Call .vpc() with an IVpc or a Ref to one.`);
|
|
70
70
|
}
|
|
71
|
-
const { recommendedAlarms: alarmConfig, securityGroups: resolvableSgs, clusterParameters, clusterParameterGroup: userParameterGroup, ...clusterProps } = this.props;
|
|
71
|
+
const { recommendedAlarms: alarmConfig, securityGroups: resolvableSgs, kmsKey, clusterParameters, clusterParameterGroup: userParameterGroup, ...clusterProps } = this.props;
|
|
72
72
|
if (clusterProps.instanceType === undefined) {
|
|
73
73
|
throw new Error(`ClusterBuilder "${id}" requires an instance type. Call .instanceType() with a ` +
|
|
74
74
|
`provisioned class (e.g. InstanceType.R6G_LARGE) or InstanceType.SERVERLESS ` +
|
|
@@ -91,6 +91,7 @@ class ClusterBuilder {
|
|
|
91
91
|
vpc: resolvedVpc,
|
|
92
92
|
clusterParameterGroup,
|
|
93
93
|
...(securityGroups ? { securityGroups } : {}),
|
|
94
|
+
...(kmsKey !== undefined ? { kmsKey: (0, core_1.resolve)(kmsKey, context) } : {}),
|
|
94
95
|
};
|
|
95
96
|
const cluster = new aws_neptune_alpha_1.DatabaseCluster(scope, id, mergedProps);
|
|
96
97
|
for (const resolvable of this.#accessors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-builder.js","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cluster-builder.js","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,11 +26,12 @@ export type ClusterAccessor = IConnectable & IGrantable;
|
|
|
26
26
|
* - `vpc` is supplied via the dedicated {@link IClusterBuilder.vpc | .vpc()}
|
|
27
27
|
* method (it is required).
|
|
28
28
|
* - `securityGroups` accepts `Resolvable<ISecurityGroup>` entries.
|
|
29
|
+
* - `kmsKey` accepts a `Resolvable` key.
|
|
29
30
|
*
|
|
30
31
|
* It also adds builder-specific options for the auto-created cluster
|
|
31
32
|
* parameter group and recommended alarms.
|
|
32
33
|
*/
|
|
33
|
-
export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" | "securityGroups"> {
|
|
34
|
+
export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" | "securityGroups" | "kmsKey"> {
|
|
34
35
|
/**
|
|
35
36
|
* Security groups to attach to the cluster. Accepts concrete
|
|
36
37
|
* {@link ISecurityGroup}s or {@link Ref}s that resolve to them at build
|
|
@@ -39,6 +40,29 @@ export interface ClusterBuilderProps extends Omit<DatabaseClusterProps, "vpc" |
|
|
|
39
40
|
* @default - CDK creates a security group for the cluster.
|
|
40
41
|
*/
|
|
41
42
|
securityGroups?: readonly Resolvable<ISecurityGroup>[];
|
|
43
|
+
/**
|
|
44
|
+
* The customer-managed KMS key used to encrypt the cluster's storage at
|
|
45
|
+
* rest.
|
|
46
|
+
*
|
|
47
|
+
* Accepts a concrete key or a {@link Resolvable} — typically a {@link Ref}
|
|
48
|
+
* to a composed `@composurecdk/kms` key builder, so the key is a component
|
|
49
|
+
* of the system rather than a construct built outside it.
|
|
50
|
+
*
|
|
51
|
+
* The builder already sets `storageEncrypted: true`, so this selects a
|
|
52
|
+
* customer-managed key in place of the AWS-managed Neptune key rather than
|
|
53
|
+
* turning encryption on. Both the key and the encryption setting are fixed
|
|
54
|
+
* at creation — Neptune cannot encrypt an existing unencrypted cluster, nor
|
|
55
|
+
* rotate to a different key, without a snapshot restore.
|
|
56
|
+
*
|
|
57
|
+
* The inner type is read from CDK's own prop rather than named as `IKey`, so
|
|
58
|
+
* it tracks the `kms.IKey` → `kms.IKeyRef` migration in either direction —
|
|
59
|
+
* see the table in `@composurecdk/kms`'s README.
|
|
60
|
+
*
|
|
61
|
+
* @default - the AWS-managed key for Neptune (`aws/rds`).
|
|
62
|
+
*
|
|
63
|
+
* @see https://docs.aws.amazon.com/neptune/latest/userguide/encrypt.html
|
|
64
|
+
*/
|
|
65
|
+
kmsKey?: Resolvable<NonNullable<DatabaseClusterProps["kmsKey"]>>;
|
|
42
66
|
/**
|
|
43
67
|
* Parameters to set on the auto-created cluster parameter group, merged
|
|
44
68
|
* onto (and overriding) {@link CLUSTER_PARAMETER_GROUP_DEFAULTS}. Use this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-builder.d.ts","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAEL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,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;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3E;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"cluster-builder.d.ts","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ class ClusterBuilder {
|
|
|
65
65
|
if (!resolvedVpc) {
|
|
66
66
|
throw new Error(`ClusterBuilder "${id}" requires a VPC. Call .vpc() with an IVpc or a Ref to one.`);
|
|
67
67
|
}
|
|
68
|
-
const { recommendedAlarms: alarmConfig, securityGroups: resolvableSgs, clusterParameters, clusterParameterGroup: userParameterGroup, ...clusterProps } = this.props;
|
|
68
|
+
const { recommendedAlarms: alarmConfig, securityGroups: resolvableSgs, kmsKey, clusterParameters, clusterParameterGroup: userParameterGroup, ...clusterProps } = this.props;
|
|
69
69
|
if (clusterProps.instanceType === undefined) {
|
|
70
70
|
throw new Error(`ClusterBuilder "${id}" requires an instance type. Call .instanceType() with a ` +
|
|
71
71
|
`provisioned class (e.g. InstanceType.R6G_LARGE) or InstanceType.SERVERLESS ` +
|
|
@@ -88,6 +88,7 @@ class ClusterBuilder {
|
|
|
88
88
|
vpc: resolvedVpc,
|
|
89
89
|
clusterParameterGroup,
|
|
90
90
|
...(securityGroups ? { securityGroups } : {}),
|
|
91
|
+
...(kmsKey !== undefined ? { kmsKey: resolve(kmsKey, context) } : {}),
|
|
91
92
|
};
|
|
92
93
|
const cluster = new DatabaseCluster(scope, id, mergedProps);
|
|
93
94
|
for (const resolvable of this.#accessors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-builder.js","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,eAAe,GAKhB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAuB,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cluster-builder.js","sourceRoot":"","sources":["../../src/cluster-builder.ts"],"names":[],"mappings":"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"}
|