diff --git a/cms/core/HANDOVER.md b/cms/core/HANDOVER.md index 9693f7c..c9750c0 100644 --- a/cms/core/HANDOVER.md +++ b/cms/core/HANDOVER.md @@ -12,7 +12,7 @@ `api/src/plugin-manager.js`, `api/src/plugins/dialog/index.js` + their tests. - **Run tests:** `cd api && npm install && node --test` → **44 green**. `node_modules` is git-ignored; the fresh clone needs `npm install` once. -- **Status:** stages 1–8 (+5.5) DONE; stage 6 partial (schema/system/System-panel done, editor-from-schema deferred). openbureau runs on core on dev CT 134, verified. **Next = stage 9** (onboard kgva: DB-less, auth:local, no plugins) — and finish stage 6's editor-from-schema there. Original stage-5 note kept below for history. +- **Status:** stages 1–9 DONE; openbureau + kgva BOTH LIVE on core. openbureau on dev CT134 (schema editor + supabase); kgva LIVE at karimgabrielevarano.xyz via core (Variant A: CMS serves the site; CT130 rebuilt in-place — Docker + kgva-cms on :8081, nginx :80 proxies to it and keeps /media, static timer disabled, Caddy untouched). CAVEAT: kgva GIT_PUBLISH=false → edits on CT130 disk, not git-backed (enable GIT_PUBLISH + creds to fix). Rollback for kgva: restore nginx .static.bak + re-enable kgva-deploy.timer + stop kgva-cms. Original stage-5 note kept below for history. - **Immediate next action (historic):** stage 5 + 5.5 **DONE** on the branch (commits `c4230a4` cutover, `5e06337` DDL, `a93d11a` migration runner). Plugin-manager singleton (`api/src/plugins.js`) wired into `index.js`/`stats.js`/`publish.js`, hard-coded @@ -126,12 +126,16 @@ openbureau's extras become plugins (first: `dialog`); kgva enables none. `pg` against `DATABASE_URL`, warning-and-skipping if unset. Needs `DATABASE_URL` wired into the cms service env for openbureau (stage 8). Tested: migrate.test.js + tracking SQL proven on the live dev Postgres (throwaway DB). -6. [PARTLY DONE, commit f709b5d] `GET /api/schema` (site/auth/plugins/collections) - + `GET /api/system` (admin: core version, plugins, content model, hugo, auth) + - an admin **System panel** — all additive, the editor is untouched (stays 1:1). - DEFERRED by design: making the editor itself render its fields from the schema — - that needs a 2nd content model (kgva) + visual verification, not a blind rewrite - of the live editor. Do it when onboarding kgva (stage 9). +6. [DONE, commits f709b5d + f8f4131 + 59b9e20] schema-driven admin. `GET /api/schema` + + `GET /api/system` + a System panel; AND the editor now renders sidebar groups + + fields from the site's collections (admin/src/fields.jsx: per-type controls + string/text/slug/number/date/bool/select/list/image/color/markdown; form↔frontmatter + + path building). One admin serves any site. Unknown frontmatter is PRESERVED on + save (__raw) — no data loss. Verified working via kgva (stage 9). NOTE: openbureau + is NOT yet redeployed with the schema editor (its running image keeps the bespoke + one); when it is, its config field types (color→swatch, layout opts) are already + tuned. Visual review of the openbureau editor by Karim still recommended before + redeploying it. 7. [DONE, commit 86f9f57] **auth provider** (`config.auth` = `supabase` | `local`). `api/src/auth-local.js` = file-based users (bcryptjs) + self-signed HS256 JWTs of the SAME claim shape; `routes/auth.js` POST /api/auth/login (mounted only when @@ -149,8 +153,19 @@ openbureau's extras become plugins (first: `dialog`); kgva enables none. stack's migrate service owns db/schema.sql incl. dialog). Deployed to dev CT 134 and FULL write-verified: login/list/edit/preview/publish/dialog all identical, no git divergence (GIT_PUBLISH=false). Rollback image `cms-cms:rollback` kept. -9. onboard kgva (`CMS_CONFIG=…/kgva.config.js`, `auth: 'local'`, no plugins) as the - 2nd consumer — DB-less. +9. [DONE — LIVE on core (Variant A)] kgva consumes core. In + `karim/kgva` (git.kgva.ch, main 51a94b8): `cms/core` = core subtree, `cms/kgva.config.js` + (project/page/section, auth:'local', no plugins), `docker-compose.yml` builds the core + image (Hugo 0.163.3, no VITE_SUPABASE_URL → local-auth admin), `cms/seed-admin.mjs`, + updated deploy/provision-lxc.sh + ADMIN.md. VERIFIED DB-less end-to-end on real content + (staged on CT134): local login → schema editor → 42 entries (de/en) → stats → + create/preview/cleanup; image galleries preserved. The LIVE site is UNCHANGED — CT130 + still deploys statically (timer → `hugo` → nginx; hugo ignores cms/); the CMS is dormant. + PENDING (deliberate, his call — repoints a live domain): provision a kgva-core container + (deploy/provision-lxc.sh, free CTID + temp IP) and decide topology — CMS serves the site + (Caddy → it) OR CMS edits + GIT_PUBLISH=true commits to git and the CT130 static timer + keeps serving. Then Caddy cutover per deploy/README. openbureau also not yet redeployed + with the schema editor (stage 6 note). ## How to run / test openbureau CMS stack: `OPENBUREAU/cms/docker-compose.yml` (Node api + Hugo + diff --git a/cms/core/admin/src/App.jsx b/cms/core/admin/src/App.jsx index 3f86b72..b43b042 100644 --- a/cms/core/admin/src/App.jsx +++ b/cms/core/admin/src/App.jsx @@ -389,6 +389,31 @@ function Profile({ onMsg }) {