- ACL: drop the shared `shelly` account + `+` wildcard (allowed cross-device spoofing/control). Devices now authenticate with per-device credentials (username = topic prefix, provisioned at onboarding) bound to their own prefix via `pattern %u`. gen-passwd.sh creates only laravel + sidecar. - last_seen_at is set from the message receive time (observed_at), monotonically, so a delayed/retried/stale ingest job can't mark a device online incorrectly. - Device::isOnline: a real device with no last_seen is OFFLINE (never connected); only demo devices are assumed reachable. Added `demo` flag + presence tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| factories | ||
| migrations | ||
| seeders | ||
| .gitignore | ||