mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-12 09:42:47 +03:00
Full UI configuration (#22151)
* 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
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"label": "Global Audio events configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable audio events."
|
||||
},
|
||||
"max_not_heard": {
|
||||
"label": "Seconds of not hearing the type of audio to end the event."
|
||||
},
|
||||
"min_volume": {
|
||||
"label": "Min volume required to run audio detection."
|
||||
},
|
||||
"listen": {
|
||||
"label": "Audio to listen for."
|
||||
},
|
||||
"filters": {
|
||||
"label": "Audio filters."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of audio detection."
|
||||
},
|
||||
"num_threads": {
|
||||
"label": "Number of detection threads"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"label": "Audio transcription config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable audio transcription."
|
||||
},
|
||||
"language": {
|
||||
"label": "Language abbreviation to use for audio event transcription/translation."
|
||||
},
|
||||
"device": {
|
||||
"label": "The device used for license plate recognition."
|
||||
},
|
||||
"model_size": {
|
||||
"label": "The size of the embeddings model used."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of camera."
|
||||
},
|
||||
"live_enabled": {
|
||||
"label": "Enable live transcriptions."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"label": "Auth configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable authentication"
|
||||
},
|
||||
"reset_admin_password": {
|
||||
"label": "Reset the admin password on startup"
|
||||
},
|
||||
"cookie_name": {
|
||||
"label": "Name for jwt token cookie"
|
||||
},
|
||||
"cookie_secure": {
|
||||
"label": "Set secure flag on cookie"
|
||||
},
|
||||
"session_length": {
|
||||
"label": "Session length for jwt session tokens"
|
||||
},
|
||||
"refresh_time": {
|
||||
"label": "Refresh the session if it is going to expire in this many seconds"
|
||||
},
|
||||
"failed_login_rate_limit": {
|
||||
"label": "Rate limits for failed login attempts."
|
||||
},
|
||||
"trusted_proxies": {
|
||||
"label": "Trusted proxies for determining IP address to rate limit"
|
||||
},
|
||||
"hash_iterations": {
|
||||
"label": "Password hash iterations"
|
||||
},
|
||||
"roles": {
|
||||
"label": "Role to camera mappings. Empty list grants access to all cameras."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
"label": "Birdseye configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable birdseye view."
|
||||
},
|
||||
"mode": {
|
||||
"label": "Tracking mode."
|
||||
},
|
||||
"restream": {
|
||||
"label": "Restream birdseye via RTSP."
|
||||
},
|
||||
"width": {
|
||||
"label": "Birdseye width."
|
||||
},
|
||||
"height": {
|
||||
"label": "Birdseye height."
|
||||
},
|
||||
"quality": {
|
||||
"label": "Encoding quality."
|
||||
},
|
||||
"inactivity_threshold": {
|
||||
"label": "Birdseye Inactivity Threshold"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Birdseye Layout Config",
|
||||
"properties": {
|
||||
"scaling_factor": {
|
||||
"label": "Birdseye Scaling Factor"
|
||||
},
|
||||
"max_cameras": {
|
||||
"label": "Max cameras"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"label": "Camera group configuration",
|
||||
"properties": {
|
||||
"cameras": {
|
||||
"label": "List of cameras in this group."
|
||||
},
|
||||
"icon": {
|
||||
"label": "Icon that represents camera group."
|
||||
},
|
||||
"order": {
|
||||
"label": "Sort order for group."
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,58 +0,0 @@
|
||||
{
|
||||
"label": "Object classification config.",
|
||||
"properties": {
|
||||
"bird": {
|
||||
"label": "Bird classification config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable bird classification."
|
||||
},
|
||||
"threshold": {
|
||||
"label": "Minimum classification score required to be considered a match."
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom": {
|
||||
"label": "Custom Classification Model Configs.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable running the model."
|
||||
},
|
||||
"name": {
|
||||
"label": "Name of classification model."
|
||||
},
|
||||
"threshold": {
|
||||
"label": "Classification score threshold to change the state."
|
||||
},
|
||||
"object_config": {
|
||||
"properties": {
|
||||
"objects": {
|
||||
"label": "Object types to classify."
|
||||
},
|
||||
"classification_type": {
|
||||
"label": "Type of classification that is applied."
|
||||
}
|
||||
}
|
||||
},
|
||||
"state_config": {
|
||||
"properties": {
|
||||
"cameras": {
|
||||
"label": "Cameras to run classification on.",
|
||||
"properties": {
|
||||
"crop": {
|
||||
"label": "Crop of image frame on this camera to run classification on."
|
||||
}
|
||||
}
|
||||
},
|
||||
"motion": {
|
||||
"label": "If classification should be run when motion is detected in the crop."
|
||||
},
|
||||
"interval": {
|
||||
"label": "Interval to run classification on in seconds."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"label": "Database configuration.",
|
||||
"properties": {
|
||||
"path": {
|
||||
"label": "Database path."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
"label": "Global object tracking configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Detection Enabled."
|
||||
},
|
||||
"height": {
|
||||
"label": "Height of the stream for the detect role."
|
||||
},
|
||||
"width": {
|
||||
"label": "Width of the stream for the detect role."
|
||||
},
|
||||
"fps": {
|
||||
"label": "Number of frames per second to process through detection."
|
||||
},
|
||||
"min_initialized": {
|
||||
"label": "Minimum number of consecutive hits for an object to be initialized by the tracker."
|
||||
},
|
||||
"max_disappeared": {
|
||||
"label": "Maximum number of frames the object can disappear before detection ends."
|
||||
},
|
||||
"stationary": {
|
||||
"label": "Stationary objects config.",
|
||||
"properties": {
|
||||
"interval": {
|
||||
"label": "Frame interval for checking stationary objects."
|
||||
},
|
||||
"threshold": {
|
||||
"label": "Number of frames without a position change for an object to be considered stationary"
|
||||
},
|
||||
"max_frames": {
|
||||
"label": "Max frames for stationary objects.",
|
||||
"properties": {
|
||||
"default": {
|
||||
"label": "Default max frames."
|
||||
},
|
||||
"objects": {
|
||||
"label": "Object specific max frames."
|
||||
}
|
||||
}
|
||||
},
|
||||
"classifier": {
|
||||
"label": "Enable visual classifier for determing if objects with jittery bounding boxes are stationary."
|
||||
}
|
||||
}
|
||||
},
|
||||
"annotation_offset": {
|
||||
"label": "Milliseconds to offset detect annotations by."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"label": "Detector hardware configuration.",
|
||||
"properties": {
|
||||
"type": {
|
||||
"label": "Detector Type"
|
||||
},
|
||||
"model": {
|
||||
"label": "Detector specific model configuration."
|
||||
},
|
||||
"model_path": {
|
||||
"label": "Detector specific model path."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"label": "Frigate environment variables."
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"label": "Face recognition config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable face recognition."
|
||||
},
|
||||
"model_size": {
|
||||
"label": "The size of the embeddings model used."
|
||||
},
|
||||
"unknown_score": {
|
||||
"label": "Minimum face distance score required to be marked as a potential match."
|
||||
},
|
||||
"detection_threshold": {
|
||||
"label": "Minimum face detection score required to be considered a face."
|
||||
},
|
||||
"recognition_threshold": {
|
||||
"label": "Minimum face distance score required to be considered a match."
|
||||
},
|
||||
"min_area": {
|
||||
"label": "Min area of face box to consider running face recognition."
|
||||
},
|
||||
"min_faces": {
|
||||
"label": "Min face recognitions for the sub label to be applied to the person object."
|
||||
},
|
||||
"save_attempts": {
|
||||
"label": "Number of face attempts to save in the recent recognitions tab."
|
||||
},
|
||||
"blur_confidence_filter": {
|
||||
"label": "Apply blur quality filter to face confidence."
|
||||
},
|
||||
"device": {
|
||||
"label": "The device key to use for face recognition.",
|
||||
"description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"label": "Global FFmpeg configuration.",
|
||||
"properties": {
|
||||
"path": {
|
||||
"label": "FFmpeg path"
|
||||
},
|
||||
"global_args": {
|
||||
"label": "Global FFmpeg arguments."
|
||||
},
|
||||
"hwaccel_args": {
|
||||
"label": "FFmpeg hardware acceleration arguments."
|
||||
},
|
||||
"input_args": {
|
||||
"label": "FFmpeg input arguments."
|
||||
},
|
||||
"output_args": {
|
||||
"label": "FFmpeg output arguments per role.",
|
||||
"properties": {
|
||||
"detect": {
|
||||
"label": "Detect role FFmpeg output arguments."
|
||||
},
|
||||
"record": {
|
||||
"label": "Record role FFmpeg output arguments."
|
||||
}
|
||||
}
|
||||
},
|
||||
"retry_interval": {
|
||||
"label": "Time in seconds to wait before FFmpeg retries connecting to the camera."
|
||||
},
|
||||
"apple_compatibility": {
|
||||
"label": "Set tag on HEVC (H.265) recording stream to improve compatibility with Apple players."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"label": "Generative AI configuration.",
|
||||
"properties": {
|
||||
"api_key": {
|
||||
"label": "Provider API key."
|
||||
},
|
||||
"base_url": {
|
||||
"label": "Provider base url."
|
||||
},
|
||||
"model": {
|
||||
"label": "GenAI model."
|
||||
},
|
||||
"provider": {
|
||||
"label": "GenAI provider."
|
||||
},
|
||||
"provider_options": {
|
||||
"label": "GenAI Provider extra options."
|
||||
},
|
||||
"runtime_options": {
|
||||
"label": "Options to pass during inference calls."
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"label": "Global restream configuration."
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"audio": {
|
||||
"global": {
|
||||
"detection": "Global Detection",
|
||||
"sensitivity": "Global Sensitivity"
|
||||
},
|
||||
"cameras": {
|
||||
"detection": "Detection",
|
||||
"sensitivity": "Sensitivity"
|
||||
}
|
||||
},
|
||||
"timestamp_style": {
|
||||
"global": {
|
||||
"appearance": "Global Appearance"
|
||||
},
|
||||
"cameras": {
|
||||
"appearance": "Appearance"
|
||||
}
|
||||
},
|
||||
"motion": {
|
||||
"global": {
|
||||
"sensitivity": "Global Sensitivity",
|
||||
"algorithm": "Global Algorithm"
|
||||
},
|
||||
"cameras": {
|
||||
"sensitivity": "Sensitivity",
|
||||
"algorithm": "Algorithm"
|
||||
}
|
||||
},
|
||||
"snapshots": {
|
||||
"global": {
|
||||
"display": "Global Display"
|
||||
},
|
||||
"cameras": {
|
||||
"display": "Display"
|
||||
}
|
||||
},
|
||||
"detect": {
|
||||
"global": {
|
||||
"resolution": "Global Resolution",
|
||||
"tracking": "Global Tracking"
|
||||
},
|
||||
"cameras": {
|
||||
"resolution": "Resolution",
|
||||
"tracking": "Tracking"
|
||||
}
|
||||
},
|
||||
"objects": {
|
||||
"global": {
|
||||
"tracking": "Global Tracking",
|
||||
"filtering": "Global Filtering"
|
||||
},
|
||||
"cameras": {
|
||||
"tracking": "Tracking",
|
||||
"filtering": "Filtering"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"global": {
|
||||
"retention": "Global Retention",
|
||||
"events": "Global Events"
|
||||
},
|
||||
"cameras": {
|
||||
"retention": "Retention",
|
||||
"events": "Events"
|
||||
}
|
||||
},
|
||||
"ffmpeg": {
|
||||
"cameras": {
|
||||
"cameraFfmpeg": "Camera-specific FFmpeg arguments"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"label": "Live playback settings.",
|
||||
"properties": {
|
||||
"streams": {
|
||||
"label": "Friendly names and restream names to use for live view."
|
||||
},
|
||||
"height": {
|
||||
"label": "Live camera view height"
|
||||
},
|
||||
"quality": {
|
||||
"label": "Live camera view quality"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"label": "Logging configuration.",
|
||||
"properties": {
|
||||
"default": {
|
||||
"label": "Default logging level."
|
||||
},
|
||||
"logs": {
|
||||
"label": "Log level for specified processes."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"label": "License Plate recognition config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable license plate recognition."
|
||||
},
|
||||
"model_size": {
|
||||
"label": "The size of the embeddings model used."
|
||||
},
|
||||
"detection_threshold": {
|
||||
"label": "License plate object confidence score required to begin running recognition."
|
||||
},
|
||||
"min_area": {
|
||||
"label": "Minimum area of license plate to begin running recognition."
|
||||
},
|
||||
"recognition_threshold": {
|
||||
"label": "Recognition confidence score required to add the plate to the object as a sub label."
|
||||
},
|
||||
"min_plate_length": {
|
||||
"label": "Minimum number of characters a license plate must have to be added to the object as a sub label."
|
||||
},
|
||||
"format": {
|
||||
"label": "Regular expression for the expected format of license plate."
|
||||
},
|
||||
"match_distance": {
|
||||
"label": "Allow this number of missing/incorrect characters to still cause a detected plate to match a known plate."
|
||||
},
|
||||
"known_plates": {
|
||||
"label": "Known plates to track (strings or regular expressions)."
|
||||
},
|
||||
"enhancement": {
|
||||
"label": "Amount of contrast adjustment and denoising to apply to license plate images before recognition."
|
||||
},
|
||||
"debug_save_plates": {
|
||||
"label": "Save plates captured for LPR for debugging purposes."
|
||||
},
|
||||
"device": {
|
||||
"label": "The device key to use for LPR.",
|
||||
"description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
|
||||
},
|
||||
"replace_rules": {
|
||||
"label": "List of regex replacement rules for normalizing detected plates. Each rule has 'pattern' and 'replacement'."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"label": "Detection model configuration.",
|
||||
"properties": {
|
||||
"path": {
|
||||
"label": "Custom Object detection model path."
|
||||
},
|
||||
"labelmap_path": {
|
||||
"label": "Label map for custom object detector."
|
||||
},
|
||||
"width": {
|
||||
"label": "Object detection model input width."
|
||||
},
|
||||
"height": {
|
||||
"label": "Object detection model input height."
|
||||
},
|
||||
"labelmap": {
|
||||
"label": "Labelmap customization."
|
||||
},
|
||||
"attributes_map": {
|
||||
"label": "Map of object labels to their attribute labels."
|
||||
},
|
||||
"input_tensor": {
|
||||
"label": "Model Input Tensor Shape"
|
||||
},
|
||||
"input_pixel_format": {
|
||||
"label": "Model Input Pixel Color Format"
|
||||
},
|
||||
"input_dtype": {
|
||||
"label": "Model Input D Type"
|
||||
},
|
||||
"model_type": {
|
||||
"label": "Object Detection Model Type"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"label": "Global motion detection configuration."
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"label": "MQTT configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable MQTT Communication."
|
||||
},
|
||||
"host": {
|
||||
"label": "MQTT Host"
|
||||
},
|
||||
"port": {
|
||||
"label": "MQTT Port"
|
||||
},
|
||||
"topic_prefix": {
|
||||
"label": "MQTT Topic Prefix"
|
||||
},
|
||||
"client_id": {
|
||||
"label": "MQTT Client ID"
|
||||
},
|
||||
"stats_interval": {
|
||||
"label": "MQTT Camera Stats Interval"
|
||||
},
|
||||
"user": {
|
||||
"label": "MQTT Username"
|
||||
},
|
||||
"password": {
|
||||
"label": "MQTT Password"
|
||||
},
|
||||
"tls_ca_certs": {
|
||||
"label": "MQTT TLS CA Certificates"
|
||||
},
|
||||
"tls_client_cert": {
|
||||
"label": "MQTT TLS Client Certificate"
|
||||
},
|
||||
"tls_client_key": {
|
||||
"label": "MQTT TLS Client Key"
|
||||
},
|
||||
"tls_insecure": {
|
||||
"label": "MQTT TLS Insecure"
|
||||
},
|
||||
"qos": {
|
||||
"label": "MQTT QoS"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"label": "Networking configuration",
|
||||
"properties": {
|
||||
"ipv6": {
|
||||
"label": "IPv6 configuration",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable IPv6 for port 5000 and/or 8971"
|
||||
}
|
||||
}
|
||||
},
|
||||
"listen": {
|
||||
"label": "Listening ports configuration",
|
||||
"properties": {
|
||||
"internal": {
|
||||
"label": "Internal listening port for Frigate"
|
||||
},
|
||||
"external": {
|
||||
"label": "External listening port for Frigate"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"label": "Global notification configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable notifications"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email required for push."
|
||||
},
|
||||
"cooldown": {
|
||||
"label": "Cooldown period for notifications (time in seconds)."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of notifications."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
{
|
||||
"label": "Global object configuration.",
|
||||
"properties": {
|
||||
"track": {
|
||||
"label": "Objects to track."
|
||||
},
|
||||
"filters": {
|
||||
"label": "Object filters.",
|
||||
"properties": {
|
||||
"min_area": {
|
||||
"label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
|
||||
},
|
||||
"max_area": {
|
||||
"label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
|
||||
},
|
||||
"min_ratio": {
|
||||
"label": "Minimum ratio of bounding box's width/height for object to be counted."
|
||||
},
|
||||
"max_ratio": {
|
||||
"label": "Maximum ratio of bounding box's width/height for object to be counted."
|
||||
},
|
||||
"threshold": {
|
||||
"label": "Average detection confidence threshold for object to be counted."
|
||||
},
|
||||
"min_score": {
|
||||
"label": "Minimum detection confidence for object to be counted."
|
||||
},
|
||||
"mask": {
|
||||
"label": "Detection area polygon mask for this filter configuration."
|
||||
}
|
||||
}
|
||||
},
|
||||
"mask": {
|
||||
"label": "Object mask."
|
||||
},
|
||||
"genai": {
|
||||
"label": "Config for using genai to analyze objects.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable GenAI for camera."
|
||||
},
|
||||
"use_snapshot": {
|
||||
"label": "Use snapshots for generating descriptions."
|
||||
},
|
||||
"prompt": {
|
||||
"label": "Default caption prompt."
|
||||
},
|
||||
"object_prompts": {
|
||||
"label": "Object specific prompts."
|
||||
},
|
||||
"objects": {
|
||||
"label": "List of objects to run generative AI for."
|
||||
},
|
||||
"required_zones": {
|
||||
"label": "List of required zones to be entered in order to run generative AI."
|
||||
},
|
||||
"debug_save_thumbnails": {
|
||||
"label": "Save thumbnails sent to generative AI for debugging purposes."
|
||||
},
|
||||
"send_triggers": {
|
||||
"label": "What triggers to use to send frames to generative AI for a tracked object.",
|
||||
"properties": {
|
||||
"tracked_object_end": {
|
||||
"label": "Send once the object is no longer tracked."
|
||||
},
|
||||
"after_significant_updates": {
|
||||
"label": "Send an early request to generative AI when X frames accumulated."
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of generative AI."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"label": "Proxy configuration.",
|
||||
"properties": {
|
||||
"header_map": {
|
||||
"label": "Header mapping definitions for proxy user passing.",
|
||||
"properties": {
|
||||
"user": {
|
||||
"label": "Header name from upstream proxy to identify user."
|
||||
},
|
||||
"role": {
|
||||
"label": "Header name from upstream proxy to identify user role."
|
||||
},
|
||||
"role_map": {
|
||||
"label": "Mapping of Frigate roles to upstream group values. "
|
||||
}
|
||||
}
|
||||
},
|
||||
"logout_url": {
|
||||
"label": "Redirect url for logging out with proxy."
|
||||
},
|
||||
"auth_secret": {
|
||||
"label": "Secret value for proxy authentication."
|
||||
},
|
||||
"default_role": {
|
||||
"label": "Default role for proxy users."
|
||||
},
|
||||
"separator": {
|
||||
"label": "The character used to separate values in a mapped header."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"label": "Global record configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable record on all cameras."
|
||||
},
|
||||
"expire_interval": {
|
||||
"label": "Number of minutes to wait between cleanup runs."
|
||||
},
|
||||
"continuous": {
|
||||
"label": "Continuous recording retention settings.",
|
||||
"properties": {
|
||||
"days": {
|
||||
"label": "Default retention period."
|
||||
}
|
||||
}
|
||||
},
|
||||
"motion": {
|
||||
"label": "Motion recording retention settings.",
|
||||
"properties": {
|
||||
"days": {
|
||||
"label": "Default retention period."
|
||||
}
|
||||
}
|
||||
},
|
||||
"detections": {
|
||||
"label": "Detection specific retention settings.",
|
||||
"properties": {
|
||||
"pre_capture": {
|
||||
"label": "Seconds to retain before event starts."
|
||||
},
|
||||
"post_capture": {
|
||||
"label": "Seconds to retain after event ends."
|
||||
},
|
||||
"retain": {
|
||||
"label": "Event retention settings.",
|
||||
"properties": {
|
||||
"days": {
|
||||
"label": "Default retention period."
|
||||
},
|
||||
"mode": {
|
||||
"label": "Retain mode."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alerts": {
|
||||
"label": "Alert specific retention settings.",
|
||||
"properties": {
|
||||
"pre_capture": {
|
||||
"label": "Seconds to retain before event starts."
|
||||
},
|
||||
"post_capture": {
|
||||
"label": "Seconds to retain after event ends."
|
||||
},
|
||||
"retain": {
|
||||
"label": "Event retention settings.",
|
||||
"properties": {
|
||||
"days": {
|
||||
"label": "Default retention period."
|
||||
},
|
||||
"mode": {
|
||||
"label": "Retain mode."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"export": {
|
||||
"label": "Recording Export Config",
|
||||
"properties": {
|
||||
"timelapse_args": {
|
||||
"label": "Timelapse Args"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview": {
|
||||
"label": "Recording Preview Config",
|
||||
"properties": {
|
||||
"quality": {
|
||||
"label": "Quality of recording preview."
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of recording."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
"label": "Review configuration.",
|
||||
"properties": {
|
||||
"alerts": {
|
||||
"label": "Review alerts config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable alerts."
|
||||
},
|
||||
"labels": {
|
||||
"label": "Labels to create alerts for."
|
||||
},
|
||||
"required_zones": {
|
||||
"label": "List of required zones to be entered in order to save the event as an alert."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of alerts."
|
||||
},
|
||||
"cutoff_time": {
|
||||
"label": "Time to cutoff alerts after no alert-causing activity has occurred."
|
||||
}
|
||||
}
|
||||
},
|
||||
"detections": {
|
||||
"label": "Review detections config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable detections."
|
||||
},
|
||||
"labels": {
|
||||
"label": "Labels to create detections for."
|
||||
},
|
||||
"required_zones": {
|
||||
"label": "List of required zones to be entered in order to save the event as a detection."
|
||||
},
|
||||
"cutoff_time": {
|
||||
"label": "Time to cutoff detection after no detection-causing activity has occurred."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of detections."
|
||||
}
|
||||
}
|
||||
},
|
||||
"genai": {
|
||||
"label": "Review description genai config.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable GenAI descriptions for review items."
|
||||
},
|
||||
"alerts": {
|
||||
"label": "Enable GenAI for alerts."
|
||||
},
|
||||
"detections": {
|
||||
"label": "Enable GenAI for detections."
|
||||
},
|
||||
"additional_concerns": {
|
||||
"label": "Additional concerns that GenAI should make note of on this camera."
|
||||
},
|
||||
"debug_save_thumbnails": {
|
||||
"label": "Save thumbnails sent to generative AI for debugging purposes."
|
||||
},
|
||||
"enabled_in_config": {
|
||||
"label": "Keep track of original state of generative AI."
|
||||
},
|
||||
"preferred_language": {
|
||||
"label": "Preferred language for GenAI Response"
|
||||
},
|
||||
"activity_context_prompt": {
|
||||
"label": "Custom activity context prompt defining normal activity patterns for this property."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"label": "If Frigate should be started in safe mode."
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"label": "Semantic search configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable semantic search."
|
||||
},
|
||||
"reindex": {
|
||||
"label": "Reindex all tracked objects on startup."
|
||||
},
|
||||
"model": {
|
||||
"label": "The CLIP model to use for semantic search."
|
||||
},
|
||||
"model_size": {
|
||||
"label": "The size of the embeddings model used."
|
||||
},
|
||||
"device": {
|
||||
"label": "The device key to use for semantic search.",
|
||||
"description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
"label": "Global snapshots configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Snapshots enabled."
|
||||
},
|
||||
"clean_copy": {
|
||||
"label": "Create a clean copy of the snapshot image."
|
||||
},
|
||||
"timestamp": {
|
||||
"label": "Add a timestamp overlay on the snapshot."
|
||||
},
|
||||
"bounding_box": {
|
||||
"label": "Add a bounding box overlay on the snapshot."
|
||||
},
|
||||
"crop": {
|
||||
"label": "Crop the snapshot to the detected object."
|
||||
},
|
||||
"required_zones": {
|
||||
"label": "List of required zones to be entered in order to save a snapshot."
|
||||
},
|
||||
"height": {
|
||||
"label": "Snapshot image height."
|
||||
},
|
||||
"retain": {
|
||||
"label": "Snapshot retention.",
|
||||
"properties": {
|
||||
"default": {
|
||||
"label": "Default retention period."
|
||||
},
|
||||
"mode": {
|
||||
"label": "Retain mode."
|
||||
},
|
||||
"objects": {
|
||||
"label": "Object retention period."
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Quality of the encoded jpeg (0-100)."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"label": "Telemetry configuration.",
|
||||
"properties": {
|
||||
"network_interfaces": {
|
||||
"label": "Enabled network interfaces for bandwidth calculation."
|
||||
},
|
||||
"stats": {
|
||||
"label": "System Stats Configuration",
|
||||
"properties": {
|
||||
"amd_gpu_stats": {
|
||||
"label": "Enable AMD GPU stats."
|
||||
},
|
||||
"intel_gpu_stats": {
|
||||
"label": "Enable Intel GPU stats."
|
||||
},
|
||||
"network_bandwidth": {
|
||||
"label": "Enable network bandwidth for ffmpeg processes."
|
||||
},
|
||||
"intel_gpu_device": {
|
||||
"label": "Define the device to use when gathering SR-IOV stats."
|
||||
}
|
||||
}
|
||||
},
|
||||
"version_check": {
|
||||
"label": "Enable latest version check."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"label": "Global timestamp style configuration.",
|
||||
"properties": {
|
||||
"position": {
|
||||
"label": "Timestamp position."
|
||||
},
|
||||
"format": {
|
||||
"label": "Timestamp format."
|
||||
},
|
||||
"color": {
|
||||
"label": "Timestamp color.",
|
||||
"properties": {
|
||||
"red": {
|
||||
"label": "Red"
|
||||
},
|
||||
"green": {
|
||||
"label": "Green"
|
||||
},
|
||||
"blue": {
|
||||
"label": "Blue"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thickness": {
|
||||
"label": "Timestamp thickness."
|
||||
},
|
||||
"effect": {
|
||||
"label": "Timestamp effect."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"label": "TLS configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"label": "Enable TLS for port 8971"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"label": "UI configuration.",
|
||||
"properties": {
|
||||
"timezone": {
|
||||
"label": "Override UI timezone."
|
||||
},
|
||||
"time_format": {
|
||||
"label": "Override UI time format."
|
||||
},
|
||||
"date_style": {
|
||||
"label": "Override UI dateStyle."
|
||||
},
|
||||
"time_style": {
|
||||
"label": "Override UI timeStyle."
|
||||
},
|
||||
"unit_system": {
|
||||
"label": "The unit system to use for measurements."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"minimum": "Must be at least {{limit}}",
|
||||
"maximum": "Must be at most {{limit}}",
|
||||
"exclusiveMinimum": "Must be greater than {{limit}}",
|
||||
"exclusiveMaximum": "Must be less than {{limit}}",
|
||||
"minLength": "Must be at least {{limit}} character(s)",
|
||||
"maxLength": "Must be at most {{limit}} character(s)",
|
||||
"minItems": "Must have at least {{limit}} items",
|
||||
"maxItems": "Must have at most {{limit}} items",
|
||||
"pattern": "Invalid format",
|
||||
"required": "This field is required",
|
||||
"type": "Invalid value type",
|
||||
"enum": "Must be one of the allowed values",
|
||||
"const": "Value does not match expected constant",
|
||||
"uniqueItems": "All items must be unique",
|
||||
"format": "Invalid format",
|
||||
"additionalProperties": "Unknown property is not allowed",
|
||||
"oneOf": "Must match exactly one of the allowed schemas",
|
||||
"anyOf": "Must match at least one of the allowed schemas",
|
||||
"proxy": {
|
||||
"header_map": {
|
||||
"roleHeaderRequired": "Role header is required when role mappings are configured."
|
||||
}
|
||||
},
|
||||
"ffmpeg": {
|
||||
"inputs": {
|
||||
"rolesUnique": "Each role can only be assigned to one input stream.",
|
||||
"detectRequired": "At least one input stream must be assigned the 'detect' role.",
|
||||
"hwaccelDetectOnly": "Only the input stream with the detect role can define hardware acceleration arguments."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"label": "Current config version."
|
||||
}
|
||||
Reference in New Issue
Block a user