# Feature Request: injectHosts — возможность игнорировать excludedInternalSquads при инжекте

**URL:** https://f.docs.rw/t/topic/447
**Category:** Предложения
**Created:** 2026-07-31T15:50:56Z
**Posts:** 1

## Post 1 by @killllllian — 2026-07-31T15:50:57Z

## Проблема

Директива `injectHosts` в Xray JSON шаблонах не может инжектировать хосты,  
исключённые из сквада пользователя через `excludedInternalSquads`.

Причина на уровне архитектуры: при генерации подписки SQL-запрос фильтрует  
исключённые хосты **до** того, как список передаётся в `applyRemnawaveInjector`.  
Из-за этого ни `type: "uuids"` с явными UUID, ни `selectFrom: "ALL"` не помогают —  
исключённых хостов просто нет в `allHosts`.

## Сценарий использования

Типичная задача:

- Есть **виртуальный хост-балансировщик** , видимый в подписке сквада A
- Есть **реальные backend-хосты** с определённым тегом, которые исключены из  
сквада A через `excludedInternalSquads` (чтобы не показывать их пользователям  
напрямую)
- Хочется, чтобы балансировщик собирал эти хосты через `injectHosts` по тегу  
(`tagRegex`)

Сейчас это невозможно без одного из двух компромиссов:

1. Убрать исключение → хосты станут видны в подписке напрямую (нежелательно)
2. Создать скрытые дубликаты хостов специально для балансировщика (дублирование,  
неудобно в обслуживании)

## Предлагаемое решение

Добавить новое значение для `selectFrom` (например, `"ALL_IGNORE_SQUAD_EXCLUSIONS"`)  
или булевое поле (например, `ignoreSquadExclusions: true`) в элементы `injectHosts`,  
которое позволяет игнорировать фильтрацию по `excludedInternalSquads`.

Это позволит реализовать паттерн: «backend-хосты скрыты от прямого листинга в  
подписке, но виртуальный балансировщик в этом же скваде может их инжектировать».

## Пример конфига

```
"remnawave": {
    "injectHosts": [
        {
            "selector": { "type": "tagRegex", "pattern": "^my-tag$" },
            "tagPrefix": "proxy",
            "selectFrom": "NOT_HIDDEN",
            "ignoreSquadExclusions": true
        }
    ]
}
```
