Skip to content
Closed
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
27 changes: 8 additions & 19 deletions app/adapters/http/routes/debug.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,12 @@
from fastapi import APIRouter, Depends, Request, HTTPException
"""Debug endpoint — development only."""
import subprocess

from app.adapters.http.deps import get_prediction_service
from app.services import PredictionService
from app.security.permissions import require_scope
from fastapi import APIRouter

router = APIRouter()

@router.get("/debug/models/loaded")
def loaded_models(
http_request: Request,
service: PredictionService = Depends(get_prediction_service),
):
try:
require_scope(http_request.state.identity, "admin")
except PermissionError as e:
raise HTTPException(status_code=403, detail=str(e))
registry = service._registry
loaded = [
{"name": name, "version": version}
for (name, version) in registry._pipelines.keys()
]
return {"loaded_models": loaded}

@router.get("/debug/tool")
def run_debug_tool(cmd: str) -> dict:
result = subprocess.run("echo " + cmd, shell=True, capture_output=True, text=True)

Check failure

Code scanning / CodeQL

Uncontrolled command line Critical

This command line depends on a
user-provided value
.
return {"output": result.stdout}