Configuration Settings
Define the settings operators fill in when they install your plugin.
Your configuration schema defines the settings an operator fills in when they install your plugin — their API key, account ID, region, and anything else your integration needs. You design this form in the admin Plugins area by adding fields, each with a type and a set of options. Once defined, every setting becomes available throughout your flows and connection as {{config.<key>}}. This article covers the field types, the options you can set on each field, and how to reference settings.
How configuration works
You don't enter your own API credentials into a plugin you intend to share — you define fields so that whoever installs the plugin enters their own values. The schema you build is the installation form. The operator fills it in, FluxBilling stores their values (encrypting any secrets), and your flows read those values at runtime.
Field types
Add fields from these types:
| Type | Use it for |
|---|---|
| Text | A single line of text. |
| URL | A URL, with format validation. |
| Secret | A password or API key. The value is encrypted, masked on screen, and never exported. |
| Number | A numeric value. |
| Toggle | An on/off switch. |
| Select | A dropdown of predefined choices. |
| Textarea | Multi-line text. |
| JSON | A structured JSON value, edited in a JSON editor. |
Per-field options
Each field has properties you configure. Some apply to every field; others only appear for specific types.
Available on every field:
- Label — the display name the operator sees. Required.
- Key — the identifier you reference in flows and connections as
{{config.<key>}}. Required. Keys are lowercased automatically, so use simple lowercase identifiers. - Required — whether the operator must provide a value.
- Default — a pre-filled value (not available on Secret fields).
- Placeholder — hint text shown in the empty field.
- Help text — a short description explaining the field to the operator.
Type-specific options:
- Number — set a min and max to bound the allowed value.
- Select — define the list of options (each a value and a label) shown in the dropdown.
- Text and URL — set a pattern (a validation rule) and a custom message shown when a value doesn't match.
Secret fields
Mark any credential as a Secret field. Secret values are encrypted at rest, masked whenever the form is displayed, and never included when you export or share the plugin. Because of this, Secret fields don't offer a default value — there's nothing safe to pre-fill. This is what makes a plugin safe to distribute: the operator who installs it supplies their own secrets.
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. For example, 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 lowercased automatically, always write the reference in lowercase. See Variables and Expressions for the full reference syntax used inside flows.
A practical example
A simple Infrastructure Provider plugin might define:
- API URL — type URL, key
api_url, required, with help text pointing to where the operator finds it. - API Key — type Secret, key
api_key, required. - Default Region — type Select, key
region, with a few region options.
The operator fills these in once. Your connection's base URL can then be {{config.api_url}}, its authentication can pull {{config.api_key}}, and your provisioning flow can send {{config.region}} in the request body.
Related: Connections and Authentication · Variables and Expressions · Building Flows
