VEU.WathBody/1-docs/4-modules/m07-fit-fetch/api_specs/03-cli-config.md

38 lines
2.2 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.

# Спецификация 03: --mode fetch и конфигурация
Источники: requirements 2.3 (режимы/коды), tech-req 4.2 (Garmin.*),
ОВ-4 (расписание — внешний планировщик ОС).
## 1. Конфиг (ServerConfig, секция `Garmin`)
| Ключ | Умолчание | Семантика |
|---|---|---|
| `Garmin.Login` | пусто | учётная запись Garmin Connect владельца |
| `Garmin.Password` | пусто | пароль (🛡 только в конфиге, не в логах) |
| `Garmin.AthleteName` | пусто | имя атлета (`src.athlete.name`), на которого пишутся факты fetch (решение гейта 1.3; изоляция 🛡1) |
| `Garmin.DownloadDir` | `data\fit` | папка скачанных файлов (кэш по activityId) |
| `Garmin.BaseUrl` | `https://connect.garmin.com` | замена точек входа для тестов/прокси |
Загрузка — по образцу `Import.*`; валидация при `--mode fetch`:
Login/Password/AthleteName непусты, DownloadDir создаётся, атлет
существует — иначе код 1.
## 2. CLI (--mode fetch в Program.cs Web)
1. Конфиг прочитан (ошибка чтения → 1).
2. Валидация разд. 1 → нарушение: stderr-сообщение, код 1.
3. `FitFetcher.FetchNew(limit: 20)` → stdout
`fetch: скачано N, пропущено M, сбоев K`:
- `GarminAuthException` → stderr + подсказка про
`--mode import` (fallback, О-1-А), код 2;
- `Failed > 0` → код 2; иначе 0.
4. Расписание — внешний планировщик ОС вызывает команду каждые
15 минут (ОВ-4; в коде планировщика нет).
## 3. Заметки
- `--mode fetch` не выполняет serve-валидацию (Api.Key и пр.) —
свой набор обязательных ключей (как import);
- только силовые (`strength_training`) скачиваются; прочие типы
пропускаются без скачивания (Ф-8.1).