Документация Коннекторы платформы Cloud

Коннекторы платформы Cloud

Операторы Cloud управляют исходящей почтой, провайдерами входа, платёжными и фискальными адаптерами, а также назначением внутренней доски поддержки в разделе Консоль оператора → Почтовые, платёжные и фискальные коннекторы. Настройки коннекторов являются централизованной конфигурацией продукта и сохраняются после перезапуска приложения.

У каждого коннектора есть ревизия и неизменяемая версия учётных данных. Для изменения нужны недавняя step-up-проверка, текущая ревизия и стабильный ключ идемпотентности. При параллельном изменении сервер возвращает конфликт: перечитайте список коннекторов и проверьте новую ревизию перед повтором.

Значения секретов имеют контракт write-only. API, операторский интерфейс, вывод CLI, аудит и модели ответов SDK возвращают только безопасные метаданные: secret_configured, secret_fields и secret_revoked. Само значение учётных данных не возвращается.

Устаревшие настройки CLOUD_API_SMTP_* и CLOUD_API_COMMERCIAL_PROVIDERS_JSON больше не являются runtime-authority. После обновления процесс завершает запуск с явной ошибкой, если они остались непустыми, а не молча игнорирует учётные данные. Настройте и проверьте соответствующий коннектор через операторский API или CLI, затем удалите устаревшие переменные и перезапустите Cloud. На время перехода CLOUD_API_COMMERCIAL_PROVIDER_TIMEOUT_MS продолжает задавать таймаут обращения к платёжному провайдеру.

Поддерживаемые коннекторы

Коннектор Ключ коннектора Открытые настройки Поля write-only
Исходящая почта smtp default host, port, username, implicit_tls password
Яндекс ID oauth yandex client_id client_secret
VK ID oauth vk client_id client_secret
GitHub oauth github client_id client_secret
ЮKassa payment yookassa main настройки аккаунта, рынка, валюты, канала и режима secret_key, webhook_hmac
Stripe payment stripe main настройки аккаунта, рынка, валюты, канала и режима secret_key, webhook_secret
АТОЛ Онлайн fiscal atol main реквизиты чека, налоги, аккаунт, рынок, валюта, канал и режим login, password
Внутренние доски поддержки saas mockarty internal base_url, namespace, project_id, issue_type api_token

Назначение внутренней доски поддержки

Настройте этот коннектор в операторском UI. Для развёрнутого назначения base_url должен быть HTTPS-хостом без пути, query, fragment, встроенных credentials и сырого IP-адреса. В локальной Compose-топологии разрешён только фиксированный внутренний адрес http://mockarty-saas-runtime-lb:5770. В namespace укажите выделенный внутренний тенант поддержки, в project_id — точный UUID проекта, а в issue_type — bug, task или story.

API-токен имеет контракт write-only; ограничьте его созданием и чтением задач только в этом внутреннем проекте. При изменении base_url, namespace или project_id токен нужно ввести заново: Cloud никогда не перенаправляет ранее сохранённые write-only credentials на новую authority. Сохранение новой версии коннектора не переносит уже поставленные в очередь маршруты: каждый маршрут остаётся привязан к точной неизменяемой версии credentials, выбранной при создании. Отзыв этой версии fail-closed останавливает её ожидающую работу.

Настройка через CLI

Передавайте через --secret-env только имя переменной окружения: сырое значение не попадает в аргументы процесса. Переменная должна быть задана в окружении CLI.

export MOCKARTY_SMTP_PASSWORD='replace-in-your-secure-shell'
mockarty cloud-connectors configure smtp default \
  --config host=smtp.example.internal \
  --config port=465 \
  --config username=mailer \
  --config implicit_tls=true \
  --secret-env password=MOCKARTY_SMTP_PASSWORD \
  --expected-revision 1 \
  --enabled \
  --idempotency-key smtp-config-20260830-1

До и после изменения просмотрите безопасные метаданные:

mockarty cloud-connectors list

У каждого коннектора, который можно проверить безопасно, есть действие «Проверить подключение» в кабинете (Оператор → Коннекторы) и та же команда в CLI. Проверка только читает: она никогда не создаёт платёж, возврат или чек.

  • SMTP отправляет одно тестовое письмо — только на подтверждённый адрес текущего оператора.
  • YooKassa читает запись магазина (GET /me) с сохранёнными идентификатором магазина и секретным ключом.
  • Stripe читает баланс аккаунта (GET /balance) с сохранённым секретным ключом.
  • АТОЛ Онлайн запрашивает API-токен (POST /getToken) с сохранёнными логином и паролем для настроенной группы касс.
mockarty cloud-connectors test smtp default --idempotency-key smtp-test-20260830-1
mockarty cloud-connectors test payment yookassa main --idempotency-key yookassa-probe-20260830-1
mockarty cloud-connectors test fiscal atol main --idempotency-key atol-probe-20260830-1

Ответ называет следующий шаг, а не повторяет текст провайдера: provider_ok (учётные данные работают), provider_rejected_credentials (провайдер ответил и отверг их — проверьте идентификаторы и секрет), provider_unreachable (провайдер не ответил — проверьте базовый адрес и исходящий доступ в сеть). Коннектору не обязательно быть основным, чтобы его проверить: только что введённый тестовый аккаунт можно проверить до того, как сделать его основным. Результат записывается на версию коннектора и показывается как статус последней проверки.

Скомпрометированную неизменяемую версию можно отозвать по version_id из безопасных метаданных:

mockarty cloud-connectors revoke VERSION_ID --idempotency-key connector-revoke-20260830-1

Отзыв работает fail-closed: runtime-адаптеры больше не могут использовать отозванную версию. Перед повторным включением доставки или платежей настройте и проверьте новую версию.

Сохранённая конфигурация или успешный HTTP-ответ не доказывают работу внешнего провайдера. Перед production-использованием выполните проверку подключения, а затем один полный тестовый платёж (и, для АТОЛ, один тестовый чек) в песочнице самого провайдера. OAuth-провайдеры проверяются входом через них.