локальный вход задаётся конфигом: заголовки подставляет сам сервис

- в конфиг добавлены секция [auth.test_headers] и предохранитель [server] debug:
  заголовки входа подставляет слой транспорта, второго процесса локальный запуск
  больше не требует
- подкоманда devtools proxy удалена целиком: всё, ради чего её поднимали, делает
  сам сервис
- адресного предохранителя нет по решению владельца — цена названа в ADR и в
  модели угроз
This commit is contained in:
av
2026-08-23 13:12:47 +03:00
parent 75c6f0168a
commit 52fe31319a
35 changed files with 3548 additions and 144 deletions
+14 -9
View File
@@ -48,16 +48,21 @@
[docs/security.md](docs/security.md), «Что разграничивает доступ»; известные
прорехи образца конфига — [docs/conventions/config.md](docs/conventions/config.md).
Локально прокси нет, а браузер заголовков не ставит — на место контура встаёт
подставной прокси из оснастки:
Локально прокси нет, а браузер заголовков не ставит — заголовок подставляет сам
сервис по своим настройкам. Второго процесса для этого не нужно: приложение
открывают по адресу сервиса.
```bash
go run ./cmd/devtools proxy
```
Рецепт — три правки `config.toml` сверху вниз:
Приложение после этого открывают **по адресу прокси** — `http://localhost:9000`.
В перечне доверенных адресов при этом должен стоять петлевой; строки под это
стоят в `config.example.toml`.
1. добавить в перечень доверенных адресов пару петлевых — `127.0.0.1` и `::1`;
2. поставить в секции `[server]` ключ `debug = true`;
3. раскомментировать секцию `[auth.test_headers]` и назвать в ней `Remote-User`.
Тот же рецепт записан связным блоком в `config.example.toml`, под перечнем
доверенных адресов, — там же названы принимаемые имена заголовков и цена
включения. Заполненная секция имитации при выключенном предохранителе роняет
старт с именем ключа: сервис с включённым предохранителем называет пришедшего
сам, никого не спросив, и в бою этот ключ стоит `false`.
## Деплой
@@ -101,7 +106,7 @@ Prometheus с префиксом `transcriber_` — и `GET /health` — про
transcriber/
├── cmd/
│ ├── transcriber/ # Точка входа сервиса: конфиг, миграции, сборка зависимостей, запуск
│ └── devtools/ # Оснастка разработчика: подставной прокси и возврат записи в работу
│ └── devtools/ # Оснастка разработчика: возврат остановленной записи в работу
├── internal/
│ ├── entity/ # Модели: запись, файл, результат распознавания
│ ├── ident/ # Выдача и разбор идентификаторов строк (ULID)