Commit Graph

55 Commits

Author SHA1 Message Date
Binh 7bbdb09e49 feat(defender-for-iot): inline drill-downs in the vulnerability panel
Partial pick of b438f25. CVE, device and site rows expand their details
in place; the Affected Devices table lists name and IP separately.

Unlike the original, the expanded row uses the blue table-row marking
tokens and the drill-down keeps the shared tile tokens. The NVD client
fix is left out with the skipped CVE enrichment.
2026-10-14 11:52:01 +02:00
Binh 72e95ed425 feat(defender-for-iot): update to version 1.2.0 with new features and improvements 2026-10-14 11:52:01 +02:00
Binh 61e3b91427 feat(defender-for-iot): dashboard layout and outcome marking
Adapted pick of 08771d5. findingOutcomeMark supplies the outcome mark in
the Work card and the Finding Reader header, including sources without a
status column. The Defender panel uses the Client Info header and a
six-column metrics row.

Unlike the original, tiles stay on the shared tile and text tokens
instead of --client-info-* colours, border: 0 and --btn-radius.
2026-10-14 11:52:00 +02:00
Binh d888f78145 docs(defender-for-iot): document the vulnerability finding result type
Partial pick of 33d2019: the CANONICAL_MODEL.md section and the comment
on CanonicalResultType.

Left out: the Defender backfill migration and the read-side outcome
fallback in unified-result.ts with its test.
2026-10-14 11:51:32 +02:00
Binh 550947d3b1 feat(defender-for-iot): introduce vulnerability finding result type
Adapted pick of fe71246. Adds the vulnerability_finding result type,
missingStatusOutcome for sources whose rows are the finding, and Defender
profile 1.1.0. The Work deviation filter uses the canonical predicate
through isDeviationRecord; Michael's GPO status logic and status cache
stay in front of it.

The constraint migration is renumbered from 022 to 027. The CVE
enrichment commit e048295 is skipped for now.
2026-10-14 11:51:31 +02:00
Binh 426a138e55 feat(defender-for-iot): aggregate affected devices in findings
Partial pick of 5fbbda2. One finding per CVE with an Affected Devices
table and device count; the Finding Reader hides the raw Source
Observations field.

Left out: the Affected Devices label in the Result DB row detail, since
the disclosure policy withholds affectedAsset for every row.
2026-10-14 11:51:31 +02:00
Binh a12529e39e feat(defender-for-iot): add dataset model, source extractor, and profile on Michael's base
Adapted pick of 7d3ef5f. The profile declares the now mandatory
securityScoring, priorityBasis and timeslotComparison. Client Info adds
Defender as a third tab beside Overview and AI Overview, and a
Defender-only timeslot starts in the Defender view. recordTitleFor only
replaces the title candidate; the Maester and CIS title rules stay.

