Skip to content
Feature flags

Feature flags

Hub frontend feature flags control which pages, controls, and optional data sources are available to users. They do not grant permissions and they do not start backend services. Roles and resource authorization still apply after a feature is visible.

This page covers every product-facing boolean flag understood by the current Hub frontend and the related backend switches operators commonly need with them. Infrastructure toggles such as TLS, telemetry, ingress, persistence, and storage-provider settings remain in the Helm chart reference because they configure the deployment rather than a Hub product feature.

For Helm installations, set flags below kerberoshub.frontend.features in your values file. The chart renders them as environment variables for the frontend container, and its startup script writes them to window.env.

kerberoshub:
  frontend:
    features:
      case:
        enabled: "true"
      videoEdits:
        enabled: "true"
      faceRedaction:
        enabled: "true"
        classifierTracksEnabled: "false"

Use quoted "true" and "false" values for frontend flags unless the chart field is documented as a native boolean.

General and navigation

Helm valueContainer environment variableDefaultEffect
kerberoshub.frontend.features.splashScreen.enabledFEATURE_SPLASH_SCREEN_ENABLED"true"Shows the pre-bootstrap splash screen.
kerberoshub.frontend.features.darkModeEnabledSee known exposure gaps"true"Shows the dark-mode toggle.
kerberoshub.frontend.features.case.enabledFEATURE_CASE_ENABLED"true"Enables case-management navigation, routes, and case actions.
kerberoshub.frontend.caseFilterAssigneesDefaultCASE_FILTER_ASSIGNEES_DEFAULT"false"Applies the current user as the initial assignee filter on case lists. This changes the initial filter state; it does not restrict which cases the user may access.
kerberoshub.frontend.features.workflows.enabledFEATURE_WORKFLOWS_ENABLED"false"Enables workflow pages and navigation. This does not start the workflow engine.
kerberoshub.frontend.features.audit.enabledFEATURE_AUDIT_ENABLED"true"Shows the owner/admin Audit events page and navigation link. This does not deploy the audit dispatcher or change audit-event authorization.
kerberoshub.frontend.features.floorplan.enabledFEATURE_FLOORPLAN_ENABLED"true"Enables floor-plan functionality in the frontend.
kerberoshub.frontend.features.i18n.enabledFEATURE_I18N_ENABLED"true"Shows the language switcher. When disabled, Hub always uses i18n.defaultLanguage.
kerberoshub.frontend.features.devices.hideAgentFEATURE_DEVICES_HIDE_AGENT"false"Hides the Add Agent control on the Devices page when set to "true".
kerberoshub.frontend.features.devices.analyticsEnabledFEATURE_DEVICE_ANALYTICS_ENABLED"true"Shows the Analytics tab on device detail pages. When disabled, analytics fragments fall back to Overview.
kerberoshub.frontend.features.devices.developerToolsEnabledFEATURE_DEVICE_DEVELOPER_TOOLS_ENABLED"true"Shows owner-only live Agent logs and terminal access on device detail pages. When disabled, the Logs tab and terminal console are unavailable. This does not change the Agent’s independent remote-access authorization.
kerberoshub.frontend.features.dashboard.sitesFullscreenEnabledFEATURE_DASHBOARD_SITES_FULLSCREEN_ENABLED"true"Shows the fullscreen Sites map action on the Dashboard.

Organisations and projects

The organisation and project flags form a hierarchy:

  1. When organisations.enabled is explicitly "true" or "false", it controls the complete organisation feature family, including projects.
  2. When organisations.enabled is empty, organisation child flags apply independently and projects.enabled becomes the project-group switch.
  3. When both group flags are empty, the individual project child flags apply.
Helm valueContainer environment variableDefaultEffect
kerberoshub.frontend.features.organisations.enabledFEATURE_ORGANISATIONS_ENABLED""Optional umbrella for organisation and project controls.
kerberoshub.frontend.features.organisations.switcherEnabledFEATURE_ORGANISATION_SWITCHER_ENABLED"false"Makes the current organisation selector interactive. Disabled mode still shows the active organisation as context.
kerberoshub.frontend.features.organisations.creationEnabledFEATURE_ORGANISATION_CREATION_ENABLED"false"Shows organisation creation inside the switcher; requires the switcher.
kerberoshub.frontend.features.organisations.settingsEnabledFEATURE_ORGANISATION_SETTINGS_ENABLED"false"Allows eligible administrators and owners to open organisation settings.
kerberoshub.frontend.features.projects.enabledFEATURE_PROJECTS_ENABLED""Project-group switch used when the organisation umbrella is unset.
kerberoshub.frontend.features.projects.switcherEnabledFEATURE_PROJECT_SWITCHER_ENABLED"false"Shows the project selector beneath the organisation context.
kerberoshub.frontend.features.projects.creationEnabledFEATURE_PROJECT_CREATION_ENABLED"false"Enables project creation when that UI is available.
kerberoshub.frontend.features.projects.settingsEnabledFEATURE_PROJECT_SETTINGS_ENABLED"false"Enables project settings when that UI is available.

Live view

Helm valueContainer environment variableDefaultEffect
kerberoshub.frontend.features.liveview.hlsEnabledFEATURE_HLS_ENABLED"true"Offers HLS as a LIVE transport. Disabling it removes HLS from transport selection.
kerberoshub.frontend.features.liveview.moqEnabledFEATURE_MOQ_ENABLED"false"Offers Media over QUIC (MoQ) as a LIVE transport. A relay URL and compatible Agent are also required.
kerberoshub.frontend.features.liveview.remoteRecordingEnabledFEATURE_REMOTE_RECORDING_ENABLED"true"Shows the manual REC control and top-left REC recording-state overlay in live views. The Agent and the user’s permissions must still allow remote recording.
kerberoshub.frontend.features.liveview.deviceStatusEnabledFEATURE_LIVE_VIEW_DEVICE_STATUS_ENABLED"true"Shows device status in live view tile headers. An online badge changes to a red event detected badge for 30 seconds after motion. Disabling it hides this badge without changing stream availability, device filtering, LIVE health, or REC indicators.

liveStreamMode, defaultStreamMode, paginationMode, pageSize, and maxStreams configure behavior but are not on/off feature flags. See the chart values for those settings.

Video editing and face redaction

Helm valueContainer environment variableDefaultEffect
kerberoshub.frontend.features.videoEdits.enabledFEATURE_VIDEO_EDITS_ENABLED"false"Umbrella for in-app video editing tools, including face redaction.
kerberoshub.frontend.features.faceRedaction.enabledFEATURE_FACE_REDACTION_ENABLED"false"Enables the face-redaction tool. videoEdits.enabled must also expose the edit surface.
kerberoshub.frontend.features.faceRedaction.classifierTracksEnabledFEATURE_FACE_REDACTION_CLASSIFIER_TRACKS_ENABLED"true"Makes legacy classifier/analysis tracks available as a redaction starting point. When disabled, saved edits, detection runs, manual box drawing, and submission remain available.

These flags expose frontend controls only. Rendering redacted recordings still requires the redaction workflow and worker to be configured.

Media filters

Visible media-filter controls default to "true". Disabling one removes that filter control; it does not delete or change existing data. markerOptionsByDate.enabled is a behavior flag and defaults to "false".

Helm valueContainer environment variableDefaultEffect
kerberoshub.frontend.features.media.filter.date.enabledFEATURE_MEDIA_FILTER_DATE_ENABLED"true"Date filtering.
kerberoshub.frontend.features.media.filter.sites.enabledFEATURE_MEDIA_FILTER_SITES_ENABLED"true"Site filtering.
kerberoshub.frontend.features.media.filter.groups.enabledFEATURE_MEDIA_FILTER_GROUPS_ENABLED"true"Group filtering.
kerberoshub.frontend.features.media.filter.devices.enabledFEATURE_MEDIA_FILTER_DEVICES_ENABLED"true"Device filtering.
kerberoshub.frontend.features.media.filter.objectDetection.enabledFEATURE_MEDIA_FILTER_OBJECT_DETECTION_ENABLED"true"Object-detection filtering.
kerberoshub.frontend.features.media.filter.star.enabledFEATURE_MEDIA_FILTER_STAR_ENABLED"true"Starred-recording filtering.
kerberoshub.frontend.features.media.filter.analysis.enabledFEATURE_MEDIA_FILTER_ANALYSIS_ENABLED"true"“With analysis” toggle that hides recordings without markers, a description, detections or other analysis results.
kerberoshub.frontend.features.media.filter.region.enabledFEATURE_MEDIA_FILTER_REGION_ENABLED"true"Region filtering.
kerberoshub.frontend.features.media.filter.sort.enabledFEATURE_MEDIA_FILTER_SORT_ENABLED"true"Sort controls.
kerberoshub.frontend.features.media.filter.category.enabledFEATURE_MEDIA_FILTER_CATEGORIES_ENABLED"true"Marker category filtering.
kerberoshub.frontend.features.media.filter.markers.enabledFEATURE_MEDIA_FILTER_MARKERS_ENABLED"true"Marker filtering.
kerberoshub.frontend.features.media.filter.markerOptionsByDate.enabledFEATURE_MEDIA_FILTER_MARKER_OPTIONS_BY_DATE_ENABLED"false"Limits marker, category, event, and tag option retrieval to the selected recording day. It does not hide those filter controls.
kerberoshub.frontend.features.media.filter.events.enabledFEATURE_MEDIA_FILTER_EVENTS_ENABLED"true"Event filtering.
kerberoshub.frontend.features.media.filter.tags.enabledFEATURE_MEDIA_FILTER_TAGS_ENABLED"true"Tag filtering.

media.filter.defaultView selects the initial media view and is not a boolean feature flag.

Runtime-only frontend flags

The frontend understands the following environment variables, but the current Hub chart does not expose matching values in kerberoshub.frontend.features. They require custom deployment wiring until chart support is added.

Container environment variableFrontend defaultEffect
FEATURE_MARKERS_ENABLEDfalseEnables the marker analytics page and navigation.
FEATURE_MEDIA_CREATE_CASE_ENABLEDtrueEnables creating a case from selected media; case management must also be enabled.
FEATURE_MEDIA_DESCRIPTION_ENABLEDtrueEnables recording descriptions.

OPENAI_ENABLED is supplied by the chart’s top-level openai.enabled value. It enables frontend semantic-search integration and requires the corresponding backend configuration.

Backend and deployment switches

These switches are related to features but are not frontend flags:

Helm valueDefaultEffect
kerberoshub.workflows.enabledfalseDeploys/enables the workflow engine and tees eligible analysis events to it. This is separate from frontend.features.workflows.enabled.
kerberoshub.services.<operation>.enabledvariesDeploys an optional workflow stage worker. The workflow engine and a matching workflow definition are also required.
kerberoshub.support.enabledfalseEnables the Hub support integration.
kerberoshub.oauth2Proxy.enabledfalseEnables the Hub OAuth2 proxy.
admin.oauth2Proxy.enabledfalseEnables the Admin OAuth2 proxy.
openai.enabledfalseEnables OpenAI-backed integration and supplies OPENAI_ENABLED to the frontend.

Some components use replica counts rather than an enabled flag; setting replicas to zero disables those deployments.

Known exposure gaps

  • The frontend consumes FEATURE_DARK_MODE_ENABLED, while the current chart template emits FEATURE_DARK_MODE. Until those names are aligned, kerberoshub.frontend.features.darkModeEnabled does not reliably control the frontend through the standard chart.
  • Runtime-only flags listed above are valid frontend inputs but are not currently mapped by the Hub chart.
  • A visible control never replaces backend authorization. Users still need the required role, permissions, organisation membership, and project scope.

Applying changes

After changing Helm values, upgrade the release and allow the frontend pod to restart so its startup script regenerates env.js.

helm upgrade hub kerberos/hub \
  --namespace kerberos-hub \
  --reuse-values \
  --set-string kerberoshub.frontend.features.faceRedaction.classifierTracksEnabled=false

For GitOps installations, commit the value change to the environment repository instead of running helm upgrade directly.