Commit Graph
26 Commits
Author SHA1 Message Date
Repinoid 3175605931 P0-7: подтверждение из SQS только после успешного flush телеметрии в БД
InsertTelemetry лишь буферизует и возвращает nil до фактической записи. Consumer
удалял сообщение сразу после processTelemetry == nil — краш/flush-ошибка в этом
окне = безвозвратная потеря. Теперь: копим receipt handles, вызываем store.Flush,
и только при успехе DeleteMessage; при ошибке flush — не удаляем (сообщения
вернутся после visibility timeout). Добавлен iotpg.Flush().
2026-10-07 07:23:25 +03:00
Repinoid a4e786d03b P0-3 (часть 2): не отдавать пароль устройства повторно через GET
GetIoTDevice больше не возвращает mqtt_password (deviceToResponse получает ).
Пароль остаётся доступен только один раз — при создании устройства.
Хэширование паролей в БД + перевод EMQX на алгоритм хэша (часть 1) требует
изменения emqx.conf и миграции — отдельным шагом.
2026-10-06 19:06:02 +03:00
Repinoid c97b63b190 P1-4: убрать неаутентифицированные /internal/mqtt/auth|acl из роутера
EMQX ходит в PostgreSQL напрямую (backend=postgresql), эти HTTP-эндпоинты были
неиспользуемым fallback и висели на публичном порту без аутентификации (перебор
паролей устройств / выдача ACL). Удалены из роутера.
2026-10-06 19:05:12 +03:00
Repinoid 4afee5cdf9 P0-1/P0-2: tenant-граница по sub + обязательная подпись JWT
validateJWT теперь возвращает sub; middleware сверяет sub с {namespace} из URL
(несовпадение → 403) — закрывает горизонтальный доступ к чужим namespace.
Вне AUTH_TEST_MODE подпись HS256 обязательна: без JWT_HMAC_SECRET middleware
отказывает (fail-closed, 500), а config.Load требует секрет на старте.
2026-10-06 19:04:54 +03:00
“Naeel” f76383a2ef chore: убрать __pycache__ из трекинга, расширить .gitignore (pyc/бинарники/мусор) 2026-08-17 08:20:44 +04:00
“Naeel” da4c3d10d0 docs(thinking): Nubes DevOps report — network issues + fixes 2026-08-16 20:43:03 +04:00
“Naeel” ce9e20266c feat(landing): vertical large pipeline diagram; v0.1.13 2026-08-16 19:16:58 +04:00
“Naeel” 30e7da8cf8 feat(landing): hand-drawn pipeline SVG diagram; v0.1.12 2026-08-16 19:11:17 +04:00
“Naeel” 0f71e715be docs(landing): rewrite as clear how-to (4 steps with copy-paste commands); v0.1.9 2026-08-16 18:51:59 +04:00
“Naeel” ce01b6f9f8 feat(api): landing page with Nubes design (logo+favicon), /static; v0.1.8 2026-08-16 18:46:17 +04:00
“Naeel” 68becfd6bc fix: review findings (async SQS dispatcher, backoff, batch insert, shutdown order, pagination, HMAC) + loadtest fixes; v0.1.6 2026-08-16 18:24:09 +04:00
“Naeel” 10716aeace test(loadtests): 10 load scenarios + verifier; docs: Sonnet review findings 2026-08-16 16:59:29 +04:00
“Naeel” 649a880182 docs: no-kubectl deployment procedure (tail 4) + HISTORY 28-29 2026-08-16 16:20:07 +04:00
“Naeel” 8b3f3ab5df feat(emqx): PG-auth in EMQX v0.2.4 + EnsureBridgeDevice v0.1.2 (tail 3) 2026-08-16 16:18:49 +04:00
“Naeel” 12b43e7999 fix(bridge): resubscribe on every (re)connect; emqx v0.2.1 dashboard off; iot-service v0.1.1 2026-08-16 15:24:26 +04:00
“Naeel” 85f646cfe4 fix(emqx): v0.2.0 от официальной базы + резолвимые auth-заглушки — EMQX работает (502 устранён); HISTORY: развязка задокументирована 2026-08-16 14:22:35 +04:00
“Naeel” b19e5ec638 fix(emqx): mqtt_path→websocket.mqtt_path (v0.1.4, локально OK); HISTORY: на платформе boot висит — задокументировано 2026-08-16 13:48:26 +04:00
“Naeel” b6ffd52e00 fix(emqx): v0.1.2 — procps для launcher (502 из-за ps: command not found); HISTORY: ошибки deck/502 задокументированы 2026-08-16 13:28:41 +04:00
“Naeel” 1f30d13e95 fix(emqx): v0.1.1 — сборка от debian, единственный EXPOSE 8083 (deck-UI берёт порт из образа, поле applicationUsePort в форме отсутствует) 2026-08-16 13:22:39 +04:00
“Naeel” 7d4384b79a fix(emqx): EXPOSE только 8083 + комментарий про applicationUsePort в deck-UI 2026-08-16 13:17:43 +04:00
“Naeel” 0363b8b56a feat: EMQX-образ для платформы (naeel/iot-emqx) — конфиг вшит, auth/ACL URL через env 2026-08-16 10:13:17 +04:00
“Naeel” 7647627052 feat: монолит iot-service (Фаза 1) — config/store/api/bridge/consumer без k8s, устройства в PG, новые Dockerfile/Makefile 2026-08-16 10:07:51 +04:00
“Naeel” a7b655acdb refactor: старые артефакты IoT перенесены в legacy/ (git mv, история сохранена); активное дерево очищено, go build OK 2026-08-16 09:48:34 +04:00
“Naeel” ad6e6f1d24 docs: аудит вмешательства старого IoT — k8s-зависимости только в 3 хендлерах; Dockerfile помечен ЛЕГАСИ; правило монолита зафиксировано 2026-08-16 09:44:45 +04:00
“Naeel” d3693b681e docs: пометка ЛЕГАСИ всего старого IoT (манифесты, CRD, оператор, документы, examples, Makefile) + корневой LEGACY.md; удалений нет 2026-08-16 09:37:29 +04:00
“Naeel” 31b6a2771f feat(ws-probe): тестовый WS echo-сервер для проверки wss на платформе Nubes (v0.1.0, образ naeel/iot-ws-probe) 2026-08-16 08:18:18 +04:00