Commit Graph

242 Commits

Author SHA1 Message Date
PapaTramp 79185d9186 fix: show RD Gateway session duration in Telegram when present
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 10:07:51 +10:00
PapaTramp 47d08b54d2 chore: sync Cursor rules from CursorRules
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 09:31:57 +10:00
PapaTramp b565a259ea chore: add Cursor rule for mandatory agent script version bumps
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 09:29:23 +10:00
PapaTramp 0d4a50cd35 fix: dedupe daily report Telegram in dual mode and show host in summary fallback
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 09:15:21 +10:00
PapaTramp 3053058cdf feat: SAC 0.7.4 sidebar system stats block with UI toggle
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 09:15:15 +10:00
PapaTramp cf5a6f995c docs: update README with current SAC and agent status
Reflect SAC 0.7.3 capabilities, security hardening highlights, and current RDP monitor integration state.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 13:25:16 +10:00
PapaTramp 141fc44099 feat: SAC 0.7.3 custom error pages 401/403/404/429
Centered logo pages with event explanation and allowed actions; router
and apiFetch redirect to them on auth, permission, not-found, and rate-limit errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 11:06:21 +10:00
PapaTramp d3a337992c feat: SAC 0.7.2 security hardening (rate limit, JWT DB check, DOMPurify)
Path traversal fix in SPA fallback, admin-only host delete, login rate limit
with 3 attempts and Telegram alert, JWT validated against active users in DB,
and DOMPurify for agent report HTML.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 11:04:14 +10:00
PapaTramp 06a8ed8614 feat: events date filter and preserve list page in URL (SAC 0.7.1)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 10:32:24 +10:00
PapaTramp de29270a25 feat: SAC 0.7.0 display_name columns and event severity overrides
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 10:21:43 +10:00
PapaTramp 8de5d14cfb feat: SAC 0.6.0 user edit UI, login to dashboard, daily report timer sync
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 09:55:12 +10:00
PapaTramp 56c469ddbd feat: multi-user UI login with admin and monitor roles
Add sac_users table, JWT roles, settings/users API guarded for admin, Users page in UI, and sac_manage_user.py CLI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 09:27:14 +10:00
PapaTramp bc77f82307 feat: notify RD Gateway events in Telegram outside min_severity
Route rdg.connection.* through notify_rdg_connection and add disconnected type.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 08:14:37 +10:00
PapaTramp 7e13be3c38 fix: hide redundant RDP workstation line when it matches server host
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 18:55:11 +10:00
PapaTramp fbef1e2f4b feat: always send RDP/SSH login success to Telegram via SAC
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 18:47:39 +10:00
PapaTramp 4baa2b426f feat: render full agent lifecycle text from notification_body in Telegram
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 18:11:17 +10:00
PapaTramp 9dacbd7944 fix: Telegram footer shows SAC as sender when SAC delivers the message
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 12:41:23 +10:00
PapaTramp 366a9c83f7 feat: always notify agent.lifecycle via SAC with telegram_via routing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 12:25:48 +10:00
PapaTramp 3d4d1f3c76 feat: show notification source (agent vs SAC) in alerts and reports
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 11:51:53 +10:00
PapaTramp a45b641b8c feat: daily report agent version line and fix active users layout
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 11:28:30 +10:00
PapaTramp 799f8668e6 feat: Telegram templates for RDS shadow and WinRM session events
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 10:20:57 +10:00
PapaTramp 2501ecc4fe fix: normalize daily report layout for Telegram and UI
Ensure server line, compact spacing, and one user per row when ingesting
agent reports or sending SAC-generated daily reports.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 09:52:09 +10:00
PapaTramp eba2f0d15c docs: agent daily report toggles and unified template versions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 17:18:03 +10:00
PapaTramp 7ebbb9a9d1 feat: unify SSH and Windows daily report layout in SAC and UI
Agent-style report body for SAC aggregation; shared stats cards; RDP ban note in docs

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 17:03:29 +10:00
PapaTramp 11195ae64f feat: delete host from UI with events and problems cleanup
DELETE /api/v1/hosts/{id} (JWT); host reappears on next agent ingest

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:52:05 +10:00
PapaTramp 2670c8cb46 fix: sanitize daily report HTML for Telegram parse_mode
Strip div/br tags unsupported by Telegram API; reports still store UI HTML in details

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:35:04 +10:00
PapaTramp 0baeacf808 docs: mark notification epic complete in work-plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:31:18 +10:00
PapaTramp 42f31b3bb5 fix: dashboard and hosts count SSH and RDP daily reports
analytics-a4: daily_reports_24h uses report.daily.*; sac-deploy enables timers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:31:09 +10:00
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp a42a63b8fa docs: add analytics backlog for deferred SAC development
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 15:17:08 +10:00
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp d4bf6e536c feat: host display_name в ingest, поиск хостов, UI и docs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 11:49:10 +10:00
PapaTramp 108e1756c4 feat: live последние события на Dashboard; retention, health, runbook
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 11:29:31 +10:00
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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
PapaTramp 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