Commit Graph

5424 Commits

Author SHA1 Message Date
Josh Hawkins
0748766713 hide restart-required fields when editing a profile section
fields that require a restart cannot take effect via profile switching,
so they are merged into hiddenFields when profileName is set
2026-03-12 10:56:08 -05:00
Josh Hawkins
611316906a immediately create profiles on backend instead of deferring to Save All 2026-03-12 10:53:53 -05:00
Josh Hawkins
e92fa2b4ba tweak language 2026-03-12 10:47:31 -05:00
Josh Hawkins
8d633423b0 show activity indicator on trash icon while deleting a profile 2026-03-12 10:47:05 -05:00
Josh Hawkins
af0696771a docs 2026-03-12 09:13:20 -05:00
Josh Hawkins
46d91af001 change color order 2026-03-12 09:00:45 -05:00
Josh Hawkins
0f735bea37 use icon only on mobile 2026-03-12 08:57:57 -05:00
Josh Hawkins
5a1ec5d729 remove profile badge in settings and add profiles to main menu 2026-03-12 08:32:23 -05:00
Josh Hawkins
39500b20a0 implement profile friendly names and improve profile UI
- Add ProfileDefinitionConfig type and profiles field to FrigateConfig
- Use ProfilesApiResponse type with friendly_name support throughout
- Replace Record<string, unknown> with proper JsonObject/JsonValue types
- Add profile creation form matching zone pattern (Zod + NameAndIdFields)
- Add pencil icon for renaming profile friendly names in ProfilesView
- Move Profiles menu item to first under Camera Configuration
- Add activity indicators on save/rename/delete buttons
- Display friendly names in CameraManagementView profile selector
- Fix duplicate colored dots in management profile dropdown
- Fix i18n namespace for overridden base config tooltips
- Move profile override deletion from dropdown trash icon to footer
  button with confirmation dialog, matching Reset to Global pattern
- Remove Add Profile from section header dropdown to prevent saving
  camera overrides before top-level profile definition exists
