FluxBilling
Plugins

Configuration Settings

Define the settings operators fill in when they install your plugin.

Updated · 2026-09-03

Your configuration schema defines the settings entered when your plugin is set up — the API key, account ID, region and anything else the integration needs. You design that form field by field, and every setting then becomes available throughout your flows and connections as {{config.<key>}}. This article covers the field types, the options on each field, grouping and conditional visibility, and how to reference settings.

How to reach it

Open SettingsIntegrationsPlugins, open your plugin, and choose the Config tab. The screen is titled Config Schema and is laid out in three columns: an Add Field palette and a Field Groups panel on the left, and the list of fields you have defined on the right. Two buttons sit in the header: Preview, which renders the form exactly as it will appear, and Save Schema, which stays disabled until you change something.

How configuration works

You don't type your own API credentials into a plugin you intend to share — you define fields so that whoever installs it enters their own values. The schema you build is the setup form. Values are stored (with secrets encrypted), and your flows read them at run time.

Field types

Press a type in the Add Field palette to append a field of that type.

Configuration field types
TypeUse it for
TextA single line of text.
URLA URL. The value is checked for a valid URL when the form is saved.
SecretAn API key or token. Encrypted, masked on screen, never exported.
PasswordA masked text input, encrypted the same way as Secret.
NumberA numeric value, optionally bounded.
BooleanAn on/off switch.
ToggleAn on/off switch drawn as a sliding toggle.
SelectA dropdown of predefined choices.
DateA date picker. The value is checked for a valid date.
TextareaMulti-line text.
JSONA structured value edited as JSON; invalid JSON is rejected on save.
InfoDisplay-only text or a notice. It collects no value.
Callback URLDisplay-only. It renders this plugin's own inbound callback URL with a copy button, so you can tell the operator exactly what to paste into the provider's dashboard. It collects no value.

Per-field options

Selecting a field opens its editor. Some options apply to every field; others only appear for certain types.

On every field:

  • Field Key — the identifier you reference as {{config.<key>}}. Required. The input forces lower case and replaces anything other than a letter, digit or underscore with an underscore as you type, so keys are always simple lowercase identifiers. The editor shows the resulting reference beneath the box.
  • Display Label — the name shown on the form. Required.
  • Placeholder — hint text shown in the empty input.
  • Default Value — a pre-filled value. Not offered on Secret or Password fields, since there is nothing safe to pre-fill. Boolean and Toggle fields offer Off (false) / On (true); Date fields offer a date picker.
  • Help Text — a short description shown under the input.
  • Required Field — a toggle. When on, the plugin is not treated as configured until the value is filled in.
  • Group — which section the field renders under, or None (general).
  • Conditional VisibilityAlways visible, or the key of another field. The field is then shown only while that other field holds a truthy value, and it is not validated while hidden. Custom key… lets you type a key by hand.

Type-specific options:

  • NumberMinimum and Maximum bounds, enforced on save.
  • Select — a list of Options, each a value and a label. A saved value that is not one of the options is rejected.
  • Text and URL — a Validation Pattern (a regular expression) and an Error Message shown when a value doesn't match.
  • Info and Callback URL — only a key, a label and a Content / Help Text body; the other options are hidden because these fields store no value.

Field groups

The Field Groups panel adds optional sections to the form. Each group has a name (lower-cased and underscored like a field key), a label and a description. Assign a field to a group from the field editor's Group selector; ungrouped fields render first under the general section. Use Preview to see the grouped layout.

Secret and Password fields

Mark any credential as Secret or Password. Those values are encrypted at rest, masked whenever the form is displayed, and never included when you export or share the plugin. As soon as your schema contains one, the builder shows a notice confirming this. Because there is nothing safe to pre-fill, these two types have no Default Value.

Referencing settings

Anywhere you need a configured value — inside a flow node, or in your connection — reference it with:

{{config.<key>}}

Replace <key> with the field's key. A Secret field with the key api_key is referenced as {{config.api_key}}, and a Text field with the key account_id as {{config.account_id}}. Because keys are always lower case, always write the reference in lower case. See Variables & Expressions for the full reference syntax used inside flows.

Tip: a key can also be built at run time. In an expression, config['msg_' + input.eventKey] reads whichever configuration field the current event maps to — the pattern the seeded notification flows use for their per-event message templates.

A practical example

A simple Infrastructure Provider plugin might define:

  • API URL — type URL, key api_url, required, with help text pointing at where the operator finds it.
  • API Key — type Secret, key api_key, required.
  • Default Region — type Select, key region, with a few region options.
  • Use sandbox — type Toggle, key sandbox, with a Sandbox URL Text field whose Conditional Visibility is set to sandbox so it only appears when the toggle is on.

The operator fills these in once. Your connection's base URL can then be {{config.api_url}}, its authentication can read {{config.api_key}}, and your provisioning flow can send {{config.region}} in the request body.


Related: Connections & Authentication · Variables & Expressions · Building Flows · Packaging, Importing & Updating