Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
aa8e55d
Added proxy support
sunil-lakshman Nov 21, 2025
4fa8521
Fixed PR comments
sunil-lakshman Nov 26, 2025
4abb2b7
Fixed PR comments
sunil-lakshman Nov 26, 2025
01beab5
Fixed PR comments
sunil-lakshman Nov 26, 2025
f973439
feat: add session file in session based logger
Dec 4, 2025
7ecdfac
updated import test cases
Dec 4, 2025
2ed881e
Merge branch 'development' into feat/DX-3763
Dec 8, 2025
c863bd7
resolved comments
Dec 8, 2025
ada8f3f
fix test cases
Dec 8, 2025
d26e9e9
fix: resolve stack-clone auth failure for non-NA regions
harshithad0703 Dec 15, 2025
8f4a9c0
Merge branch 'main' into fix/dx-3808-clone-session-timeout
harshithad0703 Dec 15, 2025
14c5973
Merge pull request #2282 from contentstack/main
harshithad0703 Dec 15, 2025
c36229e
Merge branch 'development' into feat/DX-3763
Dec 16, 2025
5861034
Merge pull request #2261 from contentstack/feat/DX-3763
naman-contentstack Dec 16, 2025
b8ce61d
skip composition type and compositions if studio project failed to im…
shafeeqd959 Dec 17, 2025
c2bd253
merged dev changes
shafeeqd959 Dec 17, 2025
f51a47b
bumped version
shafeeqd959 Dec 17, 2025
ac20d7b
added composable studio validation in audit
shafeeqd959 Dec 17, 2025
77eedb4
updated test cases
shafeeqd959 Dec 18, 2025
19755ef
Merge branch 'development' into enh/proxy-setup
sunil-lakshman Dec 18, 2025
b9c7b81
added missing import in clone
Dec 19, 2025
e79f9af
Merge branch 'development' into feat/DX-3763
naman-contentstack Dec 19, 2025
7455a69
Merge pull request #2287 from contentstack/feat/DX-3763
AniketDev7 Dec 19, 2025
00414c5
chore: license update
cs-raj Jan 2, 2026
7c94028
Merge branch 'development' of github.com:contentstack/cli into feat/D…
shafeeqd959 Jan 5, 2026
1b29c34
fixed test cases
shafeeqd959 Jan 5, 2026
e827fba
updated license update
shafeeqd959 Jan 5, 2026
8d83d84
added types
shafeeqd959 Jan 5, 2026
0318122
updated license
shafeeqd959 Jan 5, 2026
8d3ef95
Proxy support added
sunil-lakshman Jan 7, 2026
b8d6335
Merge branch 'development' into enh/proxy-setup
sunil-lakshman Jan 7, 2026
297eca4
updated license year
sunil-lakshman Jan 7, 2026
84d98d4
Merge branch 'development' into fix/dx-3808-clone-session-timeout
harshithad0703 Jan 7, 2026
a35b910
Merge pull request #2291 from contentstack/fix/licenseupdate
cs-raj Jan 7, 2026
7304dbb
Update version for contentstack-clone to 1.18.2
harshithad0703 Jan 8, 2026
471d168
update package lock
harshithad0703 Jan 8, 2026
fa39b0a
Merge branch 'development' into fix/dx-3808-clone-session-timeout
harshithad0703 Jan 8, 2026
904f265
update changeLog
harshithad0703 Jan 8, 2026
4b8d913
Merge pull request #2281 from contentstack/fix/dx-3808-clone-session-…
harshithad0703 Jan 8, 2026
e912170
Fixed merge conflits
sunil-lakshman Jan 8, 2026
39333c4
bump version of contentstack-clone to 1.18.1 in package.json and upda…
harshithad0703 Jan 9, 2026
6eace75
Merge pull request #2300 from contentstack/fix/version-bump-clone
harshithad0703 Jan 9, 2026
1878253
version bump to 1.54.0
harshithad0703 Jan 9, 2026
3e03980
Merge pull request #2302 from contentstack/fix/version-bump
aman19K Jan 9, 2026
46a2f18
Merge pull request #2298 from contentstack/development
harshithad0703 Jan 9, 2026
f67e678
Merge branch 'development' into enh/proxy-setup
sunil-lakshman Jan 12, 2026
3c61143
Merge pull request #2303 from contentstack/staging
harshithad0703 Jan 12, 2026
9fd8c6f
Merge pull request #2305 from contentstack/main
harshithad0703 Jan 12, 2026
28727c0
Merge branch 'development' into enh/proxy-setup
netrajpatel Jan 13, 2026
bfeb6ad
feat: add new logger in config
Jan 13, 2026
26f49a2
Fixed PR comments
sunil-lakshman Jan 13, 2026
efd318d
merged latest changes from dev
shafeeqd959 Jan 13, 2026
a7f30cc
Feat: Converted Clone to TS module
cs-raj Jan 13, 2026
6bd5e6e
merged all changes
shafeeqd959 Jan 13, 2026
bf0540e
Fixed PR comments
sunil-lakshman Jan 13, 2026
57947ef
Feat: Converted Clone to TS module
cs-raj Jan 13, 2026
ef5ac34
updated gitignore rule and added mock contents
shafeeqd959 Jan 13, 2026
c6c700e
Merge pull request #2284 from contentstack/feat/DX-3809
shafeeqd959 Jan 13, 2026
b91ca8c
Merge branch 'development' of github.com:contentstack/cli into feat/D…
shafeeqd959 Jan 13, 2026
bb402d3
fix test case, update logger in remaining files
Jan 13, 2026
20fcad7
fix failing log test cases
Jan 13, 2026
4958cc8
Merge branch 'development' into feat/DX-3864
naman-contentstack Jan 13, 2026
584e628
handled errors
shafeeqd959 Jan 13, 2026
a626f76
Fixed merge conflits
sunil-lakshman Jan 13, 2026
6023883
version bumps
Jan 13, 2026
a8774c5
Merge pull request #2285 from contentstack/feat/DX-3810
shafeeqd959 Jan 13, 2026
e68f05d
Merge branch 'development' into feat/DX-3864
Jan 14, 2026
d615f20
Merge pull request #2307 from contentstack/feat/DX-3864
naman-contentstack Jan 14, 2026
9e27654
Fixed the test cases
cs-raj Jan 14, 2026
628d141
Added tests for clone command
cs-raj Jan 14, 2026
d2f0111
Added Tests for clone-handler
cs-raj Jan 14, 2026
e496833
Added Coverage
cs-raj Jan 14, 2026
9dddb3c
Merge branch 'development' into feat/DX-3870-2
cs-raj Jan 14, 2026
dca45a6
Lock File update
cs-raj Jan 14, 2026
d787942
Fixed PR comments
sunil-lakshman Jan 16, 2026
345ec3f
Fixed PR comments
sunil-lakshman Jan 16, 2026
68f2d15
version bump
harshithad0703 Jan 16, 2026
4382205
update pnpm lock
harshithad0703 Jan 16, 2026
7651f82
Merge pull request #2313 from contentstack/fix/version-bump
harshithad0703 Jan 16, 2026
fb4a844
Renamed lib to core in clone command
cs-raj Jan 17, 2026
85811cf
chore: update @contentstack/cli-auth to version 1.7.0
harshithad0703 Jan 19, 2026
87d8988
chore: update @contentstack/cli-auth to version 1.7.0 in package.json…
harshithad0703 Jan 19, 2026
a3952e0
Merge pull request #2315 from contentstack/fix/version-bump
harshithad0703 Jan 19, 2026
fc624f9
Merge pull request #2310 from contentstack/development
harshithad0703 Jan 19, 2026
5d4a2e9
Merge pull request #2316 from contentstack/staging
harshithad0703 Jan 19, 2026
3d7e6ad
Merge pull request #2322 from contentstack/main
harshithad0703 Jan 19, 2026
62d596f
Fix: Moved the OTP asking to catch block
cs-raj Jan 21, 2026
8a40d28
Fix: Upgraded tar
cs-raj Jan 21, 2026
8e83722
Fixed merge conflits
sunil-lakshman Jan 21, 2026
df277b5
Fixed Error Handling
cs-raj Jan 21, 2026
2a3ca40
Fixed Test cases
cs-raj Jan 21, 2026
225f41a
Updated tar package version
sunil-lakshman Jan 21, 2026
0dfea6b
Cli version bump
cs-raj Jan 21, 2026
41f70ad
Seed and Bootstrap Plugin Version bump
cs-raj Jan 21, 2026
0632977
Merge pull request #2326 from contentstack/fix/DX-3920
cs-raj Jan 21, 2026
2fe3703
Merge pull request #2328 from contentstack/main
cs-raj Jan 21, 2026
851878b
Merge branch 'staging' into development
cs-raj Jan 21, 2026
2278ea3
Merge pull request #2330 from contentstack/stage-to-dev
cs-raj Jan 21, 2026
7a73878
Updated Import version
cs-raj Jan 21, 2026
2a41b58
Reverted export version
cs-raj Jan 21, 2026
5ebc6b9
Merge pull request #2332 from contentstack/fix/import
cs-raj Jan 21, 2026
9bca9e8
Host issue reolved
sunil-lakshman Jan 21, 2026
a67264d
Fixed merge conflits
sunil-lakshman Jan 21, 2026
e18e382
Merge branch 'main' into staging
cs-raj Jan 22, 2026
91c7eeb
Merge pull request #2334 from contentstack/main-to-stage
cs-raj Jan 22, 2026
42487e7
Merge branch 'staging' into development
cs-raj Jan 22, 2026
b51f243
Merge pull request #2336 from contentstack/stage-to-dev2
cs-raj Jan 22, 2026
a048374
Fixed merge conflits
sunil-lakshman Jan 22, 2026
1d2ab67
Merge pull request #2252 from contentstack/enh/proxy-setup
sunil-lakshman Jan 22, 2026
efc54b8
Fix the Cleanup
cs-raj Jan 22, 2026
e7343bb
Fix the clone cleanup
cs-raj Jan 22, 2026
a45db4c
Fixed the Client initialisation issue
cs-raj Jan 22, 2026
60af242
Sinon Version bump
cs-raj Jan 23, 2026
01de521
Version Bump
cs-raj Jan 23, 2026
ca5fb69
Merge pull request #2340 from contentstack/fix/snyk
cs-raj Jan 23, 2026
91ee562
Merge branch 'development' into feat/DX-3870-2
cs-raj Jan 23, 2026
49251c0
Version bump clone command
cs-raj Jan 23, 2026
7e67e8d
Added Clone Unit test to github workflow
cs-raj Jan 23, 2026
f828cc4
Fixed PR comments
cs-raj Jan 23, 2026
b9d8a12
Merge pull request #2308 from contentstack/feat/DX-3870-2
cs-raj Jan 23, 2026
38bbac9
Merge pull request #2339 from contentstack/development
harshithad0703 Jan 23, 2026
181448f
Merge pull request #2322 from contentstack/main
harshithad0703 Jan 19, 2026
5002713
Merge pull request #2328 from contentstack/main
cs-raj Jan 21, 2026
10a21b8
Merge pull request #2252 from contentstack/enh/proxy-setup
sunil-lakshman Jan 22, 2026
af39ea4
Merge pull request #2340 from contentstack/fix/snyk
cs-raj Jan 23, 2026
cbfdbf0
Merge pull request #2308 from contentstack/feat/DX-3870-2
cs-raj Jan 23, 2026
b83ba94
Merge branch 'staging' into fix/merge-development-to-beta
harshithad0703 Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ jobs:
- name: Run tests for Contentstack Branches
working-directory: ./packages/contentstack-branches
run: npm run test:unit

