feat(privacy): surface the customer-data scan above the hardware report

- Move the "Customer data" panel to the top of the data section (above the
  chart iframe); header + customer guess always visible, findings table
  collapsed by default and expandable.
- Add a chart top-notice (above Board/CPUs) summarizing the scan via the
  viewer's standard NoticeTitle/NoticeBody - interim until chart custom panels.
- Allowlist ieisystem.com (IEI = Inspur brand infrastructure).
- Add chart-custom-panels-spec.md: a reusable, versioned contract proposal for
  host-supplied panels across every app embedding reanimator/chart.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-09-02 16:19:57 +03:00
co-authored by Claude Sonnet 5
parent 4a4910f207
commit fb0b0e3c55
6 changed files with 369 additions and 33 deletions
+8 -2
View File
@@ -23,8 +23,14 @@ via `parser.PrivacyScanEnabled()`.
## Output
- `GET /api/privacy-scan` - the `PrivacyScan` object, or `{"loaded": false}`.
- UI: the "Customer data" panel (`#privacy-section`), collapsible, hidden when
there are no findings and no customer guess.
- UI: the "Customer data" panel (`#privacy-section`) at the top of the data
section, above the chart iframe. Header + customer guess are always shown; the
findings table is collapsed by default and expands on click. Hidden entirely
when there are no findings and no customer guess.
- The chart viewer also gets a top notice (above Board/CPUs) summarizing the
scan, via the standard `viewer.RenderOptions.NoticeTitle/NoticeBody`
(`privacyNotice` in `internal/server/handlers.go`) - interim until the chart
"custom panels" mechanism ships (see `chart-custom-panels-spec.md`).
- `privacy_report.json` in the raw-export ZIP (`GET /api/export/json`), omitted
when the scan produced nothing.