Content OS

CMS Delivery

Send an approved draft to the live CMS. The only outbound integration in the product.

Vertical: Digital · Status: ✅ Live Back to Digital · workflows index


Trigger

Human click. Never automatic.

Flow

[human] Send to CMS
        |
compliance gate check      <- 409 if high-severity unacknowledged
        |
resolve tenant integration (encrypted credentials)
        |
adapter: yanisa-cms | fixture
        |
delivered

Configuration rules

  • Per tenant, in Settings -> CMS integration; credentials AES-256-GCM encrypted.
  • A saved row is authoritative - bad credentials throw rather than silently falling back.
  • BLOG_CMS_* env vars apply only when a tenant has no row (bootstrap only).
  • Writing the config needs an admin session; reading is open to the tenant.
  • Rotating the encryption key without re-entering credentials makes delivery throw - there is no dual-key rotation window.

Agents involved

Gated by the Compliance Agent, enforced in the submit route rather than only in the UI.

Gaps

Single CMS target per tenant. No multi-locale support, which Localization will need.

Roadmap source

Page 5 deliverable ②; page 1 Digital fan-out — see roadmap_ref_extracted.md.

Source: roadmap/workflows/digital/cms-delivery/README.md