Проекты¶
https://cloud.kavlev.ru/projects.html — список проектов, в которые вы входите. Один человек может быть в нескольких.
Создание проекта¶
Кнопка + Новый проект. Поля:
| Поле | Назначение |
|---|---|
| Имя | Человекочитаемое, для UI. Менять можно. |
| Описание | Опционально. |
После создания вы автоматически — owner проекта.
API key проекта¶
В карточке проекта — секция API key с длинной строкой. Это то, что вводится в каждой плате на странице Облако. Все платы проекта используют один и тот же API key — он идентифицирует проект, не отдельную плату (плату идентифицирует её UUID).
Ротация ключа¶
Кнопка 🔄 Сгенерировать новый. После этого:
- Старый ключ моментально перестаёт работать.
- Все привязанные платы получат 401 на следующем heartbeat'е и переключатся в «не отправлять» (логируют ошибку).
- Чтобы вернуть платы в строй — обновить ключ в UI каждой платы.
Когда менять:
- Подозреваете утечку (увидели в чужом коде, в Slack-канале).
- Уходит человек, у которого был доступ к одной из плат — а вы хотите гарантировать что он больше не подключит «свою плату» обратно.
- Стандартная ротация раз в N месяцев — у вас в политике.
Дашборд проекта¶
Открыть проект — https://cloud.kavlev.ru/project.html?id=<N>:
Карточки устройств¶
Сетка плат, группированных по группам устройств. Каждая карточка:
- Имя платы + UUID (короткий)
- Online / offline статус (offline = нет heartbeat'а > 60 секунд)
- Последний heartbeat — давность
- Версия прошивки (
fw_version) - Состояние реле и датчиков из последнего heartbeat'а
Клик по карточке — детальная страница платы с командами, заметками, OTA.
Командные кнопки¶
На карточке платы:
- Toggle реле — шлёт команду
set_relay. Доставится на следующем heartbeat'е (≤ интервала heartbeat'а, по умолчанию 15 секунд). - OTA — заливка прошивки одной кнопкой (см. OTA из облака).
- Перезагрузить — команда
reboot.
Заметки¶
Текстовое поле, привязанное к проекту или к плате. Если включены email-нотификации — изменения шлются всем участникам с ролью ≥ viewer.
Инвайты¶
Кнопка + Пригласить в проекте:
| Поле | Назначение |
|---|---|
На него уйдёт письмо со ссылкой https://cloud.kavlev.ru/join.html?token=... |
|
| Role | admin или viewer (owner единственный, не выдаётся через инвайты) |
| Срок жизни | По умолчанию 7 дней, диапазон 1–30. |
Получатель: 1. Открывает ссылку. 2. Если не зарегистрирован — регистрируется (email + код, плюс роль уже привязана). 3. Автоматически добавлен в проект с указанной ролью.
Инвайт одноразовый — после принятия токен сгорает. Если ссылка скомпрометировалась — можно отозвать в Участниках → Pending invites.
Удалить проект¶
Только owner. Кнопка в правом нижнем углу карточки проекта, с двумя подтверждениями (type "delete" to confirm).
Удаление:
- Удаляет project record + все group / member / firmware-records.
- НЕ удаляет registered users — они остаются с другими своими проектами.
- НЕ удаляет бинарники прошивок физически — только метаданные (gc через
cleanup_firmwares.pyраз в сутки). - Платы, привязанные к проекту, начинают получать 401 на heartbeat'ах. Сами по себе они работают, просто облако их больше не видит.
API за этой страницей¶
См. API → Projects.