Entidades de Seguridad¶
Esta sección cubre las 3 entidades relacionadas con usuarios, roles y control de acceso. La autenticación se gestiona a través de Keycloak, mientras que el ORM define el modelo de autorización.
User¶
Usuarios del sistema sincronizados con Keycloak.
| Columna | Tipo | Restricciones | Descripción |
|---|---|---|---|
| id | BigInteger | PK, Auto-increment | Identificador único |
| keycloak_ext_id | String(255) | NOT NULL | ID externo de usuario Keycloak |
| role_id | Integer | FK -> role.id, NOT NULL | Rol asignado |
| enable | Boolean | Default: true | Flag de borrado suave |
| register | DateTime(tz) | NOT NULL | Marca de tiempo de creación |
| updated | DateTime(tz) | NOT NULL | Marca de tiempo de última actualización |
Relaciones: Role (padre), UserAccess (hijos)
Role¶
Definiciones de roles de usuario con contexto de aplicación.
| Columna | Tipo | Restricciones | Descripción |
|---|---|---|---|
| id | Integer | PK, Auto-increment | Identificador único |
| name | String(255) | NOT NULL | Nombre del rol |
| app | Enum(Apps) | NOT NULL | Aplicación: aclimate_admin, aclimate_frontend |
| enable | Boolean | Default: true | Flag de borrado suave |
| register | DateTime(tz) | NOT NULL | Marca de tiempo de creación |
| updated | DateTime(tz) | NOT NULL | Marca de tiempo de última actualización |
Relaciones: User (hijos), UserAccess (hijos)
UserAccess¶
Permisos granulares por usuario, país, rol y módulo. Usa una clave primaria compuesta.
| Columna | Tipo | Restricciones | Descripción |
|---|---|---|---|
| user_id | Integer | PK, FK -> users.id | Usuario |
| country_id | Integer | PK, FK -> mng_country.id | País |
| role_id | Integer | PK, FK -> role.id | Rol |
| module | Enum(Modules) | PK, NOT NULL | Módulo: GEOGRAPHIC, CLIMATE_DATA, CROP_DATA, etc. |
| create | Boolean | Default: false | Permiso de creación |
| read | Boolean | Default: false | Permiso de lectura |
| update | Boolean | Default: false | Permiso de actualización |
| delete | Boolean | Default: false | Permiso de eliminación |
Relaciones: User (padre), Role (padre), MngCountry (padre)
Valores de Módulo¶
| Módulo | Descripción |
|---|---|
| GEOGRAPHIC | Datos geográficos (países, divisiones admin) |
| CLIMATE_DATA | Acceso a datos climáticos |
| CROP_DATA | Acceso a datos de cultivos |
| INDICATORS_DATA | Acceso a datos de indicadores |
| STRESS_DATA | Acceso a datos de estrés |
| PHENOLOGICAL_STAGE | Datos de etapas fenológicas |
| USER_MANAGEMENT | Administración de usuarios y roles |
| CONFIGURATION | Configuración del sistema |