diff --git a/dev/.env.example b/dev/.env.example index 2c347e6..2e4a7eb 100644 --- a/dev/.env.example +++ b/dev/.env.example @@ -37,3 +37,12 @@ OPENBAO__MINIO__MINIO_BUCKET=arm-ka OPENBAO__NATS__NATS_URL=nats://localhost:4222 OPENBAO__NATS__NATS_SEED= 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 diff --git a/dev/README.md b/dev/README.md index 16f7b4f..ccd4da4 100644 --- a/dev/README.md +++ b/dev/README.md @@ -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_SEED` | пусто | nkey seed; пусто — подключение без 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`), -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 (черновик) > Черновик: уточняется после задач 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 check` — быстрые проверки без Docker (ruff, mypy, `pytest -m "not integration"`, идентичность контракта); - `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 postgres nats minio`, затем `make test-integration` (или `make check-full`) в репозитории сервиса. Для `scan-gateway`