How to setup custom fields on a Componenet:
One of the big improvements in Iguana X is ability to define custom fields on components. These are intended to make it easy to build re-usable components that can be configured by operations staff:
These fields are defined such that:
The definition of the fields is part of the component and stored in configuration file called config.json
The values of these fields is part of the operation configuration of each component
This means a component can be used many times and have different configurations
For example on the component card we can see the configuration fields:
The values are stored as part of the /wiki/spaces/DEVELOPMEN/pages/2318368811 here:
<instance>/components/configurations/fields/<component guid>.json
For example:
{ "fields": { "Folder": "/Folder/", "Number": "1e3", "Password": "4E4D90C9F91E21FCD59F9F31D88F71FB", "Port": "64000", "String": "A String" } }
As mentioned - there could be many instances of a component with different configuration files. Notice some fields are not present?
These will have default values which are defined in the config.json in the translator. This is the GUI used to edit them. Notice the default value column?
You can view the source code this file:
{ "fields": [ { "default": "/ff/", "name": "Folder", "type": "folder" }, { "default": "fdsf", "name": "File", "type": "file" }, { "default": "", "name": "String", "type": "string" }, { "default": "1", "name": "Number", "type": "number" }, { "default": "true", "name": "Boolean", "type": "bool" }, { "default": "", "name": "Password", "type": "password" }, { "default": "", "name": "Port", "type": "port" } ] }
To get programatic access of the values of the custom fields the best way is to use this Lua API:
local Fields = component.fields();
This returns a Lua table with the custom fields and their values for the component.