- name: Run tests for Contentstack Clone
working-directory: ./packages/contentstack-clone
run: npm run test:unit

# - name: Fetch latest references
# run: |
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ node_modules
.env
.dccache
logs
contents
/contents
lerna-debug.log
.DS_Store
contentTest
Expand Down
18 changes: 18 additions & 0 deletions .talismanrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,22 @@ fileignoreconfig:
checksum: 41bc1d60449ab0682d9267172e54a5802c837869a1728b0560eea8052336c2fe
- filename: package-lock.json
checksum: 134104853f260380025e0d7e2b49ec32f15a1832b20756676819ce0bc4277c44
- filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json
checksum: 0402604e5919a7e38ecb5ff0916d6ae5ab7d98fe78ff6ac9eba8a9b8130af34d
- filename: packages/contentstack-utilities/src/helpers.ts
checksum: 6a741bb972f59c56d2c0f3a9f96e2963392361db2e401948c9c1796829478e13
- filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json
checksum: 6912e5ea32b4456ad04d1645750c72bbb29ab1895368c3a242ab39e9350ec531
- filename: packages/contentstack-utilities/src/logger/session-path.ts
checksum: 4c66980a857bc12012a45e50790c0eaab06883db5e1476d84fb142a08b70b2e7
- filename: packages/contentstack-import/test/unit/commands/cm/stacks/import.test.ts
checksum: a9e24596e7ae54b71cc28a41cf9d65bbdbf6754446e08958288e90a579cc351d
- filename: packages/contentstack-audit/src/modules/modulesData.ts
checksum: 1e6c1fba1172512401038d5454c8d218201ec62262449c5c878609592e0124c4
- filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json
checksum: e6465aa0011d1565a2de848d9cca74395d11419e6ac840e7dfb52e1d255b1c4f
- filename: packages/contentstack-audit/src/modules/composable-studio.ts
checksum: 4fc97ff582d6dff9a54b3a50dfa3cbb5febd38a55aeb8737034b97188ad543ba
- filename: packages/contentstack-utilities/test/unit/logger.test.ts
checksum: a1939dea16166b1893a248179524a76f2ed20b04b99c83bd1a5a13fcf6f0dadc
version: "1.0"
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

