# Спецификация потребления: 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().AsStoredProcedure().AddParameter()…` (З-42: фактическое имя компонента вместо имени из ранней редакции спецификации) | | `Log.Logger` | — | Файловые логи; `Log.Path`, уровень из конфигурации. В v1 не настроен (errata m04 №4) — sync-контур использует `ILogger`; файловые логи — последующие модули | | `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 библиотеки — повод пересмотреть настоящую спецификацию.