Операции Cloud Risk
Эта страница поможет клиенту оспорить решение о безопасности в Cloud, а оператору — обработать обращение. Mockarty Cloud проверяет регистрацию, оплату и создание Shared- или Managed-среды. Если действие заблокировано, клиент может запросить проверку в кабинете Cloud. Оператор изучает связанное обращение и после проверки может снять ограничение.
API обращения возвращает ограниченный набор сведений: без учётных данных, реквизитов платёжных карт, полных тел запросов и исходных идентификаторов устройств.
Для checkout передавайте новый Idempotency-Key для каждой бизнес-операции и повторяйте тот же ключ только для точного повтора после потерянного ответа. Точный повтор завершённой операции возвращает уже зафиксированный результат подписки/счёта с replayed: true и не списывает деньги повторно. Использование ключа с другой суммой или областью даёт конфликт идемпотентности. Если Cloud не может доказать итог денежного эффекта, он возвращает 503 risk_unavailable и запрещает автоматический повтор до сверки; для той же попытки нельзя переключать провайдера или придумывать новый ключ.
Проверки и обращения клиента
Откройте Безопасность и аккаунт → Проверки и обращения в кабинете Cloud. В списке показываются только публичный номер обращения, состояние проверки, время изменений и статус обращения текущего пользователя. Сигналы и пороги детекторов, идентификаторы политик, fingerprints, свидетельства платёжного провайдера и данные других клиентов не выдаются.
Кейс доступен только точному пользователю, владельцу Billing Account либо владельцу, администратору или биллинг-менеджеру затронутого Пространства. Viewer или editor Пространства не может просматривать и обжаловать биллинговое решение только потому, что пользуется этим Пространством.
Нажмите Запросить проверку, объясните, почему решение нужно пересмотреть, и отправьте обращение. Текст должен содержать от 10 до 2 000 символов. Не указывайте пароли, данные карт, API-ключи и другие секреты. Для точной отправки Mockarty использует стабильный ключ идемпотентности, поэтому повтор после потерянного ответа не создаст дубликат активного обращения. После решения в кабинете появится ответ команды проверки.
Операторский контур требует PostgreSQL и подтверждённую роль Cloud operator. Для мониторинга используйте отдельный API-токен со scope operator:risk:read. Для снятия ограничения требуется интерактивный одноразовый step-up либо токен с точным scope operator:risk:write. Не используйте wildcard-токен для автоматизации поддержки. Операторские risk-маршруты намеренно не публикуются как автоматически сгенерированные MCP tools.
Просмотр кейсов
mockarty-cli --server 'https://cloud.mockarty.ru' --token "$MOCKARTY_TOKEN" \
cloud-risk cases --status open --limit 50
mockarty-cli --server 'https://cloud.mockarty.ru' --token "$MOCKARTY_TOKEN" \
cloud-risk case CASE_ID
Если ответ содержит next_cursor, передайте его без изменений как --cursor NEXT_CURSOR. Курсор привязан к выбранному фильтру статуса; при смене --status начните выдачу заново без курсора. Если между страницами кейс сменил статус, API вернёт 409 cursor_stale: начните с первой страницы, чтобы ни один кейс не был незаметно пропущен.
Детальная выдача содержит кейс, минимизированные события решений и обратимые ограничения. Возвращается не более 100 последних событий и 100 последних ограничений плюс более старое исходное событие, если оно необходимо для проверки активного ограничения. Флаги events_truncated и enforcements_truncated сообщают, что более старые неизменяемые записи продолжают храниться. Снятие недоступно, пока точное основание source_event_id не присутствует в выдаче. reason_code предназначен для маршрутизации обращения; пороги детекторов и идентификаторы других клиентов не выдаются.
Снятие ограничения
Перед снятием проверьте обращение клиента и актуальную ревизию ограничения:
mockarty-cli --server 'https://cloud.mockarty.ru' --token "$MOCKARTY_TOKEN" \
cloud-risk release CASE_ID ENFORCEMENT_ID \
--revision 2 \
--reason 'личность клиента подтверждена в обращении SUP-1042'
Номер ревизии не даёт двум операторам применить устаревшее решение. Ответ 409 revision_conflict означает, что обращение изменилось: прочитайте его заново и не повторяйте старую команду. Причина снятия обязательна и сохраняется вместе с решением. Указывайте номер обращения и краткое основание, без персональных данных клиента. Если других активных ограничений нет, обращение закрывается автоматически.
Для снятия нужен Idempotency-Key. CLI и методы Go/Python/Java SDK вычисляют стабильный ключ из точных case, enforcement, revision и нормализованной причины, поэтому повтор той же команды после потерянного ответа вернёт уже выполненное снятие с replayed: true. Другая revision или причина — другая операция, для неё нельзя повторно использовать старый запрос.
Эквиваленты в SDK: CloudRisk().ListCases/ListCasePage/GetCase/ReleaseEnforcement для Go, client.cloud_risk для Python и client.cloudRisk() для Java.
Защитный допуск не заменяет обычные HTTP rate limits, лимиты тарифа и проверку подлинности платёжного провайдера. Таймаут провайдера или неоднозначный результат оплаты нужно сверять; такую операцию нельзя автоматически повторять через другого провайдера, будто списания не было.