Field

Overview #

Field represents a single input field in a form. Fields have types (text, password, select, etc.), values, labels, and various properties like required, read-only, and disabled.

Purpose:

  • Define user input fields for application configuration
  • Specify field types, labels, and validation
  • Set default values and choices

Location: orchesty-nodejs-sdk/lib/Application/Model/Form/Field.ts

Constructor #

constructor(
    type: FieldType,
    key: string,
    label: string,
    value: unknown = null,
    required = false
)

Parameters:

ParameterTypeDefaultDescription
typeFieldType-Field type (TEXT, PASSWORD, etc.)
keystring-Unique field identifier
labelstring-Display label
valueunknownnullDefault value
requiredbooleanfalseIs field required

Example:

import Field from '../../lib/Application/Model/Form/Field';
import FieldType from '../../lib/Application/Model/Form/FieldType';

const apiKeyField = new Field(
    FieldType.PASSWORD,
    'api_key',
    'API Key',
    null,
    true  // required
);

Methods #

setValue() #

public setValue(value: unknown): this

Sets the field value.

getValue() #

public getValue(): unknown

Gets the field value.

setLabel() #

public setLabel(label: string): this

Sets the label.

getLabel() #

public getLabel(): string

Gets the label.

setDescription() #

public setDescription(description: string): this

Sets field description/help text.

getDescription() #

public getDescription(): string

Gets the description.

setRequired() #

public setRequired(required: boolean): this

Makes field required/optional.

isRequired() #

public isRequired(): boolean

Checks if field is required.

setReadOnly() #

public setReadOnly(readOnly: boolean): this

Makes field read-only.

isReadOnly() #

public isReadOnly(): boolean

Checks if field is read-only.

setDisabled() #

public setDisabled(disabled: boolean): this

Disables/enables field.

isDisabled() #

public isDisabled(): boolean

Checks if field is disabled.

setChoices() #

public setChoices(choices: unknown[]): this

Sets choices for SELECT_BOX or MULTI_SELECT fields.

getChoices() #

public getChoices(): unknown[]

Gets the choices.

Usage Examples #

Text Field #

const usernameField = new Field(
    FieldType.TEXT,
    'username',
    'Username'
);
usernameField.setDescription('Your account username');
usernameField.setRequired(true);

Password Field #

const passwordField = new Field(
    FieldType.PASSWORD,
    'password',
    'Password'
);
passwordField.setRequired(true);

Number Field with Default #

const timeoutField = new Field(
    FieldType.NUMBER,
    'timeout',
    'Timeout (seconds)',
    30  // default value
);
timeoutField.setDescription('Request timeout in seconds');

Select Box #

const regionField = new Field(
    FieldType.SELECT_BOX,
    'region',
    'API Region'
);
regionField.setChoices([
    { value: 'us-east-1', label: 'US East' },
    { value: 'eu-west-1', label: 'EU West' },
    { value: 'ap-south-1', label: 'Asia Pacific' }
]);
regionField.setValue('us-east-1');

Checkbox #

const enableRetryField = new Field(
    FieldType.CHECKBOX,
    'enable_retry',
    'Enable Automatic Retry'
);
enableRetryField.setValue(true);
enableRetryField.setDescription('Automatically retry failed requests');

Multi-Select #

From: orchesty-nodejs-sdk/test/Application/TestBasicApplication.ts

const multiSelectField = new Field(
    FieldType.MULTI_SELECT,
    'permissions',
    'Permissions'
);
multiSelectField.setChoices([
    { value: 'read', label: 'Read' },
    { value: 'write', label: 'Write' },
    { value: 'delete', label: 'Delete' }
]);

URL Field #

const endpointField = new Field(
    FieldType.URL,
    'endpoint',
    'API Endpoint'
);
endpointField.setValue('https://api.example.com');
endpointField.setDescription('Your API base URL');

Read-Only Field #

const redirectUrlField = new Field(
    FieldType.TEXT,
    'redirect_url',
    'Redirect URL',
    'https://orchesty.com/callback'
);
redirectUrlField.setReadOnly(true);
redirectUrlField.setDescription('Copy this URL to your OAuth app configuration');

Common Patterns #

Pattern 1: Required API Key #

const apiKeyField = new Field(FieldType.PASSWORD, 'api_key', 'API Key');
apiKeyField.setRequired(true);
apiKeyField.setDescription('Find this in your account settings');

Pattern 2: Optional Advanced Settings #

const debugField = new Field(FieldType.CHECKBOX, 'debug', 'Debug Mode', false);
debugField.setDescription('Enable detailed logging');

const maxRetriesField = new Field(FieldType.NUMBER, 'max_retries', 'Max Retries', 3);
maxRetriesField.setDescription('Maximum number of retry attempts');

Pattern 3: Environment Selection #

const envField = new Field(FieldType.SELECT_BOX, 'environment', 'Environment');
envField.setChoices([
    { value: 'sandbox', label: 'Sandbox (Testing)' },
    { value: 'production', label: 'Production (Live)' }
]);
envField.setValue('sandbox');
envField.setRequired(true);

Next Steps #

  1. FieldType - All available field types
  2. Form - Add fields to forms
  3. FormStack - Build complete form stacks
  4. ABasicApplication - Use fields in applications

See Also #

© 2025 Orchesty Solutions. All rights reserved.