Technical documentation
Modelo de datos
Motor y configuración
- Motor: PostgreSQL 17.6
- Extensiones:
pgcrypto(habilitada eninit.sql) - ORM: SQLAlchemy 2.0 + SQLModel
- Migraciones: Alembic (
b2b-cp-backend/migrations/) - Caché: Redis Stack con TTL de 6000 s para datos Zabbix; política
allkeys-lrucon máximo 3 GB
Entidades principales
users
├── id (PK)
├── username
├── email
├── hashed_password
├── opco_id (FK → opcos)
├── role_id (FK → roles)
└── is_active
opcos
├── id (PK)
├── name
└── primary_color
roles
├── id (PK)
└── name
permissions
├── id (PK)
└── name
role_permissions
├── role_id (FK → roles)
└── permission_id (FK → permissions)
clients (tenants B2B)
├── id (PK)
├── name
├── opco_id (FK → opcos)
└── ...metadata
hosts
├── id (PK)
├── client_id (FK → clients)
├── zabbix_host_id
└── ...atributos de infraestructura
reports
├── id (PK)
├── period (YYYY-MM)
├── generated_at
└── file_path
audit_logs
├── id (PK)
├── user_id (FK → users)
├── action
├── resource
├── timestamp
└── detail (JSONB)
El esquema completo se deriva de los modelos SQLModel en cada microservicio y se versiona en
b2b-cp-backend/migrations/versions/.
