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