Andrey Epifancev 5ae8ff8a81 nats: subject'ы как в старом АРМ — files.*_uploaded, files.tabular_parsed (#77)
Решение владельца 08.10.2026: recognition.tabular.request → files.tabular_uploaded,
recognition.image.request → files.img_uploaded, recognition.result →
files.tabular_parsed (общий subject ack и результатов; files.img_parsed не
используется). Тела сообщений, Nats-Msg-Id, queue group'ы и schema_version не
меняются. Константы api/src/contract/subjects.py, докстринги, тесты, README,
CLAUDE.md; копии схем api/contracts/ из docs/contracts/ побайтно; change
nats-files-subjects с дельтой спеки. Сквозной change — RSHB/arm-ka-docs#74.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 23:46:18 +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

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