VEU.WathBody/1-docs/3-tech/kit-helpers-spec.md

2.8 KiB
Raw Blame History

Спецификация потребления: Kit.Helpers

Спецификация разделяемой библиотеки в объёме потребления системы WatchBody (шаг 5 процесса). Библиотека развивается вне проекта (3-app\1-lib\Kit.Helpers, net10.0, Npgsql 10) — здесь фиксируется только контракт использования; исходники не изменяются.

Потребляемые компоненты (v1)

Компонент Использует Назначение в WatchBody
Db.Postgres.SqlServerHelper FitParser, MetricsEngine, ProgramStore, RestApi, AdminWeb Единственный путь к PostgreSQL: выполнение хранимых функций слоя src/ref (шаг 6)
SqlServerHelperFluent те же Fluent-обёртка вызовов функций
Log.Logger все серверные компоненты Файловые логи; Log.Path, уровень из конфигурации
JsonHelper ProgramStore, FitParser Сериализация/десериализация версий программ и фактов (facts_json)

Контракты

  • БД: соединение — из Db.ConnectionString; каждый вызов функции БД — короткое соединение (без долгоживущих транзакций); ошибки — исключения библиотеки, оборачиваются компонентом в лог + код ответа API.
  • Логи: уровень из конфигурации; в лог не пишутся ключи, пароли и хэши (инвариант «Тайны», requirements раздел 5); ротация — средствами Logger по дням.
  • JSON: JsonHelper — единственная точка сериализации программ (стабильный порядок полей — диффы версий сравнимы).

Не потребляется в v1

Cache (нет кэшируемых справочников большого объёма), Http.* (Fetcher реализует собственный клиент Garmin — FluentHttpClient может быть подключён в итерации 2 после прототипа), Session, HttpContext.

Версии и обновления

Фиксируется прямой ссылкой на проект 3-app\1-lib\Kit.Helpers (monorepo); обновления библиотеки — только после прогона тестов сервера (c-tst); Breaking-изменения API библиотеки — повод пересмотреть настоящую спецификацию.