SAC resolves internal_ip to a registered Windows host and runs qwinsta/logoff synchronously over WinRM instead of queueing commands to the gateway agent.
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.
Reuse telegram templates for FCM title/body so agent start/restart
reasons reach mobile without Seaca app changes.
Co-authored-by: Cursor <cursoragent@cursor.com>
При повторной привязке Seaca переиспользуется запись device_uuid вместо INSERT.
Добавлены POST /devices/{id}/revoke и DELETE для полного удаления записи в настройках SAC.
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>
Send title and body in the data payload instead of notification block so
onMessageReceived always runs and the app can honour silent mode in background.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Background scan every 5 min opens rule:host_silence and notifies without
waiting for the next ingest event. CLI job + optional systemd timer.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>