Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions autobot-backend/api/analytics_debt.py
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ def _get_latest_debt_data() -> Optional[Dict[str, Any]]:
operation="calculate_debt",
error_code_prefix="DEBT",
)
@router.post("/calculate")
@router.post("/calculate", response_model=None)
async def calculate_technical_debt(
request: DebtCalculationRequest, admin_check: bool = Depends(check_admin_permission)
):
Expand Down Expand Up @@ -569,7 +569,7 @@ async def calculate_technical_debt(
operation="get_debt_summary",
error_code_prefix="DEBT",
)
@router.get("/summary")
@router.get("/summary", response_model=None)
async def get_debt_summary(admin_check: bool = Depends(check_admin_permission)):
"""
Get summary of current technical debt (Issue #543 - refactored).
Expand Down Expand Up @@ -601,7 +601,7 @@ async def get_debt_summary(admin_check: bool = Depends(check_admin_permission)):
operation="get_debt_by_category",
error_code_prefix="DEBT",
)
@router.get("/by-category/{category}")
@router.get("/by-category/{category}", response_model=None)
async def get_debt_by_category(
category: str, admin_check: bool = Depends(check_admin_permission)
):
Expand Down Expand Up @@ -701,7 +701,7 @@ def _calculate_trend_change(trend_data: List[Dict[str, Any]]) -> tuple:
operation="get_debt_trends",
error_code_prefix="DEBT",
)
@router.get("/trends")
@router.get("/trends", response_model=None)
async def get_debt_trends(
days: int = Query(default=30, ge=1, le=365),
admin_check: bool = Depends(check_admin_permission),
Expand Down Expand Up @@ -733,7 +733,7 @@ async def get_debt_trends(
operation="get_roi_priorities",
error_code_prefix="DEBT",
)
@router.get("/roi-priorities")
@router.get("/roi-priorities", response_model=None)
async def get_roi_priorities(
limit: int = Query(default=20, ge=1, le=100),
admin_check: bool = Depends(check_admin_permission),
Expand Down Expand Up @@ -859,7 +859,7 @@ def _generate_markdown_report(debt_data: dict) -> str:
operation="get_debt_report",
error_code_prefix="DEBT",
)
@router.get("/report")
@router.get("/report", response_model=None)
async def get_debt_report(
format: str = Query(default="json", description="json or markdown"),
admin_check: bool = Depends(check_admin_permission),
Expand Down
10 changes: 5 additions & 5 deletions autobot-backend/api/analytics_embedding_patterns.py
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@ def get_embedding_analyzer() -> EmbeddingPatternAnalyzer:
# =============================================================================


@router.post("/record")
@router.post("/record", response_model=None)
async def record_embedding_usage(
request: EmbeddingUsageRequest,
admin_check: bool = Depends(check_admin_permission),
Expand All @@ -557,7 +557,7 @@ async def record_embedding_usage(
)


@router.get("/stats")
@router.get("/stats", response_model=None)
async def get_embedding_stats(
days: int = Query(default=7, ge=1, le=90, description="Number of days to analyze"),
model: Optional[str] = Query(None, description="Filter by model"),
Expand All @@ -579,7 +579,7 @@ async def get_embedding_stats(
)


@router.get("/model-comparison")
@router.get("/model-comparison", response_model=None)
async def get_model_comparison(
admin_check: bool = Depends(check_admin_permission),
):
Expand All @@ -599,7 +599,7 @@ async def get_model_comparison(
)


@router.get("/optimization-recommendations")
@router.get("/optimization-recommendations", response_model=None)
async def get_optimization_recommendations(
admin_check: bool = Depends(check_admin_permission),
):
Expand All @@ -619,7 +619,7 @@ async def get_optimization_recommendations(
)


@router.get("/health")
@router.get("/health", response_model=None)
async def embedding_analytics_health(
admin_check: bool = Depends(check_admin_permission),
):
Expand Down
6 changes: 3 additions & 3 deletions autobot-backend/api/analytics_reporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ def _build_unified_report_response(
category=ErrorCategory.API,
error_code_prefix="UNIFIED",
)
@router.get("/report")
@router.get("/report", response_model=None)
async def get_unified_report():
"""
Get unified analytics report aggregating all analytics sources.
Expand Down Expand Up @@ -329,7 +329,7 @@ async def get_unified_report():
category=ErrorCategory.API,
error_code_prefix="UNIFIED",
)
@router.get("/summary")
@router.get("/summary", response_model=None)
async def get_quick_summary():
"""
Get a quick summary of code health.
Expand Down Expand Up @@ -365,7 +365,7 @@ async def get_quick_summary():
category=ErrorCategory.API,
error_code_prefix="UNIFIED",
)
@router.get("/trends")
@router.get("/trends", response_model=None)
async def get_trends():
"""
Get analytics trends over time.
Expand Down
23 changes: 16 additions & 7 deletions autobot-backend/api/elevation.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel

from api.schemas_common import (
ElevationAuthorizeResponse,
ElevationExecuteResponse,
ElevationHealthResponse,
ElevationPendingResponse,
ElevationRequestResponse,
ElevationStatusResponse,
SuccessResponse,
)
from auth_middleware import check_admin_permission
from autobot_shared.error_boundaries import ErrorCategory, with_error_handling

Expand Down Expand Up @@ -58,7 +67,7 @@ class ElevationAuthorization(BaseModel):
operation="request_elevation",
error_code_prefix="ELEVATION",
)
@router.post("/request")
@router.post("/request", response_model=ElevationRequestResponse)
async def request_elevation(request: ElevationRequest):
"""Request elevation for a privileged operation"""
request_id = str(uuid.uuid4())
Expand Down Expand Up @@ -88,7 +97,7 @@ async def request_elevation(request: ElevationRequest):
operation="authorize_elevation",
error_code_prefix="ELEVATION",
)
@router.post("/authorize")
@router.post("/authorize", response_model=ElevationAuthorizeResponse)
async def authorize_elevation(auth: ElevationAuthorization):
"""Authorize an elevation request with password"""
request_id = auth.request_id
Expand Down Expand Up @@ -153,7 +162,7 @@ async def authorize_elevation(auth: ElevationAuthorization):
operation="get_elevation_status",
error_code_prefix="ELEVATION",
)
@router.get("/status/{request_id}")
@router.get("/status/{request_id}", response_model=ElevationStatusResponse)
async def get_elevation_status(request_id: str):
"""Check the status of an elevation request"""
async with _pending_requests_lock:
Expand All @@ -176,7 +185,7 @@ async def get_elevation_status(request_id: str):
operation="execute_elevated_command",
error_code_prefix="ELEVATION",
)
@router.post("/execute/{session_token}")
@router.post("/execute/{session_token}", response_model=ElevationExecuteResponse)
async def execute_elevated_command(session_token: str, command: str):
"""Execute a command with elevated privileges using session token"""
async with _elevation_sessions_lock:
Expand Down Expand Up @@ -222,7 +231,7 @@ async def execute_elevated_command(session_token: str, command: str):
operation="get_pending_requests",
error_code_prefix="ELEVATION",
)
@router.get("/pending")
@router.get("/pending", response_model=ElevationPendingResponse)
async def get_pending_requests_endpoint():
"""Get all pending elevation requests"""
async with _pending_requests_lock:
Expand Down Expand Up @@ -313,7 +322,7 @@ async def run_elevated_command(command: str) -> dict:
operation="revoke_elevation_session",
error_code_prefix="ELEVATION",
)
@router.delete("/session/{session_token}")
@router.delete("/session/{session_token}", response_model=SuccessResponse)
async def revoke_elevation_session(session_token: str):
"""Revoke an elevation session"""
if session_token in elevation_sessions:
Expand All @@ -328,7 +337,7 @@ async def revoke_elevation_session(session_token: str):
operation="elevation_health_check",
error_code_prefix="ELEVATION",
)
@router.get("/health")
@router.get("/health", response_model=ElevationHealthResponse)
async def elevation_health_check():
"""Health check for elevation system"""
return {
Expand Down
22 changes: 15 additions & 7 deletions autobot-backend/api/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@

from fastapi import APIRouter

from api.schemas_common import (
RegistryEndpointsResponse,
RegistryHealthResponse,
RegistryRouterDetailResponse,
RegistryTagRoutersResponse,
RegistryTagsResponse,
RegistryValidateResponse,
)
from autobot_shared.error_boundaries import ErrorCategory, with_error_handling

# Create FastAPI router
Expand Down Expand Up @@ -481,7 +489,7 @@ def get_endpoint_documentation() -> List[Dict]:
operation="list_endpoints",
error_code_prefix="REGISTRY",
)
@router.get("/endpoints")
@router.get("/endpoints", response_model=RegistryEndpointsResponse)
async def list_endpoints():
"""List all registered API endpoints"""
return {
Expand All @@ -495,7 +503,7 @@ async def list_endpoints():
operation="list_routers",
error_code_prefix="REGISTRY",
)
@router.get("/routers")
@router.get("/routers", response_model=None)
async def list_routers():
"""List all registered routers with full configuration"""
routers_data = {}
Expand All @@ -519,7 +527,7 @@ async def list_routers():
operation="get_router_details",
error_code_prefix="REGISTRY",
)
@router.get("/router/{router_name}")
@router.get("/router/{router_name}", response_model=RegistryRouterDetailResponse)
async def get_router_details(router_name: str):
"""Get details for a specific router"""
config = registry.get_router_by_name(router_name)
Expand All @@ -544,7 +552,7 @@ async def get_router_details(router_name: str):
operation="list_tags",
error_code_prefix="REGISTRY",
)
@router.get("/tags")
@router.get("/tags", response_model=RegistryTagsResponse)
async def list_tags():
"""List all unique tags across all routers"""
all_tags = set()
Expand All @@ -558,7 +566,7 @@ async def list_tags():
operation="get_routers_by_tag",
error_code_prefix="REGISTRY",
)
@router.get("/tags/{tag}")
@router.get("/tags/{tag}", response_model=RegistryTagRoutersResponse)
async def get_routers_by_tag(tag: str):
"""Get all routers with a specific tag"""
routers_with_tag = registry.get_routers_by_tag(tag)
Expand All @@ -574,7 +582,7 @@ async def get_routers_by_tag(tag: str):
operation="validate_dependencies",
error_code_prefix="REGISTRY",
)
@router.get("/validate")
@router.get("/validate", response_model=RegistryValidateResponse)
async def validate_dependencies():
"""Validate router dependencies"""
errors = registry.validate_dependencies()
Expand All @@ -586,7 +594,7 @@ async def validate_dependencies():
operation="registry_health",
error_code_prefix="REGISTRY",
)
@router.get("/health")
@router.get("/health", response_model=RegistryHealthResponse)
async def registry_health():
"""Health check for registry system"""
return {
Expand Down
23 changes: 16 additions & 7 deletions autobot-backend/api/rum.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel

from api.schemas_common import (
DataResponse,
RUMClearResponse,
RUMConfigResponse,
RUMDisableResponse,
RUMEventResponse,
RUMMetricsResponse,
RUMStatusResponse,
)
from autobot_shared.error_boundaries import ErrorCategory, with_error_handling
from autobot_shared.time_utils import parse_utc_iso
from monitoring.prometheus_metrics import get_metrics_manager
Expand Down Expand Up @@ -275,7 +284,7 @@ def setup_rum_logger():
operation="configure_rum",
error_code_prefix="RUM",
)
@router.post("/config")
@router.post("/config", response_model=RUMConfigResponse)
async def configure_rum(config: RumConfig):
"""Configure RUM monitoring settings"""
try:
Expand Down Expand Up @@ -312,7 +321,7 @@ async def configure_rum(config: RumConfig):
operation="log_rum_event",
error_code_prefix="RUM",
)
@router.post("/event")
@router.post("/event", response_model=RUMEventResponse)
async def log_rum_event(event: RumEvent):
"""Log a RUM event from the frontend"""
try:
Expand Down Expand Up @@ -371,7 +380,7 @@ async def log_rum_event(event: RumEvent):
operation="disable_rum",
error_code_prefix="RUM",
)
@router.post("/disable")
@router.post("/disable", response_model=RUMDisableResponse)
async def disable_rum():
"""Disable RUM monitoring"""
try:
Expand All @@ -393,7 +402,7 @@ async def disable_rum():
operation="clear_rum_data",
error_code_prefix="RUM",
)
@router.post("/clear")
@router.post("/clear", response_model=RUMClearResponse)
async def clear_rum_data():
"""Clear all RUM data"""
try:
Expand Down Expand Up @@ -426,7 +435,7 @@ async def clear_rum_data():
operation="export_rum_data",
error_code_prefix="RUM",
)
@router.get("/export")
@router.get("/export", response_model=DataResponse)
async def export_rum_data():
"""Export RUM data for analysis"""

Expand Down Expand Up @@ -471,7 +480,7 @@ async def export_rum_data():
operation="get_rum_status",
error_code_prefix="RUM",
)
@router.get("/status")
@router.get("/status", response_model=RUMStatusResponse)
async def get_rum_status():
"""Get current RUM status and statistics"""

Expand Down Expand Up @@ -676,7 +685,7 @@ def _dispatch_and_tally_rum_metrics(metrics_manager, metrics: RumMetrics) -> int
operation="receive_rum_metrics",
error_code_prefix="RUM",
)
@router.post("/metrics")
@router.post("/metrics", response_model=RUMMetricsResponse)
async def receive_rum_metrics(metrics: RumMetrics):
"""
Receive RUM metrics from frontend and record them to Prometheus.
Expand Down
Loading
Loading