- open-questions-proposal.md: compose-фрагмент scan-emulator/scan-gateway, таблица предложений по контракту и OQ, чеклист для человека (файлы в ../docs не менялись) - .env.example: SCAN_EMULATOR_POLL_SECONDS; уточнён комментарий PUBLISH_RETRIES (повторы после первой попытки) - отмечена задача 16 плана и пункт 6.3 tasks.md Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
61 lines
4.3 KiB
Plaintext
61 lines
4.3 KiB
Plaintext
# Локальное окружение scan-gateway. Скопируйте в .env: cp .env.example .env (.env в git не попадает)
|
||
# Значения совпадают с ../docs/dev/docker-compose.yml и ../docs/dev/.env (compose: NATS 4222, MinIO 9000, бакет arm-ka);
|
||
# это только dev-умолчания. Файл окружения можно выбрать переменной ENV_FILE (по умолчанию .env, путь от каталога api/);
|
||
# переменные окружения приоритетнее файла. Тестовый набор — .env.test (его подключает pytest.ini).
|
||
|
||
DEBUG=true
|
||
|
||
# --- MinIO (S3): единственный бакет, в нём лежат входные файлы, raw/{job_id}.json и results/ ---
|
||
# Адрес без схемы (host:port) — так ждёт miniopy-async; MinIO из compose работает по http, поэтому MINIO_SECURE=false.
|
||
# На платформе MINIO_SECURE не задаётся (по умолчанию true — https).
|
||
OPENBAO__MINIO__MINIO_URL=localhost:9000
|
||
OPENBAO__MINIO__MINIO_ADMIN_LOGIN=minioadmin
|
||
OPENBAO__MINIO__MINIO_ADMIN_PASSWORD=minioadmin
|
||
OPENBAO__MINIO__MINIO_BUCKET=arm-ka
|
||
OPENBAO__MINIO__MINIO_SECURE=false
|
||
|
||
# --- NATS (core, без JetStream) ---
|
||
# NATS_SEED / NATS_JWT пустые: подключение без nkeys (локальная разработка, тесты). На платформе их выдаёт OpenBAO.
|
||
OPENBAO__NATS__NATS_URL=nats://localhost:4222
|
||
OPENBAO__NATS__NATS_SEED=
|
||
OPENBAO__NATS__NATS_JWT=
|
||
|
||
# Включает подписку на recognition.image.request. false — воркер не запускается (сервис поднимется без NATS).
|
||
NATS_ENABLED=true
|
||
# PUBLISH_RETRIES — число повторов публикации ack/результата в NATS после первой попытки (при 3 — до 4 попыток всего);
|
||
# DONE_CACHE_SIZE — размер LRU обработанных job_id (защита от повторной доставки запроса)
|
||
PUBLISH_RETRIES=3
|
||
DONE_CACHE_SIZE=1000
|
||
|
||
# --- Горячие папки ИС Сканирование ---
|
||
# local — обычный каталог (dev, тесты, эмулятор); smb — SMB-шара платформы (нужен блок OPENBAO__SMB__* ниже).
|
||
SCAN_HOTFOLDER_MODE=local
|
||
# Корень горячей папки в режиме local: каталог должен существовать (mkdir -p .hotfolder).
|
||
# Путь считается от каталога api/; его же читает эмулятор.
|
||
SCAN_HOTFOLDER_PATH=./.hotfolder
|
||
# Подкаталоги корня: «Входящие» (сюда кладётся UUID_имя) и «Исходящие» (оттуда забирается <UUID>/<UUID>.json)
|
||
SCAN_INPUT_DIR=Input
|
||
SCAN_OUTPUT_DIR=Output
|
||
# Период опроса «Исходящих», секунды
|
||
SCAN_POLL_SECONDS=5
|
||
# Потолок ожидания ответа ИС, секунды (дополнительно ограничен reply_deadline запроса); повторной отправки нет
|
||
SCAN_TIMEOUT_SECONDS=300
|
||
# Сколько заданий обрабатывается одновременно
|
||
SCAN_MAX_INFLIGHT=4
|
||
|
||
# --- SMB (только при SCAN_HOTFOLDER_MODE=smb; в режиме local весь блок не нужен) ---
|
||
# OPENBAO__SMB__SMB_HOST=smb.example.local
|
||
# OPENBAO__SMB__SMB_PATH=share/scan
|
||
# OPENBAO__SMB__SMB_LOGIN=user
|
||
# OPENBAO__SMB__SMB_PASSWORD=password
|
||
|
||
# --- Эмулятор ИС Сканирование (python -m src.scan_emulator, make emulator; только dev) ---
|
||
# Эти параметры читает сам эмулятор, сервис шлюза их не использует. Корень горячей папки и подкаталоги
|
||
# эмулятор берёт из SCAN_HOTFOLDER_PATH / SCAN_INPUT_DIR / SCAN_OUTPUT_DIR выше.
|
||
# Каталог с фикстурами ответов ИС (aep_N.json); путь от api/ (репозиторий fixtures лежит рядом с workspace)
|
||
SCAN_FIXTURES_DIR=../../fixtures/ocr
|
||
# Задержка перед выдачей ответа, секунды (имитация работы ИС)
|
||
SCAN_EMULATOR_DELAY=2
|
||
# Период опроса входящего каталога эмулятором, секунды (> 0)
|
||
SCAN_EMULATOR_POLL_SECONDS=1
|