docs(history): проверки развёрнутого IoT — PASS=12 FAIL=0 (auth/ACL/tenant-изоляция/дедуп)
This commit is contained in:
@@ -205,3 +205,25 @@ consumer → per-tenant PostgreSQL → HTTP API.
|
||||
дедуп работают. Тестовые артефакты: устройство `e2e-nubes/dev1`, БД `tenant_e2e_nubes`.
|
||||
|
||||
Осталось (не блокеры): Terraform на PROD; чистка тестовых артефактов e2e (по команде).
|
||||
|
||||
## 9. Проверки безопасности/корректности развёрнутого IoT — PASS=12 FAIL=0
|
||||
|
||||
Скрипт `/tmp/e2e_neg.py` (тест-стенд, namespace `e2e-nubes`, устройство `dev1`):
|
||||
|
||||
| # | Проверка | Результат |
|
||||
|---|---|---|
|
||||
| 1 | MQTT auth: верные креды | `CONNACK rc=0` ✅ |
|
||||
| 2 | MQTT auth: неверный пароль | `rc=4` (bad user/password) ✅ |
|
||||
| 3 | MQTT auth: неизвестный пользователь | `rc=5` (not authorized) ✅ |
|
||||
| 4 | API без токена | `401` ✅ |
|
||||
| 5 | API: `sub` ≠ namespace в пути | `403` ✅ |
|
||||
| 6 | API: подделанная подпись JWT | `401` ✅ |
|
||||
| 7 | MQTT ACL: публикация в чужой топик `other-ns/telemetry/x` | соединение разорвано (`deny_action=disconnect`) ✅ |
|
||||
| 8 | Дедуп: два одинаковых payload | `iot_telemetry` 1→2 (+1, не +2), `message_id` SHA256 ✅ |
|
||||
| 9 | `PATCH enabled=false` | `200` ✅ |
|
||||
| 10 | MQTT auth выключенного устройства | `rc=5` ✅ |
|
||||
| 11 | `PATCH enabled=true` | `200` ✅ |
|
||||
| 12 | MQTT auth после включения | `rc=0` ✅ |
|
||||
|
||||
Вывод: auth (bcrypt из PG), ACL (own-topic only, disconnect на нарушение), tenant-изоляция API
|
||||
(`namespace == sub`), проверка подписи JWT и дедуп повторов — работают на развёрнутом стенде.
|
||||
|
||||
Reference in New Issue
Block a user