cms

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

With fz, into the venture manifest

fz add cms

With cargo

cargo add cratefield-module-cms

fz runs inside your venture repository, linked against its own harness. About fz

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

/v1/cms

  • /{collection}
  • GET/v1/cms/{collection}

    Published items in a collection

  • GET/v1/cms/{collection}/{slug}

    One published item, or 404

  • /admin
  • POST/v1/cms/admin/save

    admin tokenUpsert a draft

  • POST/v1/cms/admin/publish

    admin tokenAppend a revision, go live

  • POST/v1/cms/admin/unpublish

    admin tokenHide the public read

  • GET/v1/cms/admin/list

    admin tokenDrafts 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.

History

Changelog.

From the crate’s CHANGELOG.md in the harness, as of 0c5560b. 4 versions recorded, newest first. Every published version is on crates.io.

  1. 0.3.2

    crates.ioReleaseDiff

    Other

    • updated the following local packages: cratefield-core
  2. 0.3.1

    crates.ioReleaseDiff

    Other

    • updated the following local packages: cratefield-core
2 earlier versions 0.2.1 to 0.3.0
  1. 0.3.0

    crates.ioReleaseDiff

    Changed

    • Breaking: requires cratefield-core 0.8 (was 0.7), and so a minor rather than a patch bump: a venture still on core 0.7 does not pick this release up through a caret requirement and end up with two copies of core (#712).

    Other

    • updated the following local packages: cratefield-core
  2. 0.2.1

    crates.ioRelease

    Other

    • updated the following local packages: cratefield-core

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