Jason Staack
7afd918e2f
feat(11-01): create site service, router, and wire into app
...
- Add site_service with CRUD, health rollup, device assignment functions
- Add sites router with 8 endpoints (CRUD + assign/unassign/bulk-assign)
- RBAC: viewer for reads, operator for writes, tenant_admin for delete
- Wire sites_router into main.py with /api prefix
- Health rollup computes device_count, online_count, online_percent per site
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:38:54 -05:00
..
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-15 23:09:30 -05:00
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-15 23:09:30 -05:00
2026-03-12 23:02:58 -05:00
2026-03-14 22:17:50 -05:00
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-09 21:03:54 -05:00
2026-03-14 22:17:50 -05:00
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-15 23:15:39 -05:00
2026-03-14 22:17:50 -05:00
2026-03-08 19:30:44 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-08 19:30:44 -05:00
2026-03-12 16:07:10 -05:00
2026-03-18 21:38:54 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 22:17:50 -05:00
2026-03-14 09:05:14 -05:00