Skip to content

Поля настройки интеграции

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

Для интеграторов эти поля описываются в формате JSON Schema Draft-07. Благодаря этому SNABZHENETS+ строит форму настройки с подсказками, проверкой заполнения и маскировкой секретных полей.

Пример простых полей

json
{
  "type": "object",
  "required": ["botToken", "chatId"],
  "properties": {
    "botToken": {
      "type": "string",
      "title": "Bot Token",
      "description": "Токен бота из @BotFather",
      "x-secret": true
    },
    "chatId": {
      "type": "string",
      "title": "Chat ID",
      "description": "ID чата или канала (например: -1001234567890)"
    }
  }
}

Секретные поля

Поля с флагом "x-secret": true обрабатываются особым образом:

  • При отображении — значение маскируется: ••••••••
  • При обновлении — если поле не передано или передано null, существующее значение сохраняется
  • В API-ответах — секретное значение никогда не возвращается

Используйте x-secret: true для токенов, паролей, API-ключей и любых чувствительных данных.

Поддерживаемые типы полей

ТипОписаниеПример
stringСтрокаAPI-ключ, URL, email
string + format: uriАдрес URLWebhook URL
string + format: emailEmail-адресАдрес получателя
numberЧислоТаймаут, лимит
integerЦелое числоПорт, количество
booleanФлагВключить/выключить опцию
string + enumВыбор из спискаРабочий режим или песочница

Пример расширенной схемы

json
{
  "type": "object",
  "required": ["apiKey", "baseUrl", "mode"],
  "properties": {
    "apiKey": {
      "type": "string",
      "title": "API Key",
      "description": "Секретный ключ из личного кабинета",
      "x-secret": true,
      "minLength": 32
    },
    "baseUrl": {
      "type": "string",
      "format": "uri",
      "title": "Base URL",
      "description": "URL вашего экземпляра системы"
    },
    "mode": {
      "type": "string",
      "title": "Режим обмена",
      "enum": ["Рабочий", "Тестовый"],
      "default": "Рабочий"
    },
    "syncIntervalMinutes": {
      "type": "integer",
      "title": "Интервал синхронизации (минуты)",
      "minimum": 5,
      "maximum": 1440,
      "default": 60
    },
    "notifyOnError": {
      "type": "boolean",
      "title": "Уведомлять об ошибках",
      "default": true
    }
  }
}

Хранение настроек

Заполненные настройки сохраняются в защищённом виде. Секретные поля не показываются пользователям и не возвращаются в открытом виде через API.

Частичное обновление

При обновлении настроек можно передать только изменившиеся поля. Если секретное поле не передано или передано пустым, прежнее значение сохраняется. Это позволяет изменить, например, интервал синхронизации или адрес сервиса, не вводя заново пароль или API-ключ.

Документация платформы SNABZHENETS+.