- dev/README.md: примеры /healthcheck дополнены subjects по сервисам - design.md (решение 7) и dev/README.md: уточнено, что запросы в тестах ядра идут на умолчательные subject'ы - repo-templates: имена files.* помечены как умолчания Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
CLAUDE.md — scan-gateway
Общий контекст системы — ../CLAUDE.md и ../docs/. Этот файл — только про этот сервис.
Что это
Адаптер внешней ИС Сканирование (Content AI) для PDF/PNG/JPG: положить файл во «Входящие» как <job_id>.<ext>
(временный .part — в Tmp), забрать все Исходящие/<job_id>/*.json (по одному json на документ), сохранить склеенный
сырой ответ в S3 raw/{job_id}.json (в БД не регистрируется), очистить горячую папку (только при SCAN_CLEANUP=true),
нормализовать в ../docs/contracts/recognition-result.schema.json (statementDocument), опубликовать
files.tabular_parsed (по умолчанию; задаётся OPENBAO__NATS__NATS_*_SUBJECT). Таймаут 5 мин → TIMEOUT. Нет доступа к БД.
Правила
- Нормализация по фактическим ответам
../fixtures/ocr/aep_*.json, а не по ТЗ (OQ-13, OQ-14): confidence → 0–100, поля организации/даты — по тому, что реально приходит. - Один PDF может содержать ББ и ОФР → два документа в результате (по одному на таблицу ответа).
- Dev-режим: эмулятор ИС Сканирование (
python -m src.scan_emulator) ищет пару PDF + JSON по sha256 содержимого входящего файла; имя файла на выбор пары не влияет. Промах — наборSCAN_EMULATOR_DEFAULT, иначеINVALID_DOCUMENT.