/modules/ · cms Shipping

cms

A small content store with an editor: typed collections, versioned, in the venture's own database.

What it is

cms.

A content item is a titled body plus a JSON data object, addressed by collection and slug. The editable draft lives in one table; every publish appends an immutable revision, so items are versioned and the history of what was public is recoverable. Public routes are reads that serve published content; every write is an admin action behind the admin token, so there is no public write endpoint and no captcha. The content never leaves the venture's own database. It is a content store, not a page builder — the look comes from the UI spec.

Ports

Database

Routes

  • GET /v1/cms/{collection} — published items in a collection
  • GET /v1/cms/{collection}/{slug} — one published item, or 404
  • POST /v1/cms/admin/save — admin token, upsert a draft
  • POST /v1/cms/admin/publish — admin token, append a revision, go live
  • POST /v1/cms/admin/unpublish — admin token, hide the public read
  • GET /v1/cms/admin/list — admin token, drafts for editing

UI surface

A save form and an admin list table at /ui; a collection the venture did not configure is refused, so a caller cannot invent one.

Merged, conformant on every dialect with sidecar parity, and a routes test covers the full draft, publish and read lifecycle.