Commit Graph

64 Commits

Author SHA1 Message Date
PTah 415d863b3b feat: SAC daily reports from DB aggregation (notif-32)
- Aggregate report.daily.ssh/rdp from 24h ingest; job and systemd timer

- notify_daily_report bypasses NOTIFY_MIN_SEVERITY; ingest routes agent reports

- HTML templates, env SAC_DAILY_REPORT_*, docs and tests (56 cases)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:30:07 +10:00
PTah 4167687dec feat: notification cooldown dedup for events and problems (notif-31)
Store last notify time by dedup_key/fingerprint, gate dispatch before
channels; config SAC_NOTIFY_*_COOLDOWN_SEC, migration 008.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:24:01 +10:00
PTah 1a70980920 feat: HTML Telegram templates for RDP/SSH events (notif-30)
Agent-style messages from event details, parse_mode HTML, templates for
login/sudo/RDG and problems; unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:21:40 +10:00
PTah ebb450be92 feat: global notification policy severity to channels (notif-22)
Singleton notification_policy table, NOTIFY_MIN_SEVERITY/CHANNELS env,
central dispatch gate, Settings policy UI, migration 007.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:19:26 +10:00
PTah 9b177c145b feat: SMTP email notification channel with UI and ingest
Migration 006, email config DB/env, smtplib sender, settings API,
Settings UI section, and dispatch on event/problem ingest.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:12:55 +10:00
PTah 20fa7e2c27 feat: webhook notification channel with UI and ingest dispatch
Add webhook config (DB/env), JSON POST on events/problems, settings API,
Settings UI section, and notify_dispatch for multi-channel ingest.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:09:40 +10:00
PTah f7b5fff04e docs: E2E checklist for SAC Telegram severity (notif-02)
Add synthetic ingest curl steps, update prod next steps for migration 004.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:06:58 +10:00
PTah 79a78dc7c9 feat: Telegram settings in DB with UI edit and test send
Store notification_channels (migration 004), effective config DB over env,
PUT/test API endpoints, Settings form, and pass db session into ingest notify.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:05:32 +10:00
PTah e0ba384705 feat: SAC Telegram settings view, notify_problem severity gate, exclusive docs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 15:58:08 +10:00
PTah 117390cbca docs: add 2026-05-29 todo for SAC notifications and Settings UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 15:39:21 +10:00
PTah a42a63b8fa docs: add analytics backlog for deferred SAC development
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 15:17:08 +10:00
PTah daec333dbe feat: add SAC app icon to favicon, sidebar, and login page
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 14:39:57 +10:00
PTah ac3c20b7db feat: persistent Zabbix-style sidebar on all pages, rename Dashboard to Обзор
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 13:54:41 +10:00
PTah dce5b88b2f feat: move navigation to dashboard sidebar and bump SAC to 0.5.0
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 13:45:25 +10:00
PTah 81cf9c46b3 feat: improve SAC UI layout, reports state, and hosts sorting
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 13:17:37 +10:00
PTah d4bf6e536c feat: host display_name в ingest, поиск хостов, UI и docs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 11:49:10 +10:00
PTah 108e1756c4 feat: live последние события на Dashboard; retention, health, runbook
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 11:29:31 +10:00
PTah 9ed0670863 docs: RDP SAC 1.2.12 null+JSON fix
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:44:23 +10:00
PTah fcf3da223c test/docs: RDP agent.lifecycle ingest and 422 notes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:34:23 +10:00
PTah f322a46f98 docs: RDP SAC 409 spool loop fix 1.2.10-SAC
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:27:25 +10:00
PTah a218ff2581 docs: RDP SAC spool 422 and 1.2.9-SAC notes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:20:31 +10:00
PTah 98055dfdf8 docs: RDP SAC UTF-8 fix note for report.daily.rdp mojibake
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:05:49 +10:00
PTah c8f357007f feat: dashboard top hosts/types, problems 24h, drill-down (d2-2)
- Extend /dashboards/summary; Events filters from query (hostname, severity)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 10:01:07 +10:00
PTah 249894d8e1 feat: UI Problems list filters, detail card and event timeline (d2-1)
- Filters status/severity/hostname; /problems/:id with Ack/Resolve and timeline

- Dashboard drill-down to open problems

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:55:28 +10:00
PTah 64b5ef297a feat: problem rules v1 brute-force, privilege spike, host silence (d1-3)
- Threshold rules on ingest; heartbeat auto-resolves host silence

