@aws-mdaa/transfer-family-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/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # Construct Overview
2
+
3
+ Opinionated L2 Constructs for Transfer Family.
4
+
5
+ ## Security/Compliance
6
+
7
+ ### Transfer Family Server
8
+ * Enforce server name
9
+ * Enforce SFTP protocol
10
+ * Enforce TransferSecurityPolicy-FIPS-2020-06 security policy
11
+ * Enforce VPC binding
package/lib/index.d.ts ADDED
@@ -0,0 +1,74 @@
1
+ /*!
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { MdaaConstructProps } from '@aws-mdaa/construct';
6
+ import { IMdaaRole } from '@aws-mdaa/iam-constructs';
7
+ import { CfnTag, IResolvable } from 'aws-cdk-lib';
8
+ import { CfnServer } from 'aws-cdk-lib/aws-transfer';
9
+ import { Construct } from 'constructs';
10
+ export interface MdaaSFTPServerProps extends MdaaConstructProps {
11
+ /**
12
+ * Q-ENHANCED-PROPERTY
13
+ * Required VPC ID for SFTP server deployment providing network isolation and security controls. Ensures server operates within the specified VPC for secure networking and integration with other VPC resources.
14
+ *
15
+ * Use cases: VPC network isolation; Secure networking; VPC resource integration
16
+ *
17
+ * AWS: Amazon VPC for Transfer Family SFTP server network isolation and security
18
+ *
19
+ * Validation: Must be valid VPC ID; required; VPC must exist and be accessible
20
+ **/
21
+ readonly vpcId: string;
22
+ /**
23
+ * Q-ENHANCED-PROPERTY
24
+ * Required array of subnet IDs for SFTP server endpoint placement within the VPC. Defines the network subnets where server endpoints will be deployed for secure VPC connectivity and availability zone distribution.
25
+ *
26
+ * Use cases: VPC network placement; Subnet-specific deployment; Multi-AZ server distribution
27
+ *
28
+ * AWS: Amazon VPC subnets for Transfer Family SFTP server endpoint placement
29
+ *
30
+ * Validation: Must be array of valid subnet IDs; required; subnets must exist in specified VPC
31
+ **/
32
+ readonly subnetIds: string[];
33
+ /**
34
+ * Q-ENHANCED-PROPERTY
35
+ * Required primary security group ID for SFTP server network access control defining inbound and outbound traffic rules. Provides network-level security controls for SFTP server access and client connectivity.
36
+ *
37
+ * Use cases: Network access control; SFTP traffic filtering; Client connectivity security
38
+ *
39
+ * AWS: Amazon VPC security group for Transfer Family SFTP server network access control
40
+ *
41
+ * Validation: Must be valid security group ID; required; defines primary network access rules
42
+ **/
43
+ readonly securityGroupId: string;
44
+ readonly addressAllocationIds?: string[];
45
+ readonly additionalSecurityGroupIds?: string[];
46
+ readonly publicAddress?: boolean;
47
+ /**
48
+ * Q-ENHANCED-PROPERTY
49
+ * Optional storage domain specification for file transfer operations controlling the underlying storage system. Determines whether files are stored in Amazon S3 or Amazon EFS for different storage requirements and access patterns.
50
+ *
51
+ * Use cases: Storage system selection; File storage requirements; Access pattern optimization
52
+ *
53
+ * AWS: AWS Transfer Family server domain configuration for storage system selection
54
+ *
55
+ * Validation: Must be valid domain type (S3, EFS) if provided; determines storage backend
56
+ **/
57
+ readonly domain?: string;
58
+ readonly identityProviderDetails?: CfnServer.IdentityProviderDetailsProperty | IResolvable;
59
+ readonly identityProviderType?: string;
60
+ readonly loggingRole: IMdaaRole;
61
+ readonly preAuthenticationLoginBanner?: string;
62
+ readonly tags?: CfnTag[];
63
+ readonly workflowDetails?: CfnServer.WorkflowDetailsProperty | IResolvable;
64
+ }
65
+ /**
66
+ * Reusable CDK construct for a compliant Transfer Family SFTP Server.
67
+ * Specifically, enforces VPC configuration, logging, and security policy
68
+ */
69
+ export declare class MdaaSFTPServer extends CfnServer {
70
+ private static SECURITY_POLICY_NAME;
71
+ /** Overrides specific compliance-related properties. */
72
+ private static setProps;
73
+ constructor(scope: Construct, id: string, props: MdaaSFTPServerProps);
74
+ }
package/lib/index.js ADDED
@@ -0,0 +1,56 @@
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.MdaaSFTPServer = void 0;
10
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
11
+
12
+ const construct_1 = require("@aws-mdaa/construct"); //NOSONAR
13
+ const aws_transfer_1 = require("aws-cdk-lib/aws-transfer");
14
+ /**
15
+ * Reusable CDK construct for a compliant Transfer Family SFTP Server.
16
+ * Specifically, enforces VPC configuration, logging, and security policy
17
+ */
18
+ class MdaaSFTPServer extends aws_transfer_1.CfnServer {
19
+ /** Overrides specific compliance-related properties. */
20
+ static setProps(props) {
21
+ const overrideProps = {
22
+ endpointType: 'VPC',
23
+ endpointDetails: {
24
+ addressAllocationIds: props.addressAllocationIds,
25
+ vpcId: props.vpcId,
26
+ securityGroupIds: [props.securityGroupId, ...(props.additionalSecurityGroupIds || [])],
27
+ subnetIds: props.subnetIds,
28
+ },
29
+ protocols: ['SFTP'],
30
+ securityPolicyName: MdaaSFTPServer.SECURITY_POLICY_NAME,
31
+ loggingRole: props.loggingRole.roleArn,
32
+ };
33
+ const allProps = { ...props, ...overrideProps };
34
+ return allProps;
35
+ }
36
+ constructor(scope, id, props) {
37
+ super(scope, id, MdaaSFTPServer.setProps(props));
38
+ new construct_1.MdaaParamAndOutput(this, {
39
+ naming: props.naming,
40
+ resourceType: 'server',
41
+ name: 'arn',
42
+ value: this.attrArn,
43
+ }, scope);
44
+ new construct_1.MdaaParamAndOutput(this, {
45
+ naming: props.naming,
46
+ resourceType: 'server',
47
+ name: 'id',
48
+ value: this.attrServerId,
49
+ }, scope);
50
+ }
51
+ }
52
+ exports.MdaaSFTPServer = MdaaSFTPServer;
53
+ _a = JSII_RTTI_SYMBOL_1;
54
+ MdaaSFTPServer[_a] = { fqn: "@aws-mdaa/transfer-family-constructs.MdaaSFTPServer", version: "1.2.0" };
55
+ MdaaSFTPServer.SECURITY_POLICY_NAME = 'TransferSecurityPolicy-FIPS-2020-06';
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7R0FHRztBQUVILG1EQUE2RSxDQUFDLFNBQVM7QUFHdkYsMkRBQXFFO0FBMkRyRTs7O0dBR0c7QUFDSCxNQUFhLGNBQWUsU0FBUSx3QkFBUztJQUczQyx3REFBd0Q7SUFDaEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUEwQjtRQUNoRCxNQUFNLGFBQWEsR0FBRztZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixlQUFlLEVBQUU7Z0JBQ2Ysb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtnQkFDaEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdEYsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2FBQzNCO1lBQ0QsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ25CLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxvQkFBb0I7WUFDdkQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTztTQUN2QyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQ2hELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLDhCQUFrQixDQUNwQixJQUFJLEVBQ0o7WUFDRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDcEIsRUFDRCxLQUFLLENBQ04sQ0FBQztRQUVGLElBQUksOEJBQWtCLENBQ3BCLElBQUksRUFDSjtZQUNFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixZQUFZLEVBQUUsUUFBUTtZQUN0QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWTtTQUN6QixFQUNELEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQzs7QUE3Q0gsd0NBOENDOzs7QUE3Q2dCLG1DQUFvQixHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgTWRhYUNvbnN0cnVjdFByb3BzLCBNZGFhUGFyYW1BbmRPdXRwdXQgfSBmcm9tICdAYXdzLW1kYWEvY29uc3RydWN0JzsgLy9OT1NPTkFSXG5pbXBvcnQgeyBJTWRhYVJvbGUgfSBmcm9tICdAYXdzLW1kYWEvaWFtLWNvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuVGFnLCBJUmVzb2x2YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmblNlcnZlciwgQ2ZuU2VydmVyUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtdHJhbnNmZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWRhYVNGVFBTZXJ2ZXJQcm9wcyBleHRlbmRzIE1kYWFDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIFJlcXVpcmVkIFZQQyBJRCBmb3IgU0ZUUCBzZXJ2ZXIgZGVwbG95bWVudCBwcm92aWRpbmcgbmV0d29yayBpc29sYXRpb24gYW5kIHNlY3VyaXR5IGNvbnRyb2xzLiBFbnN1cmVzIHNlcnZlciBvcGVyYXRlcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBWUEMgZm9yIHNlY3VyZSBuZXR3b3JraW5nIGFuZCBpbnRlZ3JhdGlvbiB3aXRoIG90aGVyIFZQQyByZXNvdXJjZXMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogVlBDIG5ldHdvcmsgaXNvbGF0aW9uOyBTZWN1cmUgbmV0d29ya2luZzsgVlBDIHJlc291cmNlIGludGVncmF0aW9uXG4gICAqXG4gICAqIEFXUzogQW1hem9uIFZQQyBmb3IgVHJhbnNmZXIgRmFtaWx5IFNGVFAgc2VydmVyIG5ldHdvcmsgaXNvbGF0aW9uIGFuZCBzZWN1cml0eVxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIFZQQyBJRDsgcmVxdWlyZWQ7IFZQQyBtdXN0IGV4aXN0IGFuZCBiZSBhY2Nlc3NpYmxlXG4gICAqKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogUmVxdWlyZWQgYXJyYXkgb2Ygc3VibmV0IElEcyBmb3IgU0ZUUCBzZXJ2ZXIgZW5kcG9pbnQgcGxhY2VtZW50IHdpdGhpbiB0aGUgVlBDLiBEZWZpbmVzIHRoZSBuZXR3b3JrIHN1Ym5ldHMgd2hlcmUgc2VydmVyIGVuZHBvaW50cyB3aWxsIGJlIGRlcGxveWVkIGZvciBzZWN1cmUgVlBDIGNvbm5lY3Rpdml0eSBhbmQgYXZhaWxhYmlsaXR5IHpvbmUgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IFZQQyBuZXR3b3JrIHBsYWNlbWVudDsgU3VibmV0LXNwZWNpZmljIGRlcGxveW1lbnQ7IE11bHRpLUFaIHNlcnZlciBkaXN0cmlidXRpb25cbiAgICpcbiAgICogQVdTOiBBbWF6b24gVlBDIHN1Ym5ldHMgZm9yIFRyYW5zZmVyIEZhbWlseSBTRlRQIHNlcnZlciBlbmRwb2ludCBwbGFjZW1lbnRcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBhcnJheSBvZiB2YWxpZCBzdWJuZXQgSURzOyByZXF1aXJlZDsgc3VibmV0cyBtdXN0IGV4aXN0IGluIHNwZWNpZmllZCBWUENcbiAgICoqL1xuICByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBSZXF1aXJlZCBwcmltYXJ5IHNlY3VyaXR5IGdyb3VwIElEIGZvciBTRlRQIHNlcnZlciBuZXR3b3JrIGFjY2VzcyBjb250cm9sIGRlZmluaW5nIGluYm91bmQgYW5kIG91dGJvdW5kIHRyYWZmaWMgcnVsZXMuIFByb3ZpZGVzIG5ldHdvcmstbGV2ZWwgc2VjdXJpdHkgY29udHJvbHMgZm9yIFNGVFAgc2VydmVyIGFjY2VzcyBhbmQgY2xpZW50IGNvbm5lY3Rpdml0eS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBOZXR3b3JrIGFjY2VzcyBjb250cm9sOyBTRlRQIHRyYWZmaWMgZmlsdGVyaW5nOyBDbGllbnQgY29ubmVjdGl2aXR5IHNlY3VyaXR5XG4gICAqXG4gICAqIEFXUzogQW1hem9uIFZQQyBzZWN1cml0eSBncm91cCBmb3IgVHJhbnNmZXIgRmFtaWx5IFNGVFAgc2VydmVyIG5ldHdvcmsgYWNjZXNzIGNvbnRyb2xcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSB2YWxpZCBzZWN1cml0eSBncm91cCBJRDsgcmVxdWlyZWQ7IGRlZmluZXMgcHJpbWFyeSBuZXR3b3JrIGFjY2VzcyBydWxlc1xuICAgKiovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuICByZWFkb25seSBhZGRyZXNzQWxsb2NhdGlvbklkcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBhZGRpdGlvbmFsU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwdWJsaWNBZGRyZXNzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgc3RvcmFnZSBkb21haW4gc3BlY2lmaWNhdGlvbiBmb3IgZmlsZSB0cmFuc2ZlciBvcGVyYXRpb25zIGNvbnRyb2xsaW5nIHRoZSB1bmRlcmx5aW5nIHN0b3JhZ2Ugc3lzdGVtLiBEZXRlcm1pbmVzIHdoZXRoZXIgZmlsZXMgYXJlIHN0b3JlZCBpbiBBbWF6b24gUzMgb3IgQW1hem9uIEVGUyBmb3IgZGlmZmVyZW50IHN0b3JhZ2UgcmVxdWlyZW1lbnRzIGFuZCBhY2Nlc3MgcGF0dGVybnMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogU3RvcmFnZSBzeXN0ZW0gc2VsZWN0aW9uOyBGaWxlIHN0b3JhZ2UgcmVxdWlyZW1lbnRzOyBBY2Nlc3MgcGF0dGVybiBvcHRpbWl6YXRpb25cbiAgICpcbiAgICogQVdTOiBBV1MgVHJhbnNmZXIgRmFtaWx5IHNlcnZlciBkb21haW4gY29uZmlndXJhdGlvbiBmb3Igc3RvcmFnZSBzeXN0ZW0gc2VsZWN0aW9uXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgZG9tYWluIHR5cGUgKFMzLCBFRlMpIGlmIHByb3ZpZGVkOyBkZXRlcm1pbmVzIHN0b3JhZ2UgYmFja2VuZFxuICAgKiovXG4gIHJlYWRvbmx5IGRvbWFpbj86IHN0cmluZztcbiAgcmVhZG9ubHkgaWRlbnRpdHlQcm92aWRlckRldGFpbHM/OiBDZm5TZXJ2ZXIuSWRlbnRpdHlQcm92aWRlckRldGFpbHNQcm9wZXJ0eSB8IElSZXNvbHZhYmxlO1xuICByZWFkb25seSBpZGVudGl0eVByb3ZpZGVyVHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9nZ2luZ1JvbGU6IElNZGFhUm9sZTtcbiAgcmVhZG9ubHkgcHJlQXV0aGVudGljYXRpb25Mb2dpbkJhbm5lcj86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFncz86IENmblRhZ1tdO1xuICByZWFkb25seSB3b3JrZmxvd0RldGFpbHM/OiBDZm5TZXJ2ZXIuV29ya2Zsb3dEZXRhaWxzUHJvcGVydHkgfCBJUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBSZXVzYWJsZSBDREsgY29uc3RydWN0IGZvciBhIGNvbXBsaWFudCBUcmFuc2ZlciBGYW1pbHkgU0ZUUCBTZXJ2ZXIuXG4gKiBTcGVjaWZpY2FsbHksIGVuZm9yY2VzIFZQQyBjb25maWd1cmF0aW9uLCBsb2dnaW5nLCBhbmQgc2VjdXJpdHkgcG9saWN5XG4gKi9cbmV4cG9ydCBjbGFzcyBNZGFhU0ZUUFNlcnZlciBleHRlbmRzIENmblNlcnZlciB7XG4gIHByaXZhdGUgc3RhdGljIFNFQ1VSSVRZX1BPTElDWV9OQU1FID0gJ1RyYW5zZmVyU2VjdXJpdHlQb2xpY3ktRklQUy0yMDIwLTA2JztcblxuICAvKiogT3ZlcnJpZGVzIHNwZWNpZmljIGNvbXBsaWFuY2UtcmVsYXRlZCBwcm9wZXJ0aWVzLiAqL1xuICBwcml2YXRlIHN0YXRpYyBzZXRQcm9wcyhwcm9wczogTWRhYVNGVFBTZXJ2ZXJQcm9wcyk6IENmblNlcnZlclByb3BzIHtcbiAgICBjb25zdCBvdmVycmlkZVByb3BzID0ge1xuICAgICAgZW5kcG9pbnRUeXBlOiAnVlBDJyxcbiAgICAgIGVuZHBvaW50RGV0YWlsczoge1xuICAgICAgICBhZGRyZXNzQWxsb2NhdGlvbklkczogcHJvcHMuYWRkcmVzc0FsbG9jYXRpb25JZHMsXG4gICAgICAgIHZwY0lkOiBwcm9wcy52cGNJZCxcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogW3Byb3BzLnNlY3VyaXR5R3JvdXBJZCwgLi4uKHByb3BzLmFkZGl0aW9uYWxTZWN1cml0eUdyb3VwSWRzIHx8IFtdKV0sXG4gICAgICAgIHN1Ym5ldElkczogcHJvcHMuc3VibmV0SWRzLFxuICAgICAgfSxcbiAgICAgIHByb3RvY29sczogWydTRlRQJ10sXG4gICAgICBzZWN1cml0eVBvbGljeU5hbWU6IE1kYWFTRlRQU2VydmVyLlNFQ1VSSVRZX1BPTElDWV9OQU1FLFxuICAgICAgbG9nZ2luZ1JvbGU6IHByb3BzLmxvZ2dpbmdSb2xlLnJvbGVBcm4sXG4gICAgfTtcbiAgICBjb25zdCBhbGxQcm9wcyA9IHsgLi4ucHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbiAgICByZXR1cm4gYWxsUHJvcHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWRhYVNGVFBTZXJ2ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgTWRhYVNGVFBTZXJ2ZXIuc2V0UHJvcHMocHJvcHMpKTtcblxuICAgIG5ldyBNZGFhUGFyYW1BbmRPdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAge1xuICAgICAgICBuYW1pbmc6IHByb3BzLm5hbWluZyxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiAnc2VydmVyJyxcbiAgICAgICAgbmFtZTogJ2FybicsXG4gICAgICAgIHZhbHVlOiB0aGlzLmF0dHJBcm4sXG4gICAgICB9LFxuICAgICAgc2NvcGUsXG4gICAgKTtcblxuICAgIG5ldyBNZGFhUGFyYW1BbmRPdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAge1xuICAgICAgICBuYW1pbmc6IHByb3BzLm5hbWluZyxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiAnc2VydmVyJyxcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdmFsdWU6IHRoaXMuYXR0clNlcnZlcklkLFxuICAgICAgfSxcbiAgICAgIHNjb3BlLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@aws-mdaa/transfer-family-constructs",
3
+ "version": "1.2.0",
4
+ "description": "MDAA Transfer Family 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/iam-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/iam-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/iam-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.transfer",
69
+ "maven": {
70
+ "groupId": "software.amazon.awsmdaa.construct",
71
+ "artifactId": "transfer"
72
+ }
73
+ },
74
+ "python_disabled": {
75
+ "distName": "aws-mdaa.transfer-family-constructs",
76
+ "module": "aws_mdaa.transfer_family_constructs"
77
+ }
78
+ }
79
+ }
80
+ }