Поля ввода и их использование
Документация
Главная

Поля ввода и их использованиеBETA

inputFields — это поля ввода, которые позволяют пользователю задавать параметры для блоков интеграции. Они используются для настройки поведения блока и передачи данных, необходимых при его выполнении.

Поля для блоков интеграции

Каждое поле ввода имеет набор базовых атрибутов, которые определяют его поведение, внешний вид и способ использования в коде. Эти параметры применимы ко всем типам полей, независимо от их назначения.

АтрибутТипОписание
defaultAnyЗначение по умолчанию, если пользователь не ввел данные
hintStringПодсказка под полем. Поддерживает Markdown
keyStringУникальный идентификатор поля. Используется для доступа к значению через bundle.inputData[key]
labelStringТекст метки поля
mappableBooleanРазрешает использовать переменные из других блоков. По умолчанию true
placeholderStringТекст-заполнитель внутри поля
readOnlyBooleanПоле нельзя редактировать. По умолчанию false
requiredBooleanОбязательно ли поле для заполнения. По умолчанию false
typeStringТип поля

Параметры поля array

Поле массива используется, когда требуется ввод списка однотипных элементов. Используется для передачи наборов параметров, повторяющихся структур или множественных значений.

type ArrayBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "array";
    properties: (
      | TextBlockInputField
      | NumberBlockInputField
      | SelectBlockInputField
      | KeyValueBlockInputField
      | BooleanBlockInputField
      | CodeBlockInputField
      | DateBlockInputField
      | DateTimeBlockInputField
      | StreamBlockInputField
      | IntegerBlockInputField
    )[];
  };

Параметры поля boolean

Булево поле представляет собой переключатель «включено/выключено». Используется для управления логикой выполнения блока, например для включения или отключения дополнительных условий.

/**
 * @template Key
 */
export type BooleanBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "boolean";
  };

Где:

  • @template Key — тип ключа поля

Параметры поля code

Поле code предназначено для ввода текстовых данных с подсветкой синтаксиса. Используется для скриптов, SQL-запросов, конфигураций и других сценариев, где нужно сохранить форматирование и восприятие кода.

type SqlDialect =
  | "cassandra"
  | "clickhouse"
  | "greenplum"
  | "hive"
  | "mariadb"
  | "mssql"
  | "mysql"
  | "plsql"
  | "postgresql"
  | "sqlite"
  | "standard";

type CodeBlockEditorType =
  | "python"
  | "sql"
  | "html"
  | "yaml"
  | "javascript"
  | "json";

type CodeBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "code";
  } & (
      | {
          editor: "sql";
          sqlDialect?: SqlDialect;
          default?: string;
          typeOptions?: {
            minLength?: number;
            maxLength?: number;
            pattern?: string;
            errorMessage?: string;
          };
        }
      | {
          editor: Exclude<CodeBlockEditorType, "sql">;
          default?: string;
          typeOptions?: {
            minLength?: number;
            maxLength?: number;
            pattern?: string;
            errorMessage?: string;
          };
        }
    );

Параметры поля date

Поле даты применяется для выбора конкретной календарной даты. Используется в фильтрах, временных условиях или при работе с периодами, где не требуется указание времени.

/**
 * @template Key
 */
export type DateBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "date";
    typeOptions?: {
      min?: number;
      max?: number;
      disabledDate: number[];
    };
  };

Где:

  • @template Key — тип ключа поля
  • min — минимальная дата (timestamp)
  • max — максимальная дата (timestamp)
  • disabledDate — отключенные даты (timestamp)

Параметры поля datetime

Поле даты и времени позволяет указать точный момент во времени. Используется в сценариях, где нужно учитывать не только дату, но и время события — например, при планировании или синхронизации данных.

/**
 * @template Key
 */
export type DateTimeBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "datetime";
    typeOptions?: {
      min?: number;
      max?: number;
      disabledDate: number[];
    };
  };

Где:

  • @template Key — тип ключа поля
  • min — минимальные дата и время (timestamp)
  • max — максимальные дата и время (timestamp)
  • disabledDate — отключенные даты (timestamp)

Параметры поля integer

Целочисленное поле используется, когда необходимо строгое ограничение на ввод целых чисел. Подходит для передачи счетчиков, идентификаторов или других параметров, где дробные значения недопустимы.

/**
 * @template Key
 */
export type IntegerBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "integer";
    typeOptions?: {
      min?: number;
      max?: number;
    };
  };

Где:

  • @template Key — тип ключа поля
  • min — минимальное значение
  • max — максимальное значение

Параметры поля group

Групповое поле позволяет логически объединять несколько связанных полей.

type GroupBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "group";
    properties: (
      | TextBlockInputField
      | NumberBlockInputField
      | SelectBlockInputField
      | KeyValueBlockInputField
      | BooleanBlockInputField
      | CodeBlockInputField
      | DateBlockInputField
      | DateTimeBlockInputField
      | StreamBlockInputField
      | IntegerBlockInputField
    )[];
  };

Параметры поля keyValue

Поле ввода пар «ключ–значение» удобно для динамических параметров, таких как HTTP-заголовки, параметры запроса или произвольные настройки, количество и состав которых заранее неизвестны.

/**
 * @template Key
 */
export type KeyValueBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "keyValue";
    typeOptions?: {
      sortable?: boolean;
    };
  };

Где:

  • @template Key — тип ключа поля
  • sortable — возможность сортировки элементов

Параметры поля number

Числовое поле предназначено для ввода чисел с плавающей точкой. Применяется для передачи количественных параметров, лимитов или пороговых значений, где важен числовой диапазон.

export type NumberBlockInputField = CommonBlockInputField & {
  type: "number";
  typeOptions?: {
    min?: number;
    max?: number;
  };
};

Где:

  • min — минимальное значение
  • max — максимальное значение

Параметры поля select

Поле выбора предназначено для выбора одного значения из заранее определенного списка. Оно помогает ограничить ввод пользователя допустимыми вариантами и снизить вероятность ошибок конфигурации.

/**
 * @template Key
 */
export type SelectBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "select";
    options: SelectOptions;
  };

Где:

  • @template Key — тип ключа поля
  • options — опции для выбора

Параметры поля stream

Поле stream применяется для передачи бинарных данных и файлов. Используется в сценариях загрузки, передачи или обработки файловых данных.

type StreamBlockInputField<Key extends string = string> =
  CommonBlockInputField<Key> & {
    type: "stream";
  };

Параметры поля text

Текстовое поле используется для ввода строковых значений — например, имен, идентификаторов, URL или произвольных текстовых параметров. Поддерживает ограничения на длину и валидацию данных, что позволяет определять некорректный ввод.

type CommonConnectionInputField<Key = string> = {
    key: Key;
    type: "text" | "password" | "number" | "button";
    label: string;
  };

Поля для подключений

Поля подключений используются для настройки соединения с внешними системами. Они содержат учетные данные, параметры доступа и вспомогательные элементы для получения или обновления данных аутентификации.

АтрибутТипОписание
buttonAnyПоле для запросов во внешнюю систему
numberNumberЧисловое поле
passwordStringТекстовое поле,которое скрывается после сохранения
textStringОднострочное текстовое поле для ввода строковых значений

Параметры поля button

Кнопка применяется для выполнения дополнительных действий в процессе настройки подключения — например, для запуска OAuth-авторизации, получения токенов или запроса данных из внешнего API.

type ButtonInputFieldConnection<AuthData extends AnyRecord, AdditionalAuthData extends AnyRecord = {}> = CommonConnectionInputField<string> & {
    type: "button";
    typeOptions: {
        redirect?: (service: ExecuteService, bundle: ConnectionExecuteBundle<AuthData>) => void;
        saveFields?: (service: ExecuteService, bundle: ConnectionExecuteBundle<AuthData>) => Partial<AdditionalAuthData>;
        message?: (service: ExecuteService, bundle: ConnectionExecuteBundle<AuthData & AdditionalAuthData>) => void | string;
    };
};

Где:

  • redirect — выполняет перенаправление пользователя
  • saveFields — возвращает часть данных, которые будут автоматически сохранены в настройках подключения
  • message — выводит уведомление для пользователя после выполнения действия

Параметры поля password

Поле password предназначено для ввода чувствительных данных, таких как пароли или API-ключи. Значение скрывается после сохранения и используется только во время выполнения подключения.

{
  type: "password",
  key: "apikey",
  label: "Ключ API",
  required: true,
  hint: "Ищите в настройках платформы",
}

Параметры поля text

Текстовое поле используется для ввода строковых значений. В зависимости от сценария, поле может быть дополнительно настроено с помощью параметров, которые позволяют управлять режимом ввода, ограничениями и валидацией данных.

type CommonConnectionInputField<Key = string> = {
    key: Key;
    type: "text" | "password" | "number" | "button";
    label: string;
};

Была ли статья полезна?

Да
Нет
Предыдущая
Архитектура пользовательских интеграций
Следующая
Выходные поля и их использование

Дайджест новостей и обновлений —

один раз в месяц

Заполняя форму, я даю согласие на обработку моих персональных данных
430006, Саранск,
Северо-восточное шоссе, д. 3
ОКВЭД 62.01
ИНН 1328​909857
Код вида деятельности
в области ИТ 15.02 и 17.01
Языки программирования