Skip to content

Releases: JoernBerkefeld/sf-plugin-cms

v0.22.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 23 Oct 17:15

Features

  • Retrieve bounded portable Brand definitions using sf cms retrieve content, preserving supported inline brand values in editable source files.
  • Create Brand content from portable source with sf cms deploy content, including ordered mixed-family batches and independent destination readback.
  • Discover Brand availability and supported operations with sf cms info.

Limitations

  • Brand support is limited to the documented portable inline shape. Brand update, delete, binary assets, custom providers, and unsupported native shapes remain blocked.

Full Changelog: v0.21.0...v0.22.0

v0.21.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 23 Oct 00:30

Features

  • Workspace and channel lists now gather all pages by default; use --page for a single page. Workspace output displays the API-provided type and enhanced status.
  • Org-backed commands identify the resolved org before beginning work, while keeping JSON, help and offline information output free of that notice.
  • Add bounded native publish and unpublish batches with guarded synchronization of matching local sources after confirmed remote outcomes.
  • Show readable item-by-item progress and outcomes for deploy, image upload and delete, with clearer selection prompts and operation-specific help.

Safety and scope

  • Supported content shapes remain deliberately limited. Deploy saves Drafts and does not publish or send them; use --preview for read-only preflight.
  • Local synchronization is restricted to matching, pre-inspected sources. Failures can leave earlier successful remote changes in place; there is no automatic rollback or retry.
  • Cross-org Image acceptance remains pending, and loose-image upload has not been live-qualified. See the README and offline sf content info for operation-specific restrictions.

Full Changelog: v0.20.0...v0.21.0

v0.20.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 20 Oct 14:26

Breaking Changes

  • Deploy, loose-image upload and deletion now execute by default. Use --preview for read-only preflight. Reports are opt-in with --report or --report-dir; preview rejects reporting flags.
  • Replace sf cms upload images with sf cms upload (alias sf content upload). Loose-image upload no longer requires a local CMS project.
  • Deletion now uses exact item and language selection across Email, Email Template, Image, Document and Audio. The previous ownership-report, Draft-only and --apply workflow is replaced; use --preview before deliberate deletion. Deletion leaves local files untouched, but historical revision and reference preservation is not proven.

Features

  • Select deploy inputs with definition files through --source-dir, or use metadata selectors against the conventional workspace layout.
  • Upload local images without creating a project, and retain execution results without requiring persisted reports.
  • Delete multiple explicitly selected items and actual languages with API-led acceptance and fresh identity checks. Wildcard item selectors remain blocked; ambiguous language selection requires an explicit choice.
  • Deploy supported Document and Audio content as unpublished Drafts, with operation-specific restrictions described in the README.
  • Clarify default-org setup for commands run inside and outside a Salesforce project.

Bugfixes

  • Preserve independently observed destination identity when an update response is lost, so failed execution results retain the known target.
  • Keep command discovery and offline support information aligned with the public upload and deletion commands.

Full Changelog: v0.19.0...v0.20.0

v0.19.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 20 Oct 03:43

Features

  • Add readable sf content aliases alongside the existing sf cms commands, with simplified retrieve examples and defaults.
  • Record automatic per-invocation CMS diagnostic logs with credential redaction. Opt in to request/response payload details with --api log; native table output stays native while its structured data is recorded.

Changes

  • Let native API acceptance govern Image and Document format and size admission rather than imposing invented local format restrictions.
  • Preserve opaque Document bytes and safe native MIME through source loading, multipart CREATE and bytes-only UPDATE. Explicit identity, safety and resource-budget checks still apply.
  • Document diagnostic log locations, customer-content/PII risks and inspect-before-sharing guidance.

Bugfixes

  • Redact embedded/form credentials and complete Authorization values, and retain genuine native Error stacks without evaluating arbitrary accessors.
  • Preserve upload validation diagnostics and cover multipart, media-download, discovery and parsed-JSON API logging boundaries.

Full Changelog: v0.18.0...v0.19.0

v0.18.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 19 Oct 08:36

Features

  • Retrieve and deploy Audio, including Draft creation, bytes-only updates and unchanged detection.
  • Retrieve all supported content types with just sf cms retrieve content -W "Content Workspace for Marketing Cloud"; language and output location default automatically.
  • Use your configured default org across CMS commands, or override it with -o.
  • Use short content types such as email, image and audio alongside canonical names.

