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