test/docs: RDP agent.lifecycle ingest and 422 notes
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user