В платформу Voximplant был добавлен раздел Secrets — специализированное хранилище для API-ключей, токенов и других конфиденциальных данных, которые Вы можете использовать в своих сценариях VoxEngine. Вы можете управлять секретами через панель управления и получать их в коде с помощью простого метода. Это решение заменяет распространенную практику вписывания ключей прямо в сценарии или использование Application Storage не по назначению.

Современные сценарии Voximplant проходят аутентификацию во множестве сторонних сервисов: у провайдеров Voice AI, поставщиков STT и TTS, в CRM-системах, платежных шлюзах и многих других. Secrets предоставляет каждой такой учетной записи подходящее место: выделенное хранилище с управлением через панель управления, программным контролем и четким отделением конфиденциальных данных от кода Вашего сценария.

 Основные возможности

  • Выделенное хранилище для учетных данных, отдельное от Application Storage (которое лучше оставить для данных сессий и состояний).
  • До 8 192 байт на один секрет — этого достаточно для объемных данных, таких как credentials.json от GCP.
  • Извлечение данных одним вызовом из любого сценария: `VoxEngine.getSecretValue("NAME").
  • Интерактивное управление через панель управления Voximplant или программное управление из Вашего CI/CD пайплайна через Management API.
  • Контроль доступа к секретам через роли субаккаунтов и сервисные аккаунты, что исключает доступ посторонних лиц.

 Заметки для разработчика


 Вы можете просматривать и задавать значения секретов в панели управления manage.voximplant.com или через Management API.

Максимальный размер значения секрета составляет 8 192 символа; значение возвращается в виде строки в момент вызова. Извлечение происходит внутри сценария VoxEngine с помощью простого метода VoxEngine.getSecretValue(SECRET_NAME), поэтому в коде не нужно настраивать дополнительные этапы получения учетных данных. Чтобы обновить секрет, измените его значение в панели управления или через Management API — новые вызовы сразу получат актуальное значение без необходимости ротации сценариев.

Управление секретами ограничено ролями: только пользователи с ролями Administrator, Owner или Developer могут создавать, читать или менять секреты через панель управления и Management API. Пользователи с другими ролями не могут просматривать значения секретов, что делает Secrets подходящим решением для хранения учетных данных в аккаунтах с несколькими пользователями.

 Быстрый старт: вызов Voice AI провайдера с сохраненным ключом


 В примере ниже запускается сессия Ultravox Voice AI с аутентификацией при помощи API-ключа, сохраненного как секрет Voximplant (например, OPENAI_API_KEY). В самом файле сценария конфиденциальные данные отсутствуют.

require(Modules.OpenAI);

VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
  const voiceAIClient = await OpenAI.createRealtimeAPIClient({
    authorizations: {
      "Authorization": `Bearer ${VoxEngine.getSecretValue("OPENAI_API_KEY")}`,
    },
    body: AGENT_CONFIG,
    onWebSocketClose: handleClose,
  });

  // ...connect the inbound call to the agent
});

Данный пример намеренно упрощен, чтобы продемонстрировать получение секрета, и не предназначен для прямого использования в продакшене.

 Стоимость и доступность

Функционал Secrets уже доступен во всех регионах Voximplant без дополнительной оплаты. Управляйте секретами через портал Voximplant или программно через Management API и используйте их в любом сценарии VoxEngine.

Ссылки