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

34 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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
Выкатывается одновременно с остальными сервисами: сервис со старыми именами не увидит сообщений с новыми.