Left out: the .gitignore entry, --tile-inset, the stored-profile
precedence Michael's fileProfile already has, and the old processing
version assertion.
2026-10-14 11:51:29 +02:00
Binh 78fa458ace chore: ignore local Defender mock, artifacts, evaluation and backups folders 2026-10-14 11:51:28 +02:00
Binh 3052bfbae6 feat: add ISO regulatory corpus PDF uploads 2026-10-14 11:51:28 +02:00
Binh de267e1a0b fix: keep saved AI overviews and ISO mappings available
Partial pick of 95ec322: a failed or queued regeneration keeps the previous successful AI overview visible, and a stored ISO mapping stays readable while the retrieval index is unavailable. The Defender device risk-acceptance fix of that commit is not taken here.
2026-10-14 11:51:27 +02:00
Binh 3ce7597349 fix: prevent stale AI overview and ISO mapping state
Partial pick of 3f6259d: both hooks bind each response to its request scope and discard a late response for a previous selection. The Result window palette, MITRE path gradient removal and Defender styles of that commit are not taken.
2026-10-14 11:51:27 +02:00
Binh 0cd828285d feat(regulatory): map GPO baseline comparisons to ISO controls
policy-evaluation rows map like scanner findings in the Finding Reader and the filtered Result DB batch. The query is built after the Result DB disclosure projection, so the customer value never reaches retrieval or the mapper. The global rule key is the technical setting ID; Work GPO rows carry their current comparison ID. Raw GPO and environment observations stay excluded. Retrieval version unchanged.
2026-10-14 11:51:27 +02:00
Binh 69c61a77c8 feat: add regulatory mapping batch functionality 2026-10-14 11:51:27 +02:00
Binh 828793af3d feat: add regulatory mapping panel and hooks for managing regulatory mappings 2026-10-14 11:51:26 +02:00
Binh b284009c4b feat(regulatory-rag): add Qdrant-backed regulatory RAG retrieval and deployment wiring 2026-10-14 11:51:25 +02:00
Binh e91055f6de feat: add AI Overview panel and integrate AI overview functionality 2026-10-14 11:51:25 +02:00
Binh 07c1ab36b0 feat(exports): add GPO comparison to privacy-safe JSON export
Actionable policy-evaluation findings carry a policy block built from the Result DB disclosure projection, so the customer value stays withheld. Raw policy observations are counted separately instead of as findings.
2026-10-14 11:51:14 +02:00
Binh bbc72b76be fix(branding): track transparent app icon 2026-10-14 11:51:14 +02:00
Binh 3590de007d feat(ai): add prototyp for LLM integration 2026-10-14 11:51:14 +02:00
Binh 1d9a257afc feat(results-browser): implement load all functionality for results db 2026-10-14 11:51:14 +02:00
Michael 7471afc79a push 2026-10-14 11:13:14 +02:00
Michael 0126ae01b4 :) 2026-10-14 11:11:07 +02:00
Michael 563ad43f9c WP Tab mit export + Security Export 2026-10-13 09:05:26 +02:00
Michael 614ac1b147 Backup 2026-10-11 03:33:25 +02:00
Michael 250c213fc1 Business Impact + Management Report 2026-10-04 19:58:04 +02:00
Michael d234f94315 Test Merge Fokus Agent.md 2026-10-02 08:23:25 +02:00
Michael ec0d9f2d3e Context Engine + Backup Commit - not ready yet! 2026-10-01 18:05:02 +02:00
Michael ba461cb1f7 test: Donut-Vertragstest unabhaengig von Zeilenenden
Die CSS-Dateien werden beim Einlesen auf LF normalisiert, weil
Windows-Checkouts mit core.autocrlf=true CRLF liefern. Die
Vertragspruefungen selbst bleiben unveraendert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:02:53 +02:00
Michael d8cb73fb37 governance: Core-Guard und Core-Freigabe-Hooks
Projekt-Hooks fuer die Core/Engine-Regel aus AGENTS.md: core-release.mjs
liest "Core-Freigabe: <Bereich>" aus der Nutzernachricht, core-guard.mjs
sperrt Schreibzugriffe auf Core-Pfade ohne Freigabe, core-areas.mjs
ordnet Pfade den Bereichen zu. Tests, Builds und Lesebefehle werden nicht
gesperrt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:58:07 +02:00
Michael e933a9b421 docs: Management-Report-Entwuerfe 2026-09-29 (Dummy)
Die fuenf im Umsetzungsplan referenzierten HTML-Entwuerfe mit ihren
lokalen Assets (Inter, Icon) als Beleg der Phase-7-Planeintraege.
Nur Daten des freigegebenen Dummy-Clients; keine externen Ressourcen,
keine Skripte. Das Icon ist trotz *.png-Regel gezielt aufgenommen.
Lokale Download-ZIPs werden per .gitignore ausgeschlossen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 09:49:59 +02:00
Michael efec1f593a 2.9.1: Management Report mit Heatmap und Ergebnisbalken
Die Client-Info-Aktion Management Report erzeugt den faktenbasierten
HTML-Bericht aus der gemeinsamen Reportprojektion: erfasste DC,
bewertete und abweichende Ergebnisse, Heatmap des Abweichungsanteils
und Pass-/Abweichungsbalken je Security Domain. Kein Mixed-Method-Score,
keine Scannerlisten, keine LLM-, Internet- oder Risikoableitung.
Report B bleibt technisch. Keine Projektions-, API- oder Persistenz-
aenderung.

Verifiziert: Vollsuite 1645 bestanden, 14 uebersprungen; 7 bestehende
Fehler in 6 Dateien identisch auf dem vorherigen Commit. Beide
Produktionsbuilds bestanden. Visuelle Browserabnahme offen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 09:49:38 +02:00
Michael 49b2696882 docs: Phase 13E Kontext-Engine und Kontext-Layer planen
Nutzerfreigabe 2026-09-30: kuratierter, quellenbelegter Katalog,
UI-Reihenfolge und Work-Facette Kontext-Cluster. Der Kontext ist eine
parallele, abschaltbare Lesart und beeinflusst nie Verdict, Score,
Filter, Reviews oder Result DB. Kernregel in AGENTS.md aufgenommen;
offene Report-Engine-Entscheidungen im Plan vermerkt. Nur Dokumentation,
Produktversion unveraendert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 09:22:15 +02:00
Michael 0fe283d68f 2.9.0: privacy-compliant Result DB, materialized rows and disclosure policy 3.4.0
- Result DB is checked and stored on creation (migration 024, assessor_result_db_rows)
  with a content-free per-row trace, per-client identity guard and Open original in Work
