Commit Graph
26 Commits
Author SHA1 Message Date
“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
Naeel ffbbe91d50 fix(ingress): remove cert-manager + ssl-redirect, TLS is external
The platform (185.247.187.147) terminates TLS externally before nginx.
HTTP-01 ACME challenge was stuck for 8 days because the platform
globally redirects HTTP→HTTPS before reaching nginx ingress.

Changes:
- Remove cert-manager.io/cluster-issuer: letsencrypt-prod annotation
- Remove tls section (iot-kube5s-ru-tls secret was never created)
- Set ssl-redirect: false (TLS termination is at the edge, not nginx)
- Update comment to document the actual TLS architecture
2026-04-21 07:56:06 +03:00
Naeel 8ec91051af docs: add testing report v0.2.6 (33 tests, 3 bugs fixed)
- doc/testing-v0.2.6.md: full E2E testing report (8 groups, 33 tests)
  - Group 1: E2E pipeline (MQTT→SQS→Postgres→API)
  - Group 2: Device API error codes (7 tests)
  - Group 3: MQTT Auth edge cases (11 tests)
  - Group 4: Device lifecycle PATCH/DELETE
  - Group 5: ACL topic isolation
  - Group 6: Non-standard MQTT payloads
  - Group 7: Telemetry API limits/filters
  - Group 8: Load tests (900 msgs, race condition)
- deployments: bump mqtt-bridge + sqs-consumer to v0.2.6
2026-04-21 07:36:11 +03:00
Naeel 39c4a9afb1 fix: rename query param device->device_id in telemetry API (v0.2.6)
- GET /telemetry?device_id= now consistently uses device_id
- was: ?device= (inconsistent with response field name)
- found during extended test suite
2026-04-21 07:20:12 +03:00
Naeel bbc26555fc fix: MQTTAuth device lookup by Spec.DeviceID + PG15+ GRANT (v0.2.5)
- MQTTAuth: replaced Get(Name=deviceID) with List+filter by Spec.DeviceID
  (K8s object name != deviceID — caused deny for all devices)
- EnsureTenantDB: added GRANT role TO CURRENT_USER before CREATE DATABASE OWNER
  (PG15+ requires SET ROLE privileges for target owner)
- Image: naeel/iot-operator:v0.2.5
- E2E test passed: device create → MQTT publish → SQS → Postgres → REST API
2026-04-12 19:00:56 +03:00
Naeel 9e7e8b1def doc: обновлён progress — аудит sless документации, перечень созданных файлов v0.2.3 2026-04-12 18:43:48 +03:00
Naeel 0fff5a4548 docs: полная документация v0.2.3 — архитектура, API, деплой, тестирование
Новые файлы:
- doc/architecture/current-v0.2.3.md — актуальная архитектура
- doc/api/endpoints-v0.2.3.md — полная документация REST API
- doc/deployment-v0.2.3.md — инструкция деплоя v0.2.3
- doc/run-and-test.md — руководство по запуску и E2E тесту

Обновлено:
- doc/progress.md — секция документации
- doc/thinking/2026-04-12.md — лог мышления
2026-04-12 18:36:12 +03:00
Naeel 903e2a3f11 doc: актуальная архитектура, thinking log, правила ФС и документации 2026-04-12 16:32:14 +03:00
Naeel 0e41d3ec7b doc: обновлена документация — дополнения к архитектуре, деплою, прогрессу
- architecture/overview.md: добавлена актуальная схема (SQS, managed PG)
- deployment.md: добавлена процедура деплоя в iot-naeel
- progress.md: добавлен блок 2026-04-12 (Kafka→SQS, деплой)
- api/endpoints.md: добавлен актуальный формат /iot-admin/stats
- thinking/2026-04-12.md: дописан ход реализации и деплоя
- copilot-instructions.md: добавлено правило «документацию не стирать»

Старая документация (Kafka, RabbitMQ) сохранена как база знаний.
2026-04-12 16:16:46 +03:00
Naeel e9c8cb7b59 deploy: EMQX, iot-operator, managed Postgres, Docker Hub image
- Добавлен EMQX deployment + WS ingress (адаптирован из sless)
- Добавлен iot-operator deployment с RBAC (ServiceAccount, ClusterRole)
- Postgres: заменён self-hosted на managed (dc5db45d namespace)
- Image: naeel/iot-operator:v0.2.0 (Docker Hub)
- Убран imagePullSecrets (Docker Hub публичный)
2026-04-12 16:07:41 +03:00
Naeel fab148df54 feat: замена Kafka → shared-SQS в IoT pipeline
- mqtt-bridge: kafka.Writer → SQS SendMessage (AWS SDK Go v2)
- kafka-consumer → sqs-consumer: polling loop с ReceiveMessage/DeleteMessage
- admin stats: Kafka lag → SQS GetQueueAttributes
- Удалён kafka-consumer, добавлен sqs-consumer
- go.mod: убран segmentio/kafka-go, добавлен aws-sdk-go-v2
- Dockerfile, Makefile: kafka-consumer → sqs-consumer
- .gitignore: исправлен чтобы не игнорировать cmd/ директории
- deployments: новый iot-sqs-consumer.yaml, обновлён mqtt-bridge
- doc/decisions: задокументировано решение
2026-04-12 15:28:45 +03:00
Naeel d87a7b71c8 chore: добавить правила SSH/VM в copilot-instructions + лог мышления 2026-04-12 14:52:57 +03:00
Naeel 3a9a47b3fa docs: copilot-instructions, архитектура, API, progress, decisions 2026-04-12 14:34:34 +03:00
Naeel aba7683be2 feat: перенос IoT managed service из sless в отдельную репу
Компоненты:
- iot-operator: controller-manager (IoTDevice CRD) + REST API (порт 9090)
- mqtt-bridge: MQTT (EMQX) → Kafka bridge
- kafka-consumer: Kafka → Postgres pipeline

Модуль: gitea.services.ngcloud.ru/Nail/IoT
Все 3 бинарника собираются, import paths адаптированы.
2026-04-12 14:29:43 +03:00