Skip to content

feat!: Contentstack CLI Plugins v2 GA — production release - #345

Merged
cs-raj merged 1134 commits into
mainfrom
development
Aug 12, 2026
Merged

feat!: Contentstack CLI Plugins v2 GA — production release#345
cs-raj merged 1134 commits into
mainfrom
development

Conversation

@cs-raj

Copy link
Copy Markdown
Contributor

Summary

This PR merges the development branch into main for the contentstack/cli-plugins monorepo, promoting all CLI v2 plugins from beta to General Availability. All packages transition from 2.0.0-beta.x2.0.0, the v2 production release workflow goes live, and all beta-only infrastructure is removed.

Jira Epic: DX (CLI v2 Post-Release Stabilization)
Companion PR:contentstack/cli#2701 — must merge together


What's in this PR

Release Infrastructure

ChangeDetail
Added production release workflowrelease-production-plugins.yml → triggers on push to main; publishes all plugin packages with tag: latest
Removed beta release workflowrelease-v2-beta-plugins.yml deleted from development
All npm publishes tagged latestv2 is the new latest; v1 will use tag: v1 on the v1-legacy branch

Breaking Changes (DX-10057)

  • Deprecated command aliases removed — all @deprecated aliases across import, export, seed, audit, bootstrap, and migration packages are gone.
  • Hidden dead flags removed — stale flags that were hidden but never functional are stripped from audit and other commands.
  • Deprecated seed repo removed — the legacy contentstack/stack-starter-app seed repo reference is removed from the seed command.
  • Bootstrap sampleapp branch removed — the dead sampleapp branch reference is removed from the bootstrap flow.
  • --api-version flag removed from bulk-entries — api_version is now always forced to 3.2 at the call site.

New Features

Global Fields: Per-File Export/Import (DX-9464)

  • Global fields are now exported and imported as individual files (<uid>.json) instead of a single monolithic globalfields.json.
  • Backward-compatible import: the old single-file format is still accepted on import.
  • Tests updated: 13 stale globalfields.json stubs removed, per-uid file assertions added across export/import/audit.

Bulk Operations: Progress Manager UI

  • Full CLIProgressManager and SummaryManager integration across all bulk operation types (entries, assets, taxonomies, publish, unpublish).
  • Real-time progress bars and end-of-run summaries for bulk publish/unpublish operations.
  • Asset count API integrated for exact pagination totals (no more estimate-based counts).
  • Bulk delete/move chunked to the 100-item API cap (DX-9732).

Bulk Operations: api_version 3.2 enforcement (DX-9754/9756)

  • All entry and asset publish/unpublish call sites now force api_version: 3.2 in the request header.
  • Dead --api-version flag removed from bulk-entries command.
  • NRP header hardened on taxonomy publish; include-variants validation fixed.

Asset Management v2 detection (DX-9314)

  • Export skips assets that are under management token when the stack is running AM 2.0 (detected via plan-check).
  • Prevents duplicate or forbidden asset exports on AM 2.0 stacks.

Import: Environment-Locale Pairing Fix (DX-9772)

  • Import now correctly preserves the environment-locale pairing when publishing AM assets, fixing incorrect publish targets on multi-locale stacks.

Bug Fixes

PackageFix
contentstack-auditScope asset publish details audit to the exported stack only (not global)
contentstack-auditReport skipped publish details accurately when source stack is unknown
contentstack-auditFix detialsdetails typo in ASSET_FIX message
contentstack-cloneResolve package root by directory depth — fixes wrong path resolution in nested monorepo invocations
contentstack-importRemove unused detectAssetScanning method
contentstack-bulk-operationsNull-safe bulkOperationConfig access in beginOperationSummary
contentstack-bulk-operationsChunk CS Assets bulk delete/move to respect 100-item API cap
contentstack-bulk-operationsFix wrong property name in getOrgUid test assertion
contentstack-apps-cliDrop oclif manifest from build so tests load src/, not lib/
contentstack-apps-cliMake tests hermetic; repair ESLint-10 configs
contentstack-seedRestore hidden --locale flag (required by bootstrap's seed invocation)
All affected packagesRemove @contentstack/cli-dev-dependencies unused dev dep from export, query-export, variants
All affected packagesExplicitly add fancy-test@2 to packages that use it (was transitively resolved)

Documentation & Cleanup

  • All package READMEs audited: beta version strings cleaned up, stale token-alias flag exclusions removed, broken links fixed.
  • Duplicate command blocks and TOC entries removed from clone and bootstrap READMEs.
  • Stale config/default.js region instructions in import-setup README replaced with csdx config:set:region.
  • CHANGELOG updated with NRP header fix and breaking changes.

Packages Released

All packages publish to the latest dist-tag on npm when this merges and the pipeline runs.

PackageGA Version
@contentstack/cli-cm-export2.0.0
@contentstack/cli-cm-import2.0.0
@contentstack/cli-cm-import-setup2.0.0
@contentstack/cli-cm-seed2.0.0
@contentstack/cli-cm-bootstrap2.0.0
@contentstack/cli-cm-clone2.0.0
@contentstack/cli-cm-branches2.0.0
@contentstack/cli-cm-export-to-csv2.0.0
@contentstack/cli-migration2.0.0
@contentstack/cli-migrate-rte2.0.0
@contentstack/cli-audit2.0.0
@contentstack/cli-bulk-operations2.0.0
@contentstack/cli-cm-regex-validate2.0.0
@contentstack/apps-cli2.0.0
contentstack-cli-tsgen2.0.0
contentstack-cli-content-type2.0.0
@contentstack/cli-cm-query-export2.0.0
@contentstack/cli-external-migrate2.0.0
@contentstack/cli-asset-management2.0.0
@contentstack/cli-variants2.0.0

Pre-merge Checklist

  • All open PRs targeting development are merged
  • fix/DX-10156-remove-beta-workflows (chore: remove beta release workflow from development #344) merged into development
  • pnpm lockfile up-to-date on development
  • main branch protection rules reviewed (pipeline triggers on merge)
  • npm NPM_TOKEN secret available in repo Actions secrets
  • Companion contentstack/cli#2701 ready to merge simultaneously
  • v1-legacy branch release workflow (v1-legacy trigger + tag: v1) in place before merging to avoid accidental latest overwrite from v1 hotfixes
  • Post-merge: verify each plugin installs cleanly via the GA CLI (npm install -g @contentstack/cli && csdx plugins:install <plugin>)
  • Post-merge: spot-check global fields per-file export format on a real stack
  • Post-merge: verify bulk publish shows progress bars correctly

harshitha-cstkand others added 30 commits June 29, 2026 19:27
add API key validation in import/export configurations
The backup folder path was logged via log.success, which maps to the info
level. For progress-supported modules like import-setup, the logger omits the
console transport when showConsoleLogs is false, so the path only reached the
log file and never appeared in the terminal.
Print the success and backup-path messages directly via cliux.print when
showConsoleLogs is false, so the path is always visible regardless of the
setting. log.success is retained for the log-file record, and the direct print
is guarded to avoid a duplicate line when showConsoleLogs is true.
fix: minor fixes in asset scanning flow
…idate-api-key
fix: show login error on console and improve API key validation
harshitha-cstkand others added 13 commits August 6, 2026 18:17
fix rename --config-file to --config and --config to --inline-config in cm:stacks:migration
chore: GA version bumps — promote all packages from beta to stable and update third-party deps
Port release-production-plugins.yml from development branch for v2 GA,
with v2-specific changes:
- Trigger on main + workflow_dispatch, tag:latest
- Added asset-management and bulk-operations (new in v2)
- Removed bulk-publish (package does not exist in v2)
- Removed duplicate apps-cli publish step (was publishing with both
tag:latest and tag:beta)
- Removed broken create_release step (referenced non-existent step id
publish-plugins and had an incomplete shell script)
Closes DX-10156
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…release-workflows
feat: add v2 production release workflow
Beta workflow belongs on the v2-beta branch only. Now that v2 is GA,
this file has no place on development/main.
Removed:
- release-v2-beta-plugins.yml
Closes DX-10156
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove beta version references (2.x.x-beta → 2.x)
- Replace stale config/default.js region instructions with csdx config:set:region
- Remove duplicate install block from bootstrap README
- Remove duplicate command block and TOC entry from clone README
- Remove stray P character from import README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rkflows
chore: remove beta release workflow from development
@cs-raj
cs-raj requested review from a team as code ownersAugust 12, 2026 12:01
@snyk-io

snyk-ioBot commented Aug 12, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

StatusScan Engine Critical High Medium LowTotal (0)
Open Source Security0000 0 issues
Licenses0000 0 issues
Code Security0000 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check TypeCount (with fixes)Without fixesThresholdResult
🔴 Critical Severity0010✅ Passed
🟠 High Severity0025✅ Passed
🟡 Medium Severity00500✅ Passed
🔵 Low Severity001000✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

SeverityBreaches (with fixes)Breaches (no fixes)SLA Threshold (with/no fixes)Status
🔴 Critical0015 / 30 days✅ Passed
🟠 High0030 / 120 days✅ Passed
🟡 Medium0090 / 365 days✅ Passed
🔵 Low00180 / 365 days✅ Passed

✅ BUILD PASSED - All security checks passed

@github-actions

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check TypeCount (with fixes)Without fixesThresholdResult
🔴 Critical Severity0010✅ Passed
🟠 High Severity0025✅ Passed
🟡 Medium Severity00500✅ Passed
🔵 Low Severity001000✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

SeverityBreaches (with fixes)Breaches (no fixes)SLA Threshold (with/no fixes)Status
🔴 Critical0015 / 30 days✅ Passed
🟠 High0030 / 120 days✅ Passed
🟡 Medium0090 / 365 days✅ Passed
🔵 Low00180 / 365 days✅ Passed

✅ BUILD PASSED - All security checks passed

@github-actions

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check TypeCount (with fixes)Without fixesThresholdResult
🔴 Critical Severity0010✅ Passed
🟠 High Severity0025✅ Passed
🟡 Medium Severity00500✅ Passed
🔵 Low Severity001000✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

SeverityBreaches (with fixes)Breaches (no fixes)SLA Threshold (with/no fixes)Status
🔴 Critical0015 / 30 days✅ Passed
🟠 High0030 / 120 days✅ Passed
🟡 Medium0090 / 365 days✅ Passed
🔵 Low00180 / 365 days✅ Passed

✅ BUILD PASSED - All security checks passed

@cs-raj
cs-raj merged commit 7ebf09a into mainAug 12, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@cs-raj@Aravind-Kumar-cstk@naman-contentstack@maheshmotkar-cs@OMpawar-21@harshitha-cstk@netrajpatel@shafeeqd959