Andrey Epifancev afe40c70da openspec: архив nats-files-subjects (#74)
Change слит PR #77; спеки обновлены (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:10 +04:00

3.4 KiB
Raw Blame History

Why

На проде платформа завела subject'ы NATS старого АРМ: files.tabular_uploaded, files.img_uploaded, files.tabular_parsed, files.img_parsed. Наш контракт публикует запросы в recognition.{tabular|image}.request, а ack и результаты — в recognition.result; этих subject'ов в правах общего JWT нет. Решение владельца 08.10.2026: subject'ы — «правильно как в старом АРМ», используем три (files.img_parsed не используем), старый АРМ гасится.

Срез: вне плана срезов 09-delivery-plan.md — подготовка к контуру (инфраструктура NATS платформы).

What Changes

  • Запрос tabular — subject files.tabular_uploaded (было recognition.tabular.request).
  • Запрос image — subject files.img_uploaded (было recognition.image.request).
  • Ack processing и результаты обоих сервисов — общий subject files.tabular_parsed (было recognition.result).
  • Тела сообщений, Nats-Msg-Id, queue group'ы, schema_version и файл результата не меняются.
  • Документы: 03-architecture.md (схема, таблица потоков, NATS платформы), 09-delivery-plan.md, dev/README.md, dev/qa-guide.md, repo-templates/*.CLAUDE.md, описания subject'ов в contracts/*.schema.json.

Читают и пишут контракт: arm-core (публикует запросы, подписан на результат), tabular-parser и scan-gateway (подписаны на свой запрос, публикуют ack и результат). Дочерние change'и nats-files-subjects: RSHB/arm-core#77, RSHB/arm-tabular-parser#28, RSHB/arm-scan-gateway#22. Issue этого репозитория — RSHB/arm-ka-docs#74.

Non-goals

  • Subject'ы не выносятся в настройки (префикс для тестов — OQ-83, отдельно).
  • files.img_parsed не используется, раздельные subject'ы результата по pipeline не вводятся.
  • DBML v5.17 не поднимается: заметки DECISION-4 и recognition_job.request_subject обновятся в следующей версии модели (design, решение 3).
  • schema_version контракта не меняется (design, решение 2).

Capabilities

New Capabilities

Modified Capabilities

  • recognition-contract: имена subject'ов запроса и результата.

Impact

  • Сервисы: arm-core, tabular-parser, scan-gateway — константы api/src/contract/subjects.py, тесты, спеки, README.
  • Копии схем api/contracts/*.schema.json в сервисах обновляются побайтно из docs/contracts/.
  • Выкат: все три сервиса одновременно (старые и новые имена несовместимы на шине). Задания, опубликованные до выката и не получившие ack, ядро повторит уже в новый subject: subject вычисляется по pipeline при каждой публикации, recognition_job.request_subject — справочное поле.