🤖 AI-Generated Changelog
Added
- Scoped Authorization System: Introduced a comprehensive role-based access control (RBAC) foundation, enabling fine-grained permission management across the application
- Scoped API Tokens: Added support for creating and managing API tokens with specific permission scopes, allowing secure programmatic access with least-privilege principles
- API Token Management UI: New interface for creating, viewing, and revoking scoped API tokens from the workspace
- Role and Grant Management APIs: Backend APIs for managing user roles and permission grants
- Scoped Access Administration UI: New admin interface for managing user roles and access grants
- Audit History: Durable audit log capturing sensitive operation outcomes, with a dedicated audit history workspace for reviewing security-relevant events
- Camera Collections: Added saved camera collections with both static (manually curated) and smart (query-based) collection types
- Collection Workflow Integration: Camera collections can now be used within automation workflows for targeted processing
- Fleet Inventory Workspace: New scalable camera inventory workspace with improved organization and management capabilities
- Camera Location Hierarchy: Support for organizing cameras into a location hierarchy for easier fleet management
- Camera Tags: Normalized camera tagging system for grouping and filtering cameras across the fleet
- Fleet Camera Selectors and Query API: Advanced query API for filtering and selecting cameras based on tags, locations, and other attributes
- Stable Camera UUIDs: Cameras now have persistent UUIDs for stable identification across configuration changes
- Location and Tag Organization Controls: UI controls for managing camera locations and tags within the fleet workspace
Changed
- Fleet Inventory Integration: Streams/cameras view refactored to integrate the new inventory workspace experience
- DB Recording Retrieval: Improved database query performance for recording retrieval
Fixed
- Authorization Gaps: Closed scoping, escalation, and durability gaps identified in the authorization stack
- Scoped Recording Exports: Enforced permission scoping for recording export operations
- Scoped PTZ and Evidence Actions: Enforced permission scoping for PTZ camera control and evidence-related actions
- Camera Collection Access: Hardened access path validation for camera collections
- Fleet Query Responses: Hardened JSON response handling for fleet camera queries
- Camera Tag Synchronization: Camera tag updates are now performed atomically to prevent inconsistency
- Stream Config Hydration: Made the stream configuration hydration contract mutable to support UUID assignment
- Timeline Playback: Fixed repeated seek operations occurring during 4x speed playback
- go2rtc Process Lifecycle: Serialized shared go2rtc process lifecycle to prevent race conditions
🔗 Full Changelog: 0.37.2...0.38.0