PapaTramp
5635be1322
feat: background remote agent updates survive SAC navigation (0.20.19)
2026-06-21 11:01:26 +10:00
PapaTramp
6acbfe22de
fix: deliver RDP bundle via SAC HTTP zip download, not WinRM chunks (0.20.15)
2026-06-20 19:51:45 +10:00
PapaTramp
05408e17c3
fix: WinRM RDP update via run_ps, strip CLIXML noise (0.20.11)
2026-06-20 19:41:05 +10:00
PapaTramp
ec5ec62240
fix: enforce SAC git URL when updating ssh-monitor agents (0.20.8)
...
Pass REPO_URL/GIT_BRANCH from agent settings over SSH, preflight git remotes on stale hosts, and stop using GitHub origin on routers.
2026-06-20 19:28:14 +10:00
PapaTramp
fc9d630263
docs: refresh README; allow monitor JWT for RDG qwinsta/logoff (0.20.6)
...
Update platform docs for current features; Seaca and web operators with
monitor role can trigger WinRM actions via SAC API.
2026-06-20 19:02:58 +10:00
PapaTramp
01d72d0f68
fix: show RDG flap badge on 302 and 303 events in SAC UI (0.20.5)
...
Seaca surfaced flap via Problems; the web UI only flagged 303 in DB and had
no visible label. Resolve flap pairs at read time and show badge plus qwinsta
on both sides of 302→303.
2026-06-20 17:27:41 +10:00
PapaTramp
c21043d845
feat: bootstrap ssh-monitor updater when missing on host (0.20.2)
...
SAC now clones the ssh-monitor repo and installs update_ssh_monitor.sh before running the update when the remote updater script is absent.
2026-06-20 17:01:06 +10:00
PapaTramp
07b97bd111
fix: inline git test feedback and use form URLs (0.20.1)
...
Show git check result next to the button, scroll into view, and test unsaved repo URLs from the form.
2026-06-20 16:29:48 +10:00
PapaTramp
f411d8f070
feat: git-based agent version reference and unified outdated badge (0.20.0)
...
SAC reads latest RDP/ssh-monitor versions from configured git repos for outdated detection, update targets, and settings test-git.
2026-06-20 16:25:53 +10:00
PapaTramp
cd2f27792d
feat: agent updates from SAC, poll config, SSH/WinRM fallback (0.12.0)
...
Add agent update settings, pending self-update via poll, desired config per host, and automatic or manual SSH/WinRM fallback when agents do not report agent.update events.
2026-06-20 15:52:10 +10:00
PapaTramp
75f4c475df
feat: RDG qwinsta/logoff via WinRM on client workstation (0.11.6)
...
SAC resolves internal_ip to a registered Windows host and runs qwinsta/logoff synchronously over WinRM instead of queueing commands to the gateway agent.
2026-06-20 15:36:12 +10:00
PapaTramp
2eb06acb5b
feat: SSH card UX, agent version sync, persistent ssh_admin_ok (0.11.5)
...
Silent SSH probe on host card open; manual test feedback auto-hides. Persist ssh_admin_ok in DB (migration 019). After agent update read version from host and refresh UI.
2026-06-20 01:01:56 +10:00
PapaTramp
cc8f50de89
feat: Linux SSH admin and remote ssh-monitor update (0.11.0)
2026-06-20 00:25:35 +10:00
PapaTramp
c8e3eef9d7
fix: WinRM NTLM username normalize and hostname-first targets (0.10.3)
2026-06-20 00:10:52 +10:00
PapaTramp
154ba3efc2
feat: Windows admin in Settings UI and WinRM host test (0.10.1)
...
Store domain admin in ui_settings (DB overrides env); qwinsta/logoff use effective config.
Host card: POST /hosts/{id}/actions/winrm-test via pywinrm.
2026-06-20 00:01:17 +10:00
PapaTramp
2aec488226
feat: RDG session flap rule, qwinsta/logoff queue and dashboard UI (0.9.13)
...
Detect 302→303 within 1–10s, Problem with 30s dedup, rdg_flap flag.
Agent command poll API, admin qwinsta/logoff from Overview. Migration 016.
2026-06-19 23:34:01 +10:00
PapaTramp
3d36faa49d
fix(mobile): повторный enroll и удаление устройств в UI (0.9.10).
...
При повторной привязке Seaca переиспользуется запись device_uuid вместо INSERT.
Добавлены POST /devices/{id}/revoke и DELETE для полного удаления записи в настройках SAC.
2026-06-13 16:36:07 +10:00
PapaTramp
7df718eed3
fix: 12h cooldown before reopening manually closed host_silence (0.9.9)
...
Track resolved_by on problems; suppress scan/ingest recreate after manual
resolve; reopen same problem after cooldown; auto-close via heartbeat unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 10:33:55 +10:00
PapaTramp
fed21c536b
fix: exclude resolved problems from new-in-24h metrics (0.9.7)
...
Dashboard and created_within_hours list only show open/acknowledged problems
created in the last 24 hours; closed items appear under resolved only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 10:24:12 +10:00
PapaTramp
563b836acc
feat: Seaca mobile API, enrollment, FCM push and admin UI (0.9.0)
...
Adds mobile device registration by admin codes, refresh tokens, push channel
in notification policy, and Settings section for managing Seaca clients.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 13:19:14 +10:00
PapaTramp
77e167b6e3
feat: add actor user column to events and dashboard tables
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 10:11:04 +10:00
PapaTramp
f9d56621f6
feat: drill-down filters on overview and outdated agent version highlight
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 09:21:21 +10:00
PapaTramp
54337a5917
feat: host inventory (agent.inventory), host detail page, UI columns
...
Store hardware/software snapshots on hosts; warn on hardware changes. Host card from Hosts list. Add agent version column to Events/Overview; rename Hosts table columns and sort by status.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-05 09:53:00 +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
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
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
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
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
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
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
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
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
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
PapaTramp
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
PapaTramp
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
PapaTramp
8995a34037
fix: faster sac-api restart (TimeoutStopSec, SSE cancel on shutdown)
2026-05-27 14:53:54 +10:00
PapaTramp
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
PapaTramp
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
PapaTramp
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
PapaTramp
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