Автороутинг

Расширение функционала маршрутизации, позволяющее привязать профиль к удалённому URL-источнику. Профиль периодически скачивается и обновляется автоматически.

Отличие от Routing

Routing
Autorouting

Данные

Base64-профиль передаётся один раз

URL-источник, профиль скачивается по нему

Обновление

Только при обновлении подписки

Автоматически по интервалу (по умолчанию 24ч)

sourceURL

Не устанавливается

Устанавливается — профиль привязан к URL

Индикатор

Нет

Иконка облака в списке профилей

Типы ссылок

Формат ссылки
Описание

://autorouting/onadd/{url}

Скачивает профиль по URL, устанавливает автообновление и активирует

://autorouting/add/{url}

Скачивает профиль по URL, устанавливает автообновление

Важно: ://routing/onadd/{url} не является авторутингом — это одноразовый импорт без автообновления. Только схема ://autorouting/ устанавливает sourceURL и включает автообновление.

{url} — прямая ссылка на JSON-файл профиля (начинается с http:// или https://).

Определение типа

Тип определяется по схеме ссылки:

  • ://autorouting/autorouting (устанавливается sourceURL, включается автообновление)

  • ://routing/routing (одноразовый импорт, без sourceURL, без автообновления)

Примеры:

://autorouting/onadd/https://example.com/profile.json   → autorouting (автообновление)
://routing/onadd/https://example.com/profile.json        → routing (одноразовый импорт)
://routing/onadd/ewogICJOYW1lIjogIlRlc3QiCn0=          → routing (base64)

HTTP-заголовок

Заголовок autorouting содержит URL, по которому доступен JSON-профиль маршрутизации:

Профиль скачивается при обновлении подписки, сохраняется с привязкой к URL-источнику и периодически обновляется.

Тело подписки

Строка autorouting размещается в теле подписки наряду с серверными конфигурациями:

Приоритет источников

При наличии нескольких источников маршрутизации используется первый найденный:

Приоритет
Источник
Тип

1 (высший)

Заголовок autorouting

Автообновляемый

2

Body — строка с URL

Автообновляемый

3

Заголовок routing

Статический

4 (низший)

Body — строка с base64

Статический


Конвертация GitHub URL

Ссылки на файлы в GitHub-репозиториях автоматически конвертируются из «blob» формата в «raw»:

Это происходит прозрачно при импорте и автообновлении. Можно использовать обычные GitHub-ссылки — приложение само подставит правильный URL.


Контент по URL

Файл по URL может содержать:

1. Вложенная deep link ссылка:

Если контент начинается с incy:// — приложение автоматически извлекает данные профиля из ссылки. Это позволяет размещать .deeplink файлы:

Приложение извлечёт base64-данные и декодирует профиль.

2. JSON-профиль (рекомендуемый):

3. Base64-закодированный JSON:

Приложение пробует: вложенную deep link → JSON → base64 (в порядке приоритета).

Структура полей профиля описана в routing.md.


Автообновление

Механизм

  • Приложение проверяет все профили с sourceURL каждые 30 минут

  • Если с момента последнего обновления (sourceLastUpdated) прошло больше updateInterval — профиль скачивается заново

  • При обновлении сохраняются: ID профиля, sourceURL, updateInterval, хеши геофайлов

  • Если URL геофайлов изменились после обновления — геофайлы перекачиваются автоматически

Интервалы обновления

Значение (сек)
Отображение

43200

12 часов

86400

24 часа (по умолчанию)

259200

3 дня

604800

7 дней

Управление в UI

Профили с sourceURL отображают в списке иконку облака. В редакторе профиля доступна секция «Источник обновлений»:

  • URL — можно просмотреть и изменить URL-источник

  • Частота обновления — выбор интервала обновления

  • Обновлено — время последнего обновления

  • Обновить сейчас — ручное обновление профиля

  • Удалить источник — отвязать профиль от URL (превращает в статический)


Обновление существующих профилей

  • Профили с одинаковым Name обновляются, а не дублируются

  • При обновлении автообновляемого профиля сохраняются: sourceURL, updateInterval, хеши геофайлов

  • Если URL геофайлов (Geoipurl, Geositeurl) изменились — геофайлы перекачиваются автоматически

Последнее обновление