Account API и интеграция сторонних приложений
Контракт
Заголовок раздела «Контракт»Сторонние приложения подключаются к бэкенду TigerSystem — обычному Firebase — по стандартной схеме Firebase:
- Получите публичную конфигурацию SDK:
https://tigertag-cdn.web.app/__/firebase/init.json firebase.initializeApp(config)- Аутентифицируйте собственный аккаунт TigerTag пользователя (публичность конфигурации намеренна — безопасность обеспечивается на стороне сервера правилами Firestore).
- Читайте и записывайте данные этого пользователя в пределах документированной поверхности.
Каноническая документация
Заголовок раздела «Каноническая документация»Полный контракт интеграции находится в TigerTag_Firebase_Integration:
| Документ | Содержание |
|---|---|
docs/01-firebase-config.md |
Конфигурация проекта и подключение |
docs/02-authentication.md |
Сценарии аутентификации |
docs/03-data-model.md |
Коллекции и поля Firestore (справочник по модели данных) |
docs/04-friend-system.md |
Коды обнаружения, запросы, общие инвентари |
docs/05-rate-limiting.md |
Лимиты добросовестного использования |
examples/ |
Python CLI, ESP32/Arduino, Home Assistant, мост Spoolman |
Правила безопасности — чего ожидать
Заголовок раздела «Правила безопасности — чего ожидать»users/{uid}/**по умолчанию доступен только владельцу.- Запись данных другого пользователя всегда требует предварительной связи (например, принятой дружбы) — открытых путей записи нет.
- Некоторые коллекции работают по белому списку полей: запись с полями вне списка отклоняется.
- Поля только для администратора (роли, флаги отладки) клиент записать не может никогда.
HTTP-эндпоинты
Заголовок раздела «HTTP-эндпоинты»cdn.tigertag.io находится в том же проекте Firebase, что и аккаунты: он
размещает общую справочную базу данных, изображения катушек (включая фотографии продуктов
TigerTag+) и HTTP-эндпоинты, связанные с базой данных TigerSystem.
| Эндпоинт | Назначение |
|---|---|
https://cdn.tigertag.io/healthz/ |
Проверка работоспособности |
https://cdn.tigertag.io/setSpoolWeightByRfid?ApiKey=&uid=&weight= |
Передать вес катушки по UID чипа (используется устройствами класса весов) |
TODO: полный каталог HTTP API (модель аутентификации, форматы ошибок) — будет описан в репозитории интеграции и кратко изложен здесь.
См. также: Инвентарь и облачная синхронизация, Архитектура