README: описание сервиса, архитектура, команды, эндпоинты
This commit is contained in:
@@ -0,0 +1,71 @@
|
|||||||
|
# IoT Managed Service
|
||||||
|
|
||||||
|
## Назначение
|
||||||
|
|
||||||
|
IoT Managed Service — это облачный сервис для управления IoT-устройствами, сбора и хранения телеметрии, а также интеграции с внешними системами через MQTT, Kafka и REST API.
|
||||||
|
|
||||||
|
Сервис автоматизирует регистрацию устройств, выдачу credentials, сбор телеметрии и предоставляет REST-интерфейс для управления и мониторинга.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Архитектура
|
||||||
|
|
||||||
|
- **IoT Device** — физическое устройство, подключающееся по MQTT
|
||||||
|
- **EMQX** — брокер MQTT, делегирует auth/ACL в iot-operator
|
||||||
|
- **iot-mqtt-bridge** — подписка на все топики, проксирует в Kafka
|
||||||
|
- **Kafka** — очередь событий телеметрии
|
||||||
|
- **iot-kafka-consumer** — сохраняет телеметрию в per-tenant Postgres
|
||||||
|
- **IoT Postgres** — база данных для хранения телеметрии
|
||||||
|
- **REST API** — управление устройствами, получение телеметрии
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Основные компоненты
|
||||||
|
|
||||||
|
| Компонент | Назначение |
|
||||||
|
|-------------------|-----------------------------------|
|
||||||
|
| iot-operator | REST API, контроллер CRD |
|
||||||
|
| iot-mqtt-bridge | MQTT → Kafka |
|
||||||
|
| iot-kafka-consumer| Kafka → Postgres |
|
||||||
|
| iot-postgres | Хранение телеметрии |
|
||||||
|
| EMQX | MQTT брокер |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Основные команды и эндпоинты
|
||||||
|
|
||||||
|
### Публичные
|
||||||
|
- `GET /console` — IoT Console (SPA)
|
||||||
|
- `GET /iot-admin` — страница администратора
|
||||||
|
|
||||||
|
### JWT (namespace)
|
||||||
|
- `POST /v1/namespaces/{ns}/iot/devices` — создать устройство
|
||||||
|
- `GET /v1/namespaces/{ns}/iot/devices` — список устройств
|
||||||
|
- `GET /v1/namespaces/{ns}/iot/devices/{name}` — получить устройство + пароль
|
||||||
|
- `DELETE /v1/namespaces/{ns}/iot/devices/{name}` — удалить устройство
|
||||||
|
- `PATCH /v1/namespaces/{ns}/iot/devices/{name}` — обновить (enabled)
|
||||||
|
- `GET /v1/namespaces/{ns}/iot/telemetry` — получить телеметрию
|
||||||
|
|
||||||
|
### Внутренние (без JWT)
|
||||||
|
- `POST /internal/mqtt/auth` — MQTT auth для EMQX
|
||||||
|
- `POST /internal/mqtt/acl` — MQTT ACL для EMQX
|
||||||
|
|
||||||
|
### Админ
|
||||||
|
- `GET /iot-admin/stats` — статистика (PG, Kafka, pods)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Быстрый старт
|
||||||
|
|
||||||
|
1. Развернуть EMQX, iot-mqtt-bridge, event-dispatcher, iot-kafka-consumer, iot-postgres (см. deployments/k8s/)
|
||||||
|
2. Зарегистрировать устройство через REST API или CRD
|
||||||
|
3. Подключить устройство к MQTT (логин/пароль выдаются автоматически)
|
||||||
|
4. Телеметрия автоматически попадёт в Postgres и доступна через REST API
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Документация
|
||||||
|
- doc/architecture/overview.md — архитектура
|
||||||
|
- doc/api/endpoints.md — список эндпоинтов
|
||||||
|
- doc/deployment.md — деплой и инженерные детали
|
||||||
|
- examples/README.md — пример E2E цепочки
|
||||||
Reference in New Issue
Block a user