- Disclosure policy 3.4.0: review state no longer revealed via withheld-field trace,
  per-finding scanner scores withheld, CIS numbers keep all seven levels
- Less over-redaction: "Limited" is no legal form, attached versions (Tls1.2, v1.0),
  Windows 95, 2012-R2, step/option/page references, documented Microsoft GUIDs and
  documented vendor values in the recommendation field stay
- Maester first read shows the native result statement verbatim

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:29:52 +02:00
Michael d8f131d6da Anpassung Mitre Catalog Update 2026-09-28 09:03:24 +02:00
Michael add2aceb1d 2.8.6: reference recognition, scanner report first read and CIS section titles
Reference recognition (Phase 13D, 2.8.0-2.8.5):
- ATT&CK 19.2 / D3FEND 1.6.0 catalogs, versioned recognizer and
  append-only reference runs (migration 023), catalog references in the
  reader, Data Hub status and reprocessing, MITRE online update.

Scanner report and Work (2.8.6):
- Resolve scope-named Purple Knight runs to their profile via runNames.
- Maester "Remediation action" section as next step; PowerShell scripts
  as command blocks with display-only line layout.
- Purple Knight likelihood without the appended references section.
- CIS section titles from the run's own report in the CIS Category
  filter, Work headings and badge tooltips.
- Keep all record metadata when GPO results rebuild All Records
  (withRebuiltLayout) with a guard test for future metadata.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 20:12:33 +02:00
Michael a5262f19f5 neuer Goldstandart :) 2026-09-25 21:33:12 +02:00
Michael 0aadb81027 Bug Fix GPO Headlines in Work...and many more :) 2026-09-24 09:52:57 +02:00
Michael 83284c2183 Bug Fix Result DB 2026-09-23 13:53:40 +02:00
Michael cdd93fe9e8 Abtrennung zu neuem Datenmodell 2026-09-21 09:10:54 +02:00
Michael 03ea022f08 feat: add native scanner scoring and preserve client data on reimport 2026-09-10 12:41:18 +02:00
Michael dd92aa26d0 GPO Implementierung Testbereit 2026-09-06 20:54:33 +02:00
Michael 68172e715a Client Info Anpassung + weiter GPO Implementierung 2026-09-03 17:21:17 +02:00
Michael e6d164e1ef Implementation + policy Upadets codex 2026-09-03 12:21:37 +02:00
Michael a5331de771 UI Anpassung- PK + PC HTML Import implementiert
Deploy / Test, build & deploy (push) Successful in 2m3s Details
2026-08-26 08:29:00 +02:00
Binh 7a96ed3ae1 fix(datahub): moved all charts in one line
Deploy / Test, build & deploy (push) Successful in 2m17s Details
2026-08-24 16:20:21 +02:00
Binh c179ac1b2c Merge branch 'Michael' into experimental
Deploy / Test, build & deploy (push) Successful in 2m3s Details
# Conflicts:
#	docs/IMPLEMENTATION_PLAN.md
#	src/components/ResizableResultTable/ResizableResultTable.tsx
#	src/styles/datahub-redesign.css
#	src/styles/datahub.css
#	src/styles/obsidian-graph.css
#	tests/features/datahub-centered-layout.test.ts
#	tests/features/obsidian-graph.test.ts
2026-08-24 16:08:03 +02:00
Binh 200a8ac381 fix(server): use configured PostgreSQL host in containers
Deploy / Test, build & deploy (push) Successful in 2m0s Details
2026-08-24 15:47:10 +02:00
Binh 7ba69494e1 fix(ui): resolve design checks and cross-platform test failures
Deploy / Test, build & deploy (push) Failing after 2m10s Details
2026-08-24 15:36:41 +02:00
Binh df59048587 ci: add VPN-only Gitea deployment with isolated PostgreSQL stacks
Deploy / Test, build & deploy (push) Failing after 1m4s Details
2026-08-24 15:21:10 +02:00
Michael 664ed3e89e 2 2026-08-24 15:17:46 +02:00