teach/db/014_cms.sql
Ramon aa4c5faaf9
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 31s
feat: server-kant CMS voor de systeemmanager (v0.3.83-beta)
- Migratie 014: site_content (sleutel/waarde, JSONB) voor site-inhoud die zonder release aanpasbaar moet zijn
- GET /content (publiek): welkomstwoord, update-melding en widget-uitleg in één antwoord - het inlogscherm toont het welkomstwoord al vóór het inloggen
- PUT /admin/content/:key (alleen systeemmanager, nieuwe permissie content.manage): upsert per toegestane sleutel (welcome/announcement/widgetInfo) met maat-limieten
- 4 servertests: publiek lezen, upsert door super, 403/401 voor anderen, whitelist/vorm/omvang-validatie

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149FgUQvuwxKKEdvQGmNngF
2026-07-16 19:29:08 +02:00

11 lines
593 B
SQL

-- v0.3.83-beta: CMS voor de systeemmanager.
-- Kleine sleutel/waarde-opslag voor site-inhoud die zonder release aanpasbaar
-- moet zijn: welkomstwoord (inlogscherm), update-meldingen (banner) en
-- aanvullende widget-uitleg (galerij). De waarde is JSONB zodat elke sleutel
-- zijn eigen vorm heeft (bv. { nl, en } of { actief, tekst per taal, id }).
CREATE TABLE IF NOT EXISTS site_content (
key TEXT PRIMARY KEY,
value JSONB NOT NULL DEFAULT '{}'::jsonb,
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_by BIGINT REFERENCES users(id) ON DELETE SET NULL
);