Files
orion/app/modules/monitoring/routes/api/admin.py
Samir Boulahtit 9a0dd84035 fix: make FrontendType mandatory in require_module_access
The require_module_access dependency was using path-based detection to
determine admin vs vendor authentication, which failed for API routes
(/api/v1/admin/*) because it only checked for /admin/*.

Changes:
- Make frontend_type parameter mandatory (was optional with fallback)
- Remove path-based detection logic from require_module_access
- Update all 33 module route files to pass explicit FrontendType:
  - 15 admin routes use FrontendType.ADMIN
  - 18 vendor routes use FrontendType.VENDOR

This ensures authentication method is explicitly declared at route
definition time, making it independent of URL structure and future-proof
for API version changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:09:21 +01:00

37 lines
1.4 KiB
Python

# app/modules/monitoring/routes/api/admin.py
"""
Monitoring module admin API routes.
Aggregates all admin monitoring routes:
- /logs/* - Application log management
- /tasks/* - Background tasks monitoring
- /tests/* - Test runner
- /code-quality/* - Code quality tools
- /audit/* - Admin audit logging
- /platform/* - Platform health and capacity
"""
from fastapi import APIRouter, Depends
from app.api.deps import require_module_access
from app.modules.enums import FrontendType
from .admin_logs import admin_logs_router
from .admin_tasks import admin_tasks_router
from .admin_tests import admin_tests_router
from .admin_code_quality import admin_code_quality_router
from .admin_audit import admin_audit_router
from .admin_platform_health import admin_platform_health_router
admin_router = APIRouter(
dependencies=[Depends(require_module_access("monitoring", FrontendType.ADMIN))],
)
# Aggregate all monitoring admin routes
admin_router.include_router(admin_logs_router, tags=["admin-logs"])
admin_router.include_router(admin_tasks_router, tags=["admin-tasks"])
admin_router.include_router(admin_tests_router, tags=["admin-tests"])
admin_router.include_router(admin_code_quality_router, tags=["admin-code-quality"])
admin_router.include_router(admin_audit_router, tags=["admin-audit"])
admin_router.include_router(admin_platform_health_router, tags=["admin-platform-health"])