@aws-mdaa/ddb-constructs 1.2.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/.jsii +4470 -0
- package/README.md +12 -0
- package/lib/index.d.ts +110 -0
- package/lib/index.js +89 -0
- package/package.json +80 -0
package/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Construct Overview
|
|
2
|
+
|
|
3
|
+
Opinionated L2 Constructs for DDB Tables.
|
|
4
|
+
|
|
5
|
+
## Security/Compliance
|
|
6
|
+
|
|
7
|
+
### DDB Table
|
|
8
|
+
* Enforce Table Name
|
|
9
|
+
* Enforce KMS CMK encryption
|
|
10
|
+
* Enforce retention on stack deletion
|
|
11
|
+
* Enforce Point in Time Recovery
|
|
12
|
+
* Enforce deletion protection
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import * as mdaa_construct from '@aws-mdaa/construct';
|
|
6
|
+
import { Duration } from 'aws-cdk-lib';
|
|
7
|
+
import { Attribute, BillingMode, StreamViewType, Table, TableClass } from 'aws-cdk-lib/aws-dynamodb';
|
|
8
|
+
import { IStream } from 'aws-cdk-lib/aws-kinesis';
|
|
9
|
+
import { IKey } from 'aws-cdk-lib/aws-kms';
|
|
10
|
+
import { Construct } from 'constructs';
|
|
11
|
+
export interface MdaaDDBTableProps extends mdaa_construct.MdaaConstructProps {
|
|
12
|
+
/**
|
|
13
|
+
* Q-ENHANCED-PROPERTY
|
|
14
|
+
* Optional physical table name override for custom naming requirements bypassing automatic MDAA naming conventions. When specified, provides exact control over DynamoDB table naming for integration with existing systems or specific naming requirements.
|
|
15
|
+
*
|
|
16
|
+
* Use cases: Custom naming requirements; Legacy system integration; Specific naming conventions; External tool integration
|
|
17
|
+
*
|
|
18
|
+
* AWS: DynamoDB table name specification for custom naming and integration requirements
|
|
19
|
+
*
|
|
20
|
+
* Validation: Must be valid DynamoDB table name if provided; overrides automatic MDAA naming when specified
|
|
21
|
+
**/
|
|
22
|
+
readonly tableName?: string;
|
|
23
|
+
readonly kinesisStream?: IStream;
|
|
24
|
+
/**
|
|
25
|
+
* Q-ENHANCED-PROPERTY
|
|
26
|
+
* Optional read capacity units for provisioned throughput controlling read performance and cost management. Defines the number of read capacity units for the table when using provisioned billing mode for predictable performance and cost control.
|
|
27
|
+
*
|
|
28
|
+
* Use cases: Performance tuning; Cost management; Predictable workloads; Capacity planning
|
|
29
|
+
*
|
|
30
|
+
* AWS: DynamoDB read capacity units for provisioned throughput and performance control
|
|
31
|
+
*
|
|
32
|
+
* Validation: Must be positive integer if provided; only valid with PROVISIONED billing mode; defaults to 5
|
|
33
|
+
**/
|
|
34
|
+
readonly readCapacity?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Q-ENHANCED-PROPERTY
|
|
37
|
+
* Optional write capacity units for provisioned throughput controlling write performance and cost management. Defines the number of write capacity units for the table when using provisioned billing mode for predictable performance and cost control.
|
|
38
|
+
*
|
|
39
|
+
* Use cases: Performance tuning; Cost management; Predictable workloads; Capacity planning
|
|
40
|
+
*
|
|
41
|
+
* AWS: DynamoDB write capacity units for provisioned throughput and performance control
|
|
42
|
+
*
|
|
43
|
+
* Validation: Must be positive integer if provided; only valid with PROVISIONED billing mode; defaults to 5
|
|
44
|
+
**/
|
|
45
|
+
readonly writeCapacity?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Q-ENHANCED-PROPERTY
|
|
48
|
+
* Optional billing mode specification controlling cost model and capacity management for the DynamoDB table. Determines whether the table uses provisioned capacity with predictable costs or pay-per-request for variable workloads.
|
|
49
|
+
*
|
|
50
|
+
* Use cases: Cost optimization; Capacity management; Workload matching; Performance predictability
|
|
51
|
+
*
|
|
52
|
+
* AWS: DynamoDB billing mode for cost control and capacity management configuration
|
|
53
|
+
*
|
|
54
|
+
* Validation: Must be PROVISIONED or PAY_PER_REQUEST; defaults based on replication configuration
|
|
55
|
+
**/
|
|
56
|
+
readonly billingMode?: BillingMode;
|
|
57
|
+
readonly tableClass?: TableClass;
|
|
58
|
+
readonly encryptionKey: IKey;
|
|
59
|
+
/**
|
|
60
|
+
* Q-ENHANCED-PROPERTY
|
|
61
|
+
* Optional TTL attribute name for automatic item expiration enabling data lifecycle management and storage cost optimization. Provides automatic cleanup of expired items based on timestamp values for efficient data management and cost control.
|
|
62
|
+
*
|
|
63
|
+
* Use cases: Data lifecycle management; Automatic cleanup; Cost optimization; Storage management
|
|
64
|
+
*
|
|
65
|
+
* AWS: DynamoDB TTL attribute for automatic item expiration and data lifecycle management
|
|
66
|
+
*
|
|
67
|
+
* Validation: Must be valid attribute name if provided; enables automatic item expiration based on timestamp
|
|
68
|
+
**/
|
|
69
|
+
readonly timeToLiveAttribute?: string;
|
|
70
|
+
readonly stream?: StreamViewType;
|
|
71
|
+
readonly replicationRegions?: string[];
|
|
72
|
+
readonly replicationTimeout?: Duration;
|
|
73
|
+
readonly waitForReplicationToFinish?: boolean;
|
|
74
|
+
readonly contributorInsightsEnabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Q-ENHANCED-PROPERTY
|
|
77
|
+
* Required partition key attribute definition for table primary key structure enabling data distribution and access patterns. Defines the primary key attribute that determines data distribution across partitions for optimal performance and access patterns.
|
|
78
|
+
*
|
|
79
|
+
* Use cases: Primary key definition; Data distribution; Access pattern optimization; Table structure design
|
|
80
|
+
*
|
|
81
|
+
* AWS: DynamoDB partition key attribute for primary key structure and data distribution
|
|
82
|
+
*
|
|
83
|
+
* Validation: Must be valid Attribute definition; required for table primary key structure and data distribution
|
|
84
|
+
**/
|
|
85
|
+
readonly partitionKey: Attribute;
|
|
86
|
+
/**
|
|
87
|
+
* Q-ENHANCED-PROPERTY
|
|
88
|
+
* Optional sort key attribute definition for composite primary key structure enabling range queries and data organization. Provides secondary key component for composite primary keys enabling range queries and hierarchical data organization within partitions.
|
|
89
|
+
*
|
|
90
|
+
* Use cases: Composite primary keys; Range queries; Data organization; Hierarchical data structure
|
|
91
|
+
*
|
|
92
|
+
* AWS: DynamoDB sort key attribute for composite primary key structure and range query capabilities
|
|
93
|
+
*
|
|
94
|
+
* Validation: Must be valid Attribute definition if provided; enables composite primary keys and range queries
|
|
95
|
+
**/
|
|
96
|
+
readonly sortKey?: Attribute;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Compliance construct for DDB Table
|
|
100
|
+
* Enforces:
|
|
101
|
+
* Table name convention
|
|
102
|
+
* KMS Encryption at Rest
|
|
103
|
+
* Deletion Protection
|
|
104
|
+
* PITR
|
|
105
|
+
* RETAIN RemovalPolicy
|
|
106
|
+
*/
|
|
107
|
+
export declare class MdaaDDBTable extends Table {
|
|
108
|
+
private static setProps;
|
|
109
|
+
constructor(scope: Construct, id: string, props: MdaaDDBTableProps);
|
|
110
|
+
}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var _a;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MdaaDDBTable = void 0;
|
|
10
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
11
|
+
|
|
12
|
+
const mdaa_construct = require("@aws-mdaa/construct"); //NOSONAR
|
|
13
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
14
|
+
const aws_dynamodb_1 = require("aws-cdk-lib/aws-dynamodb");
|
|
15
|
+
const construct_1 = require("@aws-mdaa/construct"); //NOSONAR
|
|
16
|
+
/**
|
|
17
|
+
* Compliance construct for DDB Table
|
|
18
|
+
* Enforces:
|
|
19
|
+
* Table name convention
|
|
20
|
+
* KMS Encryption at Rest
|
|
21
|
+
* Deletion Protection
|
|
22
|
+
* PITR
|
|
23
|
+
* RETAIN RemovalPolicy
|
|
24
|
+
*/
|
|
25
|
+
class MdaaDDBTable extends aws_dynamodb_1.Table {
|
|
26
|
+
static setProps(props) {
|
|
27
|
+
const overrideProps = {
|
|
28
|
+
tableName: props.naming.resourceName(props.tableName, 254),
|
|
29
|
+
encryption: aws_dynamodb_1.TableEncryption.CUSTOMER_MANAGED,
|
|
30
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
|
|
31
|
+
deletionProtection: true,
|
|
32
|
+
pointInTimeRecovery: true,
|
|
33
|
+
};
|
|
34
|
+
return { ...props, ...overrideProps };
|
|
35
|
+
}
|
|
36
|
+
constructor(scope, id, props) {
|
|
37
|
+
super(scope, id, MdaaDDBTable.setProps(props));
|
|
38
|
+
construct_1.MdaaNagSuppressions.addCodeResourceSuppressions(this, [
|
|
39
|
+
{ id: 'HIPAA.Security-DynamoDBInBackupPlan', reason: 'MDAA does not enforce use of AWS Backup' },
|
|
40
|
+
{ id: 'PCI.DSS.321-DynamoDBInBackupPlan', reason: 'MDAA does not enforce use of AWS Backup' },
|
|
41
|
+
{ id: 'NIST.800.53.R5-DynamoDBInBackupPlan', reason: 'MDAA does not enforce use of AWS Backup' },
|
|
42
|
+
{
|
|
43
|
+
id: 'NIST.800.53.R5-DynamoDBAutoScalingEnabled',
|
|
44
|
+
reason: 'MDAA does not enforce use of Auto Scaling on Provisioned Capacity tables.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'HIPAA.Security-DynamoDBAutoScalingEnabled',
|
|
48
|
+
reason: 'MDAA does not enforce use of Auto Scaling on Provisioned Capacity tables.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: 'PCI.DSS.321-DynamoDBAutoScalingEnabled',
|
|
52
|
+
reason: 'MDAA does not enforce use of Auto Scaling on Provisioned Capacity tables.',
|
|
53
|
+
},
|
|
54
|
+
], true);
|
|
55
|
+
new mdaa_construct.MdaaParamAndOutput(this, {
|
|
56
|
+
...{
|
|
57
|
+
resourceType: 'table',
|
|
58
|
+
resourceId: props.tableName,
|
|
59
|
+
name: 'name',
|
|
60
|
+
value: this.tableName,
|
|
61
|
+
},
|
|
62
|
+
...props,
|
|
63
|
+
});
|
|
64
|
+
new mdaa_construct.MdaaParamAndOutput(this, {
|
|
65
|
+
...{
|
|
66
|
+
resourceType: 'table',
|
|
67
|
+
resourceId: props.tableName,
|
|
68
|
+
name: 'arn',
|
|
69
|
+
value: this.tableArn,
|
|
70
|
+
},
|
|
71
|
+
...props,
|
|
72
|
+
});
|
|
73
|
+
if (this.tableStreamArn) {
|
|
74
|
+
new mdaa_construct.MdaaParamAndOutput(this, {
|
|
75
|
+
...{
|
|
76
|
+
resourceType: 'table',
|
|
77
|
+
resourceId: props.tableName,
|
|
78
|
+
name: 'streamArn',
|
|
79
|
+
value: this.tableStreamArn,
|
|
80
|
+
},
|
|
81
|
+
...props,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.MdaaDDBTable = MdaaDDBTable;
|
|
87
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
88
|
+
MdaaDDBTable[_a] = { fqn: "@aws-mdaa/ddb-constructs.MdaaDDBTable", version: "1.2.0" };
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7R0FHRztBQUVILHNEQUFzRCxDQUFDLFNBQVM7QUFDaEUsNkNBQXNEO0FBQ3RELDJEQVFrQztBQUlsQyxtREFBMEQsQ0FBQyxTQUFTO0FBMkZwRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsWUFBYSxTQUFRLG9CQUFLO0lBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBd0I7UUFDOUMsTUFBTSxhQUFhLEdBQUc7WUFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQzFELFVBQVUsRUFBRSw4QkFBZSxDQUFDLGdCQUFnQjtZQUM1QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO1lBQ25DLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsbUJBQW1CLEVBQUUsSUFBSTtTQUMxQixDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9DLCtCQUFtQixDQUFDLDJCQUEyQixDQUM3QyxJQUFJLEVBQ0o7WUFDRSxFQUFFLEVBQUUsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLEVBQUUseUNBQXlDLEVBQUU7WUFDaEcsRUFBRSxFQUFFLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxFQUFFLHlDQUF5QyxFQUFFO1lBQzdGLEVBQUUsRUFBRSxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sRUFBRSx5Q0FBeUMsRUFBRTtZQUNoRztnQkFDRSxFQUFFLEVBQUUsMkNBQTJDO2dCQUMvQyxNQUFNLEVBQUUsMkVBQTJFO2FBQ3BGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLDJDQUEyQztnQkFDL0MsTUFBTSxFQUFFLDJFQUEyRTthQUNwRjtZQUNEO2dCQUNFLEVBQUUsRUFBRSx3Q0FBd0M7Z0JBQzVDLE1BQU0sRUFBRSwyRUFBMkU7YUFDcEY7U0FDRixFQUNELElBQUksQ0FDTCxDQUFDO1FBRUYsSUFBSSxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQzFDLEdBQUc7Z0JBQ0QsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDM0IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQ3RCO1lBQ0QsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQzFDLEdBQUc7Z0JBQ0QsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDM0IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3JCO1lBQ0QsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUMxQyxHQUFHO29CQUNELFlBQVksRUFBRSxPQUFPO29CQUNyQixVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzNCLElBQUksRUFBRSxXQUFXO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQzNCO2dCQUNELEdBQUcsS0FBSzthQUNULENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQWxFSCxvQ0FtRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgKiBhcyBtZGFhX2NvbnN0cnVjdCBmcm9tICdAYXdzLW1kYWEvY29uc3RydWN0JzsgLy9OT1NPTkFSXG5pbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQmlsbGluZ01vZGUsXG4gIFN0cmVhbVZpZXdUeXBlLFxuICBUYWJsZSxcbiAgVGFibGVDbGFzcyxcbiAgVGFibGVFbmNyeXB0aW9uLFxuICBUYWJsZVByb3BzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVN0cmVhbSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1raW5lc2lzJztcbmltcG9ydCB7IElLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcblxuaW1wb3J0IHsgTWRhYU5hZ1N1cHByZXNzaW9ucyB9IGZyb20gJ0Bhd3MtbWRhYS9jb25zdHJ1Y3QnOyAvL05PU09OQVJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1kYWFEREJUYWJsZVByb3BzIGV4dGVuZHMgbWRhYV9jb25zdHJ1Y3QuTWRhYUNvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgcGh5c2ljYWwgdGFibGUgbmFtZSBvdmVycmlkZSBmb3IgY3VzdG9tIG5hbWluZyByZXF1aXJlbWVudHMgYnlwYXNzaW5nIGF1dG9tYXRpYyBNREFBIG5hbWluZyBjb252ZW50aW9ucy4gV2hlbiBzcGVjaWZpZWQsIHByb3ZpZGVzIGV4YWN0IGNvbnRyb2wgb3ZlciBEeW5hbW9EQiB0YWJsZSBuYW1pbmcgZm9yIGludGVncmF0aW9uIHdpdGggZXhpc3Rpbmcgc3lzdGVtcyBvciBzcGVjaWZpYyBuYW1pbmcgcmVxdWlyZW1lbnRzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IEN1c3RvbSBuYW1pbmcgcmVxdWlyZW1lbnRzOyBMZWdhY3kgc3lzdGVtIGludGVncmF0aW9uOyBTcGVjaWZpYyBuYW1pbmcgY29udmVudGlvbnM7IEV4dGVybmFsIHRvb2wgaW50ZWdyYXRpb25cbiAgICpcbiAgICogQVdTOiBEeW5hbW9EQiB0YWJsZSBuYW1lIHNwZWNpZmljYXRpb24gZm9yIGN1c3RvbSBuYW1pbmcgYW5kIGludGVncmF0aW9uIHJlcXVpcmVtZW50c1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIER5bmFtb0RCIHRhYmxlIG5hbWUgaWYgcHJvdmlkZWQ7IG92ZXJyaWRlcyBhdXRvbWF0aWMgTURBQSBuYW1pbmcgd2hlbiBzcGVjaWZpZWRcbiAgICoqL1xuICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmVzaXNTdHJlYW0/OiBJU3RyZWFtO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCByZWFkIGNhcGFjaXR5IHVuaXRzIGZvciBwcm92aXNpb25lZCB0aHJvdWdocHV0IGNvbnRyb2xsaW5nIHJlYWQgcGVyZm9ybWFuY2UgYW5kIGNvc3QgbWFuYWdlbWVudC4gRGVmaW5lcyB0aGUgbnVtYmVyIG9mIHJlYWQgY2FwYWNpdHkgdW5pdHMgZm9yIHRoZSB0YWJsZSB3aGVuIHVzaW5nIHByb3Zpc2lvbmVkIGJpbGxpbmcgbW9kZSBmb3IgcHJlZGljdGFibGUgcGVyZm9ybWFuY2UgYW5kIGNvc3QgY29udHJvbC5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBQZXJmb3JtYW5jZSB0dW5pbmc7IENvc3QgbWFuYWdlbWVudDsgUHJlZGljdGFibGUgd29ya2xvYWRzOyBDYXBhY2l0eSBwbGFubmluZ1xuICAgKlxuICAgKiBBV1M6IER5bmFtb0RCIHJlYWQgY2FwYWNpdHkgdW5pdHMgZm9yIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgYW5kIHBlcmZvcm1hbmNlIGNvbnRyb2xcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBwb3NpdGl2ZSBpbnRlZ2VyIGlmIHByb3ZpZGVkOyBvbmx5IHZhbGlkIHdpdGggUFJPVklTSU9ORUQgYmlsbGluZyBtb2RlOyBkZWZhdWx0cyB0byA1XG4gICAqKi9cbiAgcmVhZG9ubHkgcmVhZENhcGFjaXR5PzogbnVtYmVyO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCB3cml0ZSBjYXBhY2l0eSB1bml0cyBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb250cm9sbGluZyB3cml0ZSBwZXJmb3JtYW5jZSBhbmQgY29zdCBtYW5hZ2VtZW50LiBEZWZpbmVzIHRoZSBudW1iZXIgb2Ygd3JpdGUgY2FwYWNpdHkgdW5pdHMgZm9yIHRoZSB0YWJsZSB3aGVuIHVzaW5nIHByb3Zpc2lvbmVkIGJpbGxpbmcgbW9kZSBmb3IgcHJlZGljdGFibGUgcGVyZm9ybWFuY2UgYW5kIGNvc3QgY29udHJvbC5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBQZXJmb3JtYW5jZSB0dW5pbmc7IENvc3QgbWFuYWdlbWVudDsgUHJlZGljdGFibGUgd29ya2xvYWRzOyBDYXBhY2l0eSBwbGFubmluZ1xuICAgKlxuICAgKiBBV1M6IER5bmFtb0RCIHdyaXRlIGNhcGFjaXR5IHVuaXRzIGZvciBwcm92aXNpb25lZCB0aHJvdWdocHV0IGFuZCBwZXJmb3JtYW5jZSBjb250cm9sXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgcG9zaXRpdmUgaW50ZWdlciBpZiBwcm92aWRlZDsgb25seSB2YWxpZCB3aXRoIFBST1ZJU0lPTkVEIGJpbGxpbmcgbW9kZTsgZGVmYXVsdHMgdG8gNVxuICAgKiovXG4gIHJlYWRvbmx5IHdyaXRlQ2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIGJpbGxpbmcgbW9kZSBzcGVjaWZpY2F0aW9uIGNvbnRyb2xsaW5nIGNvc3QgbW9kZWwgYW5kIGNhcGFjaXR5IG1hbmFnZW1lbnQgZm9yIHRoZSBEeW5hbW9EQiB0YWJsZS4gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSB0YWJsZSB1c2VzIHByb3Zpc2lvbmVkIGNhcGFjaXR5IHdpdGggcHJlZGljdGFibGUgY29zdHMgb3IgcGF5LXBlci1yZXF1ZXN0IGZvciB2YXJpYWJsZSB3b3JrbG9hZHMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ29zdCBvcHRpbWl6YXRpb247IENhcGFjaXR5IG1hbmFnZW1lbnQ7IFdvcmtsb2FkIG1hdGNoaW5nOyBQZXJmb3JtYW5jZSBwcmVkaWN0YWJpbGl0eVxuICAgKlxuICAgKiBBV1M6IER5bmFtb0RCIGJpbGxpbmcgbW9kZSBmb3IgY29zdCBjb250cm9sIGFuZCBjYXBhY2l0eSBtYW5hZ2VtZW50IGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBQUk9WSVNJT05FRCBvciBQQVlfUEVSX1JFUVVFU1Q7IGRlZmF1bHRzIGJhc2VkIG9uIHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICoqL1xuICByZWFkb25seSBiaWxsaW5nTW9kZT86IEJpbGxpbmdNb2RlO1xuICByZWFkb25seSB0YWJsZUNsYXNzPzogVGFibGVDbGFzcztcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleTogSUtleTtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgVFRMIGF0dHJpYnV0ZSBuYW1lIGZvciBhdXRvbWF0aWMgaXRlbSBleHBpcmF0aW9uIGVuYWJsaW5nIGRhdGEgbGlmZWN5Y2xlIG1hbmFnZW1lbnQgYW5kIHN0b3JhZ2UgY29zdCBvcHRpbWl6YXRpb24uIFByb3ZpZGVzIGF1dG9tYXRpYyBjbGVhbnVwIG9mIGV4cGlyZWQgaXRlbXMgYmFzZWQgb24gdGltZXN0YW1wIHZhbHVlcyBmb3IgZWZmaWNpZW50IGRhdGEgbWFuYWdlbWVudCBhbmQgY29zdCBjb250cm9sLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IERhdGEgbGlmZWN5Y2xlIG1hbmFnZW1lbnQ7IEF1dG9tYXRpYyBjbGVhbnVwOyBDb3N0IG9wdGltaXphdGlvbjsgU3RvcmFnZSBtYW5hZ2VtZW50XG4gICAqXG4gICAqIEFXUzogRHluYW1vREIgVFRMIGF0dHJpYnV0ZSBmb3IgYXV0b21hdGljIGl0ZW0gZXhwaXJhdGlvbiBhbmQgZGF0YSBsaWZlY3ljbGUgbWFuYWdlbWVudFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIGF0dHJpYnV0ZSBuYW1lIGlmIHByb3ZpZGVkOyBlbmFibGVzIGF1dG9tYXRpYyBpdGVtIGV4cGlyYXRpb24gYmFzZWQgb24gdGltZXN0YW1wXG4gICAqKi9cbiAgcmVhZG9ubHkgdGltZVRvTGl2ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc3RyZWFtPzogU3RyZWFtVmlld1R5cGU7XG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uUmVnaW9ucz86IHN0cmluZ1tdO1xuICByZWFkb25seSByZXBsaWNhdGlvblRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgcmVhZG9ubHkgd2FpdEZvclJlcGxpY2F0aW9uVG9GaW5pc2g/OiBib29sZWFuO1xuICByZWFkb25seSBjb250cmlidXRvckluc2lnaHRzRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIFJlcXVpcmVkIHBhcnRpdGlvbiBrZXkgYXR0cmlidXRlIGRlZmluaXRpb24gZm9yIHRhYmxlIHByaW1hcnkga2V5IHN0cnVjdHVyZSBlbmFibGluZyBkYXRhIGRpc3RyaWJ1dGlvbiBhbmQgYWNjZXNzIHBhdHRlcm5zLiBEZWZpbmVzIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGUgdGhhdCBkZXRlcm1pbmVzIGRhdGEgZGlzdHJpYnV0aW9uIGFjcm9zcyBwYXJ0aXRpb25zIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlIGFuZCBhY2Nlc3MgcGF0dGVybnMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogUHJpbWFyeSBrZXkgZGVmaW5pdGlvbjsgRGF0YSBkaXN0cmlidXRpb247IEFjY2VzcyBwYXR0ZXJuIG9wdGltaXphdGlvbjsgVGFibGUgc3RydWN0dXJlIGRlc2lnblxuICAgKlxuICAgKiBBV1M6IER5bmFtb0RCIHBhcnRpdGlvbiBrZXkgYXR0cmlidXRlIGZvciBwcmltYXJ5IGtleSBzdHJ1Y3R1cmUgYW5kIGRhdGEgZGlzdHJpYnV0aW9uXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgQXR0cmlidXRlIGRlZmluaXRpb247IHJlcXVpcmVkIGZvciB0YWJsZSBwcmltYXJ5IGtleSBzdHJ1Y3R1cmUgYW5kIGRhdGEgZGlzdHJpYnV0aW9uXG4gICAqKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uS2V5OiBBdHRyaWJ1dGU7XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIHNvcnQga2V5IGF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciBjb21wb3NpdGUgcHJpbWFyeSBrZXkgc3RydWN0dXJlIGVuYWJsaW5nIHJhbmdlIHF1ZXJpZXMgYW5kIGRhdGEgb3JnYW5pemF0aW9uLiBQcm92aWRlcyBzZWNvbmRhcnkga2V5IGNvbXBvbmVudCBmb3IgY29tcG9zaXRlIHByaW1hcnkga2V5cyBlbmFibGluZyByYW5nZSBxdWVyaWVzIGFuZCBoaWVyYXJjaGljYWwgZGF0YSBvcmdhbml6YXRpb24gd2l0aGluIHBhcnRpdGlvbnMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ29tcG9zaXRlIHByaW1hcnkga2V5czsgUmFuZ2UgcXVlcmllczsgRGF0YSBvcmdhbml6YXRpb247IEhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZVxuICAgKlxuICAgKiBBV1M6IER5bmFtb0RCIHNvcnQga2V5IGF0dHJpYnV0ZSBmb3IgY29tcG9zaXRlIHByaW1hcnkga2V5IHN0cnVjdHVyZSBhbmQgcmFuZ2UgcXVlcnkgY2FwYWJpbGl0aWVzXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgQXR0cmlidXRlIGRlZmluaXRpb24gaWYgcHJvdmlkZWQ7IGVuYWJsZXMgY29tcG9zaXRlIHByaW1hcnkga2V5cyBhbmQgcmFuZ2UgcXVlcmllc1xuICAgKiovXG4gIHJlYWRvbmx5IHNvcnRLZXk/OiBBdHRyaWJ1dGU7XG59XG5cbi8qKlxuICogQ29tcGxpYW5jZSBjb25zdHJ1Y3QgZm9yIEREQiBUYWJsZVxuICogRW5mb3JjZXM6XG4gKiBUYWJsZSBuYW1lIGNvbnZlbnRpb25cbiAqIEtNUyBFbmNyeXB0aW9uIGF0IFJlc3RcbiAqIERlbGV0aW9uIFByb3RlY3Rpb25cbiAqIFBJVFJcbiAqIFJFVEFJTiBSZW1vdmFsUG9saWN5XG4gKi9cbmV4cG9ydCBjbGFzcyBNZGFhRERCVGFibGUgZXh0ZW5kcyBUYWJsZSB7XG4gIHByaXZhdGUgc3RhdGljIHNldFByb3BzKHByb3BzOiBNZGFhRERCVGFibGVQcm9wcyk6IFRhYmxlUHJvcHMge1xuICAgIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLm5hbWluZy5yZXNvdXJjZU5hbWUocHJvcHMudGFibGVOYW1lLCAyNTQpLFxuICAgICAgZW5jcnlwdGlvbjogVGFibGVFbmNyeXB0aW9uLkNVU1RPTUVSX01BTkFHRUQsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogdHJ1ZSxcbiAgICAgIHBvaW50SW5UaW1lUmVjb3Zlcnk6IHRydWUsXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5wcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xuICB9XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNZGFhRERCVGFibGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgTWRhYUREQlRhYmxlLnNldFByb3BzKHByb3BzKSk7XG5cbiAgICBNZGFhTmFnU3VwcHJlc3Npb25zLmFkZENvZGVSZXNvdXJjZVN1cHByZXNzaW9ucyhcbiAgICAgIHRoaXMsXG4gICAgICBbXG4gICAgICAgIHsgaWQ6ICdISVBBQS5TZWN1cml0eS1EeW5hbW9EQkluQmFja3VwUGxhbicsIHJlYXNvbjogJ01EQUEgZG9lcyBub3QgZW5mb3JjZSB1c2Ugb2YgQVdTIEJhY2t1cCcgfSxcbiAgICAgICAgeyBpZDogJ1BDSS5EU1MuMzIxLUR5bmFtb0RCSW5CYWNrdXBQbGFuJywgcmVhc29uOiAnTURBQSBkb2VzIG5vdCBlbmZvcmNlIHVzZSBvZiBBV1MgQmFja3VwJyB9LFxuICAgICAgICB7IGlkOiAnTklTVC44MDAuNTMuUjUtRHluYW1vREJJbkJhY2t1cFBsYW4nLCByZWFzb246ICdNREFBIGRvZXMgbm90IGVuZm9yY2UgdXNlIG9mIEFXUyBCYWNrdXAnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ05JU1QuODAwLjUzLlI1LUR5bmFtb0RCQXV0b1NjYWxpbmdFbmFibGVkJyxcbiAgICAgICAgICByZWFzb246ICdNREFBIGRvZXMgbm90IGVuZm9yY2UgdXNlIG9mIEF1dG8gU2NhbGluZyBvbiBQcm92aXNpb25lZCBDYXBhY2l0eSB0YWJsZXMuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnSElQQUEuU2VjdXJpdHktRHluYW1vREJBdXRvU2NhbGluZ0VuYWJsZWQnLFxuICAgICAgICAgIHJlYXNvbjogJ01EQUEgZG9lcyBub3QgZW5mb3JjZSB1c2Ugb2YgQXV0byBTY2FsaW5nIG9uIFByb3Zpc2lvbmVkIENhcGFjaXR5IHRhYmxlcy4nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdQQ0kuRFNTLjMyMS1EeW5hbW9EQkF1dG9TY2FsaW5nRW5hYmxlZCcsXG4gICAgICAgICAgcmVhc29uOiAnTURBQSBkb2VzIG5vdCBlbmZvcmNlIHVzZSBvZiBBdXRvIFNjYWxpbmcgb24gUHJvdmlzaW9uZWQgQ2FwYWNpdHkgdGFibGVzLicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgbmV3IG1kYWFfY29uc3RydWN0Lk1kYWFQYXJhbUFuZE91dHB1dCh0aGlzLCB7XG4gICAgICAuLi57XG4gICAgICAgIHJlc291cmNlVHlwZTogJ3RhYmxlJyxcbiAgICAgICAgcmVzb3VyY2VJZDogcHJvcHMudGFibGVOYW1lLFxuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRhYmxlTmFtZSxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIG5ldyBtZGFhX2NvbnN0cnVjdC5NZGFhUGFyYW1BbmRPdXRwdXQodGhpcywge1xuICAgICAgLi4ue1xuICAgICAgICByZXNvdXJjZVR5cGU6ICd0YWJsZScsXG4gICAgICAgIHJlc291cmNlSWQ6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgICAgbmFtZTogJ2FybicsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRhYmxlQXJuLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnRhYmxlU3RyZWFtQXJuKSB7XG4gICAgICBuZXcgbWRhYV9jb25zdHJ1Y3QuTWRhYVBhcmFtQW5kT3V0cHV0KHRoaXMsIHtcbiAgICAgICAgLi4ue1xuICAgICAgICAgIHJlc291cmNlVHlwZTogJ3RhYmxlJyxcbiAgICAgICAgICByZXNvdXJjZUlkOiBwcm9wcy50YWJsZU5hbWUsXG4gICAgICAgICAgbmFtZTogJ3N0cmVhbUFybicsXG4gICAgICAgICAgdmFsdWU6IHRoaXMudGFibGVTdHJlYW1Bcm4sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aws-mdaa/ddb-constructs",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "MDAA DDB Constructs",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Amazon Web Services",
|
|
8
|
+
"url": "https://aws.amazon.com/solutions"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/aws/modern-data-architecture-accelerator"
|
|
13
|
+
},
|
|
14
|
+
"main": "lib/index.js",
|
|
15
|
+
"types": "lib/index.d.ts",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "export JSII_SILENCE_WARNING_UNTESTED_NODE_VERSION=1 && jsii --project-references",
|
|
18
|
+
"watch": "jsii -w --project-references",
|
|
19
|
+
"package": "jsii-pacmak --npmignore=false",
|
|
20
|
+
"test": "jest --passWithNoTests --coverage",
|
|
21
|
+
"lint": "eslint --max-warnings 0 -c ../../../../.eslintrc.json '**/*.{ts,tsx}' --ignore-pattern 'dist/*' --ignore-pattern 'node_modules/*' --ignore-pattern \"*.d.ts\" ",
|
|
22
|
+
"test-coverage": "jest --passWithNoTests --coverage"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@aws-mdaa/construct": "1.2.0",
|
|
26
|
+
"@aws-mdaa/kms-constructs": "1.2.0",
|
|
27
|
+
"@aws-mdaa/naming": "1.2.0",
|
|
28
|
+
"@aws-mdaa/testing": "1.2.0",
|
|
29
|
+
"@types/jest": "29.5.0",
|
|
30
|
+
"@types/node": "17.0.23",
|
|
31
|
+
"@types/prettier": "2.6.0",
|
|
32
|
+
"aws-cdk-lib": "2.201.0",
|
|
33
|
+
"cdk-nag": "2.37.1",
|
|
34
|
+
"constructs": "10.0.96",
|
|
35
|
+
"jest": "29.5.0",
|
|
36
|
+
"ts-jest": "29.1.0",
|
|
37
|
+
"ts-node": "10.9.1",
|
|
38
|
+
"typescript": "4.6.3",
|
|
39
|
+
"typescript-json-schema": "0.63.0"
|
|
40
|
+
},
|
|
41
|
+
"overrides": {
|
|
42
|
+
"aws-cdk-lib": "2.201.0",
|
|
43
|
+
"@types/babel__traverse": "7.18.2"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@aws-mdaa/construct": "1.2.0",
|
|
47
|
+
"@aws-mdaa/kms-constructs": "1.2.0",
|
|
48
|
+
"@aws-mdaa/naming": "1.2.0",
|
|
49
|
+
"aws-cdk-lib": "2.201.0",
|
|
50
|
+
"cdk-nag": "2.37.1",
|
|
51
|
+
"constructs": "10.0.96"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"@aws-mdaa/construct": "1.2.0",
|
|
55
|
+
"@aws-mdaa/kms-constructs": "1.2.0",
|
|
56
|
+
"@aws-mdaa/naming": "1.2.0",
|
|
57
|
+
"aws-cdk-lib": "2.201.0",
|
|
58
|
+
"cdk-nag": "2.37.1",
|
|
59
|
+
"constructs": "10.0.96"
|
|
60
|
+
},
|
|
61
|
+
"gitHead": "8b49a2b371014baec046605ffdbfe38951099c31",
|
|
62
|
+
"stability": "experimental",
|
|
63
|
+
"jsii": {
|
|
64
|
+
"outdir": "jsii-dist",
|
|
65
|
+
"versionFormat": "full",
|
|
66
|
+
"targets": {
|
|
67
|
+
"java_disabled": {
|
|
68
|
+
"package": "software.amazon.awsmdaa.construct.ddb",
|
|
69
|
+
"maven": {
|
|
70
|
+
"groupId": "software.amazon.awsmdaa.construct",
|
|
71
|
+
"artifactId": "ddb"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"python_disabled": {
|
|
75
|
+
"distName": "aws-mdaa.ddb-constructs",
|
|
76
|
+
"module": "aws_mdaa.ddb_constructs"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|