3.0 KiB
3.0 KiB
Спецификация потребления: Kit.Helpers
Спецификация разделяемой библиотеки в объёме потребления системы WatchBody (шаг 5 процесса). Библиотека развивается вне проекта (
3-app\1-lib\Kit.Helpers, net10.0, Npgsql 10) — здесь фиксируется только контракт использования; исходники не изменяются.
Потребляемые компоненты (v1)
| Компонент | Использует | Назначение в WatchBody |
|---|---|---|
Kit.Helpers.SqlHelperAbstract (SqlHelperPostgres, fluent SqlHelperFluent) |
репозитории DAL (m01), тесты | Единственный путь к PostgreSQL: выполнение хранимых функций слоя src/ref (шаг 6) — PrepareExecute<T>().AsStoredProcedure().AddParameter()… (З-42: фактическое имя компонента вместо имени из ранней редакции спецификации) |
Log.Logger |
— | Файловые логи; Log.Path, уровень из конфигурации. В v1 не настроен (errata m04 №4) — sync-контур использует ILogger<T>; файловые логи — последующие модули |
JsonHelper |
— | В v1 не потребляется: ProgramStore/MetricsEngine работают с System.Text.Json напрямую (З-42) |
Контракты
- БД: соединение — из
Db.ConnectionString; каждый вызов функции БД — короткое соединение (без долгоживущих транзакций); ошибки — исключения библиотеки, оборачиваются компонентом в лог + код ответа API. - Логи: уровень из конфигурации; в лог не пишутся ключи, пароли и хэши (инвариант «Тайны», requirements раздел 5); ротация — средствами Logger по дням.
- JSON: System.Text.Json напрямую (ProgramStore/MetricsEngine);
JsonHelperв v1 не потребляется (З-42).
Не потребляется в v1
Cache (нет кэшируемых справочников большого объёма), Http.*
(Fetcher реализует собственный клиент Garmin — FluentHttpClient может
быть подключён в итерации 2 после прототипа), Session, HttpContext.
Версии и обновления
Фиксируется прямой ссылкой на проект 3-app\1-lib\Kit.Helpers (monorepo);
обновления библиотеки — только после прогона тестов сервера
(c-tst); Breaking-изменения API библиотеки — повод пересмотреть
настоящую спецификацию.