feat(plugins): foundation système Plugin Karbé #18

Merged
tarzzan merged 1 commit from feat/plugin-foundation into main 2026-05-30 22:17:28 +00:00
Owner

Phase 1 du refactor en plugins désactivables.

Livre le socle : modèle Plugin + registry + server helpers + client bridge + page admin /admin/plugins + API PATCH/GET + wire layout.

12 plugins déclarés (tous enabled=false par défaut). Les phases suivantes ajoutent chacune un plugin et activent son flag.

Phase 1 du refactor en plugins désactivables. Livre le socle : modèle Plugin + registry + server helpers + client bridge + page admin /admin/plugins + API PATCH/GET + wire layout. 12 plugins déclarés (tous enabled=false par défaut). Les phases suivantes ajoutent chacune un plugin et activent son flag.
tarzzan added 1 commit 2026-05-30 22:17:11 +00:00
- Modèle Prisma Plugin (key, name, description, category, version, enabled,
  config JSONB, migrationsApplied, timestamps) + migration SQL
- PluginRegistry (src/lib/plugins/registry.ts) avec 12 plugins déclarés :
  visuels (theme-guyane, landing-hero, landing-sections, image-gallery-seed,
  demo-carbets-seed), métier (access-type, seasonality, pirogue-providers,
  min-stay), contenus (content-pages, legal-pages), i18n (i18n-fr-en)
- Server helpers (server.ts) : sync, isEnabled, getEnabledKeys, toggle avec
  hooks onEnable/onDisable, updateConfig, cache 5s
- Client bridge (client.tsx) : PluginProvider + useIsPluginEnabled
- Composant <IfPluginEnabled plugin=... fallback=...>
- Guard requirePluginOr404 pour pages et routes
- Page admin /admin/plugins avec table toggle par catégorie + édition config
- Route PATCH /api/admin/plugins/[key] + GET
- Layout async qui sync registry + passe enabledKeys au PluginProvider

Tous plugins en enabled=false par défaut, activation pilotée depuis l'admin.
tarzzan merged commit 4454f7331d into main 2026-05-30 22:17:28 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: tarzzan/karbe#18
No description provided.