@cloud-copilot/iam-collect 0.1.44 → 0.1.46
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 +3 -1
- package/dist/cjs/config/config.d.ts +21 -0
- package/dist/cjs/config/config.d.ts.map +1 -1
- package/dist/cjs/config/config.js +40 -0
- package/dist/cjs/config/config.js.map +1 -1
- package/dist/cjs/config/partitionDefaults.d.ts +9 -0
- package/dist/cjs/config/partitionDefaults.d.ts.map +1 -0
- package/dist/cjs/config/partitionDefaults.js +80 -0
- package/dist/cjs/config/partitionDefaults.js.map +1 -0
- package/dist/cjs/download/download.d.ts.map +1 -1
- package/dist/cjs/download/download.js +17 -8
- package/dist/cjs/download/download.js.map +1 -1
- package/dist/cjs/services.d.ts +1 -1
- package/dist/cjs/services.d.ts.map +1 -1
- package/dist/cjs/services.js +1 -0
- package/dist/cjs/services.js.map +1 -1
- package/dist/cjs/syncs/s3/multiRegionAccessPoints.d.ts +3 -0
- package/dist/cjs/syncs/s3/multiRegionAccessPoints.d.ts.map +1 -0
- package/dist/cjs/syncs/s3/multiRegionAccessPoints.js +48 -0
- package/dist/cjs/syncs/s3/multiRegionAccessPoints.js.map +1 -0
- package/dist/cjs/syncs/s3express/s3DirectoryBucketsSync.d.ts +2 -0
- package/dist/cjs/syncs/s3express/s3DirectoryBucketsSync.d.ts.map +1 -0
- package/dist/cjs/syncs/s3express/s3DirectoryBucketsSync.js +58 -0
- package/dist/cjs/syncs/s3express/s3DirectoryBucketsSync.js.map +1 -0
- package/dist/cjs/syncs/syncMap.d.ts.map +1 -1
- package/dist/cjs/syncs/syncMap.js +4 -0
- package/dist/cjs/syncs/syncMap.js.map +1 -1
- package/dist/esm/config/config.d.ts +21 -0
- package/dist/esm/config/config.d.ts.map +1 -1
- package/dist/esm/config/config.js +39 -0
- package/dist/esm/config/config.js.map +1 -1
- package/dist/esm/config/partitionDefaults.d.ts +9 -0
- package/dist/esm/config/partitionDefaults.d.ts.map +1 -0
- package/dist/esm/config/partitionDefaults.js +77 -0
- package/dist/esm/config/partitionDefaults.js.map +1 -0
- package/dist/esm/download/download.d.ts.map +1 -1
- package/dist/esm/download/download.js +18 -9
- package/dist/esm/download/download.js.map +1 -1
- package/dist/esm/services.d.ts +1 -1
- package/dist/esm/services.d.ts.map +1 -1
- package/dist/esm/services.js +1 -0
- package/dist/esm/services.js.map +1 -1
- package/dist/esm/syncs/s3/multiRegionAccessPoints.d.ts +3 -0
- package/dist/esm/syncs/s3/multiRegionAccessPoints.d.ts.map +1 -0
- package/dist/esm/syncs/s3/multiRegionAccessPoints.js +45 -0
- package/dist/esm/syncs/s3/multiRegionAccessPoints.js.map +1 -0
- package/dist/esm/syncs/s3express/s3DirectoryBucketsSync.d.ts +2 -0
- package/dist/esm/syncs/s3express/s3DirectoryBucketsSync.d.ts.map +1 -0
- package/dist/esm/syncs/s3express/s3DirectoryBucketsSync.js +55 -0
- package/dist/esm/syncs/s3express/s3DirectoryBucketsSync.js.map +1 -0
- package/dist/esm/syncs/syncMap.d.ts.map +1 -1
- package/dist/esm/syncs/syncMap.js +4 -0
- package/dist/esm/syncs/syncMap.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -67,7 +67,9 @@ This will download the IAM data from the current account to the `./iam-data` dir
|
|
|
67
67
|
| lambda | Functions | name, role, tags, policy |
|
|
68
68
|
| s3 | Access Points | name, bucket, bucket account, policy, block public access configuration, network origin, vpc, alias, endpoints |
|
|
69
69
|
| s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption |
|
|
70
|
-
|
|
|
70
|
+
| s3 | Multi Region Access Points | name, alias, regions, policy, block public access configuration |
|
|
71
|
+
| s3express | Directory Buckets | name, encryption settings, policy |
|
|
72
|
+
| s3tables | Table Buckets | name, region, bucket policy, encryption |
|
|
71
73
|
| organizations | Organizations | id, arn, root account id, enabled policy types, org structure |
|
|
72
74
|
| organizations | Organizational Units | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
|
|
73
75
|
| organizations | Accounts | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
|
|
@@ -48,6 +48,14 @@ interface BaseConfig {
|
|
|
48
48
|
interface ServiceConfig extends BaseConfig {
|
|
49
49
|
endpoint?: string;
|
|
50
50
|
regionConfigs?: Record<string, Omit<ServiceConfig, 'regionConfigs'>>;
|
|
51
|
+
syncConfigs?: Record<string, SyncConfig>;
|
|
52
|
+
}
|
|
53
|
+
interface SyncConfig {
|
|
54
|
+
regions?: {
|
|
55
|
+
included?: string[];
|
|
56
|
+
excluded?: string[];
|
|
57
|
+
};
|
|
58
|
+
auth?: AuthConfig;
|
|
51
59
|
}
|
|
52
60
|
interface AccountConfig extends BaseConfig {
|
|
53
61
|
serviceConfigs?: Record<string, ServiceConfig>;
|
|
@@ -88,5 +96,18 @@ export declare function accountServiceRegionConfig(service: string, accountId: s
|
|
|
88
96
|
*/
|
|
89
97
|
export declare function getAccountAuthConfig(accountId: string, configs: TopLevelConfig[]): AuthConfig | undefined;
|
|
90
98
|
export declare function getStorageConfig(configs: TopLevelConfig[]): StorageConfig | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Check if a specific sync is enabled for given region. This checks the specific sync config within the service.
|
|
101
|
+
*
|
|
102
|
+
* This should only be used after the sync has been validated to be enabled for the account and service.
|
|
103
|
+
*
|
|
104
|
+
* @param accountId the account id to check
|
|
105
|
+
* @param service the service to check
|
|
106
|
+
* @param syncName the specific name of the sync to check
|
|
107
|
+
* @param configs the configs to check
|
|
108
|
+
* @param region the region being tested
|
|
109
|
+
* @returns true if the sync is enabled for the region, false otherwise
|
|
110
|
+
*/
|
|
111
|
+
export declare function syncEnabledForRegion(accountId: string, service: string, syncName: string, configs: TopLevelConfig[], region: string): boolean;
|
|
91
112
|
export {};
|
|
92
113
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,WAAW,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,GAAG;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,eAAe,CAAA;AAErE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,aAAc,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,WAAW,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,GAAG;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,eAAe,CAAA;AAErE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,aAAc,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACzC;AAED,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,aAAc,SAAQ,UAAU;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAC/C;AAED,KAAK,kBAAkB,GAAG,UAAU,EAAE,CAAA;AACtC,KAAK,wBAAwB,GAAG,MAAM,EAAE,CAAA;AAMxC,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAS1E;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,EAAE,MAAM,EAAE,GACpB,kBAAkB,CA2BpB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,GACnB,wBAAwB,CA0C1B;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EAAE,GACxB,kCAAkC,CA4DpC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EAAE,GACxB,UAAU,GAAG,SAAS,CAYxB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,aAAa,GAAG,SAAS,CAUrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CA2BT"}
|
|
@@ -6,6 +6,7 @@ exports.regionsForService = regionsForService;
|
|
|
6
6
|
exports.accountServiceRegionConfig = accountServiceRegionConfig;
|
|
7
7
|
exports.getAccountAuthConfig = getAccountAuthConfig;
|
|
8
8
|
exports.getStorageConfig = getStorageConfig;
|
|
9
|
+
exports.syncEnabledForRegion = syncEnabledForRegion;
|
|
9
10
|
/**
|
|
10
11
|
* Get the default auth config from the provided configs.
|
|
11
12
|
*
|
|
@@ -172,4 +173,43 @@ function getStorageConfig(configs) {
|
|
|
172
173
|
// Return undefined if no storage config is found
|
|
173
174
|
return undefined;
|
|
174
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a specific sync is enabled for given region. This checks the specific sync config within the service.
|
|
178
|
+
*
|
|
179
|
+
* This should only be used after the sync has been validated to be enabled for the account and service.
|
|
180
|
+
*
|
|
181
|
+
* @param accountId the account id to check
|
|
182
|
+
* @param service the service to check
|
|
183
|
+
* @param syncName the specific name of the sync to check
|
|
184
|
+
* @param configs the configs to check
|
|
185
|
+
* @param region the region being tested
|
|
186
|
+
* @returns true if the sync is enabled for the region, false otherwise
|
|
187
|
+
*/
|
|
188
|
+
function syncEnabledForRegion(accountId, service, syncName, configs, region) {
|
|
189
|
+
// go through the configs in reverse order,
|
|
190
|
+
// If any have the sync enabled return true,
|
|
191
|
+
// If any have the sync disabled return false
|
|
192
|
+
// If none are found, return true
|
|
193
|
+
for (const config of [...configs].reverse()) {
|
|
194
|
+
const accountServiceConfig = config.accounts?.[accountId]?.serviceConfigs?.[service]?.syncConfigs?.[syncName];
|
|
195
|
+
if (accountServiceConfig) {
|
|
196
|
+
if (accountServiceConfig.regions?.excluded?.includes(region)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
if (accountServiceConfig.regions?.included) {
|
|
200
|
+
return accountServiceConfig.regions.included.includes(region);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const serviceConfig = config.serviceConfigs?.[service]?.syncConfigs?.[syncName];
|
|
204
|
+
if (serviceConfig) {
|
|
205
|
+
if (serviceConfig.regions?.excluded?.includes(region)) {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
if (serviceConfig.regions?.included) {
|
|
209
|
+
return serviceConfig.regions.included.includes(region);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
175
215
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TopLevelConfig } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get the default configuration for a given partition.
|
|
4
|
+
*
|
|
5
|
+
* @param partition The partition to get defaults for. This is usually the partition name, such as 'aws', 'aws-us-gov', or 'aws-cn'.
|
|
6
|
+
* @returns a TopLevelConfig object containing the default configuration for the specified partition.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPartitionDefaults(partition: string): TopLevelConfig;
|
|
9
|
+
//# sourceMappingURL=partitionDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionDefaults.d.ts","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAsE5C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAEtE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPartitionDefaults = getPartitionDefaults;
|
|
4
|
+
const partitionDefaults = {
|
|
5
|
+
aws: {
|
|
6
|
+
iamCollectVersion: '0.0.0',
|
|
7
|
+
serviceConfigs: {
|
|
8
|
+
s3: {
|
|
9
|
+
syncConfigs: {
|
|
10
|
+
multiRegionAccessPoints: {
|
|
11
|
+
regions: {
|
|
12
|
+
included: ['us-west-2']
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
s3express: {
|
|
18
|
+
syncConfigs: {
|
|
19
|
+
directoryBuckets: {
|
|
20
|
+
regions: {
|
|
21
|
+
included: [
|
|
22
|
+
'us-east-1',
|
|
23
|
+
'us-east-2',
|
|
24
|
+
'us-west-2',
|
|
25
|
+
'ap-south-1',
|
|
26
|
+
'ap-northeast-1',
|
|
27
|
+
'eu-west-1',
|
|
28
|
+
'eu-north-1'
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
'aws-us-gov': {
|
|
37
|
+
iamCollectVersion: '0.0.0',
|
|
38
|
+
services: {
|
|
39
|
+
excluded: ['s3express']
|
|
40
|
+
},
|
|
41
|
+
serviceConfigs: {
|
|
42
|
+
s3: {
|
|
43
|
+
syncConfigs: {
|
|
44
|
+
multiRegionAccessPoints: {
|
|
45
|
+
regions: {
|
|
46
|
+
included: ['us-gov-west-1']
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
'aws-cn': {
|
|
54
|
+
iamCollectVersion: '0.0.0',
|
|
55
|
+
services: {
|
|
56
|
+
excluded: ['s3express']
|
|
57
|
+
},
|
|
58
|
+
serviceConfigs: {
|
|
59
|
+
s3: {
|
|
60
|
+
syncConfigs: {
|
|
61
|
+
multiRegionAccessPoints: {
|
|
62
|
+
regions: {
|
|
63
|
+
included: []
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Get the default configuration for a given partition.
|
|
73
|
+
*
|
|
74
|
+
* @param partition The partition to get defaults for. This is usually the partition name, such as 'aws', 'aws-us-gov', or 'aws-cn'.
|
|
75
|
+
* @returns a TopLevelConfig object containing the default configuration for the specified partition.
|
|
76
|
+
*/
|
|
77
|
+
function getPartitionDefaults(partition) {
|
|
78
|
+
return partitionDefaults[partition] || { iamCollectVersion: '0.0.0' };
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=partitionDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionDefaults.js","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":";;AA4EA,oDAEC;AA5ED,MAAM,iBAAiB,GAAmC;IACxD,GAAG,EAAE;QACH,iBAAiB,EAAE,OAAO;QAC1B,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,WAAW,EAAE;oBACX,gBAAgB,EAAE;wBAChB,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,WAAW;gCACX,WAAW;gCACX,WAAW;gCACX,YAAY;gCACZ,gBAAgB;gCAChB,WAAW;gCACX,YAAY;6BACb;yBACF;qBACF;iBACF;aACF;SACF;KACF;IACD,YAAY,EAAE;QACZ,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC5B;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,EAAE;yBACb;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAA;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAEA,OAAO,EAQL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAU5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuIf"}
|
|
@@ -4,6 +4,7 @@ exports.downloadData = downloadData;
|
|
|
4
4
|
const auth_js_1 = require("../aws/auth.js");
|
|
5
5
|
const coreAuth_js_1 = require("../aws/coreAuth.js");
|
|
6
6
|
const config_js_1 = require("../config/config.js");
|
|
7
|
+
const partitionDefaults_js_1 = require("../config/partitionDefaults.js");
|
|
7
8
|
const util_js_1 = require("../persistence/util.js");
|
|
8
9
|
const regions_js_1 = require("../regions.js");
|
|
9
10
|
const services_js_1 = require("../services.js");
|
|
@@ -31,22 +32,25 @@ async function downloadData(configs, accountIds, regions, services, concurrency)
|
|
|
31
32
|
log_js_1.log.info('Queuing downloads for account', { accountId });
|
|
32
33
|
const authForAccount = (0, config_js_1.getAccountAuthConfig)(accountId, configs);
|
|
33
34
|
const credentials = await (0, auth_js_1.getCredentials)(accountId, authForAccount);
|
|
35
|
+
const partition = credentials.partition;
|
|
36
|
+
const partitionConfig = (0, partitionDefaults_js_1.getPartitionDefaults)(partition);
|
|
37
|
+
const accountConfigs = [partitionConfig, ...configs];
|
|
34
38
|
if (regions.length === 0) {
|
|
35
39
|
regions = await (0, regions_js_1.getEnabledRegions)(credentials);
|
|
36
40
|
}
|
|
37
|
-
const storage = (0, util_js_1.createStorageClient)(storageConfig,
|
|
41
|
+
const storage = (0, util_js_1.createStorageClient)(storageConfig, partition);
|
|
38
42
|
if (services.length === 0) {
|
|
39
43
|
services = services_js_1.allServices;
|
|
40
44
|
}
|
|
41
45
|
const syncOptions = {};
|
|
42
|
-
const enabledServices = (0, config_js_1.servicesForAccount)(accountId,
|
|
46
|
+
const enabledServices = (0, config_js_1.servicesForAccount)(accountId, accountConfigs, services);
|
|
43
47
|
for (const service of enabledServices) {
|
|
44
48
|
log_js_1.log.info('Queuing downloads', { service, accountId });
|
|
45
|
-
const serviceRegions = (0, config_js_1.regionsForService)(service, accountId,
|
|
49
|
+
const serviceRegions = (0, config_js_1.regionsForService)(service, accountId, accountConfigs, regions);
|
|
46
50
|
//Global syncs for the service
|
|
47
51
|
const globalSyncs = (0, syncMap_js_1.getGlobalSyncsForService)(service);
|
|
48
52
|
const globalRegion = serviceRegions.at(0);
|
|
49
|
-
const globalConfig = (0, config_js_1.accountServiceRegionConfig)(service, accountId, globalRegion,
|
|
53
|
+
const globalConfig = (0, config_js_1.accountServiceRegionConfig)(service, accountId, globalRegion, accountConfigs);
|
|
50
54
|
for (const globalSync of globalSyncs) {
|
|
51
55
|
jobs.push({
|
|
52
56
|
properties: { service, accountId, sync: globalSync.name },
|
|
@@ -58,19 +62,24 @@ async function downloadData(configs, accountIds, regions, services, concurrency)
|
|
|
58
62
|
const globalCredentials = await (0, auth_js_1.getCredentials)(accountId, globalConfig.auth);
|
|
59
63
|
log_js_1.log.debug(logDetails, 'Executing global sync');
|
|
60
64
|
await globalSync.execute(accountId, globalRegion, globalCredentials, storage, globalConfig.endpoint, syncOptions);
|
|
61
|
-
log_js_1.log.
|
|
65
|
+
log_js_1.log.trace(logDetails, 'Finished global sync');
|
|
62
66
|
}
|
|
63
67
|
});
|
|
64
68
|
}
|
|
69
|
+
const regionalSyncs = (0, syncMap_js_1.getRegionalSyncsForService)(service);
|
|
65
70
|
//Regional syncs for the service
|
|
66
71
|
for (const region of serviceRegions) {
|
|
67
72
|
log_js_1.log.debug({ service, accountId, region }, 'Queuing regional syncs');
|
|
68
|
-
const regionalSyncs = (0, syncMap_js_1.getRegionalSyncsForService)(service);
|
|
69
73
|
if (regionalSyncs.length === 0) {
|
|
70
74
|
continue;
|
|
71
75
|
}
|
|
72
|
-
const asrConfig = (0, config_js_1.accountServiceRegionConfig)(service, accountId, region,
|
|
76
|
+
const asrConfig = (0, config_js_1.accountServiceRegionConfig)(service, accountId, region, accountConfigs);
|
|
73
77
|
for (const sync of regionalSyncs) {
|
|
78
|
+
const includeSync = (0, config_js_1.syncEnabledForRegion)(accountId, service, sync.name, accountConfigs, region);
|
|
79
|
+
if (!includeSync) {
|
|
80
|
+
log_js_1.log.debug({ service, accountId, region, syncName: sync.name }, 'Skipping regional sync');
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
74
83
|
jobs.push({
|
|
75
84
|
properties: { service, accountId, region, sync: sync.name },
|
|
76
85
|
execute: async (context) => {
|
|
@@ -78,7 +87,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency)
|
|
|
78
87
|
workerId: context.workerId,
|
|
79
88
|
...context.properties
|
|
80
89
|
};
|
|
81
|
-
log_js_1.log.
|
|
90
|
+
log_js_1.log.debug(logDetails, 'Executing regional sync');
|
|
82
91
|
const regionalCredentials = await (0, auth_js_1.getCredentials)(accountId, asrConfig.auth);
|
|
83
92
|
await sync.execute(accountId, region, regionalCredentials, storage, asrConfig.endpoint, syncOptions);
|
|
84
93
|
log_js_1.log.trace(logDetails, 'Finished regional sync');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/services.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* All Valid AWS Services
|
|
3
3
|
*/
|
|
4
|
-
export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
|
|
4
|
+
export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
|
|
5
5
|
/**
|
|
6
6
|
* Type representing a valid AWS service. A union of all strings in `allServices`.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,6KAiBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
package/dist/cjs/services.js
CHANGED
package/dist/cjs/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiRegionAccessPoints.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/multiRegionAccessPoints.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,6BAA6B,EAAE,IA8C3C,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3MultiRegionAccessPointsSync = void 0;
|
|
4
|
+
const client_s3_control_1 = require("@aws-sdk/client-s3-control");
|
|
5
|
+
const client_tools_js_1 = require("../../utils/client-tools.js");
|
|
6
|
+
const json_js_1 = require("../../utils/json.js");
|
|
7
|
+
const typedSync_js_1 = require("../typedSync.js");
|
|
8
|
+
exports.S3MultiRegionAccessPointsSync = (0, typedSync_js_1.createTypedSyncOperation)('s3', 'multiRegionAccessPoints', (0, typedSync_js_1.createResourceSyncType)({
|
|
9
|
+
client: client_s3_control_1.S3ControlClient,
|
|
10
|
+
command: client_s3_control_1.ListMultiRegionAccessPointsCommand,
|
|
11
|
+
key: 'AccessPoints',
|
|
12
|
+
arguments: (accountId, region) => ({
|
|
13
|
+
AccountId: accountId
|
|
14
|
+
}),
|
|
15
|
+
paginationConfig: {
|
|
16
|
+
inputKey: 'NextToken',
|
|
17
|
+
outputKey: 'NextToken'
|
|
18
|
+
},
|
|
19
|
+
arn: (accessPoint, region, account, partition) => `arn:${partition}:s3::${account}:accesspoint/${accessPoint.Alias}`,
|
|
20
|
+
resourceTypeParts: (account, region) => ({
|
|
21
|
+
service: 's3',
|
|
22
|
+
resourceType: 'accesspoint',
|
|
23
|
+
account
|
|
24
|
+
}),
|
|
25
|
+
extraFields: {
|
|
26
|
+
policy: async (client, accessPoint, accountId) => {
|
|
27
|
+
const policy = (0, client_tools_js_1.runAndCatch404)(async () => {
|
|
28
|
+
const result = await client.send(new client_s3_control_1.GetMultiRegionAccessPointPolicyCommand({
|
|
29
|
+
Name: accessPoint.Name,
|
|
30
|
+
AccountId: accountId
|
|
31
|
+
}));
|
|
32
|
+
return (0, json_js_1.parseIfPresent)(result.Policy?.Established?.Policy);
|
|
33
|
+
});
|
|
34
|
+
return policy;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
tags: () => undefined, // Multi region access points do not have tags
|
|
38
|
+
results: (accessPoint) => ({
|
|
39
|
+
metadata: {
|
|
40
|
+
name: accessPoint.Name,
|
|
41
|
+
alias: accessPoint.Alias,
|
|
42
|
+
regions: accessPoint.Regions
|
|
43
|
+
},
|
|
44
|
+
bpa: accessPoint.PublicAccessBlock,
|
|
45
|
+
policy: accessPoint.extraFields.policy
|
|
46
|
+
})
|
|
47
|
+
}));
|
|
48
|
+
//# sourceMappingURL=multiRegionAccessPoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiRegionAccessPoints.js","sourceRoot":"","sources":["../../../../src/syncs/s3/multiRegionAccessPoints.ts"],"names":[],"mappings":";;;AAAA,kEAImC;AACnC,iEAA4D;AAC5D,iDAAoD;AAEpD,kDAAkF;AAErE,QAAA,6BAA6B,GAAS,IAAA,uCAAwB,EACzE,IAAI,EACJ,yBAAyB,EACzB,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,mCAAe;IACvB,OAAO,EAAE,sDAAkC;IAC3C,GAAG,EAAE,cAAc;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,SAAS,EAAE,SAAS;KACrB,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,WAAW;KACvB;IACD,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAC/C,OAAO,SAAS,QAAQ,OAAO,gBAAgB,WAAW,CAAC,KAAK,EAAE;IACpE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,aAAa;QAC3B,OAAO;KACR,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,0DAAsC,CAAC;oBACzC,IAAI,EAAE,WAAW,CAAC,IAAK;oBACvB,SAAS,EAAE,SAAS;iBACrB,CAAC,CACH,CAAA;gBACD,OAAO,IAAA,wBAAc,EAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;KACF;IACD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,8CAA8C;IACrE,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW,CAAC,IAAK;YACvB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B;QACD,GAAG,EAAE,WAAW,CAAC,iBAAiB;QAClC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM;KACvC,CAAC;CACH,CAAC,CACH,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3DirectoryBucketsSync.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3express/s3DirectoryBucketsSync.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,2BA4ClC,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3DirectoryBucketsSync = void 0;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const client_tools_js_1 = require("../../utils/client-tools.js");
|
|
6
|
+
const json_js_1 = require("../../utils/json.js");
|
|
7
|
+
const typedSync_js_1 = require("../typedSync.js");
|
|
8
|
+
exports.S3DirectoryBucketsSync = (0, typedSync_js_1.createTypedSyncOperation)('s3express', 'directoryBuckets', (0, typedSync_js_1.createResourceSyncType)({
|
|
9
|
+
client: client_s3_1.S3Client,
|
|
10
|
+
command: client_s3_1.ListDirectoryBucketsCommand,
|
|
11
|
+
key: 'Buckets',
|
|
12
|
+
arguments: () => ({ MaxDirectoryBuckets: 1000 }),
|
|
13
|
+
paginationConfig: {
|
|
14
|
+
inputKey: 'ContinuationToken',
|
|
15
|
+
outputKey: 'ContinuationToken'
|
|
16
|
+
},
|
|
17
|
+
arn: (bucket, region, account, partition) => directoryBucketArn(partition, region, account, bucket.Name),
|
|
18
|
+
extraFields: {
|
|
19
|
+
policy: async (client, bucket) => {
|
|
20
|
+
new client_s3_1.S3Client({});
|
|
21
|
+
return (0, client_tools_js_1.runAndCatch404)(async () => {
|
|
22
|
+
const policy = await client.send(new client_s3_1.GetBucketPolicyCommand({ Bucket: bucket.Name }));
|
|
23
|
+
return (0, json_js_1.parseIfPresent)(policy.Policy);
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
encryption: async (client, bucket) => {
|
|
27
|
+
const encryption = await client.send(new client_s3_1.GetBucketEncryptionCommand({ Bucket: bucket.Name }));
|
|
28
|
+
return encryption.ServerSideEncryptionConfiguration;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
tags: (bucket) => undefined,
|
|
32
|
+
resourceTypeParts: (account, region) => ({
|
|
33
|
+
service: 's3express',
|
|
34
|
+
resourceType: 'bucket',
|
|
35
|
+
account,
|
|
36
|
+
region
|
|
37
|
+
}),
|
|
38
|
+
results: (bucket) => ({
|
|
39
|
+
metadata: {
|
|
40
|
+
name: bucket.Name,
|
|
41
|
+
encryption: bucket.extraFields.encryption?.Rules
|
|
42
|
+
},
|
|
43
|
+
policy: bucket.extraFields.policy
|
|
44
|
+
})
|
|
45
|
+
}));
|
|
46
|
+
/**
|
|
47
|
+
* Create an ARN for a directory bucket
|
|
48
|
+
*
|
|
49
|
+
* @param partition the partition of the bucket
|
|
50
|
+
* @param region the region of the bucket
|
|
51
|
+
* @param account the account the bucket is in
|
|
52
|
+
* @param bucketName the name of the bucket
|
|
53
|
+
* @returns the full arn of the directory bucket
|
|
54
|
+
*/
|
|
55
|
+
function directoryBucketArn(partition, region, account, bucketName) {
|
|
56
|
+
return `arn:${partition}:s3express:${region}:${account}:bucket/${bucketName}`;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=s3DirectoryBucketsSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3DirectoryBucketsSync.js","sourceRoot":"","sources":["../../../../src/syncs/s3express/s3DirectoryBucketsSync.ts"],"names":[],"mappings":";;;AAAA,kDAK2B;AAC3B,iEAA4D;AAC5D,iDAAoD;AACpD,kDAAkF;AAErE,QAAA,sBAAsB,GAAG,IAAA,uCAAwB,EAC5D,WAAW,EACX,kBAAkB,EAClB,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,oBAAQ;IAChB,OAAO,EAAE,uCAA2B;IACpC,GAAG,EAAE,SAAS;IACd,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAChD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,mBAAmB;KAC/B;IACD,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAC1C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAK,CAAC;IAC9D,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,oBAAQ,CAAC,EAAE,CAAC,CAAA;YAChB,OAAO,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAC,CAAA;gBACtF,OAAO,IAAA,wBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAClC,IAAI,sCAA0B,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CACzD,CAAA;YACD,OAAO,UAAU,CAAC,iCAAiC,CAAA;QACrD,CAAC;KACF;IACD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS;IAC3B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,WAAW;QACpB,YAAY,EAAE,QAAQ;QACtB,OAAO;QACP,MAAM;KACP,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK;SACjD;QACD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;CACH,CAAC,CACH,CAAA;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,SAAiB,EACjB,MAAc,EACd,OAAe,EACf,UAAkB;IAElB,OAAO,OAAO,SAAS,cAAc,MAAM,IAAI,OAAO,WAAW,UAAU,EAAE,CAAA;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA4ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
|
|
@@ -15,7 +15,9 @@ const organizations_js_1 = require("./organizations/organizations.js");
|
|
|
15
15
|
const accessPoints_js_1 = require("./s3/accessPoints.js");
|
|
16
16
|
const accountBpa_js_1 = require("./s3/accountBpa.js");
|
|
17
17
|
const buckets_js_1 = require("./s3/buckets.js");
|
|
18
|
+
const multiRegionAccessPoints_js_1 = require("./s3/multiRegionAccessPoints.js");
|
|
18
19
|
const vaults_js_1 = require("./s3/vaults.js");
|
|
20
|
+
const s3DirectoryBucketsSync_js_1 = require("./s3express/s3DirectoryBucketsSync.js");
|
|
19
21
|
const s3TablesSync_js_1 = require("./s3tables/s3TablesSync.js");
|
|
20
22
|
const secrets_js_1 = require("./secretsmanager/secrets.js");
|
|
21
23
|
const topics_js_1 = require("./sns/topics.js");
|
|
@@ -34,7 +36,9 @@ const allSyncs = [
|
|
|
34
36
|
organizations_js_1.OrganizationSync,
|
|
35
37
|
gateways_js_1.RestApisSync,
|
|
36
38
|
accessPoints_js_1.S3AccessPointsSync,
|
|
39
|
+
s3DirectoryBucketsSync_js_1.S3DirectoryBucketsSync,
|
|
37
40
|
buckets_js_1.S3GeneralPurposeBucketSync,
|
|
41
|
+
multiRegionAccessPoints_js_1.S3MultiRegionAccessPointsSync,
|
|
38
42
|
s3TablesSync_js_1.S3TableBucketsSync,
|
|
39
43
|
secrets_js_1.SecretSync,
|
|
40
44
|
topics_js_1.SnsTopicsSync,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;AAwEA,4DAMC;AAQD,gEAMC;AA3FD,0DAAuD;AACvD,oDAAwD;AACxD,2DAAwD;AACxD,mDAA4C;AAC5C,2EAAwE;AACxE,qEAAkE;AAClE,mEAAgE;AAChE,yCAAsC;AACtC,kDAA+C;AAC/C,uEAAmE;AACnE,0DAAyD;AACzD,sDAAqD;AACrD,gDAA4D;AAC5D,gFAA+E;AAC/E,8CAAkD;AAClD,qFAA8E;AAC9E,gEAA+D;AAC/D,4DAAwD;AACxD,+CAA+C;AAC/C,+CAA8C;AAC9C,2DAAmD;AAGnD,MAAM,QAAQ,GAAG;IACf,gCAAgB;IAChB,kDAAwB;IACxB,6BAAiB;IACjB,GAAG,sBAAQ;IACX,0CAAoB;IACpB,GAAG,4CAAqB;IACxB,6BAAiB;IACjB,gBAAO;IACP,sBAAU;IACV,mCAAgB;IAChB,0BAAY;IACZ,oCAAkB;IAClB,kDAAsB;IACtB,uCAA0B;IAC1B,0DAA6B;IAC7B,oCAAkB;IAClB,uBAAU;IACV,yBAAa;IACb,wBAAY;IACZ,6BAAW;IACX,kCAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,WAAW,EAAgB,CAAA;AAC5C,CAAC"}
|
|
@@ -48,6 +48,14 @@ interface BaseConfig {
|
|
|
48
48
|
interface ServiceConfig extends BaseConfig {
|
|
49
49
|
endpoint?: string;
|
|
50
50
|
regionConfigs?: Record<string, Omit<ServiceConfig, 'regionConfigs'>>;
|
|
51
|
+
syncConfigs?: Record<string, SyncConfig>;
|
|
52
|
+
}
|
|
53
|
+
interface SyncConfig {
|
|
54
|
+
regions?: {
|
|
55
|
+
included?: string[];
|
|
56
|
+
excluded?: string[];
|
|
57
|
+
};
|
|
58
|
+
auth?: AuthConfig;
|
|
51
59
|
}
|
|
52
60
|
interface AccountConfig extends BaseConfig {
|
|
53
61
|
serviceConfigs?: Record<string, ServiceConfig>;
|
|
@@ -88,5 +96,18 @@ export declare function accountServiceRegionConfig(service: string, accountId: s
|
|
|
88
96
|
*/
|
|
89
97
|
export declare function getAccountAuthConfig(accountId: string, configs: TopLevelConfig[]): AuthConfig | undefined;
|
|
90
98
|
export declare function getStorageConfig(configs: TopLevelConfig[]): StorageConfig | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Check if a specific sync is enabled for given region. This checks the specific sync config within the service.
|
|
101
|
+
*
|
|
102
|
+
* This should only be used after the sync has been validated to be enabled for the account and service.
|
|
103
|
+
*
|
|
104
|
+
* @param accountId the account id to check
|
|
105
|
+
* @param service the service to check
|
|
106
|
+
* @param syncName the specific name of the sync to check
|
|
107
|
+
* @param configs the configs to check
|
|
108
|
+
* @param region the region being tested
|
|
109
|
+
* @returns true if the sync is enabled for the region, false otherwise
|
|
110
|
+
*/
|
|
111
|
+
export declare function syncEnabledForRegion(accountId: string, service: string, syncName: string, configs: TopLevelConfig[], region: string): boolean;
|
|
91
112
|
export {};
|
|
92
113
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,WAAW,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,GAAG;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,eAAe,CAAA;AAErE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,aAAc,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -164,4 +164,43 @@ export function getStorageConfig(configs) {
|
|
|
164
164
|
// Return undefined if no storage config is found
|
|
165
165
|
return undefined;
|
|
166
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Check if a specific sync is enabled for given region. This checks the specific sync config within the service.
|
|
169
|
+
*
|
|
170
|
+
* This should only be used after the sync has been validated to be enabled for the account and service.
|
|
171
|
+
*
|
|
172
|
+
* @param accountId the account id to check
|
|
173
|
+
* @param service the service to check
|
|
174
|
+
* @param syncName the specific name of the sync to check
|
|
175
|
+
* @param configs the configs to check
|
|
176
|
+
* @param region the region being tested
|
|
177
|
+
* @returns true if the sync is enabled for the region, false otherwise
|
|
178
|
+
*/
|
|
179
|
+
export function syncEnabledForRegion(accountId, service, syncName, configs, region) {
|
|
180
|
+
// go through the configs in reverse order,
|
|
181
|
+
// If any have the sync enabled return true,
|
|
182
|
+
// If any have the sync disabled return false
|
|
183
|
+
// If none are found, return true
|
|
184
|
+
for (const config of [...configs].reverse()) {
|
|
185
|
+
const accountServiceConfig = config.accounts?.[accountId]?.serviceConfigs?.[service]?.syncConfigs?.[syncName];
|
|
186
|
+
if (accountServiceConfig) {
|
|
187
|
+
if (accountServiceConfig.regions?.excluded?.includes(region)) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
if (accountServiceConfig.regions?.included) {
|
|
191
|
+
return accountServiceConfig.regions.included.includes(region);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const serviceConfig = config.serviceConfigs?.[service]?.syncConfigs?.[syncName];
|
|
195
|
+
if (serviceConfig) {
|
|
196
|
+
if (serviceConfig.regions?.excluded?.includes(region)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
if (serviceConfig.regions?.included) {
|
|
200
|
+
return serviceConfig.regions.included.includes(region);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
167
206
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TopLevelConfig } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get the default configuration for a given partition.
|
|
4
|
+
*
|
|
5
|
+
* @param partition The partition to get defaults for. This is usually the partition name, such as 'aws', 'aws-us-gov', or 'aws-cn'.
|
|
6
|
+
* @returns a TopLevelConfig object containing the default configuration for the specified partition.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPartitionDefaults(partition: string): TopLevelConfig;
|
|
9
|
+
//# sourceMappingURL=partitionDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionDefaults.d.ts","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAsE5C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAEtE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const partitionDefaults = {
|
|
2
|
+
aws: {
|
|
3
|
+
iamCollectVersion: '0.0.0',
|
|
4
|
+
serviceConfigs: {
|
|
5
|
+
s3: {
|
|
6
|
+
syncConfigs: {
|
|
7
|
+
multiRegionAccessPoints: {
|
|
8
|
+
regions: {
|
|
9
|
+
included: ['us-west-2']
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
s3express: {
|
|
15
|
+
syncConfigs: {
|
|
16
|
+
directoryBuckets: {
|
|
17
|
+
regions: {
|
|
18
|
+
included: [
|
|
19
|
+
'us-east-1',
|
|
20
|
+
'us-east-2',
|
|
21
|
+
'us-west-2',
|
|
22
|
+
'ap-south-1',
|
|
23
|
+
'ap-northeast-1',
|
|
24
|
+
'eu-west-1',
|
|
25
|
+
'eu-north-1'
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
'aws-us-gov': {
|
|
34
|
+
iamCollectVersion: '0.0.0',
|
|
35
|
+
services: {
|
|
36
|
+
excluded: ['s3express']
|
|
37
|
+
},
|
|
38
|
+
serviceConfigs: {
|
|
39
|
+
s3: {
|
|
40
|
+
syncConfigs: {
|
|
41
|
+
multiRegionAccessPoints: {
|
|
42
|
+
regions: {
|
|
43
|
+
included: ['us-gov-west-1']
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
'aws-cn': {
|
|
51
|
+
iamCollectVersion: '0.0.0',
|
|
52
|
+
services: {
|
|
53
|
+
excluded: ['s3express']
|
|
54
|
+
},
|
|
55
|
+
serviceConfigs: {
|
|
56
|
+
s3: {
|
|
57
|
+
syncConfigs: {
|
|
58
|
+
multiRegionAccessPoints: {
|
|
59
|
+
regions: {
|
|
60
|
+
included: []
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Get the default configuration for a given partition.
|
|
70
|
+
*
|
|
71
|
+
* @param partition The partition to get defaults for. This is usually the partition name, such as 'aws', 'aws-us-gov', or 'aws-cn'.
|
|
72
|
+
* @returns a TopLevelConfig object containing the default configuration for the specified partition.
|
|
73
|
+
*/
|
|
74
|
+
export function getPartitionDefaults(partition) {
|
|
75
|
+
return partitionDefaults[partition] || { iamCollectVersion: '0.0.0' };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=partitionDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionDefaults.js","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAmC;IACxD,GAAG,EAAE;QACH,iBAAiB,EAAE,OAAO;QAC1B,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,WAAW,EAAE;oBACX,gBAAgB,EAAE;wBAChB,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,WAAW;gCACX,WAAW;gCACX,WAAW;gCACX,YAAY;gCACZ,gBAAgB;gCAChB,WAAW;gCACX,YAAY;6BACb;yBACF;qBACF;iBACF;aACF;SACF;KACF;IACD,YAAY,EAAE;QACZ,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC5B;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,EAAE;yBACb;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAA;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAEA,OAAO,EAQL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAU5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuIf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCredentials } from '../aws/auth.js';
|
|
2
2
|
import { getNewInitialCredentials } from '../aws/coreAuth.js';
|
|
3
|
-
import { accountServiceRegionConfig, getAccountAuthConfig, getDefaultAuthConfig, getStorageConfig, regionsForService, servicesForAccount } from '../config/config.js';
|
|
3
|
+
import { accountServiceRegionConfig, getAccountAuthConfig, getDefaultAuthConfig, getStorageConfig, regionsForService, servicesForAccount, syncEnabledForRegion } from '../config/config.js';
|
|
4
|
+
import { getPartitionDefaults } from '../config/partitionDefaults.js';
|
|
4
5
|
import { createStorageClient } from '../persistence/util.js';
|
|
5
6
|
import { getEnabledRegions } from '../regions.js';
|
|
6
7
|
import { allServices } from '../services.js';
|
|
@@ -28,22 +29,25 @@ export async function downloadData(configs, accountIds, regions, services, concu
|
|
|
28
29
|
log.info('Queuing downloads for account', { accountId });
|
|
29
30
|
const authForAccount = getAccountAuthConfig(accountId, configs);
|
|
30
31
|
const credentials = await getCredentials(accountId, authForAccount);
|
|
32
|
+
const partition = credentials.partition;
|
|
33
|
+
const partitionConfig = getPartitionDefaults(partition);
|
|
34
|
+
const accountConfigs = [partitionConfig, ...configs];
|
|
31
35
|
if (regions.length === 0) {
|
|
32
36
|
regions = await getEnabledRegions(credentials);
|
|
33
37
|
}
|
|
34
|
-
const storage = createStorageClient(storageConfig,
|
|
38
|
+
const storage = createStorageClient(storageConfig, partition);
|
|
35
39
|
if (services.length === 0) {
|
|
36
40
|
services = allServices;
|
|
37
41
|
}
|
|
38
42
|
const syncOptions = {};
|
|
39
|
-
const enabledServices = servicesForAccount(accountId,
|
|
43
|
+
const enabledServices = servicesForAccount(accountId, accountConfigs, services);
|
|
40
44
|
for (const service of enabledServices) {
|
|
41
45
|
log.info('Queuing downloads', { service, accountId });
|
|
42
|
-
const serviceRegions = regionsForService(service, accountId,
|
|
46
|
+
const serviceRegions = regionsForService(service, accountId, accountConfigs, regions);
|
|
43
47
|
//Global syncs for the service
|
|
44
48
|
const globalSyncs = getGlobalSyncsForService(service);
|
|
45
49
|
const globalRegion = serviceRegions.at(0);
|
|
46
|
-
const globalConfig = accountServiceRegionConfig(service, accountId, globalRegion,
|
|
50
|
+
const globalConfig = accountServiceRegionConfig(service, accountId, globalRegion, accountConfigs);
|
|
47
51
|
for (const globalSync of globalSyncs) {
|
|
48
52
|
jobs.push({
|
|
49
53
|
properties: { service, accountId, sync: globalSync.name },
|
|
@@ -55,19 +59,24 @@ export async function downloadData(configs, accountIds, regions, services, concu
|
|
|
55
59
|
const globalCredentials = await getCredentials(accountId, globalConfig.auth);
|
|
56
60
|
log.debug(logDetails, 'Executing global sync');
|
|
57
61
|
await globalSync.execute(accountId, globalRegion, globalCredentials, storage, globalConfig.endpoint, syncOptions);
|
|
58
|
-
log.
|
|
62
|
+
log.trace(logDetails, 'Finished global sync');
|
|
59
63
|
}
|
|
60
64
|
});
|
|
61
65
|
}
|
|
66
|
+
const regionalSyncs = getRegionalSyncsForService(service);
|
|
62
67
|
//Regional syncs for the service
|
|
63
68
|
for (const region of serviceRegions) {
|
|
64
69
|
log.debug({ service, accountId, region }, 'Queuing regional syncs');
|
|
65
|
-
const regionalSyncs = getRegionalSyncsForService(service);
|
|
66
70
|
if (regionalSyncs.length === 0) {
|
|
67
71
|
continue;
|
|
68
72
|
}
|
|
69
|
-
const asrConfig = accountServiceRegionConfig(service, accountId, region,
|
|
73
|
+
const asrConfig = accountServiceRegionConfig(service, accountId, region, accountConfigs);
|
|
70
74
|
for (const sync of regionalSyncs) {
|
|
75
|
+
const includeSync = syncEnabledForRegion(accountId, service, sync.name, accountConfigs, region);
|
|
76
|
+
if (!includeSync) {
|
|
77
|
+
log.debug({ service, accountId, region, syncName: sync.name }, 'Skipping regional sync');
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
71
80
|
jobs.push({
|
|
72
81
|
properties: { service, accountId, region, sync: sync.name },
|
|
73
82
|
execute: async (context) => {
|
|
@@ -75,7 +84,7 @@ export async function downloadData(configs, accountIds, regions, services, concu
|
|
|
75
84
|
workerId: context.workerId,
|
|
76
85
|
...context.properties
|
|
77
86
|
};
|
|
78
|
-
log.
|
|
87
|
+
log.debug(logDetails, 'Executing regional sync');
|
|
79
88
|
const regionalCredentials = await getCredentials(accountId, asrConfig.auth);
|
|
80
89
|
await sync.execute(accountId, region, regionalCredentials, storage, asrConfig.endpoint, syncOptions);
|
|
81
90
|
log.trace(logDetails, 'Finished regional sync');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/services.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* All Valid AWS Services
|
|
3
3
|
*/
|
|
4
|
-
export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
|
|
4
|
+
export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
|
|
5
5
|
/**
|
|
6
6
|
* Type representing a valid AWS service. A union of all strings in `allServices`.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,6KAiBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
package/dist/esm/services.js
CHANGED
package/dist/esm/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiRegionAccessPoints.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/multiRegionAccessPoints.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,6BAA6B,EAAE,IA8C3C,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { GetMultiRegionAccessPointPolicyCommand, ListMultiRegionAccessPointsCommand, S3ControlClient } from '@aws-sdk/client-s3-control';
|
|
2
|
+
import { runAndCatch404 } from '../../utils/client-tools.js';
|
|
3
|
+
import { parseIfPresent } from '../../utils/json.js';
|
|
4
|
+
import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
|
|
5
|
+
export const S3MultiRegionAccessPointsSync = createTypedSyncOperation('s3', 'multiRegionAccessPoints', createResourceSyncType({
|
|
6
|
+
client: S3ControlClient,
|
|
7
|
+
command: ListMultiRegionAccessPointsCommand,
|
|
8
|
+
key: 'AccessPoints',
|
|
9
|
+
arguments: (accountId, region) => ({
|
|
10
|
+
AccountId: accountId
|
|
11
|
+
}),
|
|
12
|
+
paginationConfig: {
|
|
13
|
+
inputKey: 'NextToken',
|
|
14
|
+
outputKey: 'NextToken'
|
|
15
|
+
},
|
|
16
|
+
arn: (accessPoint, region, account, partition) => `arn:${partition}:s3::${account}:accesspoint/${accessPoint.Alias}`,
|
|
17
|
+
resourceTypeParts: (account, region) => ({
|
|
18
|
+
service: 's3',
|
|
19
|
+
resourceType: 'accesspoint',
|
|
20
|
+
account
|
|
21
|
+
}),
|
|
22
|
+
extraFields: {
|
|
23
|
+
policy: async (client, accessPoint, accountId) => {
|
|
24
|
+
const policy = runAndCatch404(async () => {
|
|
25
|
+
const result = await client.send(new GetMultiRegionAccessPointPolicyCommand({
|
|
26
|
+
Name: accessPoint.Name,
|
|
27
|
+
AccountId: accountId
|
|
28
|
+
}));
|
|
29
|
+
return parseIfPresent(result.Policy?.Established?.Policy);
|
|
30
|
+
});
|
|
31
|
+
return policy;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
tags: () => undefined, // Multi region access points do not have tags
|
|
35
|
+
results: (accessPoint) => ({
|
|
36
|
+
metadata: {
|
|
37
|
+
name: accessPoint.Name,
|
|
38
|
+
alias: accessPoint.Alias,
|
|
39
|
+
regions: accessPoint.Regions
|
|
40
|
+
},
|
|
41
|
+
bpa: accessPoint.PublicAccessBlock,
|
|
42
|
+
policy: accessPoint.extraFields.policy
|
|
43
|
+
})
|
|
44
|
+
}));
|
|
45
|
+
//# sourceMappingURL=multiRegionAccessPoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiRegionAccessPoints.js","sourceRoot":"","sources":["../../../../src/syncs/s3/multiRegionAccessPoints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EAClC,eAAe,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,6BAA6B,GAAS,wBAAwB,CACzE,IAAI,EACJ,yBAAyB,EACzB,sBAAsB,CAAC;IACrB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,kCAAkC;IAC3C,GAAG,EAAE,cAAc;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,SAAS,EAAE,SAAS;KACrB,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,WAAW;KACvB;IACD,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAC/C,OAAO,SAAS,QAAQ,OAAO,gBAAgB,WAAW,CAAC,KAAK,EAAE;IACpE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,aAAa;QAC3B,OAAO;KACR,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,IAAI,EAAE;gBACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,sCAAsC,CAAC;oBACzC,IAAI,EAAE,WAAW,CAAC,IAAK;oBACvB,SAAS,EAAE,SAAS;iBACrB,CAAC,CACH,CAAA;gBACD,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;KACF;IACD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,8CAA8C;IACrE,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW,CAAC,IAAK;YACvB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B;QACD,GAAG,EAAE,WAAW,CAAC,iBAAiB;QAClC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM;KACvC,CAAC;CACH,CAAC,CACH,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3DirectoryBucketsSync.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3express/s3DirectoryBucketsSync.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,2BA4ClC,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { GetBucketEncryptionCommand, GetBucketPolicyCommand, ListDirectoryBucketsCommand, S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
import { runAndCatch404 } from '../../utils/client-tools.js';
|
|
3
|
+
import { parseIfPresent } from '../../utils/json.js';
|
|
4
|
+
import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
|
|
5
|
+
export const S3DirectoryBucketsSync = createTypedSyncOperation('s3express', 'directoryBuckets', createResourceSyncType({
|
|
6
|
+
client: S3Client,
|
|
7
|
+
command: ListDirectoryBucketsCommand,
|
|
8
|
+
key: 'Buckets',
|
|
9
|
+
arguments: () => ({ MaxDirectoryBuckets: 1000 }),
|
|
10
|
+
paginationConfig: {
|
|
11
|
+
inputKey: 'ContinuationToken',
|
|
12
|
+
outputKey: 'ContinuationToken'
|
|
13
|
+
},
|
|
14
|
+
arn: (bucket, region, account, partition) => directoryBucketArn(partition, region, account, bucket.Name),
|
|
15
|
+
extraFields: {
|
|
16
|
+
policy: async (client, bucket) => {
|
|
17
|
+
new S3Client({});
|
|
18
|
+
return runAndCatch404(async () => {
|
|
19
|
+
const policy = await client.send(new GetBucketPolicyCommand({ Bucket: bucket.Name }));
|
|
20
|
+
return parseIfPresent(policy.Policy);
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
encryption: async (client, bucket) => {
|
|
24
|
+
const encryption = await client.send(new GetBucketEncryptionCommand({ Bucket: bucket.Name }));
|
|
25
|
+
return encryption.ServerSideEncryptionConfiguration;
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
tags: (bucket) => undefined,
|
|
29
|
+
resourceTypeParts: (account, region) => ({
|
|
30
|
+
service: 's3express',
|
|
31
|
+
resourceType: 'bucket',
|
|
32
|
+
account,
|
|
33
|
+
region
|
|
34
|
+
}),
|
|
35
|
+
results: (bucket) => ({
|
|
36
|
+
metadata: {
|
|
37
|
+
name: bucket.Name,
|
|
38
|
+
encryption: bucket.extraFields.encryption?.Rules
|
|
39
|
+
},
|
|
40
|
+
policy: bucket.extraFields.policy
|
|
41
|
+
})
|
|
42
|
+
}));
|
|
43
|
+
/**
|
|
44
|
+
* Create an ARN for a directory bucket
|
|
45
|
+
*
|
|
46
|
+
* @param partition the partition of the bucket
|
|
47
|
+
* @param region the region of the bucket
|
|
48
|
+
* @param account the account the bucket is in
|
|
49
|
+
* @param bucketName the name of the bucket
|
|
50
|
+
* @returns the full arn of the directory bucket
|
|
51
|
+
*/
|
|
52
|
+
function directoryBucketArn(partition, region, account, bucketName) {
|
|
53
|
+
return `arn:${partition}:s3express:${region}:${account}:bucket/${bucketName}`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=s3DirectoryBucketsSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3DirectoryBucketsSync.js","sourceRoot":"","sources":["../../../../src/syncs/s3express/s3DirectoryBucketsSync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,EAC3B,QAAQ,EACT,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAC5D,WAAW,EACX,kBAAkB,EAClB,sBAAsB,CAAC;IACrB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,2BAA2B;IACpC,GAAG,EAAE,SAAS;IACd,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAChD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,mBAAmB;KAC/B;IACD,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAC1C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAK,CAAC;IAC9D,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;YAChB,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAC,CAAA;gBACtF,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAClC,IAAI,0BAA0B,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CACzD,CAAA;YACD,OAAO,UAAU,CAAC,iCAAiC,CAAA;QACrD,CAAC;KACF;IACD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS;IAC3B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,WAAW;QACpB,YAAY,EAAE,QAAQ;QACtB,OAAO;QACP,MAAM;KACP,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK;SACjD;QACD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;CACH,CAAC,CACH,CAAA;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,SAAiB,EACjB,MAAc,EACd,OAAe,EACf,UAAkB;IAElB,OAAO,OAAO,SAAS,cAAc,MAAM,IAAI,OAAO,WAAW,UAAU,EAAE,CAAA;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA4ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
|
|
@@ -11,7 +11,9 @@ import { OrganizationSync } from './organizations/organizations.js';
|
|
|
11
11
|
import { S3AccessPointsSync } from './s3/accessPoints.js';
|
|
12
12
|
import { AccountS3BpaSync } from './s3/accountBpa.js';
|
|
13
13
|
import { S3GeneralPurposeBucketSync } from './s3/buckets.js';
|
|
14
|
+
import { S3MultiRegionAccessPointsSync } from './s3/multiRegionAccessPoints.js';
|
|
14
15
|
import { GlacierVaultsSync } from './s3/vaults.js';
|
|
16
|
+
import { S3DirectoryBucketsSync } from './s3express/s3DirectoryBucketsSync.js';
|
|
15
17
|
import { S3TableBucketsSync } from './s3tables/s3TablesSync.js';
|
|
16
18
|
import { SecretSync } from './secretsmanager/secrets.js';
|
|
17
19
|
import { SnsTopicsSync } from './sns/topics.js';
|
|
@@ -30,7 +32,9 @@ const allSyncs = [
|
|
|
30
32
|
OrganizationSync,
|
|
31
33
|
RestApisSync,
|
|
32
34
|
S3AccessPointsSync,
|
|
35
|
+
S3DirectoryBucketsSync,
|
|
33
36
|
S3GeneralPurposeBucketSync,
|
|
37
|
+
S3MultiRegionAccessPointsSync,
|
|
34
38
|
S3TableBucketsSync,
|
|
35
39
|
SecretSync,
|
|
36
40
|
SnsTopicsSync,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"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"}
|