Skip to main content

sardine-cms-admin

The Sardine CMS admin panel: an authenticated FastAPI application serving both the admin API and the server-rendered UI (ADR-0013). It drives cms-core, cms-validation and cms-build through their public APIs — storage comes from create_storage(url), so every supported engine works unchanged.

pip install sardine-cms-admin
SARDINE_STORAGE_URL="sqlite:///content.db" uvicorn --factory cms_admin.app:create_app

The panel itself is multilingual (ADR-0022): each editor picks their language in the user menu (PT-PT, ES, FR and DE ship alongside English), with the browser's language as the fallback.

There are no default credentials — create the first account with the CLI, then sign in at /login:

cms admin create-user editor-in-chief -p my-project --role admin

The UI is built on AdminLTE 4 (MIT, vendored verbatim with its license — ADR-0017) and implemented exactly as its reference pages do: Source Sans 3 (OFL), Bootstrap Icons (MIT) and the theme's own behavior scripts (AdminLTE, Bootstrap bundle, OverlayScrollbars — ADR-0020) all ship as local files; the admin serves everything itself, no CDN, no inline scripts. The dashboard shows content by workflow status, the translation coverage matrix and a live validation report. Articles and pages are edited in the browser: EN source plus a side-by-side editor per translation, with state indicators from the checksum model and a preview rendered by the builder's own Markdown renderer (raw HTML disabled). The media library uploads with server-side validation (MIME sniffed from bytes, size limit, parsed image dimensions), manages mandatory EN + translatable alt text, and refuses to delete assets that articles or sections still reference. The workflow moves content through draft → review → published → archived with each transition owned by a rung of the role ladder; publishing runs the validation gate. The Publishing panel previews into /preview/ and builds/exports the project output with target extras, with every run recorded on the dashboard.

Configuration is environment-only (no config files with secrets):

Variable Meaning Default
SARDINE_STORAGE_URL Storage URL for create_storage sqlite:///content.db
SARDINE_ADMIN_SESSION_HOURS Session lifetime in hours 12
SARDINE_ADMIN_COOKIE_SECURE Set 0 only for plain-http local dev 1
SARDINE_MEDIA_DIR Media upload directory (the project's) media
SARDINE_ADMIN_UPLOAD_MAX_MB Upload size limit in MB 10
SARDINE_PROJECT_DIR Project directory (sardine.toml) .
SARDINE_ADMIN_PUBLISH_GATE Set 0 to publish despite validation errors 1

The full admin guide — configuration, roles, workflow, publishing, security model — is docs/ADMIN_GUIDE.md (anti-drift-checked). Milestone 3 status and the phased plan live in docs/PLAN.md.

Sardine CMS

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sardine_cms_admin-0.8.0.tar.gz (726.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sardine_cms_admin-0.8.0-py3-none-any.whl (781.2 kB view details)

Uploaded Python 3

File details

Details for the file sardine_cms_admin-0.8.0.tar.gz.

File metadata

  • Download URL: sardine_cms_admin-0.8.0.tar.gz
  • Upload date:
  • Size: 726.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sardine_cms_admin-0.8.0.tar.gz
Algorithm Hash digest
SHA256 0cac0aa4cdb3d6f542942eb4a0807816489027931a47f1e296249d72b0a188c4
MD5 1cc303bd69df11360ac715ba8a97e639
BLAKE2b-256 350ddc9b8bfc9776f5406b4c06f521ef2d0361f766839319bd0b99d083f8dbe6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sardine_cms_admin-0.8.0.tar.gz:

Publisher: release.yml on ph7x-Systems/sardine-cms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sardine_cms_admin-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sardine_cms_admin-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aad6de04ce5e0a08f5d943924a32cf5bc4ae35d191b1ba617996022c9ae8bb42
MD5 02fe63f3cf0e80b4afaf8d51fa27c95e
BLAKE2b-256 eb9d3be2d0cd0c1b1c244a1a15ba93d18f747746add1d14976d3525b3bfdda7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sardine_cms_admin-0.8.0-py3-none-any.whl:

Publisher: release.yml on ph7x-Systems/sardine-cms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page