Синхронизация Desktop с Cloud или сервером компании
Mockarty Desktop хранит проекты прежде всего локально. Именованный профиль Cloud или компании может синхронизировать поддерживаемые ресурсы проекта после восстановления связи. У каждого профиля отдельные учётные данные, Пространство или namespace, курсор и история конфликтов; при переключении профилей эти значения не переиспользуются.
Перед началом
Создайте или выберите именованный профиль в Mockarty Desktop → Подключение. Для Cloud завершите авторизацию устройства в браузере и явно выберите Пространство. Для сервера компании войдите способом, который указал администратор.
Для профиля Cloud Desktop автоматически продлевает право на запись, пока доступен Cloud. Подтверждённый период длится не более 24 часов и не может выходить за срок оплаченной подписки. Если связь или продление недоступны, локальные данные остаются читаемыми; изменения в Пространстве Cloud приостанавливаются по окончании текущего периода. Подключитесь снова, чтобы получить продлённый доступ. Сам по себе ожидающий запрос на продление этот срок не увеличивает.
Укажите конечный адрес сервера компании, включая https://, если он использует HTTPS. При входе и передаче сессии Desktop не переходит по перенаправлениям: если адрес перенаправляет, попросите администратора дать конечный адрес и укажите его вместо прежнего.
Проверяйте адрес и вводите пароль в Desktop на этом компьютере. Проверка сервера компании, вход по паролю и подтверждение второго фактора принимают запросы только с этого компьютера. Опрос подтверждения Cloud-устройства также требует страницу самого Desktop, а не другой локальный сайт или телефон; подключение телефона — отдельная функция.
При входе на сервер компании Desktop проверяет полученного пользователя на самом сервере и привязывает профиль к TLS-идентичности этого сервера. Если сертификат или ключ сервера позже изменится, Desktop остановит подключение, а не станет автоматически доверять новой идентичности. Подтвердите плановую ротацию у администратора и переподключите профиль. Локальный мастер поддерживает частные адреса компании RFC1918 и IPv6 ULA, но отклоняет loopback, link-local и адреса metadata-сервисов.
Что доступно Desktop, подключённому к серверу компании
Подключённый к серверу компании Desktop работает как клиент этого сервера: открываются модули, которые администратор выдал вам на сервере, в пределах лицензии Mockarty вашей компании. Тарифы и лимиты Cloud в этом режиме не действуют; в плашке аккаунта — Лицензия компании. Без связи с сервером эти модули работают до 7 дней — потом Desktop попросит подключиться снова. Если администратор завершит вашу сессию или снимет доступ, модули закроются, как только Desktop в следующий раз свяжется с сервером.
Разрешить вход Desktop на сервере компании
Сервер Mockarty по умолчанию не принимает вход из Desktop. Администратор включает его один раз: задайте админ-узлу переменную окружения MOCKARTY_DESKTOP_AUTH_ROUTES=1 (в Helm — admin.env.MOCKARTY_DESKTOP_AUTH_ROUTES: "1", в Docker Compose — в окружении сервиса mockarty) и перезапустите узел. Пока вход не включён, Desktop на шаге подключения сообщает: «Сервер доступен, но пока не принимает Mockarty Desktop». Если сервер не отвечает, Desktop так и скажет — проверьте адрес и сеть.
Встроенный интерфейс всегда использует отдельную локальную HttpOnly-сессию. Сессия сервера компании записывается напрямую в хранилище учётных данных операционной системы и добавляется к удалённым запросам только локальным broker-компонентом Desktop. Она не хранится в cookies браузера или Web Storage. Повторный вход ротирует данные в хранилище для того же сервера и не сбрасывает настройки синхронизации или MCP профиля. Если broker или хранилище недоступны, удалённые данные аккаунта и namespaces показывают состояние недоступности, а не локальные данные под видом данных сервера компании.
Подключение профиля не выгружает локальные данные. В блоке Согласие на синхронизацию проектов явно включите синхронизацию, отметьте галочками проекты, выберите типы объектов и сохраните область. Проекты предлагаются списком галочек — это проекты самой этой установки Desktop, и первое согласие стартует со всеми отмеченными; снимите галочки с того, что должно остаться локальным. Сохранение без проекта или без типа объектов отклоняется с подсказкой. Для Cloud назначение — Пространство, которое вы выбрали при входе; поле показывает его название и здесь не меняется — для другого Пространства подключите или активируйте другой профиль. Сразу после первого входа в Cloud Desktop предлагает Настроить синхронизацию и открывает это согласие. Для сервера компании перед сохранением укажите ID пространства назначения (UUID).
Работающий Desktop применяет сохранённую область сразу — перезапуск не нужен. Затем нажмите Показать точный пакет. Предпросмотр показывает точное число объектов, байтов и удалений, а также исключённые объекты. Только Разрешить и синхронизировать отправляет сохранённый пакет; после активации согласия Desktop сразу получает существующие данные из выбранной области Cloud. Если входящий запрос временно недоступен, Desktop сохраняет согласие и уже отправленные локальные данные, показывает предупреждение и повторяет попытку через Синхронизировать и фоновый контроллер. Отмена, закрытие или перезапуск до подтверждения ничего не отправляют и не продвигают курсор. После успешного обмена статус профиля показывает время этой синхронизации; до первого успешного обмена вместо времени сообщается, что обмена ещё не было.
Выбор принадлежит одному именованному профилю и имеет собственную ревизию. Авторизованный Cloud-профиль остаётся привязан к Пространству, подтверждённому при входе: запрос области синхронизации для другого Пространства отклоняется, не меняя профиль и подготовленный предпросмотр. Для другого Пространства Cloud используйте другой профиль подключения. Изменение разрешённой области отменяет прежний предпросмотр и сбрасывает курсоры этого профиля. Устаревшее окно браузера не может подтвердить новую область.
Локальное выполнение остаётся локальным и расходует ноль Cloud IU. Число объектов и байтов в предпросмотре одновременно служит лимитом до отправки сохранённого пакета: Desktop не создаёт более крупную удалённую операцию, чтобы обрезать её уже после отправки.
Лимит макетов Cloud принадлежит платёжному аккаунту, в котором находится выбранное Пространство. Для личного Free разрешены 10 действующих макетов во всех Пространствах этого аккаунта, для личного Pro — 250. Личный план приглашённого участника не увеличивает лимит принимающего аккаунта. Макет, который есть и в Cloud, и на общем рантайме, учитывается один раз. Изменение, удаление и повторная отправка существующего макета не занимают новое место. Если после окончания подписки макетов больше нового лимита, они сохраняются для редактирования и удаления, а новые макеты ждут освобождения места. Отклонённое изменение остаётся локально; его можно повторить после освобождения лимита. Удаление макета на общем узле Mockarty точно так же возвращает его место — см. Общий Mockarty.
Секреты подключения остаются в хранилище учётных данных операционной системы. Ключи и токены провайдеров, cookies браузера, локальные токены сессий, приватные ключи, значения системного хранилища и LLM-профили никогда не входят в синхронизацию проектов. Значения окружений тоже остаются локально, пока в Mockarty не появится явная ссылка на разделяемую переменную. Объект с любым из этих чувствительных значений исключается целиком, а не копируется частично.
Определения окружений — отдельный выбор среди типов объектов. При их выборе Desktop запросит отдельное подтверждение, и переезжают только определения: имя окружения, имена переменных, область и флаги. Значения не покидают устройство, на котором их ввели, — на другом устройстве переменная отображается пустой, и значение вводится там.
API-коллекция синхронизируется как единое согласованное целое: вместе переносятся скрипты коллекции, упорядоченные папки, запросы, скрипты запросов и настройки протоколов. Так же обрабатываются коллекции после импорта из Postman, Insomnia и Bruno. Поэтому чистая установка восстанавливает рабочее дерево запросов, а не пустую оболочку коллекции. Если в запросе встроены Authorization, пароль, токен, API-ключ, приватный ключ, данные провайдера или секретный query-параметр, вся коллекция остаётся локальной и показывается среди исключённых объектов предпросмотра. Перед синхронизацией замените литерал локальной переменной.
Несохранённые черновики запросов API Tester и последний целевой адрес Рекордера остаются в текущей установке Desktop: синхронизация настроек интерфейса их не переносит. Через неё передаются только навигация и несекретные настройки отображения. Если коллекция нужна на другом устройстве, сохраните её и проверьте предпросмотр синхронизации проектов.
Командные модули: трекер, вики, доски и мессенджер
Подписка Team включает на Desktop трекер, вики, доски и мессенджер, и они работают без сети. Чтобы делиться ими с командой, подключите профиль Cloud к Team-пространству и в части Командные модули раздела Согласие на синхронизацию проектов отметьте, что синхронизировать: Проекты и задачи трекера, Страницы вики, Доски, Обсуждения задач, страниц и досок. Раздел появляется, только если ваш тариф включает командные модули, и только для профиля Cloud — корпоративный сервер их не синхронизирует.
То, что вы написали без сети, дойдёт до команды, когда вы снова будете в сети, а их изменения — до вас:
- У каждого объекта сохраняется самая новая версия. Если вы и коллега изменили один объект с момента последней синхронизации, конфликт появится в Состоянии синхронизации, и вы выберете, какую версию оставить, — так же, как для моков.
- Задача, созданная без сети, сохраняет свою идентичность. Если коллега тем временем создал задачу с тем же ключом, ваша получит следующий свободный номер в проекте; ссылки на неё продолжат работать.
- Проект трекера приходит раньше своих задач, а беседа — раньше своих сообщений, поэтому новое устройство получает целостные данные.
- С командой синхронизируются обсуждения — сообщения под задачами, страницами вики, досками и другими объектами.
- Открытые каналы (вступить может любой участник пространства) синхронизируются с командой вместе с историей. На Desktop другого участника такой канал появляется в Обсуждениях: нажмите Каналы (найти и вступить в открытые каналы) — вступите в него там, чтобы читать и писать. Если владелец сделает канал доступным только по приглашению или с одобрением, его продолжают получать только участники; на остальных устройствах копия уходит в архив и сохраняет уже полученные сообщения.
- Личные сообщения и каналы по приглашению или с одобрением доходят только до своих участников — на Desktop каждого участника, вместе с историей. «Избранное» доходит только до ваших собственных устройств. Новый участник получает историю; исключённый перестаёт получать новые сообщения. Комнаты агентов остаются на устройстве, где их создали.
- Коллеги видны на вашем Desktop по имени: в их сообщениях и задачах, а также в списке людей, когда вы начинаете личную переписку или добавляете кого-то в канал. Человек, только что вступивший в пространство, появляется примерно через десять минут.
- Отдельный объект больше 256 КиБ — очень большая доска или страница вики — остаётся на этом устройстве и отмечается в превью как слишком большой для синхронизации.
Личное пространство командные модули не включает: его синхронизация отклоняет их с сообщением, где назван модуль.
Оффлайн-работа и восстановление
Локальные проекты можно редактировать без сети. После восстановления связи Desktop продолжает с курсора выбранного профиля. Ошибка страницы не продвигает курсор, поэтому после перезапуска данные повторяются, а не теряются.
Удалённые выбранные моки, API-коллекции, определения UI-тестов и конфигурации фаззинга удаляются локально с учётом типа сущности. Перед применением Desktop проверяет владельца или namespace и время изменения. Если у вас есть неотправленная локальная правка этого объекта, Desktop сохраняет её и открывает конфликт синхронизации вместо удаления. Повтор того же удаления после перезапуска безопасен. Курсор профиля продвигается только после фиксации всех локальных изменений страницы.
Удаление профиля подключения удаляет его учётные данные, метаданные сессии и историю конфликтов синхронизации этого профиля. Локальные проекты при этом не удаляются. Перед удалением приложения Desktop или его каталога данных убедитесь, что всё нужное есть на другом устройстве или в подключённом Пространстве. Выборочный ZIP-экспорт ниже не заменяет полную резервную копию и не восстанавливает данные автоматически.
Локальные удаления тех же выбранных типов ресурсов также отправляются как стабильные записи об удалении. Это относится и к обычному удалению из редактора, и к переносу ресурсов в корзину при более крупной очистке. Неудачная отправка повторяется с тем же идентификатором и не превращает удалённый ресурс обратно в активную копию.
Если локальный объект новее, тип удалённого объекта не поддерживается или данные нельзя безопасно применить, Desktop сохраняет объект и причину в разделе Подключение → Конфликты синхронизации. Запись остаётся после перезапуска, а курсор — на предыдущей безопасной позиции. Отзыв учётных данных устройства Cloud или потеря сети останавливает дальнейшую удалённую синхронизацию профиля, но не удаляет локальные проекты и не затрагивает другие профили.
Для поддерживаемого выбранного объекта выберите Использовать локальную, Использовать удалённую, Объединить или Пропустить. Сначала Desktop показывает точное действие, объём данных и отпечаток SHA-256. Решение привязывается к точной локальной ревизии, которую вы просмотрели. Параллельное локальное изменение не перезаписывается: Desktop останавливает старое решение и оставляет новую ревизию в очереди для свежего сравнения. Объединённый объект проходит ту же проверку проекта и чувствительных данных, что и обычный пакет синхронизации.
Если вы изменили объект локально, а в Cloud его удалили, конфликт отмечается Удалено в облаке. Облачная панель показывает только последний снимок для сравнения, а не действующую версию. Выберите Оставить локально и восстановить в облаке, чтобы попробовать отправить локальную копию через обычные права синхронизации, или Принять удаление из облака, чтобы удалить локальную копию. Объединение при удалении недоступно. Если облачная версия или локальная правка изменится, пока открыто решение, Desktop сохранит вашу работу и попросит проверить новый конфликт. Пропустить оставляет конфликт нерешённым, а не подтверждает совпадение устройств.
После принятия Cloud действий Использовать локальную или Объединить Desktop сохраняет запись восстановления до изменения локальной базы. Если локальная фиксация прервалась, повторите то же подтверждение после перезапуска: Desktop продолжит локальную часть и не отправит уже принятое изменение в Cloud второй раз. Устойчивая локальная квитанция также делает повтор безопасным, если не удалось записать итоговое состояние конфликта. Если сразу после принятия изменения Cloud не удалось сохранить саму запись восстановления, сначала проверьте обе копии: версия в Cloud уже могла измениться.
Сравнение изменений без редактирования JSON
Нажмите Объединить, чтобы открыть панели локальной версии, результата и
серверной версии. Выбирайте каждое различие и переходите кнопками Предыдущее
различие / Следующее различие — выбор сохраняется. Проверить весь результат
показывает объект целиком. Переход к подтверждению доступен только после выбора
всех различий. Закрытие окна и Отмена не применяют решение.
Общий исходный снимок для автоматического трёхстороннего слияния пока не хранится.
Изменения с неизвестной общей историей требуют вашего выбора. Запросы с устойчивыми
ID и неизменным порядком можно сравнивать по полям. Массивы с изменённым порядком,
повторяющиеся заголовки и смена протокола выбираются целиком, а не склеиваются
по номерам строк. Владелец, пространство и права доступа остаются прежними.
Отсутствующие снимки или значения, которые нельзя безопасно представить,
не позволяют выполнить структурное объединение.
Если записанный конфликт изменился во время просмотра, откройте сравнение снова.
Desktop проверяет просмотренные снимки перед подготовкой подтверждения и повторно
проверяет сохранённый конфликт перед фиксацией решения.
Когда приходят изменения
После согласия Desktop сам отправляет новые и изменённые объекты через несколько секунд после сохранения. Работа с других ваших устройств и от коллег приходит:
- когда вы возвращаетесь в окно Desktop, а последняя синхронизация была больше двух минут назад;
- по кнопке Синхронизировать в панели аккаунта (справа вверху) — там же видно, когда этот Desktop синхронизировался в последний раз или почему последняя синхронизация не удалась;
- в фоне каждые 30 минут.
Открытый список обновляется, когда приходит новая работа. Полученный объект не отправляется обратно как ваше изменение.
Состояния синхронизации и восстановление
Если сервер сообщает об отклонённых изменениях, но не позволяет однозначно
определить затронутые объекты, Desktop не подтверждает пакет и оставляет локальные
изменения в очереди. При смешанном результате из локальной очереди удаляются только
точно принятые ревизии. Каждая отклонённая ревизия остаётся в устойчивом outbox,
показывается в конфликтах синхронизации после перезапуска и не отправляется повторно
автоматически до явного решения пользователя. Более новая локальная ревизия того же
объекта остаётся независимой и может быть синхронизирована. Сама ошибка соединения
не подтверждает доставку.
При ошибке сервера компании Desktop показывает HTTP-код и только распознанный
фиксированный идентификатор отказа. Произвольный текст ошибки сервера и сырое
тело ответа не попадают в интерфейс или локальные логи. Ошибка отправки сама по себе
не доказывает, получил ли сервер пакет; сохраняйте локальную очередь, пока
следующая синхронизация не подтвердит точные ревизии.
Синхронизация API-коллекции не передаёт владение ею и не переносит существующую
коллекцию в другое пространство. Если её идентификатор принадлежит другому
владельцу или пространству, обновление отклоняется, а существующая коллекция
сохраняется.
Если Cloud отклонил отправку из-за устаревшего разрешения на синхронизацию, текущая попытка завершается ошибкой, а локальные изменения остаются в очереди. Desktop не получает новое разрешение и не повторяет запись незаметно внутри той же попытки.
В Cloud действия Использовать локальную и Объединить относятся к удалённой версии, записанной в конфликте. Если она уже изменилась, Desktop оставляет конфликт нерешённым, а не перезаписывает новую работу. Решение не повторяется автоматически для более новой версии.
Действия Использовать удалённую, Объединить, Использовать локальную и Пропустить также проверяют, что в локальном outbox осталась точная просмотренная ревизия. Более новое локальное изменение отменяет старое решение, а не заменяется и не подтверждается незаметно. Откройте заново синхронизированный конфликт и сравните версии ещё раз.
Если полученный из Cloud объект не удалось применить локально, конфликт сохраняет полученную версию и копию объекта после перезапуска. Последующие входящие изменения этого объекта ждут явного разрешения конфликта; Desktop оставляет курсор перед страницей, чтобы затем получить эти изменения повторно.
| Что показано | Что остаётся в безопасности | Следующее действие |
|---|---|---|
| Профиль офлайн | Локальные проекты и последний зафиксированный курсор | Переподключите профиль и создайте новый точный предпросмотр |
| Срок входа истёк или устройство отозвано | Локальные проекты; новая удалённая страница не применяется | Повторно войдите или запросите разрешение устройства, затем обновите предпросмотр |
| Cloud временно не может проверить учётные данные устройства | Локальные изменения и курсор синхронизации сохраняются | Подождите и повторите попытку; из-за этой временной ошибки не выходите из аккаунта и не удаляйте локальные данные |
| После окончания оплаченного периода Team доступна только для чтения | Ожидающие локальные изменения остаются на этом устройстве и не отправляются | Продлите Team в Cloud; после подтверждения нажмите Синхронизировать и проверьте возможные конфликты версий |
| Личное Пространство стало доступным только для чтения после смены тарифа | Ожидающие локальные изменения остаются на этом устройстве; завершающая отправка в этом случае недоступна | Выберите подходящее Пространство в Cloud или восстановите право записи; не удаляйте локальную работу |
| Старое подключение к Cloud доступно только для чтения, хотя право доступа активно | Локальная работа и ожидающие изменения остаются на устройстве | Переподключитесь к Cloud, чтобы обновить подписанное право доступа; старое подключение не подтверждает текущие права на Пространство |
| Ревизия области изменилась | Старый предпросмотр нельзя зафиксировать | Проверьте новое Пространство, проекты и типы объектов, затем создайте новый предпросмотр |
| Записан конфликт | Курсор остаётся перед конфликтующей страницей | Проверьте происхождение и выберите Использовать локальную, Использовать удалённую, Объединить или Пропустить |
| Ответ фиксации потерян | Идентичность сохранённого пакета и устойчивая квитанция | Повторите ту же фиксацию; не расширяйте область |
| Чувствительный объект исключён | Полный локальный объект | Замените встроенные учётные данные ссылками на секреты и обновите предпросмотр |
| Хранилище синхронизации недоступно | Синхронизация останавливается без продвижения курсора | Восстановите локальную установку или экспортируйте данные перед повтором |
| Cloud вернул неполное или противоречивое подтверждение изменений | Ожидающие локальные изменения не помечаются отправленными | Повторите после восстановления связи или сервиса Cloud; не удаляйте локальную работу |
Когда Desktop получает подписанное право Team только на чтение, над рабочей областью появляется предупреждение. Если устройство было офлайн в момент изменения доступа, новое состояние отобразится лишь после подключения; Cloud всё равно не примет отправку изменений до восстановления права.
Панель подключения различает завершающую передачу, которая ожидает подтверждения, подтверждена частично, столкнулась с конфликтом, повторяется или просрочена, и передачу, которую Cloud подтвердил и закрыл. Успешное получение входящих изменений или ноль ожидающих изменений не доказывают, что исходящая передача завершилась. Если панель сообщает, что изменения остаются на устройстве, сохраните установку Desktop и восстановите право записи; не считайте кнопку Синхронизировать доказательством отправки. Завершающая передача доступна только тогда, когда Cloud явно разрешил её для выбранного Пространства; доступ к личному Пространству только для чтения не даёт такого разрешения.
Профиль Cloud с доступом только для чтения не может начинать новые локальные или
общие запуски в выбранном Пространстве. Раннеры, подключённые через этот
Desktop, перестают забирать новые задания из очереди, пока выбран профиль
Cloud только для чтения; прежние результаты остаются доступны. Чтобы
продолжить независимую работу до восстановления доступа к Cloud,
переключитесь на отдельный локальный профиль.
Состояние пакетного обновления не синхронизируется. Проверка или импорт
обновления Desktop не создаёт проектный пакет и не продвигает курсор профиля.
Переподключение синхронизации, в свою очередь, не устанавливает пакет и не
закрывает состояние восстановления обновления.
Безопасный локальный экспорт
В нативном приложении Desktop выберите Файл → Экспорт моков и тестов… и укажите новый файл .zip. Сейчас экспорт включает локальные моки, API-коллекции, определения UI-тестов и конфигурации фаззинга пользователя Desktop. Экспорт работает и после отзыва профиля Cloud, потому что эти данные остаются локально. Другие виды данных в ZIP не входят; автоматически восстановить этот архив в Desktop пока нельзя.
В архив никогда не попадают профили подключения, адреса и отпечатки серверов, ссылки на учётные данные, лицензии, состояние обновлений, журналы, сессии и необработанные записи конфликтов. Каждый JSON-файл перечислен в manifest.json с размером и SHA-256. Манифест указывает вид активного профиля и, для Cloud, Пространство, если оно всё ещё привязано.
Desktop не перезаписывает существующий файл. Он также отклоняет небезопасные пути, повторяющиеся записи архива, неподдерживаемые области данных, чувствительные имена полей и распознаваемые форматы действующих учётных данных. Если хотя бы один выбранный объект не проходит проверку, вся транзакция отклоняется и частичный файл не остаётся. Замените встроенные секреты ссылками на хранилище секретов и повторите экспорт.
Поверхность автоматизации
Сырой транспорт синхронизации Cloud — внутренняя механика Desktop, а не пользовательский сценарий автоматизации. Его Cloud-эндпоинты описаны в OpenAPI для проверки транспорта, а локальные элементы согласия доступны только внутри Desktop. Обе поверхности намеренно отсутствуют в SDK, CLI и MCP-инструментах. Для пользовательской автоматизации используйте обычные API проектов.