feat: module system — registry, middleware, and discovery endpoint #102
Reference in New Issue
Block a user
Delete Branch "feat-module-system"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the backend foundation for the module system (docs/MODULES.md).
Migration (#94):
settings_overridestable for admin UI config persistencemodule_statetable for per-module enabled/disabled stateModule registry (#96):
Config loader (#95):
auth.enabledandodoo.enabledstill workmodules:YAML section for explicit togglesServer wiring:
RequireModule middleware (#98):
{"error":"module '<id>' is not enabled"}Public discovery endpoint (#97):
GET /api/modules— no auth requiredCloses #94, Closes #95, Closes #96, Closes #97, Closes #98
Add RequireModule middleware that returns 404 with {"error":"module '<id>' is not enabled"} when a module is disabled. Wrap route groups: - projects → RequireModule("projects") - audit → RequireModule("audit") - integrations/odoo → RequireModule("odoo") - jobs, job-definitions, runners → RequireModule("jobs") - /api/runner (runner-facing) → RequireModule("jobs") - dag → RequireModule("dag") (extracted into sub-route) Ref #98