Block a user
Direkte DB-Query in Notification-History Route-Handler
Direkte DB-Query in Notification-History Route-Handler
Erledigt in ccba46f.
Änderungen:
- Direkte
session.execute()ausget_notification_historyRoute-Handler entfernt - Neues
NotificationRuleService.get_sensor_display_names()für den…
Notification-Secrets als Plaintext in DB
Notification-Secrets als Plaintext in DB
Umgesetzt in Commit 22ed04e:
- crypto.py:
encrypt_config_secrets(),decrypt_config_secrets(),redact_config_secrets()– verschlüsselt nur Secret-Felder pro Channel (telegram:…
MQTT- und Grafana-Port auf 0.0.0.0 statt 127.0.0.1
Hinweis: Im Rahmen von #89 wurde der Prod-Compose mit Security-Hardening versehen (d2ace85). Die Ports waren im Prod-Compose bereits korrekt auf 127.0.0.1 gebunden. Dieses Issue betrifft den…
Prod-Compose ohne Security-Hardening
Prod-Compose ohne Security-Hardening
Umgesetzt in d2ace85:
- Netzwerk-Segmentierung (
app-net/data-net) — Frontend kann nur noch mit Backend kommunizieren, Backend mit allen Data-Services - **`security_opt: no-new-privileges…
Settings-Endpoint ohne Auth exponiert Infrastruktur-Details
Settings-Endpoint ohne Auth exponiert Infrastruktur-Details
Fix in b0e5039: require_auth Dependency auf GET /api/v1/settings hinzugefügt.
Änderungen:
settings.py:86:@router.get("", dependencies=[Depends(require_auth)])hinzugefügt -…
[Feature] MQTT-Bridge + Cloud-Gateway Status via WebSocket
[Feature] MQTT-Bridge + Cloud-Gateway Status via WebSocket
Umgesetzt in 637a8d7.
Backend:
BridgeManager._set_status()broadcastet WS-Events bei jedem Statuswechselbridge_statusEvent für normale Bridges (mitbridge_id)- `cloud_gateway_sta…
Prefix-Match O(n) pro MQTT-Message
Prefix-Match O(n) pro MQTT-Message
Umgesetzt in 61ffa12:
SensorConfigCachepflegt jetzt eine sortierte Prefix-Liste (_sorted_prefixes) viabisect.insort- Neue Methode
find_longest_prefix_match()nutztbisect_right+…