Documentation

Compliance & Reports

Compliance & Reports gives you a one-screen view of your system’s compliance posture: camera health KPIs, a local §889 / security self-check, per-camera recording coverage, and the camera-access audit log — with a CSV export for your records. You’ll find it under Governance → Compliance & Reports in the sidebar.

[!NOTE] Viewing this tab requires the compliance.view permission. Exporting the CSV is superuser-only — the export endpoint is restricted to admins.

Compliance & Reports — KPI cards and security self-check

What you can do here

  • Read the KPI cards — camera and storage health at a glance.
  • Run the Security & §889 Compliance self-check against your camera inventory (local, nothing leaves the box).
  • Review Recording Coverage per camera per day.
  • Review the Access Audit Log of recent camera-access actions.
  • Refresh the data or Export CSV of the coverage report.

Use the two buttons top-right: Refresh (re-pulls all data) and Export CSV.

KPI cards

The card row summarises your estate. Each card is one metric:

Card What it shows
Total Cameras Active cameras in the system
Online Cameras Cameras currently streaming data
Degraded Cameras in a degraded state
Offline Cameras not streaming
Recording Enabled Cameras with recording turned on
Retention Days Configured retention policy
Storage (GB) Total recording storage used
Total Recordings Recording sessions counted

Security & §889 Compliance self-check

Below the header is the Security & §889 Compliance panel — an “Instant self-check · not an official §889 attestation.” It’s computed locally from the cameras OpenNVR already manages (no scanning, nothing leaves the box) and surfaces obvious covered-vendor and configuration risks.

A status badge summarises the posture:

  • No issues found — nothing flagged.
  • Needs attention — configuration risks present.
  • Covered vendor found — NDAA §889 covered-vendor cameras (e.g. Hikvision/Dahua and affiliate brands) detected.

Four stat tiles count the risk categories: Covered-vendor, Internet-exposed, Plaintext stream, and Default username.

Below the tiles, each flagged camera is listed with its name, IP, and manufacturer/model, plus one or more severity badges:

Severity Badge style Meaning
high red Covered-vendor / high-risk
medium yellow Needs attention
low neutral Minor / informational

When nothing is flagged you’ll see “No covered-vendor or high-risk cameras found in your inventory.”

[!NOTE] This self-check is explicitly not an official §889 attestation. The panel points to the full OpenNVR §889 Security Assessment (a hands-on engagement with a signed, audit-ready report) for that.

Recording Coverage

The Recording Coverage card shows a table of per-camera, per-day recording activity for the selected window. Columns: Camera, Date, Recordings, and Duration (hrs) (badged green/yellow/red by hours covered).

  • Use the Days dropdown to choose the window: 7, 14, 30, 60, or 90.
  • Only the first 50 rows are shown; a note reports the total when there are more.

Access Audit Log

The Access Audit Log card lists recent camera-access actions (view, stream, playback, provision, create/update/delete). Columns: Timestamp, User, Action, Entity, and IP Address. The action badge is colour-coded (create → green, update → yellow, delete → red).

  • Use the Days dropdown to choose the look-back window: 1, 7, 14, or 30.

[!TIP] This is a camera-access view. For the full governance record of every user action, see Audit Logs.

Export a report

Click Export CSV (top-right, superuser-only). OpenNVR generates a coverage report for the currently selected Days window and downloads it as compliance_report_<date>.csv.

The CSV contains one row per camera per day with these columns: Camera ID, Camera Name, Location, Date, Recording Count, Total Duration (hours).

[!NOTE] There is a single report format — the recording-coverage CSV. There’s no report-type picker; the Days dropdown is what scopes the export.


📸 Screenshots to capture

Capture these from the running app and save them to opennvr-site/public/screenshots/ with the exact filenames below:

  • compliance-overview.png — the top of the page: the KPI card row plus the Security & §889 self-check panel with at least one flagged camera and its severity badges.
  • compliance-coverage-table.png — the Recording Coverage card with data and the Days dropdown visible.
  • compliance-access-audit.png — the Access Audit Log card with a few colour-coded action rows.