docs(history): зафиксировать решения по оставленным пунктам (16/12)

This commit is contained in:
Repinoid
2026-10-11 09:19:50 +03:00
parent f781de75cf
commit fdb9fa86b8
+8 -5
View File
@@ -33,12 +33,15 @@
| 🟡19 | `api/handler/devices.go` | Ошибка `GetByName` после успешного INSERT давала 500 (пароль терялся, повтор → 409) → отдаём 201 с in-memory объектом | `5114320` | | 🟡19 | `api/handler/devices.go` | Ошибка `GetByName` после успешного INSERT давала 500 (пароль терялся, повтор → 409) → отдаём 201 с in-memory объектом | `5114320` |
| 🟡11 | `iotpg/iot_telemetry_store.go` | `getTenantDB`/`QueryTelemetry` не проверяли `safeNamespaceRe` (`a_b` ↔ `a-b` → одна БД) → валидация на всех путях | `f41a9fe` | | 🟡11 | `iotpg/iot_telemetry_store.go` | `getTenantDB`/`QueryTelemetry` не проверяли `safeNamespaceRe` (`a_b` ↔ `a-b` → одна БД) → валидация на всех путях | `f41a9fe` |
### Осознанно НЕ менялось (решения) ### Осознанно НЕ менялось — РЕШЕНИЯ (2026-10-11)
- 🟡16 (QoS1 ack): оставлен async-ack + метрика дропов (throughput важнее; синхронный - 🟡16 (QoS1 ack): **решение — оставить async-ack + метрика дропов.** Синхронный
ack блокировал бы MQTT-колбэк — это уже чинили ранее). ack (подтверждать только после отправки в SQS) блокировал бы MQTT-колбэк при
- 🟡12 (`AUTH_TEST_MODE`): уже fail-closed — при отсутствии `JWT_HMAC_SECRET` и недоступности SQS — это уже чинили ранее (потеря ВСЕХ сообщений). Throughput
`AUTH_TEST_MODE=false` middleware отказывает в обслуживании. важнее; дроп при переполнении фиксируется счётчиком `dropped`.
- 🟡12 (`AUTH_TEST_MODE`): **решение — оставить как есть.** Уже fail-closed: при
отсутствии `JWT_HMAC_SECRET` и `AUTH_TEST_MODE=false` middleware отказывает в
обслуживании (500), а test-mode срабатывает только без секрета.
## 3. Прочее (перед ревью, в этой же сессии) ## 3. Прочее (перед ревью, в этой же сессии)