@fallobst22/cdk-cross-account-route53 0.0.9 → 0.0.10

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 CHANGED
@@ -3905,6 +3905,6 @@
3905
3905
  "symbolId": "src/delegations:Route53UserProps"
3906
3906
  }
3907
3907
  },
3908
- "version": "0.0.9",
3909
- "fingerprint": "iH7GUElICGXCGXDcGzEMebiPQxEa1D2BYqhcM9R9hJg="
3908
+ "version": "0.0.10",
3909
+ "fingerprint": "tj8VUVmOfP7LQLsship5Vrsa4EzT40TpONaIWjKIoeE="
3910
3910
  }
package/API.md CHANGED
@@ -1,123 +1,3 @@
1
- # AWS CDK Cross Account Route53
2
-
3
- AWS [CDK](https://aws.amazon.com/cdk/) Constructs that define:
4
- - IAM role that can be used to allow discrete Route53 Record changes
5
- - Cross Account Record construct to create Route53 cross account Route53 records
6
-
7
- These constructs allow you to create Route53 records where the zone exists in a separate AWS account to the Cloudformation Stack.
8
-
9
- ## Getting started
10
-
11
- ```shell
12
- yarn add @fallobst22/cdk-cross-account-route53
13
- ```
14
-
15
- First create the role in the stack for the AWS account which contains the hosted zone.
16
-
17
- ```typescript
18
- // DNS Stack
19
- const zone = new route53.PublicHostedZone(this, 'HostedZone', {
20
- zoneName: 'example.com',
21
- });
22
-
23
- new CrossAccountRoute53Role(this, 'WebRoute53Role', {
24
- roleName: 'WebRoute53Role',
25
- assumedBy: new iam.AccountPrincipal('22222222'), // Web Stack Account
26
- zone,
27
- records: [{ domains: ['www.example.com'] }],
28
- });
29
- ```
30
-
31
- Then in the child stack create the records
32
-
33
- ```typescript
34
- const hostedZoneId = 'Z12345'; // ID of the zone in the other account
35
-
36
- const distribution = new cloudfront.Distribution(this, 'Distribution', {
37
- domainNames: ['example.com'],
38
- });
39
-
40
- new CrossAccountRoute53RecordSet(this, 'ARecord', {
41
- delegationRoleName: 'WebRoute53Role',
42
- delegationRoleAccount: '111111111', // The account that contains the zone and role
43
- hostedZoneId,
44
- resourceRecordSets: [{
45
- Name: `example.com`,
46
- Type: 'A',
47
- AliasTarget: {
48
- DNSName: distribution.distributionDomainName,
49
- HostedZoneId: 'Z2FDTNDATAQYW2', // Cloudfront Hosted Zone Id
50
- EvaluateTargetHealth: false,
51
- },
52
- }],
53
- });
54
- ```
55
-
56
- ## CrossAccountRoute53Role
57
-
58
- ### Initializer
59
- ```typescript
60
- new CrossAccountRoute53Role(scope: Construct, id: string, props: CrossAccountRoute53RoleProps)
61
- ```
62
-
63
- *Parameters*
64
-
65
- * **scope** Construct
66
- * **id** string
67
- * **props** CrossAccountRoute53RoleProps
68
-
69
- ### Construct Props
70
-
71
- | Name | Type | Description |
72
- | ---- | ---- | ----------- |
73
- | roleName | `string` | The role name |
74
- | assumedBy | `iam.IPrincipal` | The principals that are allowed to assume the role |
75
- | zone | `route53.IHostedZone` | The hosted zone. |
76
- | records | `CrossAccountRoute53RolePropsRecord[]` | The records that can be created by this role |
77
-
78
- ### CrossAccountRoute53RolePropsRecords
79
-
80
- | Name | Type | Description |
81
- | ---- | ---- | ----------- |
82
- | domainNames | `string \| string[]` | The names of the records that can be created or changed |
83
- | types | `route53.RecordType[]` | The typepsof records that can be created. Default `['A', 'AAAA']` |
84
- | actions | `'CREATE' \| 'UPSERT' \| 'DELETE'` | The allowed actions. Default `['CREATE', 'UPSERT', 'DELETE']` |
85
-
86
- ## CrossAccountRoute53RecordSet
87
-
88
- ### Initializer
89
- ```typescript
90
- new CrossAccountRoute53RecordSet(scope: Construct, id: string, props: CrossAccountRoute53RecordSetProps)
91
- ```
92
-
93
- *Parameters*
94
-
95
- * **scope** Construct
96
- * **id** string
97
- * **props** CrossAccountRoute53RecordSet
98
-
99
- ### Construct Props
100
-
101
- | Name | Type | Description |
102
- | ---- | ---- | ----------- |
103
- | delegationRoleName | `string` | The role name created in the account with the hosted zone |
104
- | delegationRoleAccount | `string` | The account identfier of the account with the hosted zone |
105
- | hostedZoneId | `string` | The hosted zoned id |
106
- | resourceRecordSets | `Route53.ResourceRecordSets` | The changes to be applied. These are in the same format as taken by [ChangeResourceRecordSets Action](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html) |
107
-
108
- ## Development Status
109
-
110
- These constructs will stay in `v0.x.x` for a while, to allow easier bug fixing & breaking changes _if absolutely needed_.
111
- Once bugs are fixed (if any), the constructs will be published with `v1` major version and will be marked as stable.
112
-
113
- Only typescript has been tested.
114
-
115
- ## Development
116
-
117
- * `npm run build` compile typescript to js
118
- * `npm run watch` watch for changes and compile
119
- * `npm run test` perform the jest unit tests
120
-
121
1
  # API Reference <a name="API Reference" id="api-reference"></a>
122
2
 
123
3
  ## Constructs <a name="Constructs" id="Constructs"></a>
@@ -44,5 +44,5 @@ class CrossAccountRoute53RecordSet extends constructs_1.Construct {
44
44
  }
45
45
  exports.CrossAccountRoute53RecordSet = CrossAccountRoute53RecordSet;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- CrossAccountRoute53RecordSet[_a] = { fqn: "@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet", version: "0.0.9" };
47
+ CrossAccountRoute53RecordSet[_a] = { fqn: "@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet", version: "0.0.10" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NBY2NvdW50Um91dGU1M1JlY29yZFNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Dcm9zc0FjY291bnRSb3V0ZTUzUmVjb3JkU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBRTdCLDZDQUEyRztBQUUzRywyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBU3ZDLE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFDekQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QztRQUNoRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0saUJBQWlCLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2pELE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNwQyxRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLHNDQUFzQyxDQUFDO1FBRWxFLE1BQU0sUUFBUSxHQUFHLG9DQUFzQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNwRixhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsa0NBQWtDLENBQUM7WUFDdkUsT0FBTyxFQUFFLDJDQUE2QixDQUFDLFdBQVc7U0FDbkQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHVDQUF1QyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDbkYsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzQixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztTQUMvQixDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUscUNBQXFDLEVBQUU7WUFDckYsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxpQkFBaUI7Z0JBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDaEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7YUFDN0Q7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLDBCQUEwQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDaEQsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQzs7QUF4Q0gsb0VBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIEN1c3RvbVJlc291cmNlUHJvdmlkZXIsIEN1c3RvbVJlc291cmNlUHJvdmlkZXJSdW50aW1lLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3Jvc3NBY2NvdW50Um91dGU1M1JlY29yZFNldFByb3BzIHtcbiAgcmVhZG9ubHkgZGVsZWdhdGlvblJvbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlbGVnYXRpb25Sb2xlQWNjb3VudDogc3RyaW5nO1xuICByZWFkb25seSBob3N0ZWRab25lSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb3VyY2VSZWNvcmRTZXRzOiBhbnk7IC8vIFJvdXRlNTMuUmVzb3VyY2VSZWNvcmRTZXRbXSxcbn1cblxuZXhwb3J0IGNsYXNzIENyb3NzQWNjb3VudFJvdXRlNTNSZWNvcmRTZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ3Jvc3NBY2NvdW50Um91dGU1M1JlY29yZFNldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGRlbGVnYXRpb25Sb2xlQXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHJlZ2lvbjogJycsXG4gICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgIGFjY291bnQ6IHByb3BzLmRlbGVnYXRpb25Sb2xlQWNjb3VudCxcbiAgICAgIHJlc291cmNlOiAncm9sZScsXG4gICAgICByZXNvdXJjZU5hbWU6IHByb3BzLmRlbGVnYXRpb25Sb2xlTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlVHlwZSA9ICdDdXN0b206OkNyb3NzQWNjb3VudFJvdXRlNTNSZWNvcmRTZXQnO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBDdXN0b21SZXNvdXJjZVByb3ZpZGVyLmdldE9yQ3JlYXRlUHJvdmlkZXIodGhpcywgY3VzdG9tUmVzb3VyY2VUeXBlLCB7XG4gICAgICBjb2RlRGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnY3Jvc3MtYWNjb3VudC1yZWNvcmQtc2V0LWhhbmRsZXInKSxcbiAgICAgIHJ1bnRpbWU6IEN1c3RvbVJlc291cmNlUHJvdmlkZXJSdW50aW1lLk5PREVKU18xOF9YLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgcm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHRoaXMsICdjcm9zcy1hY2NvdW50LXJlY29yZC1zZXQtaGFuZGxlci1yb2xlJywgcHJvdmlkZXIucm9sZUFybik7XG5cbiAgICBjb25zdCBhZGRUb1ByaW5jaXBsZVBvbGljeVJlc3VsdCA9IHJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzdHM6QXNzdW1lUm9sZSddLFxuICAgICAgcmVzb3VyY2VzOiBbZGVsZWdhdGlvblJvbGVBcm5dLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdDcm9zc0FjY291bnRSZWNvcmRTZXRDdXN0b21SZXNvdXJjZScsIHtcbiAgICAgIHJlc291cmNlVHlwZTogY3VzdG9tUmVzb3VyY2VUeXBlLFxuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIEFzc3VtZVJvbGVBcm46IGRlbGVnYXRpb25Sb2xlQXJuLFxuICAgICAgICBIb3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCxcbiAgICAgICAgUmVzb3VyY2VSZWNvcmRTZXRzOiBKU09OLnN0cmluZ2lmeShwcm9wcy5yZXNvdXJjZVJlY29yZFNldHMpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChhZGRUb1ByaW5jaXBsZVBvbGljeVJlc3VsdC5wb2xpY3lEZXBlbmRhYmxlKSB7XG4gICAgICBjdXN0b21SZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koYWRkVG9QcmluY2lwbGVQb2xpY3lSZXN1bHQucG9saWN5RGVwZW5kYWJsZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -24,7 +24,7 @@ class CrossAccountRoute53Role extends constructs_1.Construct {
24
24
  }
25
25
  exports.CrossAccountRoute53Role = CrossAccountRoute53Role;
26
26
  _a = JSII_RTTI_SYMBOL_1;
27
- CrossAccountRoute53Role[_a] = { fqn: "@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role", version: "0.0.9" };
27
+ CrossAccountRoute53Role[_a] = { fqn: "@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role", version: "0.0.10" };
28
28
  class Route53User extends constructs_1.Construct {
29
29
  constructor(scope, id, props) {
30
30
  super(scope, id);
@@ -44,7 +44,7 @@ class Route53User extends constructs_1.Construct {
44
44
  }
45
45
  exports.Route53User = Route53User;
46
46
  _b = JSII_RTTI_SYMBOL_1;
47
- Route53User[_b] = { fqn: "@fallobst22/cdk-cross-account-route53.Route53User", version: "0.0.9" };
47
+ Route53User[_b] = { fqn: "@fallobst22/cdk-cross-account-route53.Route53User", version: "0.0.10" };
48
48
  function buildDelegationStatements(props) {
49
49
  const statements = props.records.flatMap((r) => {
50
50
  const recordStatements = [];
package/package.json CHANGED
@@ -37,7 +37,7 @@
37
37
  "@aws-sdk/client-sts": "^3.529.1",
38
38
  "@aws-sdk/credential-providers": "^3.529.1",
39
39
  "@types/aws-lambda": "^8.10.136",
40
- "@types/jest": "^27",
40
+ "@types/jest": "^29.0.0",
41
41
  "@types/node": "^18",
42
42
  "@typescript-eslint/eslint-plugin": "^6",
43
43
  "@typescript-eslint/parser": "^6",
@@ -46,17 +46,17 @@
46
46
  "eslint": "^8",
47
47
  "eslint-import-resolver-typescript": "^3.6.1",
48
48
  "eslint-plugin-import": "^2.29.1",
49
- "jest": "^27",
49
+ "jest": "^29.0.0",
50
50
  "jest-junit": "^15",
51
51
  "jsii": "~5.3.0",
52
52
  "jsii-diff": "^1.95.0",
53
- "jsii-docgen": "^7.2.9",
53
+ "jsii-docgen": "^10.0.0",
54
54
  "jsii-pacmak": "^1.95.0",
55
55
  "jsii-rosetta": "~5.3.0",
56
56
  "projen": "^0.80.9",
57
57
  "standard-version": "^9",
58
- "ts-jest": "^27",
59
- "typescript": "^4.9.5"
58
+ "ts-jest": "^29.0.0",
59
+ "typescript": "^5.0.0"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "aws-cdk-lib": "^v2.82.0",
@@ -74,7 +74,7 @@
74
74
  ],
75
75
  "main": "lib/index.js",
76
76
  "license": "Apache-2.0",
77
- "version": "0.0.9",
77
+ "version": "0.0.10",
78
78
  "jest": {
79
79
  "testMatch": [
80
80
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",
@@ -108,11 +108,13 @@
108
108
  }
109
109
  ]
110
110
  ],
111
- "preset": "ts-jest",
112
- "globals": {
113
- "ts-jest": {
114
- "tsconfig": "tsconfig.dev.json"
115
- }
111
+ "transform": {
112
+ "^.+\\.[t]sx?$": [
113
+ "ts-jest",
114
+ {
115
+ "tsconfig": "tsconfig.dev.json"
116
+ }
117
+ ]
116
118
  }
117
119
  },
118
120
  "types": "lib/index.d.ts",