@fjall/components-infrastructure 0.88.3 → 0.89.2
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/LICENSE +21 -0
- package/dist/lib/app.d.ts +33 -10
- package/dist/lib/app.js +79 -36
- package/dist/lib/aspects/index.d.ts +1 -0
- package/dist/lib/aspects/index.js +6 -0
- package/dist/lib/config/aws/accountAuditRole.d.ts +20 -0
- package/dist/lib/config/aws/accountAuditRole.js +38 -0
- package/dist/lib/config/aws/accountMonitoringRole.d.ts +22 -0
- package/dist/lib/config/aws/accountMonitoringRole.js +133 -0
- package/dist/lib/config/aws/cloudTrail.d.ts +0 -3
- package/dist/lib/config/aws/cloudTrail.js +2 -2
- package/dist/lib/config/aws/disasterRecovery.js +53 -20
- package/dist/lib/config/aws/ecrDefaultImage.js +4 -3
- package/dist/lib/config/aws/index.d.ts +4 -0
- package/dist/lib/config/aws/index.js +5 -1
- package/dist/lib/config/aws/oidcConnector.d.ts +8 -0
- package/dist/lib/config/aws/oidcConnector.js +46 -0
- package/dist/lib/config/aws/platform.d.ts +2 -0
- package/dist/lib/config/aws/platform.js +6 -0
- package/dist/lib/config/index.d.ts +2 -0
- package/dist/lib/config/index.js +21 -0
- package/dist/lib/patterns/aws/account.js +22 -10
- package/dist/lib/patterns/aws/cdn.d.ts +19 -40
- package/dist/lib/patterns/aws/cdn.js +21 -17
- package/dist/lib/patterns/aws/compute.d.ts +9 -720
- package/dist/lib/patterns/aws/compute.js +27 -432
- package/dist/lib/patterns/aws/computeEc2.d.ts +67 -0
- package/dist/lib/patterns/aws/computeEc2.js +46 -0
- package/dist/lib/patterns/aws/computeEcs.d.ts +446 -0
- package/dist/lib/patterns/aws/computeEcs.js +246 -0
- package/dist/lib/patterns/aws/computeLambda.d.ts +220 -0
- package/dist/lib/patterns/aws/computeLambda.js +147 -0
- package/dist/lib/patterns/aws/database.d.ts +7 -87
- package/dist/lib/patterns/aws/database.js +15 -38
- package/dist/lib/patterns/aws/domainDelegation.d.ts +8 -0
- package/dist/lib/patterns/aws/domainDelegation.js +54 -0
- package/dist/lib/patterns/aws/domainFactory.d.ts +8 -0
- package/dist/lib/patterns/aws/domainFactory.js +23 -0
- package/dist/lib/patterns/aws/index.d.ts +4 -1
- package/dist/lib/patterns/aws/index.js +6 -2
- package/dist/lib/patterns/aws/interfaces/cdn.d.ts +26 -0
- package/dist/lib/patterns/aws/interfaces/cdn.js +14 -0
- package/dist/lib/patterns/aws/interfaces/connector.d.ts +4 -181
- package/dist/lib/patterns/aws/interfaces/connector.js +16 -113
- package/dist/lib/patterns/aws/interfaces/domain.d.ts +2 -0
- package/dist/lib/patterns/aws/interfaces/domain.js +6 -0
- package/dist/lib/patterns/aws/interfaces/index.d.ts +2 -0
- package/dist/lib/patterns/aws/interfaces/index.js +5 -2
- package/dist/lib/patterns/aws/interfaces/pattern.d.ts +9 -6
- package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
- package/dist/lib/patterns/aws/network.js +6 -9
- package/dist/lib/patterns/aws/organisation.d.ts +4 -2
- package/dist/lib/patterns/aws/organisation.js +21 -8
- package/dist/lib/patterns/aws/payload.js +21 -12
- package/dist/lib/patterns/aws/storage.d.ts +3 -2
- package/dist/lib/patterns/aws/storage.js +1 -1
- package/dist/lib/resources/aws/audit/auditRole.js +4 -4
- package/dist/lib/resources/aws/audit/index.d.ts +1 -0
- package/dist/lib/resources/aws/audit/index.js +6 -0
- package/dist/lib/resources/aws/backup/backupPlan.js +3 -2
- package/dist/lib/resources/aws/backup/backupVault.js +5 -3
- package/dist/lib/resources/aws/base/awsStack.d.ts +4 -2
- package/dist/lib/resources/aws/base/awsStack.js +8 -2
- package/dist/lib/resources/aws/cdn/cloudFront.d.ts +14 -0
- package/dist/lib/resources/aws/cdn/cloudFront.js +52 -18
- package/dist/lib/resources/aws/compute/ec2.js +18 -22
- package/dist/lib/resources/aws/compute/ecs.d.ts +23 -10
- package/dist/lib/resources/aws/compute/ecs.js +121 -64
- package/dist/lib/resources/aws/compute/index.d.ts +1 -0
- package/dist/lib/resources/aws/compute/index.js +2 -1
- package/dist/lib/resources/aws/compute/lambda.d.ts +0 -2
- package/dist/lib/resources/aws/compute/lambda.js +12 -27
- package/dist/lib/resources/aws/database/dynamodb.js +3 -13
- package/dist/lib/resources/aws/database/index.d.ts +8 -2
- package/dist/lib/resources/aws/database/index.js +19 -3
- package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -3
- package/dist/lib/resources/aws/database/rdsAurora.js +32 -68
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +6 -6
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +25 -29
- package/dist/lib/resources/aws/database/rdsDefaults.d.ts +11 -0
- package/dist/lib/resources/aws/database/rdsDefaults.js +15 -0
- package/dist/lib/resources/aws/database/rdsHelpers.d.ts +39 -0
- package/dist/lib/resources/aws/database/rdsHelpers.js +75 -0
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +7 -8
- package/dist/lib/resources/aws/database/rdsInstance.js +40 -84
- package/dist/lib/resources/aws/database/rdsProxyOutput.d.ts +7 -0
- package/dist/lib/resources/aws/database/rdsProxyOutput.js +18 -0
- package/dist/lib/resources/aws/iam/index.d.ts +0 -1
- package/dist/lib/resources/aws/iam/index.js +1 -2
- package/dist/lib/resources/aws/index.d.ts +0 -1
- package/dist/lib/resources/aws/index.js +1 -2
- package/dist/lib/resources/aws/logging/cloudTrail.js +13 -3
- package/dist/lib/resources/aws/logging/index.d.ts +2 -0
- package/dist/lib/resources/aws/logging/index.js +19 -0
- package/dist/lib/resources/aws/messaging/index.d.ts +3 -2
- package/dist/lib/resources/aws/messaging/index.js +4 -3
- package/dist/lib/resources/aws/messaging/sqs.js +14 -11
- package/dist/lib/resources/aws/messaging/utils.d.ts +1 -2
- package/dist/lib/resources/aws/messaging/utils.js +3 -4
- package/dist/lib/resources/aws/monitoring/index.d.ts +0 -1
- package/dist/lib/resources/aws/monitoring/index.js +4 -17
- package/dist/lib/resources/aws/networking/domain.d.ts +13 -0
- package/dist/lib/resources/aws/networking/domain.js +102 -0
- package/dist/lib/resources/aws/networking/domainCertificate.d.ts +13 -0
- package/dist/lib/resources/aws/networking/domainCertificate.js +28 -0
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +28 -0
- package/dist/lib/resources/aws/networking/hostedZone.js +150 -0
- package/dist/lib/resources/aws/networking/index.d.ts +4 -0
- package/dist/lib/resources/aws/networking/index.js +5 -1
- package/dist/lib/resources/aws/networking/ipamPool.js +57 -31
- package/dist/lib/resources/aws/networking/securityGroup.d.ts +5 -0
- package/dist/lib/resources/aws/networking/securityGroup.js +14 -0
- package/dist/lib/resources/aws/networking/vpc.js +9 -4
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +17 -0
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +66 -0
- package/dist/lib/resources/aws/organisation/index.d.ts +1 -0
- package/dist/lib/resources/aws/organisation/index.js +4 -2
- package/dist/lib/resources/aws/secrets/index.d.ts +0 -1
- package/dist/lib/resources/aws/secrets/index.js +1 -2
- package/dist/lib/resources/aws/storage/ecr.d.ts +0 -1
- package/dist/lib/resources/aws/storage/ecr.js +5 -5
- package/dist/lib/resources/aws/storage/s3.d.ts +3 -3
- package/dist/lib/resources/aws/storage/s3.js +1 -1
- package/dist/lib/resources/aws/utilities/index.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/index.js +22 -0
- package/dist/lib/utils/backupTierMapping.d.ts +11 -0
- package/dist/lib/utils/backupTierMapping.js +17 -0
- package/dist/lib/utils/capitaliseString.d.ts +1 -12
- package/dist/lib/utils/capitaliseString.js +8 -28
- package/dist/lib/utils/connections.d.ts +46 -0
- package/dist/lib/utils/connections.js +159 -0
- package/dist/lib/utils/connector.d.ts +183 -0
- package/dist/lib/utils/connector.js +117 -0
- package/dist/lib/utils/databaseTypes.d.ts +85 -0
- package/dist/lib/utils/databaseTypes.js +34 -0
- package/dist/lib/utils/dnsRecords.d.ts +4 -0
- package/dist/lib/utils/dnsRecords.js +108 -0
- package/dist/lib/utils/domainTypes.d.ts +37 -0
- package/dist/lib/utils/domainTypes.js +10 -0
- package/dist/lib/utils/env.d.ts +42 -0
- package/dist/lib/utils/env.js +122 -0
- package/dist/lib/utils/getConfig.d.ts +0 -5
- package/dist/lib/utils/getConfig.js +42 -19
- package/dist/lib/utils/index.d.ts +7 -0
- package/dist/lib/utils/index.js +8 -1
- package/dist/lib/utils/removalPolicy.d.ts +2 -0
- package/dist/lib/utils/removalPolicy.js +16 -0
- package/dist/lib/utils/standardTagsAspect.d.ts +4 -0
- package/dist/lib/utils/standardTagsAspect.js +8 -8
- package/dist/lib/utils/vpcUtils.d.ts +14 -0
- package/dist/lib/utils/vpcUtils.js +28 -0
- package/package.json +7 -6
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StandardTagsAspect = void 0;
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const backupTierMapping_1 = require("./backupTierMapping");
|
|
5
6
|
/**
|
|
6
7
|
* Aspect to apply special Fjall tags to specific resource types.
|
|
7
8
|
*
|
|
@@ -58,6 +59,10 @@ class StandardTagsAspect {
|
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* Add disaster recovery tier tag to S3 buckets with backupVaultTier property.
|
|
62
|
+
* This serves as a per-resource override when `backupVaultTier` is set on a
|
|
63
|
+
* specific S3 bucket. CDK child tags override parent tags, so this takes
|
|
64
|
+
* precedence over the app-level backup tag set via `App.getApp({ backup })`.
|
|
65
|
+
*
|
|
61
66
|
* Tag format: fjall:disasterRecovery:tier = "{tier}"
|
|
62
67
|
*
|
|
63
68
|
* Tier mapping:
|
|
@@ -71,13 +76,8 @@ class StandardTagsAspect {
|
|
|
71
76
|
const backupConstruct = construct;
|
|
72
77
|
if (backupConstruct.backupVaultTier) {
|
|
73
78
|
const tier = backupConstruct.backupVaultTier;
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
resilient: "resilient",
|
|
77
|
-
enterprise: "enterprise"
|
|
78
|
-
};
|
|
79
|
-
const tagValue = tierMap[tier] || tier;
|
|
80
|
-
aws_cdk_lib_1.Tags.of(resource).add("fjall:disasterRecovery:tier", tagValue);
|
|
79
|
+
const tagValue = backupTierMapping_1.BACKUP_TIER_TAG_MAP[tier];
|
|
80
|
+
aws_cdk_lib_1.Tags.of(resource).add(backupTierMapping_1.BACKUP_TIER_TAG_KEY, tagValue);
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
83
|
construct = construct.node.scope;
|
|
@@ -85,4 +85,4 @@ class StandardTagsAspect {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
exports.StandardTagsAspect = StandardTagsAspect;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRUYWdzQXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL3N0YW5kYXJkVGFnc0FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBcUU7QUFHckUsMkRBSTZCO0FBTzdCOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsa0JBQWtCO0lBQS9CO1FBQ21CLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUE2RWxFLENBQUM7SUEzRUMsS0FBSyxDQUFDLElBQWdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLHlCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFtQixDQUFDO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBa0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsR0FBVztRQUNoQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBRXRDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxLQUFLLENBQUMsT0FBTztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1FBRTlELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLGtCQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ssZ0JBQWdCLENBQUMsUUFBcUI7UUFDNUMsSUFBSSxTQUFTLEdBQTJCLFFBQVEsQ0FBQztRQUNqRCxPQUFPLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sZUFBZSxHQUFHLFNBQWlDLENBQUM7WUFDMUQsSUFBSSxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUM7Z0JBRTdDLE1BQU0sUUFBUSxHQUFHLHVDQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsdUNBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3JELE1BQU07WUFDUixDQUFDO1lBQ0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE5RUQsZ0RBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJQXNwZWN0LCBDZm5SZXNvdXJjZSwgU3RhY2ssIFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHR5cGUgQ2ZuVlBDIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IHR5cGUgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICB0eXBlIEJhY2t1cFRpZXIsXG4gIEJBQ0tVUF9USUVSX1RBR19LRVksXG4gIEJBQ0tVUF9USUVSX1RBR19NQVBcbn0gZnJvbSBcIi4vYmFja3VwVGllck1hcHBpbmdcIjtcblxuLyoqIENvbnN0cnVjdCB3aXRoIG9wdGlvbmFsIGJhY2t1cFZhdWx0VGllciBwcm9wZXJ0eSAqL1xuaW50ZXJmYWNlIElCYWNrdXBUaWVyQ29uc3RydWN0IGV4dGVuZHMgSUNvbnN0cnVjdCB7XG4gIGJhY2t1cFZhdWx0VGllcj86IEJhY2t1cFRpZXI7XG59XG5cbi8qKlxuICogQXNwZWN0IHRvIGFwcGx5IHNwZWNpYWwgRmphbGwgdGFncyB0byBzcGVjaWZpYyByZXNvdXJjZSB0eXBlcy5cbiAqXG4gKiBUaGlzIGFzcGVjdCBoYW5kbGVzIHRhZ3MgdGhhdCBkZXBlbmQgb24gcmVzb3VyY2Utc3BlY2lmaWMgcHJvcGVydGllczpcbiAqIC0gZmphbGw6b3BlcmF0aW9uczpwb29sIG9uIFZQQ3Mgd2l0aCBJUEFNIGNvbmZpZ3VyYXRpb25cbiAqIC0gZmphbGw6ZGlzYXN0ZXJSZWNvdmVyeTp0aWVyIG9uIFMzIGJ1Y2tldHMgd2l0aCBiYWNrdXAgY29uZmlndXJhdGlvblxuICpcbiAqIFN0YW5kYXJkIEZqYWxsIHRhZ3MgKGNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50LCBjb3N0QWxsb2NhdGlvbjpzZXJ2aWNlLCBldGMuKVxuICogYXJlIGFwcGxpZWQgdmlhIFRhZ3Mub2YoYXBwKS5hZGQoKSBpbiB0aGUgQXBwIGNsYXNzLCB3aGljaCBwcm9wZXJseSBtZXJnZXNcbiAqIHdpdGggZXhpc3RpbmcgdGFncyBmcm9tIEwyIGNvbnN0cnVjdHMuXG4gKlxuICogVGhpcyBhc3BlY3QgdXNlcyBUYWdzLm9mKG5vZGUpLmFkZCgpIHRvIHByb3Blcmx5IG1lcmdlIHdpdGggZXhpc3RpbmcgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRUYWdzQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc2VkUmVzb3VyY2VzID0gbmV3IFdlYWtTZXQ8SUNvbnN0cnVjdD4oKTtcblxuICB2aXNpdChub2RlOiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvY2Vzc2VkUmVzb3VyY2VzLmhhcyhub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghQ2ZuUmVzb3VyY2UuaXNDZm5SZXNvdXJjZShub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbm9kZSBhcyBDZm5SZXNvdXJjZTtcbiAgICB0aGlzLnByb2Nlc3NlZFJlc291cmNlcy5hZGQobm9kZSk7XG5cbiAgICBpZiAocmVzb3VyY2Uubm9kZS5wYXRoLmluY2x1ZGVzKFwiU2VjcmV0Um90YXRpb25cIikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzb3VyY2UuY2ZuUmVzb3VyY2VUeXBlID09PSBcIkFXUzo6RUMyOjpWUENcIikge1xuICAgICAgdGhpcy5hZGRJcGFtUG9vbFRhZyhyZXNvdXJjZSBhcyBDZm5WUEMpO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZS5jZm5SZXNvdXJjZVR5cGUgPT09IFwiQVdTOjpTMzo6QnVja2V0XCIpIHtcbiAgICAgIHRoaXMuYWRkQmFja3VwVGllclRhZyhyZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBJUEFNIHBvb2wgdGFnIHRvIFZQQ3MgdGhhdCB1c2UgSVBBTSBmb3IgSVAgYWRkcmVzcyBhbGxvY2F0aW9uLlxuICAgKiBUYWcgZm9ybWF0OiBmamFsbDpvcGVyYXRpb25zOnBvb2wgPSBcInthY2NvdW50SWR9LXtyZWdpb259XCJcbiAgICovXG4gIHByaXZhdGUgYWRkSXBhbVBvb2xUYWcodnBjOiBDZm5WUEMpOiB2b2lkIHtcbiAgICBjb25zdCBpcGFtUG9vbElkID0gdnBjLmlwdjRJcGFtUG9vbElkO1xuXG4gICAgaWYgKCFpcGFtUG9vbElkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih2cGMpO1xuICAgIGNvbnN0IGFjY291bnRJZCA9XG4gICAgICBzdGFjay5ub2RlLnRyeUdldENvbnRleHQoXCJhY2NvdW50SWRcIikgfHxcbiAgICAgIHN0YWNrLmFjY291bnQgfHxcbiAgICAgIHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQ7XG4gICAgY29uc3QgcmVnaW9uID0gc3RhY2sucmVnaW9uIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTjtcblxuICAgIGlmIChhY2NvdW50SWQgJiYgcmVnaW9uKSB7XG4gICAgICBUYWdzLm9mKHZwYykuYWRkKFwiZmphbGw6b3BlcmF0aW9uczpwb29sXCIsIGAke2FjY291bnRJZH0tJHtyZWdpb259YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBkaXNhc3RlciByZWNvdmVyeSB0aWVyIHRhZyB0byBTMyBidWNrZXRzIHdpdGggYmFja3VwVmF1bHRUaWVyIHByb3BlcnR5LlxuICAgKiBUaGlzIHNlcnZlcyBhcyBhIHBlci1yZXNvdXJjZSBvdmVycmlkZSB3aGVuIGBiYWNrdXBWYXVsdFRpZXJgIGlzIHNldCBvbiBhXG4gICAqIHNwZWNpZmljIFMzIGJ1Y2tldC4gQ0RLIGNoaWxkIHRhZ3Mgb3ZlcnJpZGUgcGFyZW50IHRhZ3MsIHNvIHRoaXMgdGFrZXNcbiAgICogcHJlY2VkZW5jZSBvdmVyIHRoZSBhcHAtbGV2ZWwgYmFja3VwIHRhZyBzZXQgdmlhIGBBcHAuZ2V0QXBwKHsgYmFja3VwIH0pYC5cbiAgICpcbiAgICogVGFnIGZvcm1hdDogZmphbGw6ZGlzYXN0ZXJSZWNvdmVyeTp0aWVyID0gXCJ7dGllcn1cIlxuICAgKlxuICAgKiBUaWVyIG1hcHBpbmc6XG4gICAqIC0gc3RhbmRhcmQgLT4gXCJkZWZhdWx0XCIgKG1hdGNoZXMgZXhpc3RpbmcgYmFja3VwIHBsYW5zKVxuICAgKiAtIHJlc2lsaWVudCAtPiBcInJlc2lsaWVudFwiXG4gICAqIC0gZW50ZXJwcmlzZSAtPiBcImVudGVycHJpc2VcIlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCYWNrdXBUaWVyVGFnKHJlc291cmNlOiBDZm5SZXNvdXJjZSk6IHZvaWQge1xuICAgIGxldCBjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCB1bmRlZmluZWQgPSByZXNvdXJjZTtcbiAgICB3aGlsZSAoY29uc3RydWN0KSB7XG4gICAgICBjb25zdCBiYWNrdXBDb25zdHJ1Y3QgPSBjb25zdHJ1Y3QgYXMgSUJhY2t1cFRpZXJDb25zdHJ1Y3Q7XG4gICAgICBpZiAoYmFja3VwQ29uc3RydWN0LmJhY2t1cFZhdWx0VGllcikge1xuICAgICAgICBjb25zdCB0aWVyID0gYmFja3VwQ29uc3RydWN0LmJhY2t1cFZhdWx0VGllcjtcblxuICAgICAgICBjb25zdCB0YWdWYWx1ZSA9IEJBQ0tVUF9USUVSX1RBR19NQVBbdGllcl07XG4gICAgICAgIFRhZ3Mub2YocmVzb3VyY2UpLmFkZChCQUNLVVBfVElFUl9UQUdfS0VZLCB0YWdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3RydWN0ID0gY29uc3RydWN0Lm5vZGUuc2NvcGU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type IVpc, SubnetType } from "aws-cdk-lib/aws-ec2";
|
|
2
|
+
/**
|
|
3
|
+
* Check if a VPC has NAT gateways.
|
|
4
|
+
* - For Fjall Vpc: uses the hasNatGateways property directly
|
|
5
|
+
* - For other VPCs: checks if private subnets exist (assumes NAT if present)
|
|
6
|
+
* - Safe default: false (avoids placing resources in PRIVATE_WITH_EGRESS without connectivity)
|
|
7
|
+
*/
|
|
8
|
+
export declare function vpcHasNatGateways(vpc: IVpc): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the appropriate private subnet type based on NAT gateway availability.
|
|
11
|
+
* - With NAT: PRIVATE_WITH_EGRESS (internet access via NAT)
|
|
12
|
+
* - Without NAT: PRIVATE_ISOLATED (VPC endpoints only, no internet)
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolvePrivateSubnetType(vpc: IVpc): SubnetType;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.vpcHasNatGateways = vpcHasNatGateways;
|
|
4
|
+
exports.resolvePrivateSubnetType = resolvePrivateSubnetType;
|
|
5
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
+
/**
|
|
7
|
+
* Check if a VPC has NAT gateways.
|
|
8
|
+
* - For Fjall Vpc: uses the hasNatGateways property directly
|
|
9
|
+
* - For other VPCs: checks if private subnets exist (assumes NAT if present)
|
|
10
|
+
* - Safe default: false (avoids placing resources in PRIVATE_WITH_EGRESS without connectivity)
|
|
11
|
+
*/
|
|
12
|
+
function vpcHasNatGateways(vpc) {
|
|
13
|
+
if ("hasNatGateways" in vpc && typeof vpc.hasNatGateways === "boolean") {
|
|
14
|
+
return vpc.hasNatGateways;
|
|
15
|
+
}
|
|
16
|
+
return vpc.privateSubnets.length > 0;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the appropriate private subnet type based on NAT gateway availability.
|
|
20
|
+
* - With NAT: PRIVATE_WITH_EGRESS (internet access via NAT)
|
|
21
|
+
* - Without NAT: PRIVATE_ISOLATED (VPC endpoints only, no internet)
|
|
22
|
+
*/
|
|
23
|
+
function resolvePrivateSubnetType(vpc) {
|
|
24
|
+
return vpcHasNatGateways(vpc)
|
|
25
|
+
? aws_ec2_1.SubnetType.PRIVATE_WITH_EGRESS
|
|
26
|
+
: aws_ec2_1.SubnetType.PRIVATE_ISOLATED;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvdnBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4Q0FLQztBQU9ELDREQUlDO0FBeEJELGlEQUE0RDtBQUU1RDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEdBQVM7SUFDekMsSUFBSSxnQkFBZ0IsSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxHQUFTO0lBQ2hELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxvQkFBVSxDQUFDLG1CQUFtQjtRQUNoQyxDQUFDLENBQUMsb0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJVnBjLCBTdWJuZXRUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLyoqXG4gKiBDaGVjayBpZiBhIFZQQyBoYXMgTkFUIGdhdGV3YXlzLlxuICogLSBGb3IgRmphbGwgVnBjOiB1c2VzIHRoZSBoYXNOYXRHYXRld2F5cyBwcm9wZXJ0eSBkaXJlY3RseVxuICogLSBGb3Igb3RoZXIgVlBDczogY2hlY2tzIGlmIHByaXZhdGUgc3VibmV0cyBleGlzdCAoYXNzdW1lcyBOQVQgaWYgcHJlc2VudClcbiAqIC0gU2FmZSBkZWZhdWx0OiBmYWxzZSAoYXZvaWRzIHBsYWNpbmcgcmVzb3VyY2VzIGluIFBSSVZBVEVfV0lUSF9FR1JFU1Mgd2l0aG91dCBjb25uZWN0aXZpdHkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2cGNIYXNOYXRHYXRld2F5cyh2cGM6IElWcGMpOiBib29sZWFuIHtcbiAgaWYgKFwiaGFzTmF0R2F0ZXdheXNcIiBpbiB2cGMgJiYgdHlwZW9mIHZwYy5oYXNOYXRHYXRld2F5cyA9PT0gXCJib29sZWFuXCIpIHtcbiAgICByZXR1cm4gdnBjLmhhc05hdEdhdGV3YXlzO1xuICB9XG4gIHJldHVybiB2cGMucHJpdmF0ZVN1Ym5ldHMubGVuZ3RoID4gMDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBhcHByb3ByaWF0ZSBwcml2YXRlIHN1Ym5ldCB0eXBlIGJhc2VkIG9uIE5BVCBnYXRld2F5IGF2YWlsYWJpbGl0eS5cbiAqIC0gV2l0aCBOQVQ6IFBSSVZBVEVfV0lUSF9FR1JFU1MgKGludGVybmV0IGFjY2VzcyB2aWEgTkFUKVxuICogLSBXaXRob3V0IE5BVDogUFJJVkFURV9JU09MQVRFRCAoVlBDIGVuZHBvaW50cyBvbmx5LCBubyBpbnRlcm5ldClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQcml2YXRlU3VibmV0VHlwZSh2cGM6IElWcGMpOiBTdWJuZXRUeXBlIHtcbiAgcmV0dXJuIHZwY0hhc05hdEdhdGV3YXlzKHZwYylcbiAgICA/IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU1xuICAgIDogU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVEO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.89.2",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"bin": {
|
|
5
6
|
"infrastructure": "bin/infrastructure.js"
|
|
6
7
|
},
|
|
@@ -35,8 +36,8 @@
|
|
|
35
36
|
"typescript": "^5.8.2"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"@aws-sdk/client-organizations": "^3.
|
|
39
|
-
"@fjall/util": "^0.
|
|
39
|
+
"@aws-sdk/client-organizations": "^3.997.0",
|
|
40
|
+
"@fjall/util": "^0.89.2",
|
|
40
41
|
"cdk-time-sleep": "^1.0.0",
|
|
41
42
|
"constructs": "^10.0.0",
|
|
42
43
|
"uuid": "^10.0.0"
|
|
@@ -44,10 +45,10 @@
|
|
|
44
45
|
"overrides": {
|
|
45
46
|
"@smithy/core": "2.5.5"
|
|
46
47
|
},
|
|
47
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "5bb039ff669fbe96d656ae1467e9986cf4327e92",
|
|
48
49
|
"peerDependencies": {
|
|
49
|
-
"aws-cdk": "^2.
|
|
50
|
-
"aws-cdk-lib": "^2.
|
|
50
|
+
"aws-cdk": "^2.239.0",
|
|
51
|
+
"aws-cdk-lib": "^2.239.0",
|
|
51
52
|
"constructs": "^10.0.0"
|
|
52
53
|
},
|
|
53
54
|
"engines": {
|