Skip to content

Commit 2f79998

Browse files
authored
Merge pull request #157 from contentstack/feat/DX-5631
feat: add support for asset scaning in import command
2 parents 3344d0d + 2a38c67 commit 2f79998

4 files changed

Lines changed: 26 additions & 16 deletions

File tree

.talismanrc

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
11
fileignoreconfig:
2-
- filename: pnpm-lock.yaml
3-
checksum: 264c0294416c2aa2028c8283831aa7ed17d63e8c69553a7b2b9774336bc0811f
4-
- filename: packages/contentstack-bootstrap/test/bootstrap.test.js
5-
checksum: 37b502482fc32831c39091dd1755e8b0a9f6f8bac89e5eb9d397c6af1f213d83
6-
- filename: packages/contentstack-bootstrap/test/utils.test.js
7-
checksum: e0ca2eb58ab1c3ac3b4d9c14a17bb8f4788678074dd65f6acc128a8a8f51997f
8-
- filename: packages/contentstack-export-to-csv/test/unit/base-command.test.ts
9-
checksum: 4c2befce053135453c1db31f21351bf3f797ff2f15723ca52e183ed6ed9e48e4
10-
- filename: packages/contentstack-export-to-csv/test/unit/utils/teams-export.functional.test.ts
11-
checksum: 17cdae91c22a935309bf4514b6616f1aea91fd0166fede182e673ade43667a36
12-
- filename: packages/contentstack-export-to-csv/test/unit/utils/interactive.test.ts
13-
checksum: 72c1e719e5c51a42debc817a5fe5bb1adee63b2d823df2e9ee36d0b970db7886
14-
- filename: packages/contentstack-export-to-csv/test/unit/utils/api-client.functional.test.ts
15-
checksum: 6d6638919ef7260f642d32cf730e2654d159d2d3582714fb2d7a9c209b9c6eeb
16-
- filename: packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.ts
17-
checksum: 9621a9d013796e99a25e894404c4d7c6799bd33bde77852f09d5e32b4d1c1c49
2+
- filename: packages/contentstack-import/src/import/modules/assets.ts
3+
checksum: 8d6d1cadf9178f79aeae508f157c019342e1899f9c3f8116bd25b4ec27e593be
184
version: '1.0'

packages/contentstack-import/src/import/module-importer.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ class ModuleImporter {
2626
const stackDetails: Record<string, unknown> = await this.stackAPIClient.fetch();
2727
this.importConfig.stackName = stackDetails.name as string;
2828
this.importConfig.org_uid = stackDetails.org_uid as string;
29+
30+
const assetScanningEnabled = await this.detectAssetScanning(this.importConfig.org_uid);
31+
if (assetScanningEnabled) {
32+
this.importConfig.assetScanningEnabled = true;
33+
this.importConfig.skipAssetsPublish = true;
34+
}
2935
}
3036

3137
await this.resolveImportPath();
@@ -194,6 +200,16 @@ class ModuleImporter {
194200
log.error(`Audit failed with following error. ${error}`, this.importConfig.context);
195201
}
196202
}
203+
204+
private async detectAssetScanning(orgUid: string): Promise<boolean> {
205+
try {
206+
const orgDetails = await this.managementAPIClient.organization(orgUid).fetch({ include_plan: true });
207+
const features: Array<{ uid: string; enabled?: boolean }> = orgDetails?.plan?.features || [];
208+
return features.some((f) => (f.uid === 'assetsScan' || f.uid === 'amAssetsScan') && f.enabled === true);
209+
} catch {
210+
return false;
211+
}
212+
}
197213
}
198214

199215
export default ModuleImporter;

packages/contentstack-import/src/import/modules/assets.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,13 @@ export default class ImportAssets extends BaseClass {
197197

198198
this.completeProgress(true);
199199
log.success('Assets imported successfully!', this.importConfig.context);
200+
201+
if (this.importConfig.assetScanningEnabled) {
202+
log.info(' Asset Scanning is enabled for this stack.', this.importConfig.context);
203+
log.info(' Assets cannot be published immediately — scanning must complete first.', this.importConfig.context);
204+
log.info(' Once scanning is done, publish your assets using:', this.importConfig.context);
205+
log.info(' csdx cm:stacks:bulk-assets --data-dir ./content --stack-api-key <key>', this.importConfig.context);
206+
}
200207
} catch (error) {
201208
this.completeProgress(false, error?.message || 'Asset import failed');
202209
handleAndLogError(error, { ...this.importConfig.context });

packages/contentstack-import/src/types/import-config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default interface ImportConfig extends DefaultConfig, ExternalConfig {
1414
authenticationMethod?: string;
1515
skipAssetsPublish?: boolean;
1616
skipEntriesPublish?: boolean;
17+
assetScanningEnabled?: boolean;
1718
cliLogsPath: string;
1819
canCreatePrivateApp: boolean;
1920
contentDir: string;

0 commit comments

Comments
 (0)