diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a962a0..cc9f6d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,48 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this --- +## [2.3.0] — 2026-06-16 + +### Added + +- **BU reassignment detail view** — click the "BU reassignment" count in the anomaly banner to see which specific findings moved and from/to which team +- **Atlas sync scoped to active teams** — Atlas sync now respects BU scope and defaults to managed BUs, preventing cache pollution from unrelated teams +- **Atlas known host distinction** — badge only renders for hosts Atlas actively tracks, suppressing noise from BUs not covered by Atlas (e.g., ACCESS-OPS) +- **Per-user Ivanti identity** — FP workflow views filtered by individual Ivanti first/last name for personalized queue +- **Searchable dropdowns for Granite Loader** — team, operation type, and status columns now use filterable select inputs +- **IPv6 fallback display** — findings without IPv4 show Qualys IPv6 (amber Q badge) or primary IPv6 (indigo v6 badge) +- **Remediate workflow type** — new workflow option in Ivanti Queue with remediation notes appended to Jira tickets +- **DECOM workflow type** — added to RedirectModal workflow options +- **View in CARD button** — added to tooltip and action modal for direct CARD web UI navigation +- **CARD asset-search by Host ID** — faster lookup path for enrichment operations +- **Per-metric compliance views** — replaced cross-metric aggregates with per-metric summary cards +- **Non-metric category filters** on compliance page +- **Ivanti Findings Data Guide** — Knowledge Base article explaining common data patterns (missing CVEs, BU reassignment, Atlas badges, etc.) +- **Markdown table rendering** in Knowledge Base viewer (remark-gfm support) +- **In-app notifications** table and infrastructure + +### Fixed + +- **Drift checker re-classifying same findings every sync** — archived findings were never removed from ivanti_findings, causing ~500 false re-classifications per sync. Now properly cleaned up after archive detection +- **Atlas Coverage tab not responding to scope changes** — metrics and status endpoints now filter by active teams and re-fetch on scope switch +- **Knowledge Base content/download failing for relative file paths** — sendFile now resolves paths correctly +- **remark-gfm compatibility** — upgraded to v4 for react-markdown v10 (was causing blank KB viewer) +- **SearchableSelect** — only opens on focus, closes properly on blur/select +- **Clipboard copy on HTTP** — use execCommand fallback for non-secure contexts +- **Empty description in single-item Jira modal** on ReportingPage +- **CARD enrich for items without IP** — uses host_id lookup as fallback +- **update_token error handling** — shows CARD link for assets that can't be actioned via API +- **Decom workflow migration** — includes Remediate in state check constraint + +### Changed + +- Atlas sync defaults to `IVANTI_MANAGED_BUS` when no scope is specified instead of syncing all BUs +- BU change history API accepts `since` and `limit` query params for scoped queries +- Anomaly banner uses 60-minute lookback window to capture drift checker records +- Archive activity chart should now show near-zero on normal syncs (only genuinely new disappearances) + +--- + ## [2.2.0] — 2026-06-04 ### Features