2.8 KiB
2.8 KiB
Спецификация потребления: 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 библиотеки — повод пересмотреть
настоящую спецификацию.