Автоматизируйте OrbitPage без совместного использования сеанса информационной панели.
Создавайте токены с ограниченной областью действия и комплексно управляйте панелью управления OrbitPage с помощью сценариев, n8n, бэкэндов или CI.
Последняя версия: 4 августа 2026 г.Управляйте OrbitPage с помощью личных токенов: редактируйте и публикуйте страницы, используйте медиа, домены, аналитику, ИИ, Shop, рассылки и биллинг.
Три границы учетных данных охватывают три разные должности.
На этой странице документирована граница версий REST. Токен OrbitPage не является ключом поставщика OpenAI и никогда не проверяет подлинность конечных точек частной информационной панели.
| Поверхность | Учетные данные | Назначение и поддержка |
|---|---|---|
| REST API автоматизации | op_pat_... | Поддерживается внешний API для скриптов, n8n, серверных серверов и CI. Он управляет рабочим пространством, привязанным к токену, через /api/v1. |
| OrbitPage AI | op_pat_... + ai:read/ai:write | В ходе общедоступного планирования/фиксации подготавливаются и применяются проверенные предложения ИИ. Любые учетные данные поставщика OpenAI остаются отдельной проблемой на стороне сервера и никогда не являются токеном-носителем OrbitPage. |
| API информационной панели | Сеанс Firebase на SaaS; сеанс администратора в OSS | Частные маршруты между браузером и приложением. Они не являются стабильным контрактом внешней интеграции и не должны получать персональные токены API. |
Версионные ресурсы охватывают панель мониторинга; конечные точки канала показывают цикл безопасного обновления.
Каждый запрос привязан к рабочей области, выбранной при создании токена. Токен не может выбрать другого арендатора в URL-адресе или теле запроса, а текущие разрешения рабочей области проверяются снова при каждом вызове.
Контракт использует стандартные операции HTTPS JSON — GET, POST, PUT, PATCH и DELETE — и поддерживает Curl, узел HTTP-запроса n8n и сгенерированные клиенты OpenAPI.
GET/api/v1/linksПрочитать каждый блок страницы
Возвращает упорядоченную коллекцию, идентификатор рабочей области и текущую ревизию.
Область действия:links:readPATCH/api/v1/links/{linkId}Изменение одного существующего блока
Объединяет редактируемые поля, проверяет всю страницу и публикует новую версию.
Область действия:links:writePUT/api/v1/linksЗаменить всю коллекцию
Используйте это для добавления, удаления или изменения порядка блоков после чтения и сохранения текущей коллекции.
Область действия:links:write| Поверхность информационной панели | Пути API | Области действия |
|---|---|---|
| Рабочая область и полный черновик | /workspace · /draft | workspace:read |
| Профиль, тема и подстраницы | /profile · /theme · /pages | profile:* · theme:* · pages:* |
| Общие настройки, настройки конфиденциальности и меню | /settings/* | settings:* |
| Публикация, версии и резервное копирование | /publication · /versions · /backup | publication:* · backup:* |
| Медиа и пользовательские домены | /media/* · /domains/* | media:* · domains:* |
| Аналитика и рассмотренные изменения ИИ | /analytics · /ai/* | analytics:read · ai:* |
| Магазин и новостная рассылка | /shop/* · /newsletter/* | shop:* · newsletter:* |
| Команда и выставление счетов | /team/* · /billing/* | team:* · billing:* |
Все поддерживаемые операции панели управления, сгруппированные по поверхности, которую они контролируют.
Пути ниже указаны относительно https://orbitpage.com/api/v1. Метод, путь и область действия представляют собой стабильный контракт интеграции; Схемы запросов, форматы, значения перечислений и модели ответов находятся в связанном документе OpenAPI 3.1. Неизвестные маршруты возвращают 404, а неподдерживаемые методы никогда не преобразуются автоматически.
01Рабочая область, содержимое и внешний видПроверьте рабочую область, привязанную к токену, и управляйте ее полным черновиком, профилем, блоками, темой и подстраницами.11 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/workspace | Чтение рабочей области, плана, доступа, использования и версии | workspace:read | — |
GET/draft | Прочтите полный черновик редактируемой страницы. | workspace:read | — |
GET/links | Список блоков страниц и текущая версия | links:read | — |
PUT/links | Заменить всю упорядоченную коллекцию блоков. | links:write | LinksReplaceRequest · If-Match |
PATCH/links/{linkId} | Обновление редактируемых полей в одном блоке | links:write | LinkPatch · If-Match |
GET/profile | Чтение идентификационных данных профиля и метаданных | profile:read | — |
PATCH/profile | Обновить поля профиля | profile:write | JSON · If-Match · ?publish=1 |
GET/theme | Прочитать активный черновик темы | theme:read | — |
PUT/theme | Заменить черновую тему | theme:write | JSON · If-Match · ?publish=1 |
GET/pages | Список настроенных подстраниц | pages:read | — |
PUT/pages | Заменить настроенные подстраницы | pages:write | array | { pages } · If-Match · ?publish=1 |
02Настройки и публикацияМеню управления, конфиденциальность, управляемые общедоступные файлы, создание карты сайта и явный жизненный цикл публикации черновика.9 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/settings | Чтение меню, настроек конфиденциальности, текстового файла и карты сайта | settings:read | — |
PUT/settings/menu | Обновление настроек меню | settings:write | JSON · If-Match · ?publish=1 |
PUT/settings/privacy | Обновите настройки согласия и конфиденциальности. | settings:write | JSON · If-Match · ?publish=1 |
POST/settings/text-files | Создайте управляемый общедоступный текстовый файл. | settings:write | TextFileCreateRequest · If-Match |
PUT/settings/text-files/{key} | Обновление управляемого общедоступного текстового файла | settings:write | TextFileUpdateRequest · If-Match |
DELETE/settings/text-files/{key} | Удаление управляемого общедоступного текстового файла | settings:write | If-Match |
POST/settings/sitemap | Повторное создание управляемой карты сайта. | settings:write | If-Match |
GET/publication | Прочитать черновик и статус публикации | publication:read | — |
POST/publication | Опубликовать последний проверенный черновик | publication:write | — |
03Версии, резервные копии и носителиВосстановите измененный контент, экспортируйте или импортируйте данные рабочей области и запустите жизненный цикл резервирования-загрузки-завершения медиафайлов.9 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/versions | Показать опубликованные версии страницы, доступные для восстановления | backup:read | — |
POST/versions/{revision}/restore | Восстановить и немедленно опубликовать историческую версию | backup:write | If-Match |
GET/backup | Экспорт резервной копии управляемой рабочей области | backup:read | ?sections=profile,links,… |
POST/backup/restore | Проверить и восстановить управляемую резервную копию, затем немедленно опубликовать | backup:write | BackupRestoreRequest · If-Match |
GET/media | Список метаданных и использования мультимедиа рабочей области | media:read | — |
POST/media/cleanup | Предварительный просмотр или удаление неиспользуемых медиафайлов | media:write | MediaCleanupRequest |
POST/media/uploads/reserve | Зарезервируйте прямую загрузку мультимедиа | media:write | MediaUploadReserveRequest |
POST/media/uploads/finalize | Завершить и зарегистрировать загруженный объект | media:write | UploadTokenRequest |
DELETE/media/uploads | Прервать загрузку зарезервированного мультимедиа | media:write | UploadTokenRequest |
04Домены, аналитика и искусственный интеллектУправляйте активацией DNS, читайте отчеты о производительности в рамках плана и применяйте изменения ИИ только после проверенной предварительной версии.8 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/domains | Чтение статуса домена и требований DNS | domains:read | — |
POST/domains | Подключите личный домен | domains:write | DomainConnectRequest |
POST/domains/refresh | Обновить проверку и активацию | domains:write | — |
DELETE/domains | Отключите личный домен | domains:write | — |
GET/analytics | Прочтите аналитический отчет информационной панели | analytics:read | ?days=7|30|90 |
GET/ai/allowance | Чтение разрешений ИИ и текущего использования | ai:read | — |
POST/ai/plan | Создание проверенного предварительного просмотра изменений ИИ | ai:write | AiPlanRequest |
POST/ai/commit | Зафиксируйте ранее проверенный предварительный просмотр AI | ai:write | AiCommitRequest |
05ShopПодключайте коммерцию, управляйте продуктами и внешним видом, загружайте защищенные файлы, а затем публикуйте или отменяйте публикацию синхронизированного блока «Магазин».10 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/shop | Прочитать товары, заказы, клиентов и состояние Shop; операция может инициализировать закрытые данные Shop и обновить статус Stripe | shop:read | ?refresh=0|1 |
POST/shop/connect | Создать или продолжить регистрацию в Stripe Connect | shop:write | — |
POST/shop/products | Создайте или обновите товар в магазине. | shop:write | ShopProductRequest |
DELETE/shop/products/{productId} | Удаление товара из магазина | shop:write | — |
PUT/shop/appearance | Полностью заменить оформление магазина | shop:write | ShopAppearanceRequest |
POST/shop/publish | Опубликовать Shop и синхронизированный блок страницы | shop:write | — |
POST/shop/unpublish | Отменить публикацию магазина | shop:write | — |
POST/shop/uploads/reserve | Зарезервируйте загрузку файла продукта | shop:write | ShopFileUploadReserveRequest |
POST/shop/uploads/finalize | Завершите загрузку файла продукта | shop:write | ShopUploadTokenRequest |
DELETE/shop/uploads | Отменить зарезервированную загрузку файла товара | shop:write | ShopUploadTokenRequest |
06Информационный бюллетеньНастройте зашифрованную доставку SMTP, управляйте подписчиками, получившими согласие, и контролируйте весь жизненный цикл кампании.9 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/newsletter | Чтение подписчиков, кампаний и состояния SMTP | newsletter:read | — |
PUT/newsletter/settings | Обновить настройки зашифрованного SMTP | newsletter:write | NewsletterSmtpRequest |
POST/newsletter/settings/test | Отправьте тест конфигурации | newsletter:write | EmailRecipientRequest |
POST/newsletter/subscribers | Добавьте или обновите согласившегося подписчика | newsletter:write | NewsletterSubscriberRequest |
DELETE/newsletter/subscribers/{subscriberId} | Удаление подписчика | newsletter:write | — |
POST/newsletter/campaigns | Создайте или обновите кампанию | newsletter:write | NewsletterCampaignRequest |
DELETE/newsletter/campaigns/{campaignId} | Удалить кампанию | newsletter:write | — |
POST/newsletter/campaigns/{campaignId}/send | Поставьте в очередь или запланируйте кампанию | newsletter:write | NewsletterSendRequest |
DELETE/newsletter/campaigns/{campaignId}/send | Отменить кампанию в очереди | newsletter:write | — |
07Команда и выставление счетовУправляйте соавторами и приглашениями, проверяйте подписки и открывайте аутентифицированные сеансы оформления заказа или портала Stripe.9 операции
| Метод и путь | Операция | Требуемая область действия | Ввод и управление |
|---|---|---|---|
GET/team | Список участников и ожидающих приглашений | team:read | — |
POST/team/invitations | Создайте ссылку-приглашение в рабочее пространство без отправки электронного письма | team:write | TeamInvitationRequest |
PATCH/team/members/{memberUid} | Обновление роли участника | team:write | TeamRoleRequest |
DELETE/team/members/{memberUid} | Удаление участника рабочей области | team:write | — |
DELETE/team/invitations/{invitationId} | Отменить ожидающее приглашение | team:write | — |
GET/billing | Чтение плана и состояния подписки | billing:read | — |
POST/billing/checkout | Создайте оформление заказа по плану Stripe | billing:write | BillingCheckoutRequest |
POST/billing/portal | Создайте сеанс биллингового портала Stripe | billing:write | BillingPortalRequest |
POST/billing/promotion-code | Активируйте промокод и синхронизируйте права, предоставляемые тарифным планом | billing:write | PromotionCodeRedeemRequest |
Создайте один токен для одной автоматизации и одной среды.
Откройте «Панель управления» > «Учетная запись» > «Токены личного API». Дайте токену имя, которое идентифицирует его владельца и назначение, выберите полную рабочую область, рабочую область только для чтения, только ссылки или отдельные области ресурсов, затем выберите срок действия 30, 90 или 365 дней — или не истечение срока действия, если документированный процесс ротации уже существует.
Подтвердите свою личность
Создание токена — это конфиденциальное действие, требующее недавней аутентификации Google или пароля.
Выберите наименьшую область действия.
Области чтения и записи различны для каждого ресурса, например theme:read, theme:write, shop:read и shop:write. Область записи автоматически включает соответствующую область чтения.
Скопируйте секрет один раз
OrbitPage хранит хэш SHA-256, а не восстанавливаемый секрет. Если он утерян, отзовите его и создайте другой токен.
Сохраните его вне кода
Используйте переменную среды или секретное хранилище CI. Никогда не помещайте токен в URL-адрес, репозиторий, снимок экрана, пакет браузера или журнал сборки.
export ORBITPAGE_TOKEN='op_pat_...'
curl --silent --show-error --include \
--header "Authorization: Bearer $ORBITPAGE_TOKEN" \
https://orbitpage.com/api/v1/links$env:ORBITPAGE_TOKEN = 'op_pat_...'
$headers = @{ Authorization = "Bearer $env:ORBITPAGE_TOKEN" }
Invoke-RestMethod -Uri 'https://orbitpage.com/api/v1/links' -Headers $headersПрочитайте коллекцию и запишите ее версию перед каждым изменением.
Тело ответа содержит упорядоченные блоки данных и текущую числовую версию. Та же редакция появляется в X-OrbitPage-Revision и как слабый ETag. Сохраните любое значение для If-Match; не угадывайте и не кэшируйте его в несвязанных запусках.
HTTP/2 200
etag: W/"42"
x-orbitpage-revision: 42
content-type: application/json; charset=utf-8
{
"object": "list",
"data": [
{
"id": "portfolio-main",
"type": "link",
"title": "Selected work",
"description": "Recent projects and case studies",
"url": "https://example.com/work",
"isActive": true,
"status": "live",
"availability": "available",
"clickCount": 18,
"position": 0
}
],
"revision": 42,
"workspace": {
"tenantId": "tenant_...",
"pageId": "page_...",
"username": "your-page"
}
}dataПолная упорядоченная коллекция блоков. Порядок массива — это визуальный порядок страниц.revisionВерсия с оптимистичным параллелизмом, используемая при каждой записи.workspaceКлиент, страница и имя пользователя постоянно привязаны к этому токену.ETagСамое безопасное значение для прямой передачи в качестве следующего заголовка If-Match.Используйте PATCH для наименьшего изменения существующего блока.
URL-кодируйте идентификатор, возвращаемый GET, и отправляйте только те поля, которые должны измениться. OrbitPage объединяет исправление с существующим блоком, защищает поля идентификации и аналитики, проверяет всю страницу на соответствие ее схеме и плану, а затем немедленно публикует.
curl --request PATCH \
--url https://orbitpage.com/api/v1/links/portfolio-main \
--header "Authorization: Bearer $ORBITPAGE_TOKEN" \
--header 'Content-Type: application/json' \
--header 'If-Match: W/"42"' \
--data '{
"title": "Book a consultation",
"url": "https://example.com/book",
"isActive": true
}'| Группа полей | Примеры | Поведение |
|---|---|---|
| Содержание | title, description, url, content, textItems | Доступно для редактирования, если оно действительно для существующего типа блока. |
| Видимость и время | isActive, status, availability, startDate, endDate, timezone | Проверено вместе с правилами планирования и планирования. |
| Внешний вид и средства массовой информации | icon, coverImage, backgroundColor, alignment, size | Принимается только в том случае, если значения соответствуют схеме страницы. |
| Защищено | id, type, clickCount, ctaClicks, systemKey | Проигнорировано или отклонено. Блоки, управляемые системой, не могут быть исправлены. |
Используйте PUT только тогда, когда необходимо изменить саму коллекцию.
PUT заменяет всю упорядоченную коллекцию. Это операция добавления блока, удаления блока или изменения порядка страниц. Это не ярлык для обновления одного заголовка: пропуск блока удаляет его со страницы.
const token = process.env.ORBITPAGE_TOKEN;
if (!token) throw new Error("ORBITPAGE_TOKEN is missing");
const endpoint = "https://orbitpage.com/api/v1/links";
const authorization = { Authorization: `Bearer ${token}` };
const read = await fetch(endpoint, { headers: authorization });
if (!read.ok) throw new Error(`GET failed: ${read.status} ${await read.text()}`);
const current = await read.json();
const revision = read.headers.get("etag") ?? String(current.revision);
// Preserve the full collection and change only the intended block.
const links = current.data.map((block) =>
block.id === "portfolio-main"
? { ...block, title: "Work and case studies" }
: block
);
const write = await fetch(endpoint, {
method: "PUT",
headers: {
...authorization,
"Content-Type": "application/json",
"If-Match": revision
},
body: JSON.stringify({ links })
});
if (!write.ok) throw new Error(`PUT failed: ${write.status} ${await write.text()}`);
console.log(await write.json());Используйте собственный узел n8n или тот же контракт из HTTP-клиента, сгенерированного клиента, серверной части или средства запуска CI.
OrbitPage не требует SDK: совместим любой HTTPS-клиент, который может отправлять JSON, аутентификацию носителя и стандартные запросы GET, POST, PUT, PATCH и DELETE. Приведенные ниже шаблоны охватывают части с состоянием, которые интеграция должна обрабатывать явно.
Собственный узел n8n
Установите n8n-nodes-orbitpage и создайте учётные данные OrbitPage API с персональным токеном и Base URL. Тест подключения безопасно считывает рабочее пространство; затем пошаговые действия управляют путями, разрешениями, связями элементов и записью с учётом ревизий, не сохраняя секрет в JSON рабочего процесса.
Черновик и публикация
Для записи профиля, темы, страниц и поддерживаемых настроек требуется If-Match и обновление черновика по умолчанию. Добавьте ?publish=1 для соответствующей немедленной публикации или просмотрите несколько отложенных изменений и один раз вызовите POST /publication. Ссылки PATCH и PUT публикуются немедленно.
Прямая загрузка мультимедиа
Сначала зарезервируйте загрузку, отправьте байты по полученному URL хранилища, затем завершите операцию. Отправляйте bearer-токен OrbitPage только на orbitpage.com; для запроса к хранилищу используйте только возвращённые метод и временные заголовки.
Проверено коммит AI
Plan возвращает проверенный предпросмотр без изменения страницы. Сохраните и проверьте previewToken, затем примените именно это предложение. Задавайте publish в теле commit только тогда, когда автоматизации разрешено публиковать результат.
Install community node: n8n-nodes-orbitpage
Credential: OrbitPage API
OrbitPage API Token: op_pat_...
OrbitPage Base URL: https://orbitpage.com
Connection test: GET /api/v1/workspace
First safe workflow step:
Node: OrbitPage
Resource: Workspace & Draft
Operation: Get Workspace Overview
First revision-controlled write:
Resource: Theme
Operation: Replace Entire Theme Draft
Revision Check: Use Latest Automatically (Recommended)# 1. Reserve an upload and receive uploadUrl, slot and uploadToken
POST /api/v1/media/uploads/reserve
{ "filename": "cover.jpg", "contentType": "image/jpeg", "sizeBytes": 245760 }
# 2. Upload the bytes directly using the returned URL, method and headers
# Do not forward the OrbitPage Authorization header to the storage URL.
# 3. Register the uploaded object in the workspace
POST /api/v1/media/uploads/finalize
{ "slot": "<slot>", "uploadToken": "<uploadToken>" }# 1. Generate a validated preview without changing the page
POST /api/v1/ai/plan
{ "message": "Make the primary CTA clearer" }
# 2. Review the returned operations and previewToken
# 3. Apply the exact reviewed preview; publishing remains explicit
POST /api/v1/ai/commit
{ "previewToken": "<previewToken>", "publish": false }Используйте Base URL https://orbitpage.com без /api/v1. При успешном сохранении читается /api/v1/workspace и проверяются токен, привязка рабочего пространства и разрешение workspace:read без изменения данных.
Ошибка 401 требует действительный токен на замену, а 403 — недостающее разрешение. При повторных перенаправлениях проверьте Base URL или обратный прокси. Передайте поддержке статус и код JSON, но никогда не передавайте секрет.
Считайте учетные данные автоматизации как короткие, наблюдаемые жизненные циклы.
Рабочая область поддерживает до десяти активных личных токенов на одного пользователя. В списке учетных записей показаны префикс каждого токена, области действия, даты создания и истечения срока действия, а также недавнее использование. Временные метки последнего использования намеренно записываются не чаще одного раза в пять минут.
name: Update OrbitPage
on: workflow_dispatch
jobs:
update:
runs-on: ubuntu-latest
env:
ORBITPAGE_TOKEN: ${{ secrets.ORBITPAGE_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: node scripts/update-orbitpage.mjs- Назовите токены по системе и среде, например «Действия GitHub · производство».
- Ротация путем создания замены, обновления секретного хранилища, проверки одного чтения, а затем отзыва старого токена.
- Отозвать немедленно после подозрения на раскрытие информации, смену владельца или прекращение рабочего процесса. Отзыв вступает в силу при следующем запросе.
- Не создавайте долгосрочный общий токен. Отдельные учетные данные делают ведение журналов, ротацию и реагирование на инциденты понятными.
Ветка по статусу HTTP и машиночитаемому коду.
При ошибках используется JSON с ошибкой и кодом. Не анализируйте человеческое предложение для управления рабочим процессом. Большинство ответов 4xx требуют изменения запроса или учетных данных; к автоматическому пути повторной попытки относятся только конфликты ревизий и ограничения скорости.
INVALID_JSON · LINKS_REQUIRED · LINK_PATCH_INVALIDИсправьте тело запроса или поля, отклоненные схемой страницы.PERSONAL_TOKEN_*Замените отсутствующий, недействительный, просроченный или отозванный токен. Не повторяйте попытку с тем же секретом.PERSONAL_TOKEN_SCOPE_DENIED · SYSTEM_LINK_PROTECTEDИспользуйте требуемую область или остановитесь: текущему удостоверению не разрешено выполнять эту операцию.LINK_NOT_FOUNDОбновить коллекцию; идентификатор блока мог быть удален или заменен.revision_conflictGET еще раз, повторно примените предполагаемое изменение к новому состоянию и повторите попытку с новой ревизией.REQUEST_TOO_LARGEРазмер тела JSON должен быть не более 768 КиБ.UNSUPPORTED_CONTENT_ENCODINGОтправьте несжатое тело запроса JSON.revision_requiredДобавьте If-Match, используя ревизию или ETag, возвращенную последним GET.RATE_LIMITEDВыждите время из Retry-After, затем повторите запрос с экспоненциальной задержкой и случайным разбросом.Текущие ограничения допускают 120 запросов в минуту и 5000 запросов в день на один токен. Ограничения могут стать более строгими во время защиты от злоупотреблений; всегда соблюдайте команду Retry-After.
Безопасная интеграция является узкой, секретной и учитывает версии.
Наименьшие привилегии
Используйте доступ только для чтения, если задание не должно быть опубликовано. Возможности токена никогда не могут превышать текущую роль владельца в рабочей области.
Только на стороне сервера
Вызовите API из доверенного сценария, серверной части или средства CI. Пакет браузера, мобильный клиент или общедоступный репозиторий не могут хранить секрет носителя.
Нет записи вслепую
Непосредственно перед записью выполните GET-запрос и используйте If-Match. Если ошибка 409 возвращает revision_conflict, снова прочитайте ресурс и повторно примените нужное изменение; для любого другого кода устраните описанную в документации бизнес-причину.
Проверка результатов
Проверьте статус ответа, версию и возвращенные данные. Для важных изменений откройте общедоступную страницу после публикации и оповестите об ошибке без регистрации токена.
REST API автоматизации с персональным токеном — это управляемая возможность SaaS.
В репозитории с открытым исходным кодом есть Express API для встроенной панели, но этот внутренний API сессии администратора не является тем же версионированным контрактом автоматизации. Не отправляйте токен op_pat на self-hosted сервер и не отправляйте JWT self-hosted администратора на orbitpage.com/api/v1.
Используйте это руководство, контракт OpenAPI и персональные токены, созданные в учетной записи.
Используйте встроенную панель мониторинга в том же доверенном источнике. В документации репозитория объясняются внутренние границы для участников и сопровождающих.