main #111
Reference in New Issue
Block a user
Delete Branch "main"
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?
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 #98Add four admin-only endpoints under /api/admin/settings: - GET / — full config (secrets redacted) - GET /{module} — single module config - PUT /{module} — toggle modules + persist config overrides - POST /{module}/test — test external connectivity (database, storage) PUT publishes a settings.changed SSE event. Config overrides are persisted for future hot-reload support; changes to database/storage/ server/schemas namespaces return restart_required: true. Wires SettingsRepository into Server struct. Closes #99Add LocationRepository with CRUD operations, hierarchy traversal (children, subtree by path prefix), and inventory-safe deletion. Endpoints: GET /api/locations — list all or ?tree={path} for subtree POST /api/locations — create (auto-resolves parent_id, depth) GET /api/locations/{path..} — get by hierarchical path PUT /api/locations/{path..} — update name, type, metadata DELETE /api/locations/{path..} — delete (rejects if inventory exists) Uses chi wildcard routes to support multi-segment paths like /api/locations/lab/shelf-a/bin-3. Includes 10 handler integration tests covering CRUD, nesting, validation, duplicates, tree queries, and delete-not-found. Closes #81