локальный вход задаётся конфигом: заголовки подставляет сам сервис
- в конфиг добавлены секция [auth.test_headers] и предохранитель [server] debug: заголовки входа подставляет слой транспорта, второго процесса локальный запуск больше не требует - подкоманда devtools proxy удалена целиком: всё, ради чего её поднимали, делает сам сервис - адресного предохранителя нет по решению владельца — цена названа в ADR и в модели угроз
This commit is contained in:
@@ -62,6 +62,16 @@ type ServerConfig struct {
|
||||
Port int `toml:"port"`
|
||||
ShutdownTimeout int `toml:"shutdown_timeout"`
|
||||
ForceShutdownTimeout int `toml:"force_shutdown_timeout"`
|
||||
// Debug — предохранитель отладочного запуска. Умолчание — «выключено»:
|
||||
// отсутствие ключа читается как боевой прогон, а не как отладочный.
|
||||
//
|
||||
// Означает он одно: прогон идёт на машине разработчика, и сервису позволено
|
||||
// подставить то, что в бою даёт окружение. Сегодня подставляется ровно одна
|
||||
// вещь — заголовки входа, — и перечень следствий закрыт: уровня журнала,
|
||||
// текстов внутренних отказов, ограничителя частоты, подмены распознавателя и
|
||||
// проверок старта признак не касается. Новое следствие вешается на него
|
||||
// только отдельной нормой спеки `access`.
|
||||
Debug bool `toml:"debug"`
|
||||
}
|
||||
|
||||
// StorageConfig — хранилище сервиса: каталог данных и числа его базы.
|
||||
@@ -121,6 +131,18 @@ type AuthConfig struct {
|
||||
// пересылаемым распоряжается тот, кто шлёт запрос, и барьер, подделываемый
|
||||
// той же строкой, которой он обходится, не барьер вовсе.
|
||||
TrustedProxies []string `toml:"trusted_proxies"`
|
||||
|
||||
// TestHeaders — имитация заголовков, которые в бою ставит обратный прокси.
|
||||
// Ключ — имя заголовка, значение — то, чем сервис назовёт пришедшего сам.
|
||||
//
|
||||
// Работает только при включённом предохранителе `[server] debug`, и
|
||||
// заполненная секция без него роняет старт: состояние «имитация есть,
|
||||
// предохранителя нет» не читается никак, а обе его прочтения — поломка.
|
||||
//
|
||||
// Умолчание — пустая секция. Непустой она считается по наличию ключа, каким
|
||||
// бы ни было его значение: `Remote-User = ""` — заполненная имитация, а не
|
||||
// отсутствие её.
|
||||
TestHeaders map[string]string `toml:"test_headers"`
|
||||
}
|
||||
|
||||
// TrustedNetworks разбирает перечень доверенных адресов.
|
||||
|
||||
Reference in New Issue
Block a user