Merge pull request #63 from kerberos-io/feature/add-feature-flags

feature/add-feature-flags
This commit is contained in:
Cédric Verstraeten
2025-12-09 14:22:50 +01:00
committed by GitHub
4 changed files with 129 additions and 27 deletions

View File

@@ -16,7 +16,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.94.0
version: 0.95.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to

View File

@@ -105,8 +105,12 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
env:
- name: SSO_DOMAIN
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
- name: SSO_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
- name: SSO_FORCE_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
- name: TITLE
value: "{{ .Values.kerberoshub.frontend.title }}"
- name: LOGO_NAME
@@ -128,6 +132,10 @@ spec:
value: "true"
- name: DEMO
value: "true"
- name: MULTI_TENANT
value: "{{ .Values.kerberoshub.frontend.multiTenant }}"
- name: TENANT_BASE_DOMAIN
value: "{{ .Values.kerberoshub.frontend.tenantBaseDomain }}"
# Mqtt (VERNEMQ)
- name: MQTT_PROTOCOL
@@ -140,6 +148,14 @@ spec:
value: "{{ .Values.mqtt.username }}"
- name: MQTT_PASSWORD
value: "{{ .Values.mqtt.password }}"
- name: MQTT_LEGACY_SERVER
value: "{{ .Values.mqtt.legacy.host }}"
- name: MQTT_LEGACY_PORT
value: "{{ .Values.mqtt.legacy.port }}"
# OpenAI
- name: OPENAI_ENABLED
value: "{{ .Values.openai.enabled }}"
# Turn (Pion)
- name: TURN_SERVER
@@ -196,6 +212,10 @@ spec:
value: "{{ .Values.kerberoshub.frontend.mediaTitle }}"
- name: PAGE_MEDIA_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.mediaSubTitle }}"
- name: PAGE_DAY_TITLE
value: "{{ .Values.kerberoshub.frontend.dayTitle }}"
- name: PAGE_DAY_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.daySubTitle }}"
- name: PAGE_DASHBOARD_CPU_USAGE
value: "{{ .Values.kerberoshub.frontend.cpuUsageDescription }}"
- name: PAGE_DASHBOARD_FPS
@@ -230,7 +250,25 @@ spec:
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl5 }}"
- name: CASE_FILTER_ASSIGNEES_DEFAULT
value: "{{ .Values.kerberoshub.frontend.caseFilterAssigneesDefault }}"
# features > general
- name: FEATURE_DARK_MODE
value: "{{ .Values.kerberoshub.frontend.features.darkMode }}"
- name: FEATURE_LANDING_PAGE
value: "{{ .Values.kerberoshub.frontend.features.landingPage }}"
# features > liveview
- name: FEATURE_LIVEVIEW_PAGINATION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.liveview.paginationEnabled }}"
- name: FEATURE_LIVEVIEW_EMPTY_BY_DEFAULT
value: "{{ .Values.kerberoshub.frontend.features.liveview.emptyByDefault }}"
- name: FEATURE_LIVEVIEW_MAX_STREAMS
value: "{{ .Values.kerberoshub.frontend.features.liveview.maxStreams }}"
# features > devices
- name: FEATURE_DEVICES_HIDE_AGENT
value: "{{ .Values.kerberoshub.frontend.features.devices.hideAgent }}"
# features > floorplan
- name: FEATURE_FLOORPLAN_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.floorplan.enabled }}"
@@ -261,7 +299,6 @@ spec:
- name: COLOR_DEVICE_MARKER_BORDER
value: "{{ .Values.kerberoshub.frontend.colorDeviceMarkerBorder }}"
# features > face redaction
- name: FEATURE_FACE_REDACTION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.faceRedaction.enabled }}"
@@ -283,6 +320,15 @@ spec:
value: "{{ .Values.kerberoshub.frontend.features.media.filter.region.enabled }}"
- name: FEATURE_MEDIA_FILTER_SORT_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sort.enabled }}"
- name: FEATURE_MEDIA_FILTER_CATEGORY_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.category.enabled }}"
- name: FEATURE_MEDIA_FILTER_MARKERS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.markers.enabled }}"
- name: FEATURE_MEDIA_FILTER_EVENTS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.events.enabled }}"
- name: FEATURE_MEDIA_FILTER_TAGS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.tags.enabled }}"
- name: MARKERS_NAME
value: "{{ .Values.kerberoshub.frontend.markersName }}"

View File

@@ -330,6 +330,24 @@ spec:
- name: CASE_FILTER_ASSIGNEES_DEFAULT
value: "{{ .Values.kerberoshub.frontend.caseFilterAssigneesDefault }}"
# features > general
- name: FEATURE_DARK_MODE
value: "{{ .Values.kerberoshub.frontend.features.darkMode }}"
- name: FEATURE_LANDING_PAGE
value: "{{ .Values.kerberoshub.frontend.features.landingPage }}"
# features > liveview
- name: FEATURE_LIVEVIEW_PAGINATION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.liveview.paginationEnabled }}"
- name: FEATURE_LIVEVIEW_EMPTY_BY_DEFAULT
value: "{{ .Values.kerberoshub.frontend.features.liveview.emptyByDefault }}"
- name: FEATURE_LIVEVIEW_MAX_STREAMS
value: "{{ .Values.kerberoshub.frontend.features.liveview.maxStreams }}"
# features > devices
- name: FEATURE_DEVICES_HIDE_AGENT
value: "{{ .Values.kerberoshub.frontend.features.devices.hideAgent }}"
# features > floorplan
- name: FEATURE_FLOORPLAN_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.floorplan.enabled }}"
@@ -381,6 +399,15 @@ spec:
value: "{{ .Values.kerberoshub.frontend.features.media.filter.region.enabled }}"
- name: FEATURE_MEDIA_FILTER_SORT_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sort.enabled }}"
- name: FEATURE_MEDIA_FILTER_CATEGORY_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.category.enabled }}"
- name: FEATURE_MEDIA_FILTER_MARKERS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.markers.enabled }}"
- name: FEATURE_MEDIA_FILTER_EVENTS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.events.enabled }}"
- name: FEATURE_MEDIA_FILTER_TAGS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.tags.enabled }}"
- name: MARKERS_NAME
value: "{{ .Values.kerberoshub.frontend.markersName }}"

View File

