Saltar a contenido

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