feat: add safe diagnostics export

This commit is contained in:
ik
2026-09-07 18:49:53 +07:00
parent 6477681e41
commit fa3b24fb1f
5 changed files with 35 additions and 5 deletions
+20 -2
View File
@@ -258,8 +258,26 @@ def _admin(authorization: Annotated[str | None, Header()] = None) -> str:
@app.get("/api/v1/admin/diagnostics")
def admin_diagnostics(_: Annotated[str, Depends(_admin)]) -> dict[str, str]:
return {"version": settings.app_version, "revision": settings.app_revision, "environment": settings.deployment_environment}
def admin_diagnostics(db: Db, _: Annotated[str, Depends(_admin)]) -> JSONResponse:
report_counts = {status.value: count for status, count in db.execute(
select(CatchReport.moderation_status, func.count()).group_by(CatchReport.moderation_status)
)}
observation_counts = {status: count for status, count in db.execute(
select(ExternalObservation.status, func.count()).group_by(ExternalObservation.status)
)}
payload = {
"generated_at": datetime.now(timezone.utc).isoformat(),
"build": {"version": settings.app_version, "revision": settings.app_revision, "environment": settings.deployment_environment},
"counts": {
"catch_reports": report_counts,
"external_observations": observation_counts,
"data_sources": db.scalar(select(func.count()).select_from(DataSource)) or 0,
"enabled_data_sources": db.scalar(select(func.count()).select_from(DataSource).where(DataSource.enabled.is_(True))) or 0,
"official_import_runs": db.scalar(select(func.count()).select_from(OfficialRecordImport)) or 0,
"community_import_runs": db.scalar(select(func.count()).select_from(CommunityImportRun)) or 0,
},
}
return JSONResponse(payload, headers={"Content-Disposition": "attachment; filename=rf4spotter-diagnostics.json"})
@app.get("/api/v1/imports", response_model=list[ImportRunOut])