Please refer to the Contentstack Command-line Interface release notes [here](https://www.contentstack.com/docs/developers/cli/cli-changelog).

## @contentstack/cli-cm-clone
### Version: 1.8.2
#### Date: June-30-2025
##### Fix:
- resolve stack-clone auth failure for non-NA regions

## @contentstack/cli-config
### Version: 1.13.1
#### Date: July-21-2025
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-audit/LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 Contentstack
Copyright (c) 2026 Contentstack

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
6 changes: 3 additions & 3 deletions packages/contentstack-audit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
"/oclif.manifest.json"
],
"dependencies": {
"@contentstack/cli-command": "~1.6.1",
"@contentstack/cli-utilities": "~1.15.0",
"@contentstack/cli-command": "~1.7.2",
"@contentstack/cli-utilities": "~1.17.0",
"@oclif/core": "^4.3.0",
"@oclif/plugin-help": "^6.2.28",
"chalk": "^4.1.2",
Expand All @@ -44,7 +44,7 @@
"nyc": "^15.1.0",
"oclif": "^4.17.46",
"shx": "^0.4.0",
"sinon": "^19.0.5",
"sinon": "^21.0.1",
"ts-node": "^10.9.2",
"typescript": "^5.8.3"
},
Expand Down
102 changes: 71 additions & 31 deletions packages/contentstack-audit/src/audit-base-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
FieldRule,
ModuleDataReader,
CustomRoles,
ComposableStudio,
} from './modules';

