Andrey Epifancev e08a69e3e1 openspec: архив nats-files-subjects (#77)
Change слит PR #78; спеки обновлены (subject'ы files.tabular_uploaded,
files.img_uploaded, files.tabular_parsed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 23:50:17 +04:00

2.3 KiB
Raw Blame History

Why

Решение владельца 08.10.2026: subject'ы NATS — «правильно как в старом АРМ». На проде заведены files.tabular_uploaded, files.img_uploaded, files.tabular_parsed, files.img_parsed; используем три, files.img_parsed не используем, старый АРМ гасится. Сквозной change — nats-files-subjects в RSHB/arm-ka-docs (issue #74, design с решениями R-1…R-5). Issue этого репозитория — RSHB/arm-core#77.

What Changes

  • recognition.tabular.request → files.tabular_uploaded, recognition.image.request → files.img_uploaded, recognition.result → files.tabular_parsed (константы api/src/contract/subjects.py, докстринги, тесты, README, CLAUDE.md).
  • После изменения ядро публикует запросы в files.tabular_uploaded / files.img_uploaded (outbox) и подписано на files.tabular_parsed в queue group arm-core (inbox).
  • Копии схем api/contracts/recognition-request.schema.json и recognition-result-message.schema.json — побайтно из docs/contracts/ (изменены только описания subject'ов).
  • recognition_job.request_subject новых заданий получает новые имена; уже созданные задания сохраняют старое значение (поле справочное: при повторной публикации subject вычисляется по pipeline).
  • Тестовая фабрика tests/factories.py берёт subject из request_subject(pipeline), а не собирает строку сама.

Non-goals

  • Тела сообщений, Nats-Msg-Id, queue group'ы и schema_version не меняются.
  • Subject'ы не выносятся в настройки (OQ-83).

Capabilities

New Capabilities

Modified Capabilities

  • recognition-job-exchange: имена subject'ов запроса и ответа.

Impact

Выкатывается одновременно с остальными сервисами: сервис со старыми именами не увидит сообщений с новыми.