Документация Общие проекты SaaS

Общие проекты SaaS

Общий SaaS хранит данные проектов одного явно выбранного Пространства Cloud и предоставляет их авторизованным пользователям Cloud и Desktop. Это не изолированный инстанс Mockarty и не проект, который остаётся только на локальном Desktop.

Проверка доступности

Откройте раздел Среда выполнения в кабинете Cloud. Общими проектами можно пользоваться, только когда карточка Mockarty в облаке показывает Доступно. На той же карточке есть кнопка Открыть Mockarty.

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

Работа с проектами в кабинете

  1. Выберите нужное Пространство.
  2. Откройте Среду выполнения.
  3. Разверните блок Общие проекты (для синхронизации Desktop и API) и укажите название и корректное тело JSON.
  4. Создайте проект. Для сохранения следующей ревизии используйте Изменить.

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

CLI

Настройте CLI на адрес Cloud и используйте API-токен с правом shared-projects:read или shared-projects:write. Тело проекта храните в JSON-файле.

mockarty-cli cloud-shared-projects list --space 11111111-1111-4111-8111-111111111111

mockarty-cli cloud-shared-projects create \
  --space 11111111-1111-4111-8111-111111111111 \
  --request-id 33333333-3333-4333-8333-333333333333 \
  --name acceptance \
  --body-file ./project.json

mockarty-cli cloud-shared-projects update 22222222-2222-4222-8222-222222222222 \
  --space 11111111-1111-4111-8111-111111111111 \
  --name acceptance-v2 \
  --body-file ./project-v2.json \
  --revision 1

Доступны просмотр списка, чтение, создание, изменение и удаление. Параметр --space обязателен: CLI не угадывает Пространство по другому профилю.

Параметр --request-id необязателен и принимает UUID. Для создания храните это значение до однозначного ответа. Если соединение оборвалось или сервис вернул 5xx, повторите в точности ту же команду создания с тем же UUID. Сервис вернёт первый проект и не создаст дубликат. Повтор этого UUID с другим названием, телом или от другого пользователя Cloud вернёт 409. Кабинет и Desktop выполняют это правило автоматически. Изменение и удаление по-прежнему опираются на показанную ревизию; их request ID служит корреляцией аудита, а не квитанцией повтора.

REST API

Используйте публичные маршруты Cloud:

GET    /api/v1/cloud/spaces/{space_id}/shared/projects
POST   /api/v1/cloud/spaces/{space_id}/shared/projects
GET    /api/v1/cloud/spaces/{space_id}/shared/projects/{project_id}
PUT    /api/v1/cloud/spaces/{space_id}/shared/projects/{project_id}
DELETE /api/v1/cloud/spaces/{space_id}/shared/projects/{project_id}?revision={revision}

Аутентифицируйтесь сессией Cloud либо одним API-токеном в X-API-Key или Bearer. Не отправляйте два типа учётных данных одновременно. Маршруты runtime-токена, синхронизации, событий запуска, ревизий и переноса являются внутренними и не относятся к поддерживаемому клиентскому API.

Для безопасного повтора создания передайте канонический ненулевой UUID в X-Request-ID и используйте его повторно только для полностью совпадающего запроса после неоднозначной сетевой ошибки или 5xx. Если заголовок отсутствует или не содержит корректный ненулевой UUID, Cloud создаст новый идентификатор операции; другой процесс клиента не сможет надёжно повторить его.

Сервис возвращает 404, если аутентифицированный пользователь не состоит в запрошенном Пространстве, 409 для устаревшей ревизии, 429 с Retry-After при занятом допуске общего SaaS, 503 с Retry-After и кодом runtime_authority_reconciling для участника, чей доступ выдан только что и ещё применяется (повторите через указанные секунды), и 503, когда актуальные полномочия среды недоступны. Чужое Пространство намеренно неотличимо от отсутствующего. Повтор неудачного запроса не меняет выбранное место выполнения.

Граница Desktop

Профиль Desktop для Cloud должен содержать явное Пространство, одобренные учётные данные устройства и зафиксированную идентичность сервера Cloud. Для общего запроса Desktop обменивает их на краткоживущие полномочия конкретного Пространства. Отзыв устройства или членства запрещает новый обмен. Локальный профиль и профиль Компании остаются отдельными маршрутами и не используются как fallback для неудачного общего запроса.

В сборке Desktop с функцией Shared-запуск проверка проекта выполняется так:

  1. Активируйте разрешённый профиль Cloud в Настройках.
  2. Откройте Shared-запуск и вставьте UUID проекта.
  3. При необходимости включите требование JSON-объекта в теле проекта и нажмите Проверить в Shared.
  4. Не закрывайте страницу, пока статус обновляется. Активную проверку можно остановить кнопкой Отменить запуск.

Desktop явно показывает недоступность, отзыв доступа, конфликт и занятость Shared. Он не переносит запуск в Local, Company или Managed. Это встроенная функция Desktop; маршруты жизненного цикла запуска не входят в поддерживаемый публичный REST API. Убедитесь, что функция Shared-запуск присутствует в сборке Desktop для вашей установки.

Смотрите также Подключение Desktop к Cloud, Синхронизация Desktop и Cloud и Пространства Cloud и совместная работа.