Исправить dev/.env.example и README по ревью: SMB-заглушки, NATS_ENABLED, статус целей check

Спека и R-7 (design №18): dev/.env.example остаётся единственным источником для запуска из venv,
поэтому в него добавлены OPENBAO__SMB__* и NATS_ENABLED=true; README отделяет текущие цели
Makefile arm-core от планируемых по spec quality-checks.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-03 18:42:17 +04:00
parent de116ed0c1
commit 45d45e17f7
2 changed files with 25 additions and 3 deletions

View File

@ -37,3 +37,12 @@ OPENBAO__MINIO__MINIO_BUCKET=arm-ka
OPENBAO__NATS__NATS_URL=nats://localhost:4222 OPENBAO__NATS__NATS_URL=nats://localhost:4222
OPENBAO__NATS__NATS_SEED= OPENBAO__NATS__NATS_SEED=
OPENBAO__NATS__NATS_JWT= OPENBAO__NATS__NATS_JWT=
# SMB — заглушки (в Срезе 0 не используется); блок обязателен для Settings arm-core
OPENBAO__SMB__SMB_HOST=localhost
OPENBAO__SMB__SMB_PATH=share
OPENBAO__SMB__SMB_LOGIN=user
OPENBAO__SMB__SMB_PASSWORD=password
# Включает подключение arm-core к NATS (без него /healthcheck показывает nats=off)
NATS_ENABLED=true

View File

@ -80,6 +80,11 @@ docker compose run --rm --entrypoint sh minio-init -c 'mc alias set local http:/
| `OPENBAO__NATS__NATS_URL` | `nats://localhost:4222` | адрес NATS | | `OPENBAO__NATS__NATS_URL` | `nats://localhost:4222` | адрес NATS |
| `OPENBAO__NATS__NATS_SEED` | пусто | nkey seed; пусто — подключение без nkeys | | `OPENBAO__NATS__NATS_SEED` | пусто | nkey seed; пусто — подключение без nkeys |
| `OPENBAO__NATS__NATS_JWT` | пусто | JWT NATS; пусто — подключение без nkeys | | `OPENBAO__NATS__NATS_JWT` | пусто | JWT NATS; пусто — подключение без nkeys |
| `OPENBAO__SMB__SMB_HOST` | `localhost` | заглушка SMB (в Срезе 0 не используется); блок обязателен для `Settings` arm-core |
| `OPENBAO__SMB__SMB_PATH` | `share` | заглушка SMB |
| `OPENBAO__SMB__SMB_LOGIN` | `user` | заглушка SMB |
| `OPENBAO__SMB__SMB_PASSWORD` | `password` | заглушка SMB |
| `NATS_ENABLED` | `true` | включает подключение arm-core к NATS; без него `/healthcheck` показывает `nats=off` |
Два блока описывают одни и те же ресурсы: **при смене порта, пароля, пользователя или бакета меняйте обе части.** Два блока описывают одни и те же ресурсы: **при смене порта, пароля, пользователя или бакета меняйте обе части.**
@ -115,18 +120,26 @@ curl -s localhost:<порт сервиса>/healthcheck
``` ```
Порт сервиса задаётся его настройками; в профиле `services` по spec это 8000 (`arm-core`), 8001 (`tabular-parser`), Порт сервиса задаётся его настройками; в профиле `services` по spec это 8000 (`arm-core`), 8001 (`tabular-parser`),
8002 (`scan-gateway`). В ответе `/healthcheck` ожидаются `version` и `nats = ok`. 8002 (`scan-gateway`). Для `arm-core` в ответе `/healthcheck` ожидаются `version` и `nats = ok` — при `NATS_ENABLED=true`
(задан в `.env.example`; без него `nats = off`). Для `tabular-parser` и `scan-gateway` ожидаемые поля и переменные
зависят от их настроек — будет уточнено в задачах 5.x.
## Интеграционные тесты сервисов против compose (черновик) ## Интеграционные тесты сервисов против compose (черновик)
> Черновик: уточняется после задач 3.x и 5.x. > Черновик: уточняется после задач 3.x и 5.x.
Цели `Makefile` одинаковы во всех сервисных репозиториях (spec `quality-checks`): **Сейчас.** Makefile есть только у `arm-core`: `make test-integration` (`pytest -m integration`),
`make check` = `lint` + `test` (ruff, mypy, `pytest -m "not integration"`), `make check-full` = `check` +
`test-integration`. У `tabular-parser` и `scan-gateway` Makefile пока нет.
**Планируется** (spec `quality-checks`, реализуется в задачах 3.x/4.x/5.x): одинаковый набор целей во всех сервисных
репозиториях со следующей семантикой:
- `make test-integration` — `pytest -m integration` против инфраструктуры из этого compose; - `make test-integration` — `pytest -m integration` против инфраструктуры из этого compose;
- `make check` — быстрые проверки без Docker (ruff, mypy, `pytest -m "not integration"`, идентичность контракта); - `make check` — быстрые проверки без Docker (ruff, mypy, `pytest -m "not integration"`, идентичность контракта);
- `make check-full` — `make check` + интеграционные тесты; для `arm-core` — ещё «`alembic upgrade head` → - `make check-full` — `make check` + интеграционные тесты; для `arm-core` — ещё «`alembic upgrade head` →
`downgrade base` → `upgrade head`» и `scripts/check_dbml_vs_orm.py`. Выполняется перед созданием PR. `downgrade base` → `upgrade head`» и `scripts/check_dbml_vs_orm.py` (этих шагов и скрипта пока нет). Выполняется
перед созданием PR.
Интеграционные тесты **требуют поднятой инфраструктуры**: сначала `docker compose up -d && docker compose up -d --wait Интеграционные тесты **требуют поднятой инфраструктуры**: сначала `docker compose up -d && docker compose up -d --wait
postgres nats minio`, затем `make test-integration` (или `make check-full`) в репозитории сервиса. Для `scan-gateway` postgres nats minio`, затем `make test-integration` (или `make check-full`) в репозитории сервиса. Для `scan-gateway`