API - Current Development

This roadmap is aligned with the Next-Generation CMS Solution Draft Proposal (v0.2). Current overall API coverage: ~35-40% of v1.0 scope. For the full gap analysis, see .context/global/proposal-coverage.md.

Overview

Phases 0 and 1 are the current focus. They lay the security foundations and complete the core content model required before any later phase can begin.

Phase 0 — Foundations & Security

Priority: CriticalReplace sequential numeric IDs in API responses with UUIDs. Internal IDs remain in the database; the API exposes only non-guessable identifiers.Proposal ref: Section 8.3 — “no consecutive numeric IDs exposed in APIs”Status: Done
Priority: CriticalAdd ROLE_SITE_OWNER, ROLE_SITE_MANAGER, ROLE_PUBLISHER alongside existing EDITOR/ADMIN. Scope permissions per site with a new cms_user_site_roles table.Proposal ref: Section 5.2Status: Not started
Priority: HighAdd slugs JSON field ({fr: "mon-article", en: "my-article"}) on Article and Page. Auto-generate 301 redirects on slug change.Proposal ref: Section 5.1Status: Not started
Priority: HighAdd Cache-Control, Surrogate-Control, Surrogate-Key response headers on public endpoints for CDN edge caching.Proposal ref: Section 5.9.1Status: Not started

Phase 1 — Core Content Completion

Priority: HighAdd type enum (news, announcement, publication) on Article. Transform Category relation to ManyToMany for secondary categories.Proposal ref: Sections 4.6.1, 4.6.2Status: Not started
Priority: HighNew public endpoints GET /public/categories/{slug} and GET /public/tags/{slug} returning paginated articles with SEO metadata.Proposal ref: Section 4.6.4Status: Not started
Priority: HighAdd page_type (contact, home, legal) and visibility (public, authenticated, members_only) fields on Page and Article.Proposal ref: Sections 4.5.1, 4.9.5Status: Not started

Timeline

Phase 0  ████████████████████                Foundations & Security
Phase 1  ░░░░░░░░████████████████            Core Content Completion
This page is updated when phases progress. Last update: February 25, 2026.