Skip to main content

Обзор

Grace access — временный урезанный доступ для подписок, которые только что перешли в expired (закончился срок) или limited (закончился трафик). Человек не остаётся полностью без связи и успевает продлиться, а не уходит к конкуренту в тот же вечер. Подсистема появилась в v3.65.0 и была упрощена в v3.66.0.
Биллинг остаётся источником истины. Grace — это временный оверлей в Remnawave и отдельная запись сессии. Подсистема никогда не меняет даты и статус подписки в биллинге и никогда не обнуляет использованный трафик.

Как это работает

1

Обнаружение

Фоновый цикл ищет подписки, недавно перешедшие в expired или limited. Глубина поиска назад по времени — GRACE_ACCESS_CANDIDATE_LOOKBACK_MINUTES.
2

Проверка права на grace

Подписка должна подходить по типу (см. Кому выдаётся) и не иметь уже открытой сессии.
3

Наложение оверлея

В панели пользователю выставляется сквад grace и квота GRACE_ACCESS_TRAFFIC_GB. Прежнее состояние сохраняется в версионированном снимке.
4

Окно доступа

Сессия живёт GRACE_ACCESS_DURATION_HOURS часов. Всё это время пользователь может продлиться обычным способом.
5

Восстановление

По оплате, по истечении окна или по отзыву панельное состояние возвращается из снимка методом compare-and-set — чужие изменения, сделанные администратором вручную, не затираются.

Режимы работы

GRACE_ACCESS_MODE принимает четыре значения:
Порядок безопасного включения: observe → посмотреть в логах, сколько подписок попадает в кандидаты → true. Выключать лучше через drain, а не сразу в false: так открытые сессии не останутся с оверлеем в панели.

Кому выдаётся

При GRACE_ACCESS_MODE=true доступ получают обычные платные несуточные подписки. Остальные категории включаются отдельно:
Суточные тарифы и триалы по умолчанию выключены намеренно: у них срок истекает штатно и часто, поэтому grace для них превращается в постоянную бесплатную выдачу.

Настройка

Сквады

Заведите в Remnawave отдельные сквады под grace и укажите их UUID:
  • GRACE_ACCESS_EXPIRED_SQUAD_UUID — для подписок, у которых закончился срок;
  • GRACE_ACCESS_LIMITED_SQUAD_UUID — для подписок, у которых закончился трафик.
Разделение позволяет дать этим двум группам разные ноды или разную политику — например, увести истёкших на медленный сквад, а «упёршихся в трафик» оставить на прежних нодах с урезанной квотой.
Если UUID не задан, подписки этой категории grace не получают — сквад для оверлея обязателен.

Жизненный цикл сессии

Причина закрытия фиксируется отдельно:

Ограничения

Даты и статус подписки в биллинге не меняются. Пользователь всё это время формально остаётся без активной подписки — grace только даёт временный канал связи.
Квота GRACE_ACCESS_TRAFFIC_GB — это то, что реально доступно во время окна, а не сброс счётчика подписки.
Если Remnawave недоступна, сессия остаётся в pending и будет доведена фоновой сверкой. Сверка идёт раз в GRACE_ACCESS_RECONCILE_INTERVAL_SECONDS секунд батчами по GRACE_ACCESS_RECONCILE_BATCH_SIZE.

Связанные разделы

Подписки

Статусы подписок и жизненный цикл

Remnawave

Сквады, синхронизация и панельная идентичность