Update all documentation for 3-level roles, organismos, and Histórico
Reflect current project state across all 8 docs: ADMIN/ORGANISMO_OPERADOR/OPERATOR role hierarchy, scope filtering, organismos_operadores table, Histórico de Tomas page, new SQL migrations, and updated API endpoints with auth requirements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
47
README.md
47
README.md
@@ -15,8 +15,10 @@ El **Sistema GRH** es una aplicacion web completa para organismos operadores de
|
||||
- **Consumo y Lecturas** - Seguimiento historico de lecturas con filtros y exportacion
|
||||
- **Analytics** - Mapa de medidores, reportes y metricas del servidor
|
||||
- **Conectores** - Integracion con SH-Meters, XMeters y The Things Stack
|
||||
- **Usuarios y Roles** - Control de acceso basado en roles (ADMIN, OPERATOR, VIEWER)
|
||||
- **Auditoria** - Registro completo de actividad del sistema
|
||||
- **Organismos Operadores** - Gestion de organismos operadores de agua (ADMIN)
|
||||
- **Historico de Tomas** - Consulta de historial de lecturas por medidor con grafica y estadisticas
|
||||
- **Usuarios y Roles** - Control de acceso basado en roles con jerarquia de 3 niveles
|
||||
- **Auditoria** - Registro completo de actividad del sistema (ADMIN)
|
||||
- **Notificaciones** - Alertas en tiempo real (flujo negativo, etc.)
|
||||
- **Tema claro/oscuro** - Personalizacion de la interfaz
|
||||
- **Diseno responsive** - Compatible con desktop, tablet y movil
|
||||
@@ -42,7 +44,7 @@ El **Sistema GRH** es una aplicacion web completa para organismos operadores de
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ PostgreSQL │
|
||||
│ 10 tablas + 2 vistas + triggers + indices │
|
||||
│ 11 tablas + 2 vistas + triggers + indices │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -113,6 +115,8 @@ psql -d water_project -f water-api/sql/add_meter_extended_fields.sql
|
||||
psql -d water_project -f water-api/sql/create_meter_types.sql
|
||||
psql -d water_project -f water-api/sql/add_meter_project_relation.sql
|
||||
psql -d water_project -f water-api/sql/add_user_project_relation.sql
|
||||
psql -d water_project -f water-api/sql/add_organismos_operadores.sql
|
||||
psql -d water_project -f water-api/sql/add_user_meter_fields.sql
|
||||
```
|
||||
|
||||
### 3. Configurar el backend
|
||||
@@ -211,12 +215,13 @@ GRH/
|
||||
│ ├── api/ # Cliente API (14 modulos)
|
||||
│ │ ├── client.ts # Cliente HTTP con JWT y refresh automatico
|
||||
│ │ ├── auth.ts # Autenticacion y gestion de tokens
|
||||
│ │ ├── meters.ts # CRUD de medidores
|
||||
│ │ ├── meters.ts # CRUD de medidores + lecturas historicas
|
||||
│ │ ├── readings.ts # Lecturas de consumo
|
||||
│ │ ├── projects.ts # Proyectos
|
||||
│ │ ├── concentrators.ts # Concentradores
|
||||
│ │ ├── users.ts # Usuarios
|
||||
│ │ ├── roles.ts # Roles
|
||||
│ │ ├── organismos.ts # CRUD organismos operadores
|
||||
│ │ ├── analytics.ts # Analytics y metricas
|
||||
│ │ ├── notifications.ts # Notificaciones
|
||||
│ │ ├── audit.ts # Auditoria
|
||||
@@ -242,6 +247,7 @@ GRH/
|
||||
│ │ ├── UsersPage.tsx # Gestion de usuarios
|
||||
│ │ ├── RolesPage.tsx # Gestion de roles
|
||||
│ │ ├── AuditoriaPage.tsx # Visor de logs de auditoria
|
||||
│ │ ├── OrganismosPage.tsx # Gestion de organismos operadores
|
||||
│ │ ├── projects/
|
||||
│ │ │ └── ProjectsPage.tsx
|
||||
│ │ ├── meters/ # Modulo de medidores
|
||||
@@ -260,6 +266,8 @@ GRH/
|
||||
│ │ ├── consumption/ # Modulo de consumo
|
||||
│ │ │ ├── ConsumptionPage.tsx
|
||||
│ │ │ └── ReadingsBulkUploadModal.tsx
|
||||
│ │ ├── historico/ # Modulo de historico de tomas
|
||||
│ │ │ └── HistoricoPage.tsx
|
||||
│ │ ├── analytics/ # Modulo de analytics
|
||||
│ │ │ ├── AnalyticsMapPage.tsx
|
||||
│ │ │ ├── AnalyticsReportsPage.tsx
|
||||
@@ -293,19 +301,22 @@ GRH/
|
||||
│ │ ├── utils/
|
||||
│ │ │ ├── jwt.ts # Generacion/verificacion de tokens
|
||||
│ │ │ ├── password.ts # Wrappers de bcrypt
|
||||
│ │ │ └── logger.ts # Configuracion Winston
|
||||
│ │ │ ├── logger.ts # Configuracion Winston
|
||||
│ │ │ └── scope.ts # Filtrado por scope de rol
|
||||
│ │ ├── jobs/
|
||||
│ │ │ └── negativeFlowDetection.ts # Tarea programada
|
||||
│ │ └── types/ # Interfaces TypeScript
|
||||
│ │
|
||||
│ ├── sql/ # Schema y migraciones
|
||||
│ │ ├── schema.sql # Schema principal (10 tablas + 2 vistas)
|
||||
│ │ ├── schema.sql # Schema principal + migraciones (11 tablas + 2 vistas)
|
||||
│ │ ├── add_audit_logs.sql
|
||||
│ │ ├── add_notifications.sql
|
||||
│ │ ├── add_meter_extended_fields.sql
|
||||
│ │ ├── create_meter_types.sql
|
||||
│ │ ├── add_meter_project_relation.sql
|
||||
│ │ └── add_user_project_relation.sql
|
||||
│ │ ├── add_user_project_relation.sql
|
||||
│ │ ├── add_organismos_operadores.sql
|
||||
│ │ └── add_user_meter_fields.sql
|
||||
│ │
|
||||
│ ├── package.json
|
||||
│ ├── tsconfig.json
|
||||
@@ -346,9 +357,10 @@ Projects → Concentrators → Meters → Readings
|
||||
|
||||
| Tabla | Descripcion |
|
||||
|-------|-------------|
|
||||
| `roles` | Roles del sistema (ADMIN, OPERATOR, VIEWER) con permisos JSONB |
|
||||
| `users` | Usuarios con email, password hash, rol y estado |
|
||||
| `projects` | Proyectos de infraestructura hidrica |
|
||||
| `roles` | Roles del sistema (ADMIN, ORGANISMO_OPERADOR, OPERATOR) con permisos JSONB |
|
||||
| `users` | Usuarios con email, password hash, rol, proyecto y organismo |
|
||||
| `organismos_operadores` | Organismos operadores de agua (CESPT Tijuana, Tecate, etc.) |
|
||||
| `projects` | Proyectos de infraestructura hidrica (vinculados a organismo) |
|
||||
| `concentrators` | Concentradores de datos vinculados a proyectos |
|
||||
| `gateways` | Gateways LoRaWAN con integracion TTS |
|
||||
| `devices` | Dispositivos LoRaWAN (sensores/transmisores) |
|
||||
@@ -370,8 +382,9 @@ Todos los endpoints estan bajo el prefijo `/api/`. La mayoria requieren autentic
|
||||
| Grupo | Prefijo | Descripcion |
|
||||
|-------|---------|-------------|
|
||||
| Auth | `/api/auth` | Login, refresh, logout, perfil |
|
||||
| Organismos | `/api/organismos-operadores` | CRUD de organismos operadores (ADMIN) |
|
||||
| Projects | `/api/projects` | CRUD de proyectos + estadisticas |
|
||||
| Meters | `/api/meters` | CRUD de medidores + lecturas |
|
||||
| Meters | `/api/meters` | CRUD de medidores + lecturas historicas |
|
||||
| Meter Types | `/api/meter-types` | Tipos de medidor |
|
||||
| Concentrators | `/api/concentrators` | CRUD de concentradores |
|
||||
| Gateways | `/api/gateways` | CRUD de gateways + dispositivos |
|
||||
@@ -400,12 +413,12 @@ El sistema usa **JWT con refresh tokens**:
|
||||
4. El cliente HTTP envia el access token en `Authorization: Bearer <token>`
|
||||
5. Al expirar, el cliente automaticamente llama a `POST /api/auth/refresh`
|
||||
|
||||
### Roles y permisos
|
||||
| Rol | Descripcion |
|
||||
|-----|-------------|
|
||||
| `ADMIN` | Acceso completo al sistema |
|
||||
| `OPERATOR` | Gestiona proyectos, dispositivos, medidores (sin configuracion del sistema) |
|
||||
| `VIEWER` | Solo lectura de datos y reportes |
|
||||
### Roles y permisos (Jerarquia de 3 niveles)
|
||||
| Rol | Descripcion | Scope |
|
||||
|-----|-------------|-------|
|
||||
| `ADMIN` | Acceso completo al sistema | Ve todos los datos |
|
||||
| `ORGANISMO_OPERADOR` | Gestiona proyectos de su organismo | Ve datos de proyectos de su organismo |
|
||||
| `OPERATOR` | Opera medidores de su proyecto | Ve datos de su proyecto asignado |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user