From df4c93d243c6f0b032ef692ed3359d75297eeb32 Mon Sep 17 00:00:00 2001 From: PTah Date: Fri, 19 Jun 2026 23:42:03 +1000 Subject: [PATCH] chore: release 0.10.0 (agent control plane phase 1) Minor release: RDG flap, qwinsta/logoff queue, dashboard UI, agent poll API. --- README.md | 2 +- README_en.md | 2 +- backend/app/version.py | 2 +- backend/tests/test_health.py | 4 ++-- docs/agent-control-plane.md | 2 +- docs/agent-integration.md | 2 +- frontend/package.json | 2 +- frontend/src/version.ts | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 53f97b9..1ad4a15 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Статус -**Версия:** `0.9.13` +**Версия:** `0.10.0` **Стек:** FastAPI, PostgreSQL, Vue 3, JWT, SSE **Деплой:** `sudo /opt/sac-deploy.sh` (см. `deploy/sac-deploy.sh`) diff --git a/README_en.md b/README_en.md index 54697bc..430646b 100644 --- a/README_en.md +++ b/README_en.md @@ -14,7 +14,7 @@ Self-hosted hub for collecting, storing, and displaying security events from Lin ## Status -**Version:** `0.9.13` +**Version:** `0.10.0` **Stack:** FastAPI, PostgreSQL, Vue 3, JWT, SSE **Deploy:** `sudo /opt/sac-deploy.sh` (see `deploy/sac-deploy.sh`) diff --git a/backend/app/version.py b/backend/app/version.py index 4d23964..29648aa 100644 --- a/backend/app/version.py +++ b/backend/app/version.py @@ -1,5 +1,5 @@ """Единый источник версии SAC (API, health, логи, OpenAPI).""" APP_NAME = "Security Alert Center" -APP_VERSION = "0.9.13" +APP_VERSION = "0.10.0" APP_VERSION_LABEL = f"{APP_NAME} v.{APP_VERSION}" diff --git a/backend/tests/test_health.py b/backend/tests/test_health.py index 9411e90..7ebdeea 100644 --- a/backend/tests/test_health.py +++ b/backend/tests/test_health.py @@ -4,6 +4,6 @@ from app.version import APP_NAME, APP_VERSION, APP_VERSION_LABEL def test_version_constants(): - assert APP_VERSION == "0.9.13" + assert APP_VERSION == "0.10.0" assert APP_NAME == "Security Alert Center" - assert APP_VERSION_LABEL == "Security Alert Center v.0.9.13" + assert APP_VERSION_LABEL == "Security Alert Center v.0.10.0" diff --git a/docs/agent-control-plane.md b/docs/agent-control-plane.md index 58dc052..1bf8d8e 100644 --- a/docs/agent-control-plane.md +++ b/docs/agent-control-plane.md @@ -286,7 +286,7 @@ Authorization: Bearer sac_xxx |------|------------|--------| | **1** | `rule:rdg_session_flap`, Problem, notify, флаг `rdg_flap` | ✅ SAC | | **2** | Кнопка **qwinsta** на «Обзоре» | ✅ SAC UI | -| **3** | Poll API, `agent_commands`, env admin | ✅ SAC; ✅ RDP ≥ 2.0.39-SAC | +| **3** | Poll API, `agent_commands`, env admin | ✅ SAC; ✅ RDP ≥ 2.1.0-SAC | | **4** | logoff в модалке | ✅ SAC UI | | **5** | Settings «Обновления агентов» | ⏳ | | **6** | Self-update B1 | ⏳ | diff --git a/docs/agent-integration.md b/docs/agent-integration.md index 6bd0b13..f95583f 100644 --- a/docs/agent-integration.md +++ b/docs/agent-integration.md @@ -274,7 +274,7 @@ SAC применяет cooldown по `dedup_key` (события, по умол - `Send-SacEvent` + замена вызовов `Send-TelegramMessage` для событий мониторинга. - Heartbeat и daily report — отдельные типы в SAC. -- **Команды SAC (≥ 2.0.39-SAC):** poll `GET /api/v1/agent/commands?agent_instance_id=…` каждые `$SacCommandPollIntervalSec` (по умолчанию 60 с); типы `qwinsta`, `logoff`. Ответ: `POST /api/v1/agent/commands/{uuid}/result`. Учётные данные доменного admin приходят в `run_as` (на SAC — `SAC_WIN_ADMIN_*`). Подробнее: [agent-control-plane.md](agent-control-plane.md). +- **Команды SAC (≥ 2.1.0-SAC):** poll `GET /api/v1/agent/commands?agent_instance_id=…` каждые `$SacCommandPollIntervalSec` (по умолчанию 60 с); типы `qwinsta`, `logoff`. Ответ: `POST /api/v1/agent/commands/{uuid}/result`. Учётные данные доменного admin приходят в `run_as` (на SAC — `SAC_WIN_ADMIN_*`). Подробнее: [agent-control-plane.md](agent-control-plane.md). - При `UseSAC=exclusive` суточный отчёт может формироваться **на SAC** (`generated_by: sac` в `details`), если агент за день не прислал `report.daily.*` — см. `SAC_DAILY_REPORT_*`, job `python -m app.jobs.daily_report`, timer `sac-daily-report.timer`. - **Единый шаблон отчёта** (SSH / Windows): агенты `ssh-monitor` ≥ 1.2.8-SAC, `RDP-login-monitor` ≥ 1.2.21-SAC и SAC используют одинаковые секции в `report_body` / `details.stats`. - **Только SAC, без отчёта с агента:** на агенте `DAILY_REPORT_ENABLED=0` (ssh) или `$DailyReportEnabled = $false` (RDP); на SAC `SAC_DAILY_REPORT_ENABLED=true`, `SAC_DAILY_REPORT_SKIP_IF_AGENT_SENT=true`. diff --git a/frontend/package.json b/frontend/package.json index 491ac65..fbae2c0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "sac-ui", "private": true, - "version": "0.9.10", + "version": "0.10.0", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/version.ts b/frontend/src/version.ts index 27713a5..a107ed9 100644 --- a/frontend/src/version.ts +++ b/frontend/src/version.ts @@ -1,4 +1,4 @@ /** Fallback до загрузки /health; при релизе держите в sync с backend/app/version.py */ export const APP_NAME = "Security Alert Center"; -export const APP_VERSION = "0.9.13"; +export const APP_VERSION = "0.10.0"; export const APP_VERSION_LABEL = `${APP_NAME} v.${APP_VERSION}`;