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

39 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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