Veld YAML
Gestructureerde gegevens in een YAML-editor, met validatie en bestandsimport
Eigenschappen
De eigenschappen die beschikbaar zijn voor een yaml-veld, gegroepeerd naar doel:
| Attribuut | Opmerkingen |
|---|---|
| basic | |
| name string / verplicht / uniek | Field name
This attribute represents the name of the form field. |
| type string / verplicht | Field type
Other attributes might only be available for some field types. Waarde: yaml |
| label string | Field label
A friendly name/label for the field. Note: if not set, the field name is used as label, but not when type is html. Since 6.0.3: Supports placeholders for dynamic labels (e.g., |
| help string | Field help message
Some fields require additional help information. This help message will be shown below the field. Since 6.0.3: Supports placeholders for dynamic help text (e.g., |
| subform string / verplicht | Name of the subform that defines one row
For a |
| data | |
| default many | Default value
The type of the value depends on the field type.
For |
| expression string | A javascript expression.
By default this javascript is evaluated on the server side and limited to predefined functions (for security). However in combination with tip: use the alias |
| runLocal boolean | Run an expression locally
When running expressions, by default they are run remotely on the server. Standaard: false |
| dbConfig string, array or object | A database connection
When you want to query data from a database, you will need the proper connection information. |
| query string | The query to select data from a database
This is typically a classic SELECT statement. Every |
| interaction | |
| dependencyFn string toegevoegd in versie 4.0.0 | The dependency logical function
This attribute represents the logical function between multiple dependencies. Keuzes:
|
| dependencies list / elements=object | Show/hide this field based on the values or other fields
Each dependency element is either an object with the following 2 attributes:
Or with the following 2 attributes:
Use in combination with attribute |
| showLoadButton boolean toegevoegd in versie 6.1.5 | Show load button for file import
Enables a “Load YAML” button that allows users to import data from .yml or .yaml files. For list fields, the YAML file must contain a valid array of objects. For yaml fields, the file can contain any valid YAML structure. Single objects are automatically wrapped in arrays for list fields. Standaard: false |
| showDownloadButton boolean toegevoegd in versie 6.1.5 | Show download button for file export
Enables a “Download” button that exports the field content as a .yml file. The filename is automatically generated from the field name. Standaard: false |
| readonly boolean toegevoegd in versie 6.1.5 | Display YAML in readonly mode
When set to true, displays the YAML content with syntax highlighting in a non-editable card. Useful for showing computed or retrieved YAML data without allowing modifications. The field uses v-highlightjs for pretty syntax-highlighted display. Standaard: false |
| output | |
| output boolean toegevoegd in versie 6.2.0 | Include field value as extravar
Form fields are by default sent as extravars. Standaard: true |
| model string or array | Extravar modelling
By default, a field is sent as a root-extravar. |
| security | |
| noLog boolean toegevoegd in versie 2.2.3 | Disable backend logging
Disables logging in the backend, to hide passwords for example. Standaard: false |
| validation | |
| required boolean | Required field
Makes the field required. Standaard: false |
| validIf object toegevoegd in versie 2.2.4 | An field based validation (field must be true)
Enforces a validation where a referencing (expression) field must be true. This field requires an object with 2 attributes:
|
| validIfNot object toegevoegd in versie 2.2.4 | An field based validation (field must be false)
Enforces a validation where a referencing (expression) field must be false. This field requires an object with 2 attributes:
|
| ignoreIncomplete boolean | Allow form submit on non-evaluated placeholders
When an expression-based field has placeholders, Standaard: false |
| yamlError object toegevoegd in versie 6.1.5 | Custom YAML validation error message
Allows you to customize the error message displayed when YAML syntax validation fails. The yamlError object requires a |
| visualization | |
| group string | The field group name
With this attribute you can group fields together. |
| line string toegevoegd in versie 4.0.3 | The field line name
With this attribute you can group fields in a single line together. |
| width string toegevoegd in versie 4.0.3 | The field width
With this attribute you can set the width of a field. Keuzes:
|
Voorbeelden
Voorbeelden van yaml-velden, in YAML:
Manual YAML editing
De velddefinitie, in YAML:
- type: yaml
name: config
label: Application Configuration
default:
database:
host: localhost
port: 5432
features:
- authentication
- logging
showLoadButton: true
showDownloadButton: true
yamlError:
description: "Please enter valid YAML configuration"
required: true
YAML from expression
De velddefinitie, in YAML:
- type: yaml
name: users
label: User List
expression: fn.fnRestBasic('get','https://api.example.com/users','','','')
showDownloadButton: true
readonly: true
YAML from local expression
De velddefinitie, in YAML:
- type: yaml
name: computed_config
label: Computed Config
runLocal: true
expression: |
(()=>{
return {
env: 'production',
settings: $(environment_field)
};
})()
showDownloadButton: true
YAML from query
De velddefinitie, in YAML:
- type: yaml
name: database_data
label: Database Records
query: "SELECT * FROM servers"
dbConfig: mydb
showDownloadButton: true
Gegevens van het bovenliggende formulier lezen via __parent__
Gebruikt een yaml-veld de modus subform, dan voegt AnsibleForms een variabele __parent__ aan het subformulier toe. Die bevat een momentopname van alle veldwaarden van het bovenliggende formulier op het moment dat de editor opent, inclusief constanten en vars.
Verwijs ernaar met de gewone expressiesyntax $(...) in de velddefinities van het subformulier:
- name: NetworkConfig
type: subform
fields:
- name: interface
type: text
label: Interface
required: true
- name: vlan
type: enum
label: VLAN
# filter available VLANs based on the parent's selected region
query: "select id,name from vlans where region='$(__parent__.region)'"
dbConfig: MYDB # a database of Connections > Databases
valueColumn: id
placeholderColumn: name
- name: mtu
type: number
label: MTU
# default to 9000 in production, 1500 elsewhere
default: "'$(__parent__.environment)' === 'production' ? 9000 : 1500"
evalDefault: true
- name: Configure server
type: ansible
playbook: configure.yml
roles: [default]
fields:
- name: environment
type: enum
values: [dev, staging, production]
- name: region
type: enum
values: [eu-west-1, us-east-1, ap-southeast-1]
- name: nic
type: yaml
label: Network interface
subform: NetworkConfig
__parent__is een hulpmiddel dat alleen in de frontend bestaat. Het wordt uit de Ansible-extravars verwijderd en nooit naar het playbook gestuurd.