Вся документация
Backend и данные

Управляемые серверные функции

Как безопасно обращаться к внешним API с приватными ключами через backend Vixy.

2 мин чтенияОбновлено: Fri Nov 06 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Для чего нужны функции

Управляемая функция — декларативное описание HTTPS-запроса, который выполняется на сервере Vixy. Приватный ключ не попадает в браузер посетителя или исходный код сайта.

Функция хранится в проекте как _functions/<name>.json, а frontend вызывает её через:

const result = await vixy.functions.invoke("function-name", input);

AI может создать декларацию по обычному запросу, например: Подключи отправку заявки в API моей CRM. Для этого потребуется описание метода API, URL и названия полей. Сам секрет добавляется пользователем отдельно в «Данные → Секреты».

Что разрешено

Функция может описывать URL, HTTP-метод, заголовки, тело запроса и подстановки из входных данных и секретов. Vixy предоставляет серверную подстановку ключей, Basic Auth, таймауты и защиту от SSRF.

Пример структуры:

{
  "name": "send-to-crm",
  "method": "POST",
  "url": "https://api.example.com/leads",
  "headers": {
    "Authorization": "Bearer {{secret.CRM_API_TOKEN}}"
  },
  "body": {
    "name": "{{input.name}}",
    "phone": "{{input.phone}}"
  }
}

Перед сохранением Vixy проверяет схему, адрес назначения и допустимые подстановки.

Когда их использовать

Управляемые функции подходят для редких внешних API, которых пока нет в каталоге интеграций. Для ЮKassa и Telegram используйте готовые подключения в «Данные → Интеграции».

Хорошие сценарии: отправка лида в CRM, создание задачи, запрос статуса доставки или обращение к закрытому корпоративному API по HTTPS.

Ограничения

Это не среда выполнения произвольного Node.js-кода. Нельзя загружать серверные пакеты, запускать процессы, обращаться к файловой системе сервера или создавать собственный Express-сервер.

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

Диагностика

Если вызов завершился ошибкой, проверьте имя функции, обязательные входные поля, наличие секретов и доступность внешнего API. Не выводите полный токен в сообщения об ошибке. Сначала протестируйте минимальный запрос, затем добавляйте дополнительные поля.