- Clean up newProfiles state after API profile deletion
- Refresh profiles SWR cache after saving profile definitions
2026-03-11 20:55:56 -05:00
Josh Hawkins
0b3c6ed22e add top-level profiles config section with friendly names 2026-03-11 19:50:31 -05:00
Josh Hawkins
dace54734b more unique colors 2026-03-11 16:21:41 -05:00
Josh Hawkins
210d203fa4 fix mask deletion 2026-03-11 16:04:17 -05:00
Josh Hawkins
5c23555882 implement an update_config method for profile manager 2026-03-11 15:57:27 -05:00
Josh Hawkins
5ec1b1841c refactor profilesview and add dots/border colors when overridden 2026-03-11 15:51:29 -05:00
Josh Hawkins
33e4dddb3e rename profile settings to ui settings 2026-03-11 12:35:45 -05:00
Josh Hawkins
6dd8aa912e ensure profile manager gets updated config 2026-03-11 12:35:34 -05:00
Josh Hawkins
8072c991cd ui tweaks 2026-03-11 12:35:13 -05:00
Josh Hawkins
3cdb40610f fix profile save diff, masksAndZones delete, and config sync 2026-03-11 12:04:35 -05:00
Josh Hawkins
7925d120ae tweak colors and switch 2026-03-11 11:36:15 -05:00
Josh Hawkins
18d413fbee tweaks 2026-03-11 11:35:12 -05:00
Josh Hawkins
98e9e79881 formatting 2026-03-11 11:07:23 -05:00
Josh Hawkins
a0849b104c add profiles enable toggle and improve empty state 2026-03-11 11:05:18 -05:00
Josh Hawkins
096a13bce9 move profile dropdown from section panes to settings header 2026-03-11 11:01:51 -05:00
Josh Hawkins
eccad7aa21 add face_recognition and lpr to profile-eligible sections 2026-03-11 10:35:38 -05:00
Josh Hawkins
cd58329796 fix hidden field validation errors caused by lodash wildcard and schema gaps
lodash unset does not support wildcard (*) segments, so hidden fields like
filters.*.mask were never stripped from form data, leaving null raw_coordinates
that fail RJSF anyOf validation. Add unsetWithWildcard helper and also strip
hidden fields from the JSON schema itself as defense-in-depth.
2026-03-11 10:35:19 -05:00
Josh Hawkins
379247dee6 profile support for mask and zone editor 2026-03-11 07:16:44 -05:00
Josh Hawkins
6205a9d588 add red dot for any pending changes including profiles 2026-03-09 16:08:50 -05:00
Josh Hawkins
53f80a06a5 i18n 2026-03-09 16:06:22 -05:00
Josh Hawkins
fa49e0e7b1 add active profile badge to settings toolbar 2026-03-09 15:57:24 -05:00
Josh Hawkins
fe7aa2ba3d add profiles summary page with card-based layout and fix backend zone comparison bug 2026-03-09 15:52:26 -05:00
Josh Hawkins
7131acafa6 add per-profile camera enable/disable to Camera Management view 2026-03-09 15:35:35 -05:00
Josh Hawkins
94dbabd0ef add profile section dropdown and wire into camera settings pages 2026-03-09 15:20:50 -05:00
Josh Hawkins
d5dc77daa4 add profileName prop to BaseSection for profile-aware config editing 2026-03-09 15:11:56 -05:00
Josh Hawkins
edf7fcb5b4 add profile state management and save preview support 2026-03-09 15:06:11 -05:00
Josh Hawkins
72b4a4ddad add frontend profile types, color utility, and config save support 2026-03-09 15:00:25 -05:00
Josh Hawkins
60930e50c2 add zones support to camera profiles 2026-03-09 14:47:29 -05:00
Josh Hawkins
d15fc4e58e add enabled field to camera profiles for enabling/disabling cameras 2026-03-09 14:47:29 -05:00
Josh Hawkins
7c6926d1e6 consolidate 2026-03-09 14:47:29 -05:00
Josh Hawkins
708399508b fix CameraLiveConfig JSON serialization error on profile activation
refactor _publish_updates to only publish ZMQ updates for
sections that actually changed, not all sections on affected cameras.
2026-03-09 14:47:29 -05:00
Josh Hawkins
61746984d1 formatting 2026-03-09 14:47:29 -05:00
Josh Hawkins
9efc2499f6 add tests for invalid profile values and keys
Tests that Pydantic rejects: invalid field values (fps: "not_a_number"),
unknown section keys (ffmpeg in profile), invalid nested values, and
invalid profiles in full config parsing.
2026-03-09 14:47:29 -05:00
Josh Hawkins
26ec07985c wire ProfileManager into app startup and FastAPI
- Create ProfileManager after dispatcher init
- Restore persisted profile on startup
- Pass dispatcher and profile_manager to FastAPI app
2026-03-09 14:47:29 -05:00
Josh Hawkins
76c65bbf6d add MQTT and dispatcher integration for profiles
- Subscribe to frigate/profile/set MQTT topic
- Publish profile/state and profiles/available on connect
- Add _on_profile_command handler to dispatcher
- Broadcast active profile state on WebSocket connect
2026-03-09 14:47:29 -05:00
Josh Hawkins
f76bb9cfb8 add profile API endpoints (GET /profiles, GET/PUT /profile) 2026-03-09 14:47:29 -05:00
Josh Hawkins
c367e5c95a add ProfileManager for profile activation and persistence
Handles snapshotting base configs, applying profile overrides via
deep_merge + apply_section_update, publishing ZMQ updates, and
persisting active profile to /config/.active_profile.
2026-03-09 14:47:29 -05:00
Josh Hawkins
1c190220cb add active_profile field to FrigateConfig
Runtime-only field excluded from YAML serialization, tracks which
profile is currently active.
2026-03-09 14:47:29 -05:00
Josh Hawkins
ea2252d09f add profiles field to CameraConfig 2026-03-09 14:47:29 -05:00
Josh Hawkins
0381c96973 add CameraProfileConfig model for named config overrides 2026-03-09 14:47:29 -05:00
Josh Hawkins
dd9497baf2
Add ability to delete cameras (#22336)
Some checks are pending
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* refactor camera cleanup code to generic util

* add api endpoint for deleting a camera

* frontend

* i18n

* clean up
2026-03-08 16:23:48 -06:00
Josh Hawkins
e930492ccc
Publish license plate box coordinates (#22337)
* publish the detected plate's box coordinates in tracked_object_update

* docs
2026-03-08 16:22:38 -06:00