3.7 KiB
3.7 KiB
Why
Решение владельца 09.10.2026: запись входящего файла в горячую папку ИС Сканирование — «как в старом АРМ», где она
работала в контуре: smbclient.open_file('<SMB_PATH>/Input/<имя>', 'wb') прямо во входящий каталог
(reference-old-arm/api/src/core/clients.py:111). Нынешняя схема (временный Tmp/.<имя>.part + rename без замены,
OQ-79, OQ-137) требует от учётной записи шары каталога Tmp, прав на его создание и на переименование и в контуре не
проверялась. Там же владелец решил: срок ожидания ответа OCR — 20 минут.
Issue — RSHB/arm-scan-gateway#26. Вне среза 09-delivery-plan.md (доработка Среза 3a по эксплуатации).
What Changes
put(режимыsmbиlocal): файл<job_id>.<ext>пишется сразу во входящий каталог, открытием на запись с усечением (wb); существующий файл перезаписывается (как в старом АРМ). Временного файла, каталогаTmpи переименования больше нет.- Настройка шлюза
SCAN_TMP_DIRудаляется; параметрtmp_dirуSmbHotFolderудаляется. УLocalHotFolderон остаётся только для эмулятора (сборка набора ответа, переменная эмулятораSCAN_TMP_DIRне меняется). - Очистка (
SCAN_CLEANUP=true) больше не удаляетTmp/.<job_id>.<ext>.part. SCAN_TIMEOUT_SECONDSпо умолчанию 300 → 1200 (20 мин) — в паре сreply_deadlineOCR 20 мин в arm-core (RSHB/arm-core#87).- README,
CLAUDE.md,api/.env.example, тесты — под новую семантику.
Non-goals
- Протокол ответа (
Output/<job_id>/*.json, стабилизация набора, OQ-78) не меняется. - Эмулятор ИС не меняется: он по-прежнему пропускает
*.part/*.tmp/dot-файлы и собирает ответ через свойTmp. - Аутентификация SMB не меняется:
OPENBAO__SMB__SMB_LOGIN/SMB_PASSWORDуже передаются в сессию и в каждый вызов. - Таймаут вызовов
smbclient(соединение ~60 с по умолчанию библиотеки) не трогаем. - Таблицы DBML не затрагиваются.
Capabilities
New Capabilities
Modified Capabilities
image-recognition-gateway: запись входящего файла без временного файла и с перезаписью; очистка безTmp.
Impact
- ASSUMPTION(OQ-79): ИС Сканирование не берёт файл, пока шлюз держит его открытым на запись (
smbclient.open_fileпо умолчанию открывает монопольно), — так работал старый АРМ. Если подтвердится обратное, вернуть запись через временный файл. - Учётной записи шары больше не нужны права на
Tmpи на переименование; нужна запись вInput. - Остатки
Tmp/.*.partот прежних версий шлюз больше не трогает — убрать вручную.