Skip to content

Investigation: add durable private bookmarks - #538

Merged
matteius merged 1 commit into
mainfrom
feat/investigation-bookmarks
Aug 24, 2026
Merged

Investigation: add durable private bookmarks#538
matteius merged 1 commit into
mainfrom
feat/investigation-bookmarks

Conversation

@matteius

Copy link
Copy Markdown
Contributor

Summary

  • save the current multi-camera investigation window, cursor, primary camera, filters, region, and representative result
  • provide a private bookmark workspace for listing, reopening, and revision-safe deletion
  • retain private notes server-side without placing them in navigation URLs

Authorization and retention

  • every bookmark access re-evaluates current recordings.replay permission across all saved cameras
  • bookmarks outside the current camera scope are omitted from lists and blocked on direct access
  • bookmarks explicitly report holds_recordings: false and the UI warns that they do not protect media from retention or deletion
  • create, update, and delete outcomes are audited
  • demo mode exposes an empty read-only workspace

Persistence and API

  • adds owner-private, revisioned bookmark tables in migration 0064
  • adds list, create, read, metadata update, and delete endpoints under /api/investigation-bookmarks
  • stores only a bounded whitelist of navigation-safe filter and result fields

Validation

  • full combined C build
  • 7 focused database, auth, authorization, audit, and investigation test targets
  • 18 frontend suites with 125 tests
  • production Vite build

Migration order

#537 has merged and owns migration 0063; this PR follows it with 0064.

@matteius
matteius merged commit 152de8a into main Aug 24, 2026
4 checks passed
@matteius
matteius deleted the feat/investigation-bookmarks branch August 24, 2026 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant