Files
auth-portal/docs/integrate-audit-ingest.md

64 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Audit ingest — интеграция приложений с Auth Portal
Центральный журнал: `GET /api/v1/admin/audit` (только admin).
Приложения пишут **локально** и дублируют события в portal.
## Endpoint
```
POST /api/v1/ingest/audit
Authorization: Bearer <AUDIT_INGEST_SECRET>
Content-Type: application/json
```
### Body
```json
{
"events": [
{
"event_id": "uuid-unique-per-event",
"source_app": "vps",
"action": "vps.vps.create",
"severity": "info",
"actor_user_id": "…",
"actor_email": "user@example.com",
"actor_name": "Name",
"target_type": "app_resource",
"target_id": "entity-id",
"summary": "Человекочитаемое описание",
"details": { "entity": "vps", "diff": {} },
"ip": "1.2.3.4",
"created_at": "2026-07-21T00:00:00.000Z"
}
]
}
```
- `events`: 1–50 за запрос
- `source_app`: `vps` | `cfdm` | `bgp` | `fw` | `dns` | `cdn` | `mm` (не `portal`)
- `event_id`: идемпотентность (дубликаты → `duplicates++`)
- Ответ: `{ "accepted": N, "duplicates": M }`
## Env
| Где | Переменная |
|-----|------------|
| auth-portal | `AUDIT_INGEST_SECRET` |
| apps (vps / cfdm / bgp / fw / cdn) | `AUTH_PORTAL_URL` + `AUTH_AUDIT_INGEST_SECRET` (тот же секрет) |
Dev default secret: `dev-audit-ingest-secret`.
## Dual-write
1. Записать в локальный `audit_log`
2. Fire-and-forget `POST` в portal (timeout ~2s)
3. Ошибка push **не** должна ломать CRUD
## Фильтры admin UI
- `/admin/audit` — source_app + type tabs + range
- Клик по пользователю на `/admin` — Sheet с событиями, где `actor_user_id` или `target_id` = user id
Preview: [solution-users-1](https://reui.io/preview/base/solution-users-1) · [solution-users-6](https://reui.io/preview/base/solution-users-6)