| """Admin alerts webhook — /api/v1/admin/alerts/webhook. | |
| Stub endpoint for receiving alert webhooks from external sources | |
| (monitoring, observability platforms). | |
| """ | |
| from __future__ import annotations | |
| from typing import Any | |
| from fastapi import APIRouter, HTTPException | |
| from pydantic import BaseModel | |
| router = APIRouter(prefix="/alerts", tags=["admin"]) | |
| class AlertWebhookPayload(BaseModel): | |
| """Generic webhook payload from external alert sources.""" | |
| source: str # "prometheus" | "grafana" | "sentry" | "custom" | |
| severity: str # "info" | "warning" | "critical" | |
| title: str | |
| description: str | None = None | |
| labels: dict[str, str] = {} | |
| async def receive_alert_webhook(payload: AlertWebhookPayload) -> dict[str, Any]: | |
| """Receive an alert webhook from external monitoring.""" | |
| raise HTTPException( | |
| status_code=501, | |
| detail="Alert webhook ingestion not yet implemented — pending T08 GlitchTip wiring", | |
| ) | |