Docs

Config flow

The install wizard: pages, input types, data versus options scope, and the options form.

configFlow in the manifest is the form a person completes when adding your integration. It uses the same page / input model as smart-app preferences, restricted to the community input types.

"configFlow": {
  "pages": [
    { "id": "connect", "title": "Connect", "inputs": [
      { "key": "host", "label": "Host or IP", "type": "string", "required": true, "scope": "data" },
      { "key": "token", "label": "API token", "type": "password", "required": true, "scope": "data" }
    ]},
    { "id": "tuning", "title": "Polling", "inputs": [
      { "key": "pollSeconds", "label": "Poll every (seconds)", "type": "number", "default": 30, "minValue": 5, "maxValue": 600, "scope": "options" },
      { "key": "units", "label": "Units", "type": "enum", "options": [{ "value": "c", "label": "°C" }, { "value": "f", "label": "°F" }], "scope": "options" }
    ]}
  ]
}

Scope

scopeStored inChanging it
data (default)ctx.entry.datanot editable after install; the person deletes and re-adds the entry
optionsctx.entry.optionseditable later through the options form; triggers optionsUpdated (or a reload)

Put identity in data (host, account, credentials) and tunables in options (intervals, units, feature toggles).

Options form

By default the options form shows every options-scoped input. Provide optionsFlow for a different layout or extra explanatory pages.

Secrets

Every config value is masked in the UI unless its key is listed in exposedConfigFields. List only non-secrets (host, port). Values never leave the hub except in the encrypted backup.

Input types

The allowed type values are generated on the SDK API reference (formInputTypes). Options and validation fields match the smart-app input types where the type exists in both.

On this page