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:
| Parameter | Type | Default | Description |
|---|---|---|---|
type | FieldType | - | Field type (TEXT, PASSWORD, etc.) |
key | string | - | Unique field identifier |
label | string | - | Display label |
value | unknown | null | Default value |
required | boolean | false | Is 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 #
- FieldType - All available field types
- Form - Add fields to forms
- FormStack - Build complete form stacks
- ABasicApplication - Use fields in applications