Skip to main content

Custom Fields

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.

Custom fields are defined in the config.json file within each component Translator. Once created, these fields can be managed directly from the component card, allowing users to configure runtime values for the component.

STEP 1: In the translator click on config.json to create and edit the custom fields

Use the config.json file in the Translator to create custom fields and assign default values.

  1. Click on config.json in the project tree.

  2. Click EDIT to edit the fields and optionally include default values.

STEP 2: Add a test field and save

Create your custom field:

  1. Field Name: TestField is the name of the configuration or custom field.

  2. Field Type: Choose a value type. This can be:

    • String: One or more characters of text.

    • Bool: True or False dropdown value.

    • File: Browse to a local file stored on disk.

    • Folder: Browse to a local directory path.

    • List: A dropdown list for choosing from predefined options (comma delimited list).

    • Number: Integers or decimals.

    • Password: A secure field for entering and masking sensitive text like passwords or tokens.

    • Port: A network port number.

  3. Default Value: Optionally add a default value. This will appear on the component card where you can edit the custom field values used when the script runs.

STEP 3: Commit these changes by pressing the commit button

Note

If you do not want to commit these changes, you can change the Using Commit: to DEVELOPMENT in the next step so it will use the changes made in the translator without a commit.

STEP 4: Exit the translator and change the commit to the new one or select Development mode

  1. Click the ellipses to change the commit. If you do not want to commit the changes you made, you can change the Using Commit: to DEVELOPMENT so it will use the changes made in the translator without a commit.

  2. The custom field you created in the translator, TestField, now shows up. Now we can change and manage the custom field values for the component to use during runtime.

Additional Information:

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:

local Fields = component.fields();   

This returns a Lua table with the custom fields and their values for the component.

How to programmatically modify an existing custom field to set a new value

You can use the component.setField API.

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.

<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.