Seguridad y control de acceso
Ambos extremos comparten el mismo modelo RBAC definido en el backend (core.roles/core.permissions/core.role_permissions):
- 4 roles: Administrador (acceso total), Operador (monitoreo, umbrales, reportes), Técnico (gestión completa de gateways/sensores/calibración), Auditor (solo lectura).
- Cada ruta HTTP declara el permiso que requiere (
requirePermission: PERMISSIONS.iot.view_reports), verificado por el pluginauthPluginantes de llegar al handler. - Recursos con dueño (umbrales) se resuelven por
user_idextraído del JWT en el propio backend — el cliente nunca puede pasar unuser_idarbitrario en el body, evitando suplantación. - La app Android adapta la navegación disponible según el rol (
SessionManager.currentRole()), ocultando accesos a módulos que el usuario no puede usar, como capa adicional de UX sobre el control de acceso real (que siempre se aplica en el backend, no solo en el cliente).