...
Components are re-usable so you can have many instances of the same component with different custom fields settings. You can add, remove and change custom fields for each component:
Expand |
---|
title | Have an editable component and enter the translator. |
---|
|
Expand |
---|
title | Click STEP 1: In the translator click on config.json to open and edit the custom fields |
---|
|
Image AddedClick on config.
| Image Removedjson Click EDIT to edit the fields
|
Expand |
---|
title | STEP 2: Add a test field and save. |
---|
|
|
Expand |
---|
title | STEP 3: Commit these changes by pressing the commit button. |
---|
| Image RemovedNOTE: |
Image Added Panel |
---|
panelIconId | atlassian-warning |
---|
panelIcon | :warning: |
---|
bgColor | #FFFAE6 |
---|
| If you do not want to commit these changes, you can change the Using Commit: to | DEVELOPER, DEVELOPMENT in the next step | , so it will use the changes made in the translator without a commit. |
|
Expand |
---|
title | STEP 4: Exit the translator and change the commit to the new one . |
---|
| Image RemovedNOTE: or select Development mode |
|
Image AddedClick the ellipses to change the commit. If you do not want to commit these the changes you made, you can change the Using Commit: to DEVELOPER |
Code Block |
---|
|
{
"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"
}
]
} DEVELOPMENT so it will use the changes made in the translator without a commit.
|
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
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:
Code Block |
---|
|
{
"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:
The custom field you created in the translator, TestField, now shows up.
|
Some more information:
Expand |
---|
title | How does the Lua script get access to the fields |
---|
|
To get programatic access of the values of the custom fields |
...
, there is this api call: Code Block |
---|
| local Fields = component.fields(); |
This returns a Lua table with the custom fields and their values for the component. |
Expand |
---|
title | How to programmatically modify an existing custom field to set a new value |
---|
|
You can use the component.setField{} API. |
Expand |
---|
title | Where are the custom field values defined for each component |
---|
|
Custom Field values set in the component card are encrypted and stored locally in components.json file in the component configuration directory. Code Block |
---|
<working directory>/config/comps/<component guid>/component.json |
The custom fields and default values, stored in config.json are stored in the component repository files and checked into Git. See Component Configuration Files. |