UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

39 lines 1.46 kB
import { getStorageConfig } from '../config/config.js'; import { getIndexersForService } from '../indexing/indexMap.js'; import { runIndexJobs } from '../indexing/runIndexers.js'; import { defaultConcurrency } from '../jobs/util.js'; import { createStorageClient } from '../persistence/util.js'; import { allServices } from '../services.js'; export async function index(configs, partition, accountIds, regions, services, concurrency) { const storageConfig = getStorageConfig(configs); if (!storageConfig) { throw new Error('No storage configuration found. Cannot index data.'); } const storage = createStorageClient(storageConfig, partition); if (accountIds.length === 0) { accountIds = await storage.listAccountIds(); } if (services.length === 0) { services = allServices; } if (!concurrency || concurrency <= 0) { concurrency = defaultConcurrency(); } const indexers = services.reduce((allIndexers, service) => { allIndexers.push(...getIndexersForService(service)); return allIndexers; }, []); const jobs = []; for (const accountId of accountIds) { for (const indexer of indexers) { jobs.push({ indexer, accountId, regions: regions, partition }); } } await runIndexJobs(jobs, storageConfig, concurrency); } //# sourceMappingURL=index.js.map