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.