Skip to content

fastygo/cms

Repository files navigation

GoCMS

GoCMS is a Go-native CMS platform aligned with the compatibility contract in go-codex/en.

The repository is now in an implemented operational state and includes both content management and hardening features, not only bootstrap scaffolding.

Architecture and Documentation Layers

  • go-codex/en: external compatibility contract (public behavior, APIs, runtime modes, capabilities).
  • go-stack/en: internal Go architecture (modules, services, repositories, adapters, plugin runtime).
  • go-ui8kit/en: admin UI profile and runtime assets.
  • .project/implementation/en: implementation plan and progress notes.

Current Feature Set (Pass 7+)

  • Core CMS domains and services:
    • Content types, taxonomies, content, revisions, media, menus, settings, users/authors.
  • REST control plane and admin shell:
    • Admin routes (/go-admin, /go-login, /go-logout depending on profile).
    • JSON API under /go-json.
  • Authentication and authorization hardening:
    • Local password provider with Argon2id verification.
    • Session policy and secure cookie handling.
    • Login rate limiting and temporary lockout.
    • Recovery codes and admin reset tokens.
    • App/API tokens with scope, expiry, and revocation support.
    • Capability-based RBAC (admin, editor, viewer) with action/resource checks.
  • Operational hardening:
    • Versioned schema migrations with schema_migrations ledger.
    • Health registry (database, migrations, snapshot, authn, audit, error logs).
    • Snapshot-based backup and restore (site backup workflows).
    • Audit logs for privileged admin/API actions with secret redaction.
    • Bounded local error log storage (diagnostics for admin visibility).
  • Plugin and extension model:
    • Runtime plugins for routes, capabilities, and settings.
    • GraphQL plugin.
    • JSON import/export plugin for backup/restore UX.

Storage and Profiles

GoCMS supports multiple storage profiles, including:

  • memory
  • sqlite
  • bbolt
  • mysql
  • postgres
  • json-fixtures
  • browser-indexeddb

Runtime profiles include:

  • admin
  • headless
  • playground
  • full
  • conformance

Getting Started

Run locally:

go run ./cmd/server

Health checks:

/healthz
/readyz

Admin + API entry points:

/go-login
/go-admin
/go-json

Run tests:

go test ./...

Format source:

gofmt -w ./cmd ./internal

Documentation Map

Project History

Current implementation progress is tracked in:

  • .project/progress.md
  • .project/implementation/en

About

GoCMS is a Go-native CMS implementation targeting the compatibility contract in go-codex/en

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors