Skip to content

Options flow missing fields for External URL Self-Check (feature implemented in backend but unreachable from UI) #22

Description

@trevnologies

Version: v3.0.7 (also present on main as of this writing — manifest.json still shows "version": "3.0.6", worth fixing alongside this)

Environment:

  • Home Assistant Core 2026.7.4, HAOS 18.1
  • Installed via HACS

Description:

The README documents an "Enable External URL Self-Check" option (checks the instance's own external URL for HTTPS/auth issues, rules R070/R071). This option does not appear anywhere in the integration's options flow UI (Settings → Devices & Services → SecretSentry → Configure). Only these fields are shown:

  • Privacy mode for reports
  • Scan log files for secrets
  • Environment file hygiene checks
  • Automatic Scan Interval (disabled/daily/weekly)
  • Maximum file size (KB)
  • Maximum total scan size (MB)
  • Maximum findings

Root cause found:

The feature is fully implemented on the backend:

  • const.py defines CONF_ENABLE_EXTERNAL_CHECK = "enable_external_url_self_check" and CONF_EXTERNAL_URL = "external_url"
  • coordinator.py reads options.get(CONF_EXTERNAL_URL) and calls _run_external_check()check_external_url()
  • http_check.py implements the actual HTTPS/auth checks (R070/R071) against the provided URL

However, config_flow.py never references either constant:

$ grep -n "CONF_ENABLE_EXTERNAL_CHECK\|CONF_EXTERNAL_URL" custom_components/secretsentry/config_flow.py
(no output)

The options schema in config_flow.py simply never builds form fields for these two settings, so there's no way to enable the check or supply a URL through the UI. The backend logic is unreachable — options.get(CONF_EXTERNAL_URL) will always return None.

Steps to reproduce:

  1. Install/update to v3.0.7 via HACS
  2. Restart Home Assistant
  3. Go to Settings → Devices & Services → SecretSentry → Configure (gear icon)
  4. Scroll through the full options dialog

Expected: Checkbox for "Enable External URL Self-Check" plus a text field for the URL, per the README.

Actual: Neither field is present anywhere in the dialog.

Suggested fix: Add CONF_ENABLE_EXTERNAL_CHECK (boolean) and CONF_EXTERNAL_URL (string, optional/conditional on the boolean) to the voluptuous schema in config_flow.py's options flow step.

Separate but related — manifest version mismatch: custom_components/secretsentry/manifest.json on main still reads "version": "3.0.6" despite the v3.0.7 release tag, so the integration page under Devices & Services shows the wrong version regardless of restarts/reinstalls.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions