workspace-v1/projects/erp-construccion/docs/97-adr/ADR-006-rbac-sistema-permisos.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

2.2 KiB

ADR-006: RBAC - Sistema de Permisos

Estado: Aceptada Fecha: 2025-11-24 Responsable: Architecture-Analyst Proyecto: ERP Construccion

Contexto

El ERP de Construccion requiere control de acceso granular para:

  • Roles de construccion: Director, Residente, Almacenista, Contador
  • Permisos por proyecto/fraccionamiento
  • Control de datos sensibles (presupuestos, estimaciones)
  • Cumplimiento INFONAVIT

Decision

RBAC (Role-Based Access Control) con:

  • Roles jerarquicos (herencia)
  • Permisos por recurso y accion
  • RLS (Row-Level Security) en PostgreSQL
  • Field-level permissions para datos sensibles
// Roles especificos de construccion
const ROLES = {
  SUPER_ADMIN: 'super_admin',
  DIRECTOR_GENERAL: 'director_general',
  DIRECTOR_PROYECTO: 'director_proyecto',
  RESIDENTE_OBRA: 'residente_obra',
  SUPERVISOR: 'supervisor',
  ALMACENISTA: 'almacenista',
  CONTADOR: 'contador',
  DERECHOHABIENTE: 'derechohabiente', // Portal INFONAVIT
};

Justificacion

Referencia a Odoo

  • ir.rule pattern para RLS
  • Permisos por modelo y accion

Referencia a Gamilit

  • RBAC con herencia funcional
  • RLS policies robustas

Especifico para Construccion

  • Residente solo ve sus proyectos asignados
  • Director ve todos los proyectos
  • Derechohabiente solo ve su vivienda
  • Almacenista no ve presupuestos

Consecuencias

Positivas

  • Control granular por rol
  • Seguridad a nivel de base de datos (RLS)
  • Cumplimiento regulatorio
  • Audit trail completo

Negativas

  • Complejidad en gestion de permisos
  • Mitigacion: UI de administracion de roles

Implementacion

Acciones Requeridas

  • Definir matriz de roles y permisos
  • Implementar RLS policies por rol
  • UI de gestion de roles
  • Field-level permissions para presupuestos

Criterios de Aceptacion

  • Residente no ve proyectos de otros
  • Director ve todos los proyectos
  • Derechohabiente solo ve su vivienda en portal
  • Audit trail de accesos

Referencias