* use react-jsonschema-form for UI config
* don't use properties wrapper when generating config i18n json
* configure for full i18n support
* section fields
* add descriptions to all fields for i18n
* motion i18n
* fix nullable fields
* sanitize internal fields
* add switches widgets and use friendly names
* fix nullable schema entries
* ensure update_topic is added to api calls
this needs further backend implementation to work correctly
* add global sections, camera config overrides, and reset button
* i18n
* add reset logic to global config view
* tweaks
* fix sections and live validation
* fix validation for schema objects that can be null
* generic and custom per-field validation
* improve generic error validation messages
* remove show advanced fields switch
* tweaks
* use shadcn theme
* fix array field template
* i18n tweaks
* remove collapsible around root section
* deep merge schema for advanced fields
* add array field item template and fix ffmpeg section
* add missing i18n keys
* tweaks
* comment out api call for testing
* add config groups as a separate i18n namespace
* add descriptions to all pydantic fields
* make titles more concise
* new titles as i18n
* update i18n config generation script to use json schema
* tweaks
* tweaks
* rebase
* clean up
* form tweaks
* add wildcards and fix object filter fields
* add field template for additionalproperties schema objects
* improve typing
* add section description from schema and clarify global vs camera level descriptions
* separate and consolidate global and camera i18n namespaces
* clean up now obsolete namespaces
* tweaks
* refactor sections and overrides
* add ability to render components before and after fields
* fix titles
* chore(sections): remove legacy single-section components replaced by template
* refactor configs to use individual files with a template
* fix review description
* apply hidden fields after ui schema
* move util
* remove unused i18n
* clean up error messages
* fix fast refresh
* add custom validation and use it for ffmpeg input roles
* update nav tree
* remove unused
* re-add override and modified indicators
* mark pending changes and add confirmation dialog for resets
* fix red unsaved dot
* tweaks
* add docs links, readonly keys, and restart required per field
* add special case and comments for global motion section
* add section form special cases
* combine review sections
* tweaks
* add audio labels endpoint
* add audio label switches and input to filter list
* fix type
* remove key from config when resetting to default/global
* don't show description for new key/val fields
* tweaks
* spacing tweaks
* add activity indicator and scrollbar tweaks
* add docs to filter fields
* wording changes
* fix global ffmpeg section
* add review classification zones to review form
* add backend endpoint and frontend widget for ffmpeg presets and manual args
* improve wording
* hide descriptions for additional properties arrays
* add warning log about incorrectly nested model config
* spacing and language tweaks
* fix i18n keys
* networking section docs and description
* small wording tweaks
* add layout grid field
* refactor with shared utilities
* field order
* add individual detectors to schema
add detector titles and descriptions (docstrings in pydantic are used for descriptions) and add i18n keys to globals
* clean up detectors section and i18n
* don't save model config back to yaml when saving detectors
* add full detectors config to api model dump
works around the way we use detector plugins so we can have the full detector config for the frontend
* add restart button to toast when restart is required
* add ui option to remove inner cards
* fix buttons
* section tweaks
* don't zoom into text on mobile
* make buttons sticky at bottom of sections
* small tweaks
* highlight label of changed fields
* add null to enum list when unwrapping
* refactor to shared utils and add save all button
* add undo all button
* add RJSF to dictionary
* consolidate utils
* preserve form data when changing cameras
* add mono fonts
* add popover to show what fields will be saved
* fix mobile menu not re-rendering with unsaved dots
* tweaks
* fix logger and env vars config section saving
use escaped periods in keys to retain them in the config file (eg "frigate.embeddings")
* add timezone widget
* role map field with validation
* fix validation for model section
* add another hidden field
* add footer message for required restart
* use rjsf for notifications view
* fix config saving
* add replace rules field
* default column layout and add field sizing
* clean up field template
* refactor profile settings to match rjsf forms
* tweaks
* refactor frigate+ view and make tweaks to sections
* show frigate+ model info in detection model settings when using a frigate+ model
* update restartRequired for all fields
* fix restart fields
* tweaks and add ability enable disabled cameras
more backend changes required
* require restart when enabling camera that is disabled in config
* disable save when form is invalid
* refactor ffmpeg section for readability
* change label
* clean up camera inputs fields
* misc tweaks to ffmpeg section
- add raw paths endpoint to ensure credentials get saved
- restart required tooltip
* maintenance settings tweaks
* don't mutate with lodash
* fix description re-rendering for nullable object fields
* hide reindex field
* update rjsf
* add frigate+ description to settings pane
* disable save all when any section is invalid
* show translated field name in validation error pane
* clean up
* remove unused
* fix genai merge
* fix genai
* generic job infrastructure
* types and dispatcher changes for jobs
* save data in memory only for completed jobs
* implement media sync job and endpoints
* change logs to debug
* websocket hook and types
* frontend
* i18n
* docs tweaks
* endpoint descriptions
* tweak docs
* Update version
* Create scaffolding for case management (#21293)
* implement case management for export apis (#21295)
* refactor vainfo to search for first GPU (#21296)
use existing LibvaGpuSelector to pick appropritate libva device
* Case management UI (#21299)
* Refactor export cards to match existing cards in other UI pages
* Show cases separately from exports
* Add proper filtering and display of cases
* Add ability to edit and select cases for exports
* Cleanup typing
* Hide if no unassigned
* Cleanup hiding logic
* fix scrolling
* Improve layout
* Camera connection quality indicator (#21297)
* add camera connection quality metrics and indicator
* formatting
* move stall calcs to watchdog
* clean up
* change watchdog to 1s and separately track time for ffmpeg retry_interval
* implement status caching to reduce message volume
* Export filter UI (#21322)
* Get started on export filters
* implement basic filter
* Implement filtering and adjust api
* Improve filter handling
* Improve navigation
* Cleanup
* handle scrolling
* Refactor temperature reporting for detectors and implement Hailo temp reading (#21395)
* Add Hailo temperature retrieval
* Refactor `get_hailo_temps()` to use ctxmanager
* Show Hailo temps in system UI
* Move hailo_platform import to get_hailo_temps
* Refactor temperatures calculations to use within detector block
* Adjust webUI to handle new location
---------
Co-authored-by: tigattack <10629864+tigattack@users.noreply.github.com>
* Camera-specific hwaccel settings for timelapse exports (correct base) (#21386)
* added hwaccel_args to camera.record.export config struct
* populate camera.record.export.hwaccel_args with a cascade up to camera then global if 'auto'
* use new hwaccel args in export
* added documentation for camera-specific hwaccel export
* fix c/p error
* missed an import
* fleshed out the docs and comments a bit
* ruff lint
* separated out the tips in the doc
* fix documentation
* fix and simplify reference config doc
* Add support for GPU and NPU temperatures (#21495)
* Add rockchip temps
* Add support for GPU and NPU temperatures in the frontend
* Add support for Nvidia temperature
* Improve separation
* Adjust graph scaling
* Exports Improvements (#21521)
* Add images to case folder view
* Add ability to select case in export dialog
* Add to mobile review too
* Add API to handle deleting recordings (#21520)
* Add recording delete API
* Re-organize recordings apis
* Fix import
* Consolidate query types
* Add media sync API endpoint (#21526)
* add media cleanup functions
* add endpoint
* remove scheduled sync recordings from cleanup
* move to utils dir
* tweak import
* remove sync_recordings and add config migrator
* remove sync_recordings
* docs
* remove key
* clean up docs
* docs fix
* docs tweak
* Media sync API refactor and UI (#21542)
* generic job infrastructure
* types and dispatcher changes for jobs
* save data in memory only for completed jobs
* implement media sync job and endpoints
* change logs to debug
* websocket hook and types
* frontend
* i18n
* docs tweaks
* endpoint descriptions
* tweak docs
* use same logging pattern in sync_recordings as the other sync functions (#21625)
* Fix incorrect counting in sync_recordings (#21626)
* Update go2rtc to v1.9.13 (#21648)
Co-authored-by: Eugeny Tulupov <eugeny.tulupov@spirent.com>
* Refactor Time-Lapse Export (#21668)
* refactor time lapse creation to be a separate API call with ability to pass arbitrary ffmpeg args
* Add CPU fallback
* Optimize empty directory cleanup for recordings (#21695)
The previous empty directory cleanup did a full recursive directory
walk, which can be extremely slow. This new implementation only removes
directories which have a chance of being empty due to a recent file
deletion.
* Implement llama.cpp GenAI Provider (#21690)
* Implement llama.cpp GenAI Provider
* Add docs
* Update links
* Fix broken mqtt links
* Fix more broken anchors
* Remove parents in remove_empty_directories (#21726)
The original implementation did a full directory tree walk to find and remove
empty directories, so this implementation should remove the parents as well,
like the original did.
* Implement LLM Chat API with tool calling support (#21731)
* Implement initial tools definiton APIs
* Add initial chat completion API with tool support
* Implement other providers
* Cleanup
* Offline preview image (#21752)
* use latest preview frame for latest image when camera is offline
* remove frame extraction logic
* tests
* frontend
* add description to api endpoint
* Update to ROCm 7.2.0 (#21753)
* Update to ROCm 7.2.0
* ROCm now works properly with JinaV1
* Arcface has compilation error
* Add live context tool to LLM (#21754)
* Add live context tool
* Improve handling of images in request
* Improve prompt caching
* Add networking options for configuring listening ports (#21779)
* feat: add X-Frame-Time when returning snapshot (#21932)
Co-authored-by: Florent MORICONI <170678386+fmcloudconsulting@users.noreply.github.com>
* Improve jsmpeg player websocket handling (#21943)
* improve jsmpeg player websocket handling
prevent websocket console messages from appearing when player is destroyed
* reformat files after ruff upgrade
* Allow API Events to be Detections or Alerts, depending on the Event Label (#21923)
* - API created events will be alerts OR detections, depending on the event label, defaulting to alerts
- Indefinite API events will extend the recording segment until those events are ended
- API event start time is the actual start time, instead of having a pre-buffer of record.event_pre_capture
* Instead of checking for indefinite events on a camera before deciding if we should end the segment, only update last_detection_time and last_alert_time if frame_time is greater, which should have the same effect
* Add the ability to set a pre_capture number of seconds when creating a manual event via the API. Default behavior unchanged
* Remove unnecessary _publish_segment_start() call
* Formatting
* handle last_alert_time or last_detection_time being None when checking them against the frame_time
* comment manual_info["label"].split(": ")[0] for clarity
* ffmpeg Preview Segment Optimization for "high" and "very_high" (#21996)
* Introduce qmax parameter for ffmpeg preview encoding
Added PREVIEW_QMAX_PARAM to control ffmpeg encoding quality.
* formatting
* Fix spacing in qmax parameters for preview quality
* Adapt to new Gemini format
* Fix frame time access
* Remove exceptions
* Cleanup
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Co-authored-by: tigattack <10629864+tigattack@users.noreply.github.com>
Co-authored-by: Andrew Roberts <adroberts@gmail.com>
Co-authored-by: Eugeny Tulupov <zhekka3@gmail.com>
Co-authored-by: Eugeny Tulupov <eugeny.tulupov@spirent.com>
Co-authored-by: John Shaw <1753078+johnshaw@users.noreply.github.com>
Co-authored-by: Eric Work <work.eric@gmail.com>
Co-authored-by: FL42 <46161216+fl42@users.noreply.github.com>
Co-authored-by: Florent MORICONI <170678386+fmcloudconsulting@users.noreply.github.com>
Co-authored-by: nulledy <254504350+nulledy@users.noreply.github.com>
* ensure viewer roles are available in create user dialog
* admin-only endpoint to return unmaksed camera paths and go2rtc streams
* remove camera edit dropdown
pushing camera editing from the UI to 0.18
* clean up camera edit form
* rename component for clarity
CameraSettingsView is now CameraReviewSettingsView
* Catch case where user requsts clip for time that has no recordings
* ensure emergency cleanup also sets has_clip on overlapping events
improves https://github.com/blakeblackshear/frigate/discussions/20945
* use debug log instead of info
* update docs to recommend tmpfs
* improve display of in-progress events in explore tracking details
* improve seeking logic in tracking details
mimic the logic of DynamicVideoController
* only use ffprobe for duration to avoid blocking
fixes https://github.com/blakeblackshear/frigate/discussions/20737#discussioncomment-14999869
* Revert "only use ffprobe for duration to avoid blocking"
This reverts commit 8b15078005.
* update readme to link to object detector docs
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* feat: add zones friendly name
* fix: fix the issue where the input field was empty when there was no friendly_name
* chore: fix the issue where the friendly name would replace spaces with underscores
* docs: update zones docs
* Update web/src/components/settings/ZoneEditPane.tsx
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Add friendly_name option for zone configuration
Added optional friendly name for zones in configuration.
* fix: fix the logical error in the null/empty check for the polygons parameter
* fix: remove the toast name for zones will use the friendly_name instead
* docs: remove emoji tips
* revert: revert zones doc ui tips
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* feat: add friendly zone names to tracking details and lifecycle item descriptions
* chore: lint fix
* refactor: add friendly zone names to timeline entries and clean up unused code
* refactor: add formatList
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* camera wizard input mobile font zooming
* ensure the selected page is visible when navigating via url on mobile
* Filter detail stream to only show items from within the review item
* remove incorrect classes causing extra scroll in detail stream
* change button label
* fix mobile menu button highlight issue
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* fetch more from ffprobe
* add detailed param to ffprobe endpoint
* add dots variant to step indicator
* add classname
* tweak colors for dark mode to match figma
* add step 1 form
* add helper function for ffmpeg snapshot
* add go2rtc stream add and ffprobe snapshot endpoints
* add camera image and stream details on successful test
* step 1 tweaks
* step 2 and i18n
* types
* step 1 and 2 tweaks
* add wizard to camera settings view
* add data unit i18n keys
* restream tweak
* fix type
* implement rough idea for step 3
* add api endpoint to delete stream from go2rtc
* add main wizard dialog component
* extract logic for friendly_name and use in wizard
* add i18n and popover for brand url
* add camera name to top
* consolidate validation logic
* prevent dialog from closing when clicking outside
* center camera name on mobile
* add help/docs link popovers
* keep spaces in friendly name
* add stream details to overlay like stats in liveplayer
* add validation results pane to step 3
* ensure test is invalidated if stream is changed
* only display validation results and enable save button if all streams have been tested
* tweaks
* normalize camera name to lower case and improve hash generation
* move wizard to subfolder
* tweaks
* match look of camera edit form to wizard
* move wizard and edit form to its own component
* move enabled/disabled switch to management section
* clean up
* fixes
* fix mobile
* refactor with sidebar and mobile page
* sidebar spacing and color tweaks
* layout tweaks
* move camera switch button to header
* improve mobile
* remove back button on mobile page header
* mobile fixes
* remove debug
* don't use mobilepage
* more mobile tweaks
* use mobile page for components
* add optional actions to mobile page header for top right buttons
* fix alignment
* use page toggle
* tweaks
* sidebar inset tweaks
* move triggers to notifications sub menu
* consistency
* fix padding
* more padding fixes
* navigate history
* update config for roles and add validator
* ensure admin and viewer are never overridden
* add class method to user to retrieve all allowed cameras
* enforce config roles in auth api endpoints
* add camera access api dependency functions
* protect review endpoints
* protect preview endpoints
* rename param name for better fastapi injection matching
* remove unneeded
* protect export endpoints
* protect event endpoints
* protect media endpoints
* update auth hook for allowed cameras
* update default app view
* ensure anonymous user always returns all cameras
* limit cameras in explore
* cameras is already a list
* limit cameras in review/history
* limit cameras in live view
* limit cameras in camera groups
* only show face library and classification in sidebar for admin
* remove check in delete reviews
since admin role is required, no need to check camera access. fixes failing test
* pass request with camera access for tests
* more async
* camera access tests
* fix proxy auth tests
* allowed cameras for review tests
* combine event tests and refactor for camera access
* fix post validation for roles
* don't limit roles in create user dialog
* fix triggers endpoints
no need to run require camera access dep since the required role is admin
* fix type
* create and edit role dialogs
* delete role dialog
* fix role change dialog
* update settings view for roles
* i18n changes
* minor spacing tweaks
* docs
* use badges and camera name label component
* clarify docs
* display all cameras badge for admin and viewer
* i18n fix
* use validator to prevent reserved and empty roles from being assigned
* split users and roles into separate tabs in settings
* tweak docs
* clarify docs
* change icon
* don't memoize roles
always recalculate on component render
* refactor: Refactor camera nickname
* fix: fix cameraNameLabel visually
* chore: The Explore search function also displays the Camera's nickname in English
* chore: add mobile page camera nickname
* feat: webpush support camera nickname
* fix: fix storage camera name is null
* chore: fix review detail and context menu camera nickname
* chore: fix use-stats and notification setting camera nickname
* fix: fix stats camera if not nickname need capitalize
* fix: fix debug page open camera web ui i18n and camera nickname support
* fix: fix camera metrics not use nickname
* refactor: refactor use-camera-nickname hook.
* semantic trigger test
* database and model
* config
* embeddings maintainer and trigger post-processor
* api to create, edit, delete triggers
* frontend and i18n keys
* use thumbnail and description for trigger types
* image picker tweaks
* initial sync
* thumbnail file management
* clean up logs and use saved thumbnail on frontend
* publish mqtt messages
* webpush changes to enable trigger notifications
* add enabled switch
* add triggers from explore
* renaming and deletion fixes
* fix typing
* UI updates and add last triggering event time and link
* log exception instead of return in endpoint
* highlight entry in UI when triggered
* save and delete thumbnails directly
* remove alert action for now and add descriptions
* tweaks
* clean up
* fix types
* docs
* docs tweaks
* docs
* reuse enum
* Add ability to update Frigate+ model to latest
* UI tweaks
* further UI tweaks
* UI tweaks: add width and height, fix select
* Add placeholder while API call in progress
* Fix Frigate+ enabled check
* Fix config change lost when reloading page
* Add persistent message requiring restart
* Drop down supported detectors and dimensions
* Add width and height to display
* Update FrigatePlusSettingsView.tsx
* Temp fix for Codespaces not loading
* Add i18n, format
* remove unneeded brackets
* missing colon
* Revert "Temp fix for Codespaces not loading"
This reverts commit 75b19674ce.
* Ensure doesn't fail due to missing dir
* Remove redundant settings from tabs
* Adjust selection method for mobile
* Fix button descendent error
* Ensure train is option on mobile
* Cleanup face images
* Cleanup
* db migration
* db model
* assign admin role on password reset
* add role to jwt and api responses
* don't restrict api access for admins yet
* use json response
* frontend auth context
* update auth form for profile endpoint
* add access denied page
* add protected routes
* auth hook
* dialogs
* user settings view
* restrict viewer access to settings
* restrict camera functions for viewer role
* add password dialog to account menu
* spacing tweak
* migrator default to admin
* escape quotes in migrator
* ui tweaks
* tweaks
* colors
* colors
* fix merge conflict
* fix icons
* add api layer enforcement
* ui tweaks
* fix error message
* debug
* clean up
* remove print
* guard apis for admin only
* fix tests
* fix review tests
* use correct error responses from api in toasts
* add role to account menu
* config options
* metrics
* stop and restart ffmpeg processes
* dispatcher
* frontend websocket
* buttons for testing
* don't recreate log pipe
* add/remove cam from birdseye when enabling/disabling
* end all objects and send empty camera activity
* enable/disable switch in ui
* disable buttons when camera is disabled
* use enabled_in_config for some frontend checks
* tweaks
* handle settings pane with disabled cameras
* frontend tweaks
* change to debug log
* mqtt docs
* tweak
* ensure all ffmpeg processes are initially started
* clean up
* use zmq
* remove camera metrics
* remove camera metrics
* tweaks
* frontend tweaks
* add notification cooldown
* cooldown docs
* show alert box when notifications are used in an insecure context
* add ability to suspend notifications from dashboard context menu
* config file changes
* config migrator
* stream selection on single camera live view
* camera streaming settings dialog
* manage persistent group streaming settings
* apply streaming settings in camera groups
* add ability to clear all streaming settings from settings
* docs
* update reference config
* fixes
* clarify docs
* use first stream as default in dialog
* ensure still image is visible after switching stream type to none
* docs
* clarify docs
* add ability to continue playing stream in background
* fix props
* put stream selection inside dropdown on desktop
* add capabilities to live mode hook
* live context menu component
* resize observer: only return new dimensions if they've actually changed
* pass volume prop to players
* fix slider bug, https://github.com/shadcn-ui/ui/issues/1448
* update react-grid-layout
* prevent animated transitions on draggable grid layout
* add context menu to dashboards
* use provider
* streaming dialog from context menu
* docs
* add jsmpeg warning to context menu
* audio and two way talk indicators in single camera view
* add link to debug view
* don't use hook
* create manual events from live camera view
* maintain grow classes on grid items
* fix initial volume state on default dashboard
* fix pointer events causing context menu to end up underneath image on iOS
* mobile drawer tweaks
* stream stats
* show settings menu for non-restreamed cameras
* consistent settings icon
* tweaks
* optional stats to fix birdseye player
* add toaster to live camera view
* fix crash on initial save in streaming dialog
* don't require restreaming for context menu streaming settings
* add debug view to context menu
* stats fixes
* update docs
* always show stream info when restreamed
* update camera streaming dialog
* make note of no h265 support for webrtc
* docs clarity
* ensure docs show streams as a dict
* docs clarity
* fix css file
* tweaks
* Handle Frigate+ submitted case
* Add search settings and rename general to ui settings
* Add platform aware sheet component
* use two columns on mobile view
* Add cameras page to more filters
* clean up search settings view
* Add time range to side filter
* better match with ui settings
* fix icon size
* use two columns on mobile view
* clean up search settings view
* Add zones and saving logic
* Add all filters to side panel
* better match with ui settings
* fix icon size
* Fix mobile fitler page
* Fix embeddings access
* Cleanup
* Fix scroll
* fix double scrollbars and add separators on mobile too
* two columns on mobile
* italics for emphasis
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Camera settings view for alerts/detections
* flxes, beautifying, zone renaming, clean up
* replace underscores with spaces in zone names
* replace underscores with spaces in labels
* reload the window on 401
* backend apis for auth
* add login page
* re-enable web linter
* fix login page routing
* bypass csrf for internal auth endpoint
* disable healthcheck in devcontainer target
* include login page in vite build
* redirect to login page on 401
* implement config for users and settings
* implement JWT actual secret
* add brute force protection on login
* add support for redirecting from auth failures on api calls
* return location for redirect
* default cookie name should pass regex test
* set hash iterations to current OWASP recommendation
* move users to database instead of config
* config option to reset admin password on startup
* user management UI
* check for deleted user on refresh
* validate username and fixes
* remove password constraint
* cleanup
* fix user check on refresh
* web fixes
* implement auth via new external port
* use x-forwarded-for to rate limit login attempts by ip
* implement logout and profile
* fixes
* lint fixes
* add support for user passthru from upstream proxies
* add support for specifying a logout url
* add documentation
* Update docs/docs/configuration/authentication.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Update docs/docs/configuration/authentication.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* use prettier-plugin-tailwindcss to keep class names organized
* use prettierrc file to ensure formatting on save works with vscode
* classname reorder with prettier-plugin-tailwindcss