import {
Expand Down Expand Up @@ -50,19 +51,6 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
};
}

/**
* Create audit context object similar to export command
*/
private createAuditContext(moduleName?: string): AuditContext {
return {
command: this.context?.info?.command || 'cm:stacks:audit',
module: moduleName || 'audit',
email: configHandler.get('email') || '',
sessionId: this.context?.sessionId || '',
authenticationMethod: configHandler.get('authenticationMethod') || '',
};
}

/**
* The `start` function performs an audit on content types, global fields, entries, and workflows and displays
* any missing references.
Expand Down Expand Up @@ -109,6 +97,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
missingEnvLocalesInEntries,
missingFieldRules,
missingMultipleFields,
missingRefsInComposableStudio,
} = await this.scanAndFix();

if (this.flags['show-console-output']) {
Expand Down Expand Up @@ -139,6 +128,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
this.showOutputOnScreenWorkflowsAndExtension([
{ module: 'Entries Changed Multiple Fields', missingRefs: missingMultipleFields },
]);
this.showOutputOnScreenWorkflowsAndExtension([{ module: 'Studio', missingRefs: missingRefsInComposableStudio }]);
}
this.showOutputOnScreenWorkflowsAndExtension([{ module: 'Summary', missingRefs: this.summaryDataToPrint }]);

Expand All @@ -154,12 +144,16 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
!isEmpty(missingEnvLocalesInAssets) ||
!isEmpty(missingEnvLocalesInEntries) ||
!isEmpty(missingFieldRules) ||
!isEmpty(missingMultipleFields)
!isEmpty(missingMultipleFields) ||
!isEmpty(missingRefsInComposableStudio)
) {
if (this.currentCommand === 'cm:stacks:audit') {
log.warn(this.$t(auditMsg.FINAL_REPORT_PATH, { path: this.sharedConfig.reportPath }), this.auditContext);
} else {
log.warn(this.$t(this.messages.FIXED_CONTENT_PATH_MAG, { path: this.sharedConfig.basePath }), this.auditContext);
log.warn(
this.$t(this.messages.FIXED_CONTENT_PATH_MAG, { path: this.sharedConfig.basePath }),
this.auditContext,
);
}
} else {
log.info(this.messages.NO_MISSING_REF_FOUND, this.auditContext);
Expand Down Expand Up @@ -191,7 +185,8 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
!isEmpty(missingRefInCustomRoles) ||
!isEmpty(missingEnvLocalesInAssets) ||
!isEmpty(missingEnvLocalesInEntries) ||
!isEmpty(missingFieldRules)
!isEmpty(missingFieldRules) ||
!isEmpty(missingRefsInComposableStudio)
);
}

Expand All @@ -204,8 +199,11 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
async scanAndFix() {
log.debug('Starting scan and fix process', this.auditContext);
let { ctSchema, gfSchema } = this.getCtAndGfSchema();
log.info(`Retrieved ${ctSchema?.length || 0} content types and ${gfSchema?.length || 0} global fields`, this.auditContext);

log.info(
`Retrieved ${ctSchema?.length || 0} content types and ${gfSchema?.length || 0} global fields`,
this.auditContext,
);

let missingCtRefs,
missingGfRefs,
missingEntryRefs,
Expand All @@ -226,7 +224,8 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
missingEnvLocalesInAssets,
missingEnvLocalesInEntries,
missingFieldRules,
missingMultipleFields;
missingMultipleFields,
missingRefsInComposableStudio;

const constructorParam: ModuleConstructorParam & CtConstructorParam = {
ctSchema,
Expand All @@ -247,7 +246,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma

for (const module of this.sharedConfig.flags.modules || this.sharedConfig.modules) {
// Update audit context with current module
this.auditContext = this.createAuditContext(module);
this.auditContext = { module: module };
log.debug(`Starting audit for module: ${module}`, this.auditContext);
log.info(`Starting audit for module: ${module}`, this.auditContext);

Expand All @@ -271,23 +270,32 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
missingEnvLocalesInAssets = await new Assets(cloneDeep(constructorParam)).run(false, assetsTotalCount);
await this.prepareReport(module, missingEnvLocalesInAssets);
this.getAffectedData('assets', dataModuleWise['assets'], missingEnvLocalesInAssets);
log.success(`Assets audit completed. Found ${Object.keys(missingEnvLocalesInAssets || {}).length} issues`, this.auditContext);
log.success(
`Assets audit completed. Found ${Object.keys(missingEnvLocalesInAssets || {}).length} issues`,
this.auditContext,
);
break;
case 'content-types':
log.info('Executing content-types audit', this.auditContext);
const contentTypesTotalCount = dataModuleWise['content-types']?.Total || 0;
missingCtRefs = await new ContentType(cloneDeep(constructorParam)).run(false, contentTypesTotalCount);
await this.prepareReport(module, missingCtRefs);
this.getAffectedData('content-types', dataModuleWise['content-types'], missingCtRefs);
log.success(`Content-types audit completed. Found ${Object.keys(missingCtRefs || {}).length} issues`, this.auditContext);
log.success(
`Content-types audit completed. Found ${Object.keys(missingCtRefs || {}).length} issues`,
this.auditContext,
);
break;
case 'global-fields':
log.info('Executing global-fields audit', this.auditContext);
const globalFieldsTotalCount = dataModuleWise['global-fields']?.Total || 0;
missingGfRefs = await new GlobalField(cloneDeep(constructorParam)).run(false, globalFieldsTotalCount);
await this.prepareReport(module, missingGfRefs);
this.getAffectedData('global-fields', dataModuleWise['global-fields'], missingGfRefs);
log.success(`Global-fields audit completed. Found ${Object.keys(missingGfRefs || {}).length} issues`, this.auditContext);
log.success(
`Global-fields audit completed. Found ${Object.keys(missingGfRefs || {}).length} issues`,
this.auditContext,
);
break;
case 'entries':
log.info('Executing entries audit', this.auditContext);
Expand All @@ -311,7 +319,10 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma

await this.prepareReport('Entry_Multiple_Fields', missingMultipleFields);
this.getAffectedData('entries', dataModuleWise['entries'], missingEntry);
log.success(`Entries audit completed. Found ${Object.keys(missingEntryRefs || {}).length} reference issues`, this.auditContext);
log.success(
`Entries audit completed. Found ${Object.keys(missingEntryRefs || {}).length} reference issues`,
this.auditContext,
);

break;
case 'workflows':
Expand All @@ -325,7 +336,10 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
}).run(workflowsTotalCount);
await this.prepareReport(module, missingCtRefsInWorkflow);
this.getAffectedData('workflows', dataModuleWise['workflows'], missingCtRefsInWorkflow);
log.success(`Workflows audit completed. Found ${Object.keys(missingCtRefsInWorkflow || {}).length} issues`, this.auditContext);
log.success(
`Workflows audit completed. Found ${Object.keys(missingCtRefsInWorkflow || {}).length} issues`,
this.auditContext,
);

break;
case 'extensions':
Expand All @@ -334,28 +348,53 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
missingCtRefsInExtensions = await new Extensions(cloneDeep(constructorParam)).run(extensionsTotalCount);
await this.prepareReport(module, missingCtRefsInExtensions);
this.getAffectedData('extensions', dataModuleWise['extensions'], missingCtRefsInExtensions);
log.success(`Extensions audit completed. Found ${Object.keys(missingCtRefsInExtensions || {}).length} issues`, this.auditContext);
log.success(
`Extensions audit completed. Found ${Object.keys(missingCtRefsInExtensions || {}).length} issues`,
this.auditContext,
);
break;
case 'custom-roles':
log.info('Executing custom-roles audit', this.auditContext);
const customRolesTotalCount = dataModuleWise['custom-roles']?.Total || 0;
missingRefInCustomRoles = await new CustomRoles(cloneDeep(constructorParam)).run(customRolesTotalCount);
await this.prepareReport(module, missingRefInCustomRoles);
this.getAffectedData('custom-roles', dataModuleWise['custom-roles'], missingRefInCustomRoles);
log.success(`Custom-roles audit completed. Found ${Object.keys(missingRefInCustomRoles || {}).length} issues`, this.auditContext);
log.success(
`Custom-roles audit completed. Found ${Object.keys(missingRefInCustomRoles || {}).length} issues`,
this.auditContext,
);

break;
case 'field-rules':
log.info('Executing field-rules audit', this.auditContext);
// NOTE: We are using the fixed content-type for validation of field rules
const data = this.getCtAndGfSchema();
const data = this.getCtAndGfSchema();
constructorParam.ctSchema = data.ctSchema;
constructorParam.gfSchema = data.gfSchema;
const fieldRulesTotalCount = dataModuleWise['content-types']?.Total || 0;
missingFieldRules = await new FieldRule(cloneDeep(constructorParam)).run(fieldRulesTotalCount);
await this.prepareReport(module, missingFieldRules);
this.getAffectedData('field-rules', dataModuleWise['content-types'], missingFieldRules);
log.success(`Field-rules audit completed. Found ${Object.keys(missingFieldRules || {}).length} issues`, this.auditContext);
log.success(
`Field-rules audit completed. Found ${Object.keys(missingFieldRules || {}).length} issues`,
this.auditContext,
);
break;
case 'composable-studio':
log.info('Executing composable-studio audit', this.auditContext);
missingRefsInComposableStudio = await new ComposableStudio(cloneDeep(constructorParam)).run();
await this.prepareReport(module, missingRefsInComposableStudio);
this.getAffectedData(
'composable-studio',
dataModuleWise['composable-studio'] || { Total: Object.keys(missingRefsInComposableStudio || {}).length },
missingRefsInComposableStudio,
);
log.success(
`Composable-studio audit completed. Found ${
Object.keys(missingRefsInComposableStudio || {}).length
} issues`,
this.auditContext,
);
break;
}

Expand Down Expand Up @@ -393,6 +432,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
missingEnvLocalesInEntries,
missingFieldRules,
missingMultipleFields,
missingRefsInComposableStudio,
};
}

Expand Down Expand Up @@ -536,7 +576,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
}

print([{ bold: true, color: 'cyan', message: ` ${module}` }]);

const tableValues = Object.values(missingRefs).flat();
missingRefs = Object.values(missingRefs).flat();
const tableKeys = Object.keys(missingRefs[0]);
Expand Down Expand Up @@ -590,7 +630,7 @@ export abstract class AuditBaseCommand extends BaseCommand<typeof AuditBaseComma
log.debug(`Preparing report for module: ${moduleName}`, this.auditContext);
log.debug(`Report path: ${this.sharedConfig.reportPath}`, this.auditContext);
log.info(`Missing references count: ${Object.keys(listOfMissingRefs).length}`, this.auditContext);

if (isEmpty(listOfMissingRefs)) {
log.debug(`No missing references found for ${moduleName}, skipping report generation`, this.auditContext);
return Promise.resolve(void 0);
Expand Down
27 changes: 17 additions & 10 deletions packages/contentstack-audit/src/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ const config = {
'custom-roles',
'assets',
'field-rules',
'composable-studio',
],
'fix-fields': ['reference', 'global_field', 'json:rte', 'json:extension', 'blocks', 'group', 'content_types'],
'schema-fields-data-type': ['blocks','group','global_field'],
'schema-fields-data-type': ['blocks', 'group', 'global_field'],
moduleConfig: {
'content-types': {
name: 'content type',
Expand Down Expand Up @@ -60,6 +61,11 @@ const config = {
dirName: 'environments',
fileName: 'environments.json',
},
'composable-studio': {
name: 'composable-studio',
dirName: 'composable_studio',
fileName: 'composable_studio.json',
},
},
entries: {
systemKeys: [
Expand Down Expand Up @@ -107,21 +113,22 @@ const config = {
'selectedValue',
'ct_uid',
'action',
"Module",
"Total",
"Fixable",
"Non-Fixable",
"Fixed",
"Not-Fixed",
"Passed",
'Module',
'Total',
'Fixable',
'Non-Fixable',
'Fixed',
'Not-Fixed',
'Passed',
'issues',
],
ReportTitleForEntries: {
Entries_Select_field: 'Entries_Select_field',
Entries_Mandatory_field: 'Entries_Mandatory_field',
Entries_Title_field: 'Entries_Title_field',
Entry_Missing_Locale_and_Env: 'Entry_Missing_Locale_and_Env',
Entry_Missing_Locale_and_Env_in_Publish_Details: 'Entry_Missing_Locale_and_Env_in_Publish_Details',
Entry_Multiple_Fields:"Entry_Multiple_Fields"
Entry_Multiple_Fields: 'Entry_Multiple_Fields',
},
feild_level_modules: [
'Entries_Title_field',
Expand All @@ -130,7 +137,7 @@ const config = {
'Entry_Missing_Locale_and_Env_in_Publish_Details',
'field-rules',
'Entry_Multiple_Fields',
'Summary'
'Summary',
],
fixSelectField: false,
};
Expand Down
Loading
Loading