- Config thresholds in sac-api.env; unit tests

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:51:05 +10:00
PTah 83f48dce97 fix: alembic 003 avoid :r bind param in fingerprint backfill SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:47:35 +10:00
PTah a4a224b284 feat: Problems correlation fingerprint, count, last_seen (d1-2)
- Migration 003; windowed host+type+rule correlation on ingest

- GET /problems filters; GET /problems/{id} with event timeline; ack/resolve 409 guard

- Tests and SAC_PROBLEM_CORRELATION_WINDOW_MINUTES config

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:46:12 +10:00
PTah 8eb40cf75d docs: agent version bumps and deploy triggers (1.4)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:34:22 +10:00
PTah 4d603637e5 fix(deploy): sync systemd unit, preflight DB check, health retry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:28:01 +10:00
PTah e0b066f5e5 fix(deploy): recover from diverging git after force-push on kalinamall
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:26:06 +10:00
PTah 25a485fabb docs: git policy — kalinamall only, push after each feature
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 09:23:10 +10:00
PTah 2b76ae8497 feat: ingest HTTP 201/409 for event_id idempotency
- Validate UUID format; log created/duplicate/rejected

- Tests for 201, 409, 422; update agent-integration and work-plan

- Docs: neutral IDE wording (no product-specific editor names)
2026-05-28 09:13:12 +10:00
PTah 5cf76f492c docs: add display_name tasks for RDP, ssh, and SAC hosts
Document ServerDisplayName parity with ssh SERVER_DISPLAY_NAME and
agent-display-* checklist items for SAC Hosts UI.
2026-05-27 17:02:23 +10:00
PTah d1b89c75dd docs: add 2-day delivery and hourly checklist
Add execution checklist for next two development days and a follow-up week of testing in work-plan.md.
2026-05-27 16:12:56 +10:00
PTah 721de21d5c docs: update agent integration readiness checklist
Mark completed SAC config, check-sac, and spool items for ssh and RDP agents.
2026-05-27 15:33:42 +10:00
PTah 8995a34037 fix: faster sac-api restart (TimeoutStopSec, SSE cancel on shutdown) 2026-05-27 14:53:54 +10:00
PTah 61c9f9b673 feat: reports page with formatted daily report cards 2026-05-27 14:15:15 +10:00
PTah 04301ab359 feat: host heartbeat status and dashboard metrics (2.2)
Track agent.heartbeat and report.daily.ssh per host; show online/stale
on Hosts UI; dashboard counters and SAC_HEARTBEAT_STALE_MINUTES config.
2026-05-27 13:36:17 +10:00
PTah 9ba3c4b63b docs: pilot 2.1 exclusive (Linux) runbook 2026-05-27 13:25:47 +10:00
PTah b404747f8d test: version constants without DB import 2026-05-27 13:21:02 +10:00
PTah c657a65970 feat: v0.2.0 branding, healthz version, SSE dashboard live
Centralize APP_VERSION 0.2.0; /health and /healthz return version;
startup log line; UI title Security Alert Center v.0.2.0;
SSE /api/v1/stream/events for live dashboard counters.
2026-05-27 13:20:39 +10:00
PTah ea221db3c7 feat: Dashboard MVP with summary API and UI
Add GET /api/v1/dashboards/summary (24h events, open problems,
hosts, severity breakdown, recent events) and Vue /dashboard page.
2026-05-27 12:37:06 +10:00
PTah eeba3a704d feat: Telegram notifications from SAC on ingest
Send Telegram alerts for high/critical events and new Problems.
Configurable via TELEGRAM_* env vars; ingest never fails on send errors.
2026-05-27 12:21:03 +10:00
PTah 5fce00faae feat: Problems API, ingest hook, and UI 2026-05-27 11:24:19 +10:00
PTah b19cdf2b47 fix: SPA fallback для /events при F5 (index.html) 2026-05-27 11:01:47 +10:00
PTah 947fc4ab98 docs: тестовый агент ubabuba; gitignore deploy helpers 2026-05-27 10:47:54 +10:00
PTah 4265d58c4b chore: gitignore local SSH deploy helper scripts 2026-05-26 22:46:15 +10:00
PTah a4bbc14448 docs: prod status, sac-deploy.sh; update install and deployment guides 2026-05-26 22:03:10 +10:00
PTah bdfc7016e6 feat: phase 1C JWT UI, events/hosts API, Vue frontend 2026-05-26 21:46:34 +10:00
PTah d8a8329397 docs: права /etc/ssl/sac — root:ssl-cert, www-data в группе 2026-05-26 21:37:56 +10:00