Sistema de Gobernanza
Prerrequisitos: Para entender la gobernanza, es fundamental conocer el Patrón Diamond y el Modelo de Control de Red.
Público: Para quienes busquen entender el control de red.
Contexto de uso: Para comprender el ciclo de vida de los despliegues y los mecanismos de seguridad de la red.
El Sistema de Gobernanza de ISBE es el contrato central que controla el despliegue y gestión de todos los casos de uso en la red mediante el patrón Diamond (EIP-2535).
Visión General
ISBE utiliza una arquitectura de gobernanza centralizada:
- Diamond de Gobernanza: Contrato central que coordina toda la red
- Diamonds de Casos de Uso: Cada aplicación/organización tiene su propio diamond independiente
- Facets: Módulos reutilizables desplegados mediante factories
Principios:
- Centralización: Un único diamond de gobernanza coordina toda la red
- Modularidad: Casos de uso independientes mediante patrón Diamond
- Control de Acceso: Roles específicos para cada operación
- Seguridad: Pausado global y gestión centralizada de DIDs
Capacidades del Diamond de Gobernanza
Factories (Despliegue):
- BusinessLogicFactory: Despliega y versiona facets reutilizables
- ConfigurationManagement: Crea configuraciones (conjuntos de facets)
- ProxyFactory: Despliega diamonds de casos de uso
Gestión:
- AccessControl: Control de roles y permisos
- DiamondCut/Loupe: Gestión e introspección del diamond
- GlobalPause: Pausado de emergencia de cualquier caso de uso
- DidRegistry: Registro centralizado de identidades (DIDs)
- ENS: Sistema de nombres descentralizado
Roles
Roles de Gobernanza:
- GOVERNANCE_MANAGER_ROLE: Gestiona el diamond de gobernanza
- BUSINESS_LOGIC_DEPLOYER_ROLE: Despliega facets mediante factory
- GOVERNANCE_CONFIGURATION_MANAGER_ROLE: Crea configuraciones
- PROXY_DEPLOYER_ROLE: Despliega casos de uso
- ISBE_PAUSER_ROLE: Pausado global de emergencia
- DID_REGISTRY_ROLE: Gestiona DIDs (onboarding institucional)
- DEFAULT_ADMIN_ROLE: Administración de roles
Roles en Casos de Uso:
- DEFAULT_ADMIN_ROLE: Admin local del caso de uso
- ISBE_ROLE: Representante de gobernanza (inmutable)
- PAUSER_ROLE: Pausado local
- Roles específicos: Según las facets incluidas
ISBE_ROLE: Este rol es inmutable y garantiza que gobernanza siempre mantiene control sobre los casos de uso.
Cómo Funciona
1. Despliegue de Facets
ISBE despliega facets mediante la BusinessLogicFactory:
- Cada facet se identifica con un businessId único
- El sistema versiona automáticamente: misma facet → v1, v2, v3...
- Las facets son módulos reutilizables que implementan funcionalidad específica
2. Configuraciones
Las configuraciones son conjuntos predefinidos de facets:
- Se crean mediante ConfigurationManagement
- Ejemplo: Config "Trazabilidad" = HashTimestamp + Pausable + AccessControl
- También se versionan automáticamente al actualizarse
3. Despliegue de Casos de Uso
La ProxyFactory crea diamonds de casos de uso:
- Se selecciona una configuración existente
- Se añaden automáticamente facets de gobernanza
- Se configuran roles iniciales
- Resultado: Diamond completo listo para usar
4. Gestión Continua
- Pausado local: Cada caso de uso puede pausarse individualmente
- Pausado global: Gobernanza puede pausar cualquier caso de uso (emergencias)
- DIDs: Registro centralizado consultable por todos los casos de uso
Resumen Gobernanza
| Aspecto | Descripción |
|---|---|
| Arquitectura | Diamond central de gobernanza coordina todos los casos de uso |
| Factories | BusinessLogic, Configuration, Proxy - despliegan facets y casos de uso |
| Roles | Control granular: GOVERNANCE_MANAGER, BUSINESS_LOGIC_DEPLOYER, PROXY_DEPLOYER, etc. |
| Configuraciones | Conjuntos predefinidos de facets, versionados automáticamente |
| Seguridad | Pausado local/global, roles inmutables (ISBE_ROLE), DIDs centralizados |
| Modularidad | Patrón Diamond (EIP-2535) permite facets ilimitadas y actualizables |
El sistema de gobernanza proporciona despliegue controlado y gestión centralizada de toda la red ISBE.
Otros temas de la referencia técnica: