test/docs: RDP agent.lifecycle ingest and 422 notes

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-28 10:34:23 +10:00
parent f322a46f98
commit fcf3da223c
2 changed files with 19 additions and 0 deletions
+17
View File
@@ -53,6 +53,23 @@ def test_ingest_duplicate_409(client, auth_headers):
assert data["event_id"] == event_id assert data["event_id"] == event_id
def test_ingest_rdp_lifecycle_201(client, auth_headers):
event_id = str(uuid.uuid4())
payload = {
**VALID_EVENT,
"event_id": event_id,
"source": {"product": "rdp-login-monitor", "product_version": "1.2.11-SAC"},
"host": {"hostname": "K6A-DC3", "os_family": "windows"},
"type": "agent.lifecycle",
"title": "RDP login monitor started",
"summary": "Мониторинг запущен на K6A-DC3, версия 1.2.11-SAC",
"details": {"lifecycle": "started"},
}
r = client.post("/api/v1/events", json=payload, headers=auth_headers)
assert r.status_code == 201
assert r.json()["event_id"] == event_id
def test_ingest_invalid_payload_422(client, auth_headers): def test_ingest_invalid_payload_422(client, auth_headers):
r = client.post( r = client.post(
"/api/v1/events", "/api/v1/events",
+2
View File
@@ -61,6 +61,8 @@ $SacSpoolDir = "D:\Soft\Logs\sac-spool"
**HTTP 409 и spool (RDP):** в PowerShell `Invoke-WebRequest` часто **бросает исключение** на 409 (и иногда на 201), хотя событие уже в SAC. До **1.2.10-SAC** клиент считал это ошибкой и снова слал тот же `event_id` из spool каждые ~5 с (лог `WARN: SAC POST HTTP 409`). С **1.2.10-SAC** коды **201/409/202** обрабатываются как успех и файл spool удаляется. **HTTP 409 и spool (RDP):** в PowerShell `Invoke-WebRequest` часто **бросает исключение** на 409 (и иногда на 201), хотя событие уже в SAC. До **1.2.10-SAC** клиент считал это ошибкой и снова слал тот же `event_id` из spool каждые ~5 с (лог `WARN: SAC POST HTTP 409`). С **1.2.10-SAC** коды **201/409/202** обрабатываются как успех и файл spool удаляется.
**HTTP 422 на `agent.lifecycle` (RDP):** часто из‑за битого JSON с кириллицей в `summary` (`ConvertTo-Json` + неверная кодировка POST). С **1.2.11-SAC** — сериализация через `JavaScriptSerializer` (Unicode `\uXXXX`), в лог пишется тело ответа SAC (`schema_errors`). Файлы в `sac-spool/rejected/` после 422 можно удалить.
Только правки `Sac-Client.ps1` / `sac-client.sh`: для RDP достаточно поднять patch в `version.txt` (и при необходимости `$ScriptVersion`); для Linux `sac-client.sh` обновится по checksum даже без смены `SSH_MONITOR_VERSION`, но **рекомендуется** поднимать обе метки для логов. Только правки `Sac-Client.ps1` / `sac-client.sh`: для RDP достаточно поднять patch в `version.txt` (и при необходимости `$ScriptVersion`); для Linux `sac-client.sh` обновится по checksum даже без смены `SSH_MONITOR_VERSION`, но **рекомендуется** поднимать обе метки для логов.
### 1.5. Правила Problems v1 (SAC backend) ### 1.5. Правила Problems v1 (SAC backend)