Full Changelog: v0.17.0...v0.18.0

v0.17.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 18 Oct 08:55

Features

  • Retrieve Documents with an editable text companion.
  • Deploy Documents as unpublished Drafts: create new content, update bytes only, or skip exact matches.
  • Supports root-level, default-language UTF-8 text/plain Documents with nonempty content up to 10 MiB and safe ASCII .txt filenames. Existing Drafts must keep their metadata, native filename and MIME unchanged.

Full Changelog: v0.16.0...v0.17.0

v0.16.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 17 Oct 20:19

What's new

  • Let Salesforce decide which Image formats and sizes it accepts when retrieving, deploying, or admitting loose image files. Remove the plugin's format whitelist, signature-match requirement, and 10 MiB limit; image bytes and declared MIME types are not converted.
  • Add limited Document retrieval for root-level, single-variant UTF-8 text/plain media and external URL-only content. Document deployment is not included.

Limits

  • Existing Image deployment still requires a root-level, default-language, single unpublished primary Draft. Updates replace bytes only; metadata, native filename, MIME type, and identity must match.
  • Salesforce acceptance does not guarantee a valid or renderable image. Image formats are not universally validated; loose-file uploads lack live-upload verification, and Document retrieval has not yet completed installed-package verification.
  • No new publishing, activation, sending, deletion rollout, or general CMS backup/restore support is added.

Full Changelog: v0.15.0...v0.16.0

v0.15.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 17 Oct 14:01

What's new

  • Deploy PNG Images with sf cms deploy content: create new Draft Images, skip unchanged content, or replace the bytes of an eligible existing Image without changing its identity.
  • Verify deployed media by reading it back from Salesforce, while checking that the filename, MIME type, and metadata match the selected operation.
  • Document the PNG retrieve/edit/deploy workflow and show the supported Image operations in sf cms info.

Limits

  • PNG deployment is limited to the documented Marketing workspace root/default-language profile and eligible Draft content. Other formats, additional variants, and metadata-changing updates remain blocked.

Full Changelog: v0.14.0...v0.15.0

v0.14.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 16 Oct 20:27

Breaking changes

  • Remove sf cms get workspace, sf cms get channel, sf cms get content, sf cms get variant, sf cms export workspace, sf cms import workspace, and sf cms update content, without aliases. Use sf cms list workspace / sf cms list channel for inventories and sf cms retrieve content / sf cms deploy content for supported portable content workflows. These are not replacements for raw details, historical versions, complete workspace backup/restore, or every legacy update operation.
  • Email and Email Template companions now share the definition stem: for example, Welcome.cms-email.json, Welcome.cms-email.html, and optional Welcome.cms-email.txt. Older role-suffixed files are not migrated automatically; back up local edits before refreshing sources.

What's new

  • Retrieve supported native Images with sf cms retrieve content, either as media bytes or an external URL-only representation. Image deployment is not included yet.
  • Make sf cms info clearer about the nine available public commands and their supported operations.
  • Add a beginner-friendly README covering installation, the Email download/edit/preview/apply workflow, support limits, and recovery.

Limits

  • Email deployment remains limited to supported dependency-free raw HTML: Draft creation, eligible Draft HTML-only updates, or unchanged content. Deployment labels remain conservative and may still show unqualified.

Full Changelog: v0.13.0...v0.14.0

v0.13.0

Choose a tag to compare

@JoernBerkefeld JoernBerkefeld released this 16 Oct 08:07

What's new

  • Add sf cms deploy content for portable Email and Email Template definitions and their companion files. Choose an explicit destination and preview changes with the default dry run before applying them.
  • Create Draft content, update eligible existing HTML without changing its identity, and skip content that is already unchanged. Select a single definition or a directory.
  • Check the whole selection before writing, block missing files and ambiguous targets, and report failed or unattempted items if a batch cannot finish.

Limits

  • Deployment supports dependency-free raw HTML at the workspace root, in the exact selected language, with a single native variant. Existing-content updates are Draft-only and HTML-only; JSON or text changes are blocked.
  • No media deployment, automatic dependency creation, publishing, activation, or sending is included. Deployment capability labels remain conservative and may still show unqualified.

Full Changelog: v0.12.0...v0.13.0