API-токены Grom¶
Персональные токены доступа (PAT) позволяют обращаться к HTTP API Grom из скриптов и внешних приложений без сессии входа в веб или мобильный клиент.
Где управлять токенами¶
Откройте Integration → Grom в веб- или мобильном приложении. Можно создать до 10 токенов на аккаунт и отозвать их в любой момент.
При создании токена Grom показывает полный секрет один раз. Скопируйте его сразу и храните надёжно (менеджер паролей, связка ключей ОС или хранилище секретов вашей автоматизации). Позже секрет снова посмотреть нельзя; в списке виден только короткий префикс (например grom_pat_a1…).
Формат токена¶
Срок жизни по умолчанию — 90 дней. Можно выбрать другую длительность или явно создать токен без срока действия (с предупреждением в UI).
Области доступа (scopes)¶
| Scope | Разрешает |
|---|---|
workouts:read |
Список и чтение своих локальных тренировок, треков, графиков, превью карт и медиа |
workouts:write |
Создание, обновление, удаление тренировок; загрузка треков и медиа |
equipment:read |
Список снаряжения |
equipment:write |
Создание, обновление, удаление снаряжения |
Лайки, комментарии, социальные функции, импорт Strava и эндпоинты профиля требуют обычного входа в UI (JWT), не PAT.
Доступ PAT к тренировкам ограничен вашими собственными локальными тренировками (не социальная лента и не федеративные тренировки с других инстансов).
Пример¶
# Список ваших тренировок (PAT с workouts:read)
curl -sS -H "Authorization: Bearer grom_pat_YOUR_TOKEN" \
"https://your-grom.example/api/v1/workouts?scope=own"
# Создать токен (нужен JWT после входа — для повседневного использования лучше UI приложения)
curl -sS -X POST -H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"name":"Backup","scopes":["workouts:read"],"expires_in_days":90}' \
"https://your-grom.example/api/v1/auth/pat"
Полное описание API: Swagger UI на /api/docs/ вашего сервера.
Хранение и миграция¶
Токены хранятся на сервере в personal_access_tokens.yaml (драйвер file) или в бакете bbolt personal_access_tokens. grom migrate-storage копирует токены между драйверами, чтобы существующие секреты grom_pat_… продолжали работать после смены storage.driver.