Commit Graph

28 Commits

Author SHA256 Message Date
larssand
e61403d7f6 Surface baseline maintenance status in the dashboard
Retention and per-field value capping already ran automatically every poll
cycle, but the dashboard showed only a single "DB size" line — no
visibility into what got deleted, which fields are hitting the
max-values-per-field cap, or whether disk space is reclaimable, without
SSHing in. baseline.py's maintenance() now also reports the specific
(stream, entity, field) rows it trimmed for exceeding the cap, surfaced in
a new Baseline Maintenance dashboard panel alongside size/reclaimable bytes
and rows deleted last cycle. Deliberately no live-vacuum button: VACUUM
needs the service stopped first, so the dashboard only shows when it's
worth doing and points at the existing offline CLI command.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 16:35:09 +02:00
larssand
36516faf9a Add real detector health tooling: learning state and historical precision
Replaces the old Prometheus-only "detector precision" metric, which
recomputed from whatever field_deviations happened to be active in the
current poll cycle cross-referenced against live FeedbackStore rules — a
revoked or expired suppression rule made the signal vanish, and nothing was
tracked between polls. Adds DetectorPrecisionStore, a permanent append-only
log of review outcomes (kept deliberately separate from FeedbackStore's
mutable suppression rules) recorded the moment a human reviews a finding,
plus BaselineStore.detector_readiness() mirroring the existing per-field
profile_readiness() for per-detector learning state, and a plain-language
detector reference. Surfaced in a new Detector Health dashboard panel.
Observability only — nothing here changes scoring or suppression.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 16:22:02 +02:00
larssand
83ffef3570 Pool baseline state across streams sharing an entity concept
Completes the last deferred item from ROADMAP §0: entities recognized as
the same real-world concept across enabled streams (e.g. srcip in both a
firewall and an IIS stream) now share baseline knowledge of entity
presence/age and known relationship-target values, instead of each stream
learning it cold. Implemented additively (synthetic shared_entity:<group>
namespace in the existing baseline.py tables, no schema migration), scoped
to entity presence + relationship known-values only — per-stream
distribution baselines stay untouched. Also fixes a latent alias-map
collision bug found while building this (ALIAS_CANONICAL_BY_FIELD let
"context" silently steal "hostname"/"dns_query" from their own canonical
groups).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 18:50:14 +02:00
larssand
8c155ec9cf add new structure 2026-09-23 17:06:05 +02:00
larssand
a3f545f1b0 fix anon 2026-09-23 13:32:09 +02:00
larssand
bf1109be81 add rule generalization, sized LLM defaults, ops docs, and UI polish
Feedback rules can now be suggested for merging when a human has already
reviewed the same pattern multiple times (never guesses about new values).
LLM defaults sized for constrained VRAM instead of llama3.3/llama3.1.
Adds systemd units, a state backup script, and reverse-proxy auth guidance
for production deployment. Findings view is collapsible and sorts
suggested-review rows to the top for a quicker overview.
2026-09-23 13:04:53 +02:00
larssand
c3e482f9ab fix more structure for UI and classification 2026-09-08 09:50:58 +02:00
larssand
59ac227dfd fix refresh so checkbox works 2026-09-08 09:32:00 +02:00
larssand
db87f65d97 add false-positive filter and bulk-clear for findings
Active Feedback Rules gets a status filter, and Field Baseline
Deviations gets multi-select with a bulk apply bar. Bulk scope is
restricted to exact-value/field only, so a batch action can never
create a broad rule that would suppress a genuinely new deviation.
2026-09-08 08:57:54 +02:00
larssand
67609e415f fix isssue classification and doc 2026-09-07 22:04:45 +02:00
larssand
7b94512abc add feedback scopes, revoke and precision metrics
Feedback rules now support value/field/entity/stream scope, require
expiry for broad suppressions, and can be revoked individually.
Adds an active-rules panel, detector precision metrics, and diagnostics.
2026-09-07 19:51:54 +02:00
larssand
e9e0ab8a46 fix delete och ollama 2026-07-06 23:10:42 +02:00
larssand
469b2f14b4 change size of delete 2026-07-06 23:02:07 +02:00
larssand
d027645af7 add delete profile 2026-07-06 22:54:19 +02:00
larssand
da540f81ae fix reset state 2026-07-06 17:05:27 +02:00
larssand
649c29a8c2 fix clear investi 2026-07-06 16:49:30 +02:00
larssand
9eb2448eb7 fix status issues ollama 2026-07-06 11:43:17 +02:00
larssand
b1a70351a6 fix label 2026-07-06 11:39:41 +02:00
larssand
2f208c91ca ändrar sattus ollama 2026-07-06 11:31:06 +02:00
larssand
bddc84395c fix config 2026-07-06 09:36:00 +02:00
larssand
fde165d79b fix restart issue 2026-07-06 09:22:13 +02:00
larssand
f45c275e20 change poll mcp again status 2026-07-02 21:14:43 +02:00
larssand
19c3dd7e54 UI-spåret med bättre correlation/evidence. 2026-07-02 19:53:24 +02:00
larssand
7568767946 första UI/operatörs-pass 2026-07-02 19:47:09 +02:00
larssand
a8c00c35b2 add test to see if fail for streams and evetns 2026-07-02 10:51:56 +02:00
larssand
7c0b482a22 improve find fileds for default profiles 2026-07-02 09:51:25 +02:00
larssand
53437a3952 uopdate doc 2026-07-01 09:15:14 +02:00
larssand
9c6c08b5ec Added local Ollama model listing in the U 2026-06-30 09:15:03 +02:00