Схема RoutingProfile (JSON)
Тип RoutingProfile в SharXCore кодируется в JSON с PascalCase ключами (см. CodingKeys). Декодер также принимает варианты с булевыми значениями в виде строк "true" / "false".
Документ RoutingProfilesDocument в App Group хранит массив профилей; для панелей и диплинков достаточно одного объекта профиля.
Поля
| JSON-ключ | Swift | Описание |
|---|---|---|
id |
UUID? | При отсутствии генерируется новый UUID. |
Name |
String | Отображаемое имя профиля. |
GlobalProxy |
Bool или строка | Если true — правило по умолчанию отправляет трафик в прокси; иначе в direct. |
RouteOrder |
String | Семантика UI/панели; в билдере Xray правила идут в порядке block → proxy → direct (как block-proxy-direct в шаблоне). |
RemoteDNSType |
String | Например DoH; см. XrayConfigBuilder.makeDNSServer. |
RemoteDNSDomain |
String | DoH: может быть полный https://… или задаётся вместе с RemoteDNSIP. |
RemoteDNSIP |
String | IP для DoH: https://{ip}/dns-query. |
DomesticDNSType |
String | Например DoU. |
DomesticDNSDomain |
String | |
DomesticDNSIP |
String | |
Geoipurl |
String | URL для загрузки geo (данных пользователя/панели); использование вместе с UseChunkFiles — см. user routing guide. |
Geositeurl |
String | URL geosite. |
LastUpdated |
String | Произвольная метка от панели. |
DnsHosts |
[String: String] |
Статические записи для блока dns.hosts в Xray. |
DirectSites |
[String] |
Домены / теги для direct (нормализация: при необходимости добавляется префикс domain:). |
DirectIp |
[String] |
IP/CIDR/geoip: для direct. |
ProxySites |
[String] |
Аналогично для прокси-аутбаунда. |
ProxyIp |
[String] |
|
BlockSites |
[String] |
Для block. |
BlockIp |
[String] |
|
DomainStrategy |
String | Значение routing.domainStrategy в Xray; пусто → IPIfNonMatch. |
FakeDNS |
Bool или строка | Включает блок fakedns в конфиге при true. |
UseChunkFiles |
Bool или строка | Если true и в App Group лежат geo/geoip.dat и geo/geosite.dat, в конфиг передаются пути geoip / geosite для Xray. |
Нормализация доменов в правилах: если строка не начинается с full:, domain:, regexp:, geosite:, к ней добавляется префикс domain:.
Ограничения диплинка routing/add
Payload Base64 после декодирования не более 512 KiB (RoutingAnnounceDecoder.maxDecodedByteCount).