@@ -181,7 +181,7 @@ kerberoshub:
api:
repository: uugai/hub-api
pullPolicy: IfNotPresent
tag: "v1.6.8"
tag: "v1.7.2"
replicas: 2
jwtSecret: "this-is-a-secret-please-change-to-random-string" # change to a random value, this is for generating JWT tokens.
schema: "https"
@@ -265,7 +265,7 @@ kerberoshub:
frontend:
repository: uugai/hub-frontend
pullPolicy: IfNotPresent
tag: "v1.6.7"
tag: "v1.7.3"
replicas: 2
schema: "https"
url: "yourdomain.com"
@@ -384,28 +384,25 @@ kerberoshub:
navigationLinkUrl5: ""
caseFilterAssigneesDefault: "false"
# Enable or disable specific features and behaviours in the front-end
# Features are grouped per section / page or functionality.
features:
floorplan:
enabled: "true" # Enable or disable floorplan feature 'true' or 'false'
# Custom colors for floor-plans, update the colors of the corresponding device icons to match these
# charts/hub/custom-layout/icons.js
colorDeviceActive: "hsla(131, 31%, 52%, 1)"
colorDeviceInactive: "hsla(0, 3%, 41%, 1)"
colorDeviceIdle: "hsla(47, 86%, 47%, 1)"
colorDeviceMotion: "hsla(2, 58%, 48%, 1)"
colorLiveViewControlActive: "hsla(131, 31%, 52%, 1)" # Color for the live view control icon for an active device
colorLiveViewControlMotion: "hsla(2, 58%, 48%, 1)" # Color for the live view control icon for a device detecting motion, icon is hidden for other states
colorFloorPlanLabelText: "hsla(0, 0%, 100%, 1)"
colorFloorPlanLabelBackground: "hsla(0, 0%, 0%, 0.8)"
colorDeviceMarkerBorder: "hsla(0, 0%, 100%, 1)" # Border around the device marker circle on the map
colorTrackBox: "hsla(278, 30%, 48%, 1)" # Boxes shown on the video
colorTrackBoxHover: "hsla(47, 86%, 47%, 1)" # Boxes while hovering over the associated track
colorTrackBoxDrawing: "hsla(204, 100%, 50%, 1)" # New box while drawing
colorTrackBoxControlsDelete: "hsla(219, 100%, 94%, 1)" # Delete icon top right of the box while editing
faceRedaction:
enabled: "false" # Enable or disable face redaction 'true' or 'false'
# General
darkMode: "true" # Enable or disable dark mode 'true' or 'false'
landingPage: "/dashboard" # Landing page after login '/dashboard', '/liveview', '/media', '/devices', '/sites', '/groups'
# Live view page
liveview:
paginationEnabled: "false" # Enable or disable pagination in live view 'true' or 'false'
emptyByDefault: "false" # Show empty live view when there are no active devices 'true' or 'false'
maxStreams: "-1" # Maximum number of live streams to show in live view, -1 for unlimited
# Device page
devices:
hideAgent: "false" # Hide the 'add agent' button in the front-end
# Media page
media:
filter:
date:
@@ -424,6 +421,38 @@ kerberoshub:
enabled: "true" # Enable or disable region filter in media 'true' or 'false'
sort :
enabled: "true" # Enable or disable sort filter in media 'true' or 'false'
category:
enabled: "true" # Enable or disable category filter in media 'true' or 'false'
markers:
enabled: "true" # Enable or disable markers filter in media 'true' or 'false'
events:
enabled: "true" # Enable or disable events filter in media 'true' or 'false'
tags:
enabled: "true" # Enable or disable tags filter in media 'true' or 'false'
# Floor-plan feature
floorplan:
enabled: "true" # Enable or disable floorplan feature 'true' or 'false'
# Custom colors for floor-plans, update the colors of the corresponding device icons to match these
# charts/hub/custom-layout/icons.js
colorDeviceActive: "hsla(131, 31%, 52%, 1)"
colorDeviceInactive: "hsla(0, 3%, 41%, 1)"
colorDeviceIdle: "hsla(47, 86%, 47%, 1)"
colorDeviceMotion: "hsla(2, 58%, 48%, 1)"
colorLiveViewControlActive: "hsla(131, 31%, 52%, 1)" # Color for the live view control icon for an active device
colorLiveViewControlMotion: "hsla(2, 58%, 48%, 1)" # Color for the live view control icon for a device detecting motion, icon is hidden for other states
colorFloorPlanLabelText: "hsla(0, 0%, 100%, 1)"
colorFloorPlanLabelBackground: "hsla(0, 0%, 0%, 0.8)"
colorDeviceMarkerBorder: "hsla(0, 0%, 100%, 1)" # Border around the device marker circle on the map
colorTrackBox: "hsla(278, 30%, 48%, 1)" # Boxes shown on the video
colorTrackBoxHover: "hsla(47, 86%, 47%, 1)" # Boxes while hovering over the associated track
colorTrackBoxDrawing: "hsla(204, 100%, 50%, 1)" # New box while drawing
colorTrackBoxControlsDelete: "hsla(219, 100%, 94%, 1)" # Delete icon top right of the box while editing
# Face redaction feature
faceRedaction:
enabled: "false" # Enable or disable face redaction 'true' or 'false'
support:
enabled: false