UNIÓN UNIDA
Arquitectura de defensa integral del siglo XXI
Informe estratégico ampliado
I. Introducción: la nueva naturaleza del conflicto
Después de la Guerra Mundial II, la guerra dejó de ser exclusivamente militar.
Hoy en día, el conflicto es:
- Los regímenes de sanciones,
- - el aislamiento tecnológico;
- Los ataques cibernéticos,
- La destrucción de la identidad,
- gestión de narrativas,
- El deterioro de los sistemas financieros.
La defensa ya no es igual al ejército.
La defensa es la integridad del sistema.
II. Filosofía de Doctrina Victoria
La victoria del siglo XXI es una condición en la que:
- La agresión se convierte en una desventaja económica.
- Un ataque de información no destruye a la sociedad.
- Las contradicciones internas no se transforman en divisiones.
- La Unión sigue siendo el centro de gravedad.
Fórmula:
Ganar = Represión de la soberanía
Si cualquier multiplicador es igual a cero el sistema es vulnerable.
III. Arquitectura de la Unión Unida 1. Contorno militar estratégico
Objetivo : Garantizar la inevitabilidad de la respuesta.
Elementos clave:
- Restricción estratégica
- Proyectiles y sistemas de defensa antiaérea de nueva generación
- Comando Cibernético
- Sistemas autónomos de gobierno,
- Infraestructura de satélites protegida.
Principio: El posible conflicto debe perderse de antemano para el iniciador.
2. Soberanía tecnológica
El que controla la tecnología es el que determina las reglas.
Ámbitos:
- Microelectrónica,
- independencia programática,
- IE y macrodatos,
- Sistemas energéticos autónomos,
- Infraestructura digital crítica.
Dependencia = riesgo estratégico.
3. Sostenibilidad económica
Sin una economía sostenible, la defensa se está agotando.
Contorno:
- Comercio diversificado,
- la seguridad alimentaria, la seguridad alimentaria
- Autonomía energética,
- Mecanismos de cálculo alternativos,
- La planificación industrial a largo plazo.
4. Seguridad básica
La fractura informativa destruye más rápido que los misiles.
Es necesario:
- Comunicación estratégica,
- La política cultural,
- Educación con pensamiento sistémico;
- Protección contra la manipulación cognitiva.
La sociedad debe entender por qué existe la Unión.
5. Diplomacia noosférica
El nivel más alto de defensa es la reducción de los conflictos ambientales.
Principios:
- Alianzas de infraestructura,
- interdependencia económica,
- Plataformas de cooperación
- La integración en las cadenas mundiales sin pérdida de soberanía.
El objetivo es crear un mundo en el que la guerra no sea sostenible.
IV. Modelo de los cinco niveles de sostenibilidad de la Unión
Nivel |
Criterios de sostenibilidad |
Riesgo de debilitamiento |
|
Militar |
Retención garantizada |
Agresión externa |
|
Tecnología |
Sistemas independientes |
Bloqueo del desarrollo |
|
Económico |
Autonomía |
Restauración |
|
Social |
Confianza y justicia |
Diferencia interna |
|
Espejoso |
Misión general |
Degradación de la identidad |
V. Principio " La defensa mediante el desarrollo "
Modelo clásico:
Primero la seguridad, después el desarrollo.
El modelo integral de la Unión:
El desarrollo es la seguridad.
El impulso tecnológico reduce la probabilidad de conflicto más que el aumento del número de efectivos del ejército.
VI. Modelo institucional
- Centro de Análisis Estratégico.
- Instituto de Soberanía Tecnológica.
- Un consejo de política de sentido común.
- Plataforma de Cooperación Industrial.
- Contorno de control digital.
Todos los elementos deben funcionar como un solo organismo.
VII. Riesgos del siglo XXI
- - El bloqueo tecnológico;
- Guerras de sanciones,
- - El agotamiento demográfico;
- Amenazas cibernéticas,
- La destrucción del sistema educativo.
La defensa debe estar adelantada, no reactiva.
VIII. Conclusión
La Unión Unificada no es un bloque militar. Es una arquitectura de sostenibilidad.
La victoria del siglo XXI es:
- Una economía estable,
- La independencia tecnológica,
- la integridad cultural,
- Restricción estratégica
- Cooperación internacional.
Sólo una combinación de estos factores crea una verdadera seguridad.
Proyecto de carta de envío
Unión Unida: Arquitectura de Defensa Integral del siglo XXI
Distinguidos colegas:
En el contexto de la transformación del sistema de seguridad mundial, la aceleración de los ciclos tecnológicos y el aumento de las formas híbridas de enfrentamiento, es especialmente importante pasar de las medidas fragmentadas a una arquitectura integral de sostenibilidad.
Se presenta un informe estratégico sobre el desarrollo de los conocimientos especializados
Unión Unida: Arquitectura de Defensa Integral XXI.
En el informe se establece un enfoque sistemático de las cuestiones relacionadas con:
- de una nueva generación,
- la soberanía tecnológica y digital,
- de la sostenibilidad económica bajo las presiones
- la protección del espacio cognitivo y de sentido común,
- Reducción de los conflictos mediante la cooperación en materia de infraestructura.
El modelo propuesto se basa en el principio de:
El desarrollo es la seguridad.
En el informe se considera que la defensa no es sólo un marco militar, sino también un conjunto de elementos interrelacionados: la industria, la ciencia, la educación, la política de información y la cooperación internacional.
Se presta especial atención a:
- la integración de los sistemas digitales de gobierno,
- La sostenibilidad de la infraestructura crítica,
- La coordinación institucional de las orientaciones estratégicas.
El documento es de carácter analítico y analítico y está destinado a ser objeto de debate en la comunidad profesional.
Estamos dispuestos a presentar una versión ampliada, aplicaciones analíticas y una hoja de ruta gradual para la aplicación.
Con respeto,
S. L. Sokolov
El borrador de la carta está reforzado.
Orientación para el informe estratégico sobre la arquitectura integrada de la sostenibilidad de la defensa
Estimado _____,
A fin de promover un enfoque sistemático de la sostenibilidad nacional, se presenta un informe analítico sobre:
Unión Unida: Arquitectura de Defensa Integral XXI
El documento contiene un modelo estructurado de defensa basado en cinco marcos interrelacionados y en indicadores de rendimiento mensurables.
1. Contorno militar estratégico
Se propone pasar de la ampliación cuantitativa a los parámetros de la exclusión garantizada de la agresión.
Indicadores clave:
- Tasa de autonomía de los sistemas de gestión (porcentaje de independencia de las plataformas externas);
- Sostenibilidad de la infraestructura crítica (tiempo de recuperación después del incidente);
- Proporción de canales de comunicación protegidos;
- Nivel de estabilidad cibernética (límite de impacto de los ataques).
2. Soberanía tecnológica
○ Reducción de la dependencia crítica de los proveedores externos.
Metas propuestas:
- Participación de los componentes nacionales en los sectores críticos;
- Nivel de localización de la microelectrónica;
- La independencia de las decisiones de política en el sector público;
- Proporción de datos estratégicos publicados en los centros nacionales de procesamiento.
3. Sostenibilidad económica
Sin una base económica, la capacidad de defensa se está agotando.
Metrics:
- Tasa de autosuficiencia industrial;
- Autonomía alimentaria (% de la seguridad interna);
- Diversificación de las exportaciones;
- Sostenibilidad de los mecanismos de cálculo a la presión externa.
4. Sostenibilidad cognitiva y social
Los conflictos actuales son híbridos.
Indicadores:
- Nivel de confianza pública en las instituciones;
- Porcentaje de ciudadanos que participan en programas educativos de pensamiento sistémico;
- Índice de sostenibilidad de la información;
- La rapidez de neutralizar las campañas de información destructivas.
5. Principio " La defensa mediante el desarrollo "
El informe justifica una estrategia en la que:
El desarrollo de la industria, la ciencia y la educación se considera parte del sistema de defensa.
Sincronización propuesta:
- de la política industrial
- la planificación científica y tecnológica,
- la transformación digital,
- La estrategia de recursos humanos.
Resultado práctico de la aplicación del modelo
- Reducción del riesgo estratégico;
- Mejorar la capacidad de gestión en situaciones de crisis;
- La creación de una estructura de disuasión sostenible;
- :: Aumentar la capacidad internacional mediante proyectos de infraestructura.
El informe es analítico y está destinado a ser examinado por expertos. Estamos dispuestos a presentar cálculos ampliados, una matriz de riesgos y una hoja de ruta gradual.
I. Informe: Unión Unida: Arquitectura de Defensa Integral del siglo XXI
7 conclusiones clave
1. La naturaleza del conflicto ha cambiado
El enfrentamiento actual es híbrido: sanciones, limitaciones tecnológicas, ciberataques, influencia de la información. El contorno militar ○ es sólo uno de los elementos.
2. Defensa = sistema de contorno interrelacionado
El modelo consta de 5 niveles:
- Militar Estratégica
- Tecnología
- Económico
- Social y Cognitivo
- Coordinación institucional
El debilitamiento de cualquier nivel reduce la sostenibilidad de todo el sistema.
3. La dependencia tecnológica es el principal riesgo del siglo XXI
La vulnerabilidad crítica se crea en las esferas siguientes:
- Microelectrónica,
- Programas informáticos;
- tecnologías energéticas,
- La infraestructura digital.
Reducción de la dependencia
4. Sostenibilidad económica - condición de disuasión
Sin una base industrial, no puede haber defensa a largo plazo.
Es necesario:
- Diversificación del comercio,
- Mecanismos de cálculo autónomos,
- Desarrollo de cadenas de producción de ciclo completo.
5. La sostenibilidad cognitiva afecta directamente a la seguridad
La fractura informativa de la sociedad puede causar un daño comparable al de un ataque militar. Se requiere un trabajo sistemático con:
- Educación,
- medios de comunicación,
- La política cultural.
6. El desarrollo es un elemento de defensa.
Inversiones en:
- Ciencia,
- Infraestructura,
- Gestión digital,
- modernización industrial
Reduce la probabilidad de conflicto más que la mera acumulación de fuerzas.
7. El objetivo no es ganar la guerra, sino prevenirla.
Una estructura de defensa eficaz hace que la agresión sea económica y estratégicamente inútil.
II. MATRIKA DE RISCOS
(Posible daño: medidas de respuesta)
|
№ |
Riesgo |
Viabilidad |
Posible daño |
Respuesta |
|
1 |
Embargo tecnológico |
Alta |
Limitación del desarrollo, dependencia |
Localización de los procesos críticos |
|
2 |
Ciberataques de infraestructura |
Alta |
Interrupción de control |
Establecimiento de circuitos autónomos y sistemas de reserva |
|
3 |
Presión de saneamiento |
Media superior |
Pérdidas financieras |
Diversificación de los mecanismos de cálculo |
|
4 |
Desestabilización de la información |
Alta |
Polarización social |
Programas de alfabetización en los medios de comunicación y comunicación estratégica |
|
5 |
Disminución demográfica |
Media |
Disminución de la capacidad del personal |
Apoyo a la política familiar y educativa |
|
6 |
Fuga de competencias tecnológicas |
Media |
Pérdida de soberanía científica |
Inversiones en investigación y desarrollo y programas de recursos humanos |
|
7 |
Restricciones energéticas |
Baja (media) |
Reducción de la capacidad industrial |
Desarrollo de sistemas energéticos autónomos |
Concentración final en la carta
En la carta adjunta, puede añadirse un párrafo final:
La aplicación de un modelo integrado de sostenibilidad de la defensa permitirá pasar de una gestión de riesgos reactiva a una arquitectura proactiva de prevención de conflictos.
SECCIÓN FORTALECTIVA
Sostenibilidad económica como contorno de defensa
1. Orientación estratégica
La economía no es un apoyo a la defensa.
La economía es la base de la disuasión.
Históricamente, la sostenibilidad no sólo se ha garantizado por la fuerza militar, sino también por la capacidad industrial. Después de la segunda guerra mundial, la movilización industrial fue el factor clave de la victoria.
En el siglo XXI, la movilización = autonomía tecnológica y financiera.
2. Parámetros fundamentales de la sostenibilidad económica
2.1. Autonomía industrial
Metas (horizon de 5–7 años):
- - 75% localizaciones en industrias críticas (maquinaria, energía, defensa e industria);
- - 60% localización del componente microelectrónico;
- - 80% apoyo interno para materiales estratégicos.
Meta de control: Índice de autonomía industrial (IPA).
2.2. Sostenibilidad financiera
Los riesgos del siglo XXI son los bloqueos calculados y la dependencia monetaria.
Metas:
- - 70% operaciones de comercio exterior en mecanismos alternativos de cálculo;
- La creación de un modelo de cuentas interbancarias de reserva;
- - La proporción de las reservas estratégicas de 24 meses para cubrir las importaciones de las posiciones críticas.
Meta de control: Tasa de independencia financiera (KFI).
2.3. Autonomía energética
Energía = capacidad de gestión. Parámetros:
- - 90% de energía interna, con cargo a sus propios recursos;
- - 20% la proporción de la generación distribuida;
- Reservación de objetos críticos (100%).
Metrika: Índice de sostenibilidad energética (IEU).
2.4. Seguridad alimentaria
La seguridad alimentaria es un factor de estabilidad social.
Objetivos:
- - 95% suministro interno de productos básicos;
- Reserva estratégica 12 meses;
- La autonomía de las semillas 80%.
Meta: Tasa de autonomía alimentaria (KPA).
2.5. Valor añadido tecnológico
El modelo de las materias primas aumenta la vulnerabilidad. Vector objetivo:
- Aumento de la proporción de productos de alto valor añadido 50% En la estructura de las exportaciones;
- Aumento del gasto en I+D a 3% PIB;
- Aumento de la proporción de las industrias de alta tecnología: 25% PIB.
Metrika: Índice de profundidad tecnológica (ITG).
3. Arreglos institucionales para la aplicación
4. Modelo económico " Defensa mediante el desarrollo "
Fórmula:
Sostenibilidad económica = Producción - Tecnología - Autonomía financiera - Dotación
Si un elemento se debilita, el sistema es vulnerable.
5. Matriz de riesgos económicos (versión mejorada)
|
Riesgo |
Viabilidad |
Daños |
Prioridad de la respuesta |
|
Bloqueo tecnológico |
Alta |
Crítica |
Máximo |
|
Aislamiento financiero |
Media superior |
Alto |
Alto |
|
Limitaciones lógicas |
Media |
Alto |
Alto |
|
Adicción a los productos básicos |
Media |
Media |
Media |
|
Disminución demográfica |
Media |
Estratégico |
Máximo |
6. Posición final para la carta
Se puede añadir el acento final:
La sostenibilidad económica se considera un elemento de la estructura de defensa nacional que garantiza una capacidad a largo plazo de disuasión estratégica y desarrollo.
Anexo A. Análisis hipotético de la sostenibilidad
Metodología
Valoramos el sistema en 5 (militar, tecnológico, económico, cognitivo, institucional) mediante:
- Probabilidad de un acontecimiento (H/C/B),
- (H/C/B/Critical)
- Hora de reacción (horas/días/semanas)
- El umbral de sostenibilidad (cuyas reservas o dobles se necesitan para no caer)
Hipótesis 1. Optimista
*La competencia dirigida + la ventana del desarrollo
Triggers
- La presión externa no está aumentando, los ataques híbridos siguen siendo los teléfonos;
- Se mantienen los canales de comercio y cooperación a través de rutas alternativas.
La ventana de oportunidad
- Aceleración de la localización de los componentes críticos;
- Modernización de la industria sin un régimen de movilización;
- Aumento de la demanda interna de alta tecnología.
Medidas prioritarias
- Promover la investigación y el desarrollo y los programas de recursos humanos (ingenieros/aplicaciones).
- Colocar la sustitución de importaciones al mínimo crítico de los componentes.
- Establecer una vigilancia permanente de los riesgos y las dependencias (auditores trimestrales).
Resultado
- Sostenibilidad sin estrés, aumento de profundidad tecnológica.
Hipótesis 2. Base
Presión prolongada + olas de restricciones
Triggers
- Nuevos conjuntos de restricciones periódicos;
- Costo de la logística, fallos locales de los suministros;
- El aumento de los incidentes cibernéticos y las campañas de información.
Riesgos clave
- - Los puntos débiles en la microelectrónica/construcción/programas informáticos;
- Interrupciones en materiales críticos y componentes;
- El deterioro de la confianza debido a la turbulencia económica y a los ataques a la identidad.
Medidas prioritarias
- Matriz de dependencia crítica (componente de suministro de tiempo de sustitución).
- Reserva: existencias de posiciones críticas (12–24 meses).
- Doble contorno de control: canales de comunicación/datos autónomos.
- Cooperación industrial de ciclo completo (principio de grupo).
Resultado
- El sistema mantiene la presión sin perder el control ni el futuro.
Hipótesis 3. Estrés
* Expansión aguda: brechas financieras y tecnológicas + cibercybers.
Triggers
- - Limitación de los cálculos y la liquidez por conductos externos;
- - Sanciones críticas contra el equipo o los componentes;
- Atacos cibernéticos masivos sobre energía, comunicaciones y logística;
- Operación de información sincronizada para desmoralización/descompresión.
Perfil de daños: alto/crítico, especialmente en los primeros 30–90 días.
Contorno de crisis (que debería estar listo de antemano)
- Régimen de autonomía: planes de pagos/cliring de reserva, sectores prioritarios.
- Sala de operaciones: centro único de coordinación de incidentes (kiber + logística + red de energía + info).
- Defensa de la infraestructura crítica: aislamiento de segmentos, protocolos manuales, capacidad de reserva.
- Sostenibilidad social: protección de los ingresos de los grupos básicos, control de precios críticos.
- Mobilización de la importación: líneas de sustitución rápidas, redistribución de la capacidad.
Objetivo: Mantener la capacidad de control, evitar la destrucción de la infraestructura en cascada.
Anexo B. Cuadro de sincronización intersectorial
La idea es simple: la sostenibilidad de la defensa no se logra en la industria, sino en las interconexiones (datos sobre la energía, producción, producción, logística, finanzas, significado).
1) Matriz de Contura - Sector - Salir KPI”
|
Sistema |
Industrias de base |
Salida crítica |
KPI (ejemplo) |
|
Militar Estratégica |
Comunicaciones, satélites, equipo |
la gobernanza sostenible |
hora de recuperación;porcentaje de canales protegidos |
|
Tecnología |
Microelectrónica, maquinaria, software |
cadenas independientes |
Coeficiente de localización; proporción de software nacional en los sistemas críticos |
|
Económico |
Industria, energía, finanzas |
base de recursos |
reservas de críticas; autonomía de balance energético |
|
Cognitivo |
Educación, medios de comunicación, cultura |
Sostenibilidad social |
índice de confianza; velocidad de neutralización de las campañas de información |
|
Institucional |
Administración pública, normalización |
Coordinación |
tiempo de adopción de decisiones; % de proyectos con sincronización |
2) Cuadro __7 cadenas clave (las conexiones más importantes)
|
Cadena |
¿Por qué? |
Lugar estrecho |
Que sincronizar |
|
Microelectrónica - telecomunicaciones - administración |
Gobernanza del país |
Componentes/fábricas |
localización + normas + certificación |
|
Energía - Industria - logística |
sostenibilidad de la producción |
red/reserva |
Generación distribuida + reservación de objetos |
|
Datos de IE de seguridad cibernética |
Defensa de avanzada |
Personal/PG |
Centros de datos + aprendizaje + protocolos de respuesta |
|
Financiación de la cuenta de comercio exterior |
Sostenibilidad del intercambio |
Clering/moneda |
Otros cálculos + reservas + rutas |
|
Materiales de química de la maquinaria |
de producción completa |
Materiales raros |
reservas de almacenamiento + reprocesamiento + sustitución |
|
Educación - Personal de I+D |
El impulso tecnológico |
fuga de cerebros |
Becas + Escuelas de Ingeniería + encargo de investigación y desarrollo |
|
El significado de la confianza de la preparación para la movilización |
Sostenibilidad social |
polarización |
Comunicación + cultura + medios de comunicación |
3) Mini-registro de dependencia crítica
Esto se insertará en un cuadro en un anexo y se rellenará sobre la base de:
- Posición (componente/materiales/P)
- Sistema (donde se utiliza)
- Fuente actual (extraterrestre/interno)
- Riesgo (bloqueo/costo/ataque)
- Sustitución (similar/producto)
- Período de sustitución (6/12/24/36 mes)
- Reserva (almacenes, meses de financiación)
- Contorno responsable (tecnología/economía/institución)
Anexo B. Prueba de resistencia al estrés: 10 sistemas críticos de la Unión
Escala
- El umbral de cesión es lo que se considera una zona roja (hora y escala).
- ¿Qué tipo de sistemas están cayendo?
- El plan de recuperación de las primeras 24 horas, 72 horas, 30 días.
- KPI en estado de preparación que mide la preparación real (y no la presentación de informes).
1) Sistema de energía (generación + red + control)
Umbral de falla: pérdida de capacidad de 15% en la región por 6 horas o interrupción de la frecuencia/perturbabilidad de la red.
Cascade: Conexión Agua/Cerca de la Industria - Logística de la Salud.
Plan de recuperación
- 0–24ch: Aislamiento de los segmentos de emergencia, alimentación prioritaria de los sujetos críticos, entrada de las reservas (DGE/gasoturbinas) y protocolos manuales de control.
- 24–72ch: redistribución de flujos, lanzamiento de generación distribuida, traslado de subestaciones móviles.
- :: 30d: reparación de las zonas angostas y establecimiento de sistemas de reserva permanentes y depósitos de critiquetas.
KPI
- Tiempo de recuperación de las cargas críticas (horas);
- Proporción de las críticas de alimentación de reserva (%);
- Tiempo de conversión a circuitos de respaldo (minas).
2) Comunicaciones y gestión (magistrados, telecomunicaciones especiales, redes de radio)
Límite de eliminación: degradación de la capacidad de control > 2 horas (conducciones inestables en eslabones clave).
Cascad: Administración del Estado, defensa, finanzas, logística.
Plan de recuperación
- 0–24ch: Transición a canales de reserva protegidos, prioridad del tráfico, desactivación de segmentos comprometidos.
- 24–72ch: Dispersión de nudos móviles, reservación por satélite, restablecimiento de la ruta.
- Hasta 30d: actualización de criptoconectores, doble contorno de comunicaciones en todos los niveles.
KPI
- Porcentaje de canales protegidos (%);
- Tiempo de transferencia a la reserva (minas);
- Porcentaje de centros de comunicación autónomos (%).
3) Sistema financiero y cálculos
Umbral de rechazo: imposibilidad de realizar cálculos en masa > 24 horas o congelación de canales externos de compensación.
Cascade: Comercio de logística de tensión social.
Plan de recuperación
- 0–24ch: inclusión de un marco de costos de reserva (clingos internos), limitación de riesgos, prioridad de sueldos/pensiones/compras críticas.
- 24–72ch: conversión de transacciones externas en mecanismos alternativos, estabilización de la liquidez.
- :: 30d: Ampliación de los canales de pago autónomos, reglamentos de movilización financiera.
KPI
- La continuidad de los pagos a la población (%);
- Porcentaje de transacciones que se realizan a través de circuitos de reserva (%);
- Hora de restablecimiento de los pagos en masa (horas).
4) Logística y transporte (FC/portuarios/autos/aviones)
Límite de rechazo: fallo en la entrega de las críticas > 72 horas o bloqueo de los nodos clave.
Cascade: Combustible - Industria.
Plan de recuperación
- 0–24ch: reorientación de rutas, prioridad de las críticas, introducción de un cinturón especial en los nodos.
- 24–72ch: Movilización de los transportistas de reserva, distribución de las reservas de almacenamiento.
- :: 30d: construcción de dobles rutas, capacidad de contenedores y depósitos, puertos secos.
KPI
- Entrega de las críticas de SLA (%);
- Horas de salida del nodo bloqueado (horas/días);
- Reservas de almacenamiento (días de cierre).
5) Alimentación y cadenas agrícolas
Límite de rechazo: déficit de canasta básica en la región > 7 días o shock de precios > del corredor establecido.
Cascade: Sostenibilidad social
Plan de recuperación
- 0–24ch: emisión de reservas, corredores de precios para el equipo de crítica, logística prioritaria.
- 24–72h: redistribuciones regionales, apoyo a los productores/reelaboración.
- :: 30d: Fortalecimiento de las semillas y los alimentos, ampliación de la elaboración, infraestructura de almacenamiento.
KPI
- Días de cobertura con estratega;
- La estabilidad del precio de la canasta básica (% de desviación);
- Porcentaje de la cobertura interna (%).
6) Salud y estado de preparación
Límite de eliminación: sobrecarga de hospitales > 20% para 2+ semanas o déficit de critiquetas.
Cascad: Demografía
Plan de recuperación
- 0–24ch: triage protocols, redistribution de corrientes, movilización de existencias.
- 24–72ch: despliegue temporal, logística de medicamentos/gastos.
- El aumento de la producción nacional de críticas y la actualización de las normas es de 30d.
KPI
- Contar con críticas (días);
- Tiempo de alimentación (días);
- Proporción de las actividades nacionales críticas (%).
7) Gobierno y continuidad del poder
Límite de rechazo: incapacidad de adoptar o adoptar decisiones a niveles clave > 2 horas.
Cascade: Se acabó.
Plan de recuperación
- 0–24ch: transición a centros de control de reserva, reglamentos de gestión sin tecnología de la información, canales prioritarios.
- 24–72ch: Sincronización de niveles, cuartel general del incidente (war room).
- hasta 30d: Doblación de la capacidad de gestión (centros, personal, comunicaciones, procedimientos).
KPI
- Tiempo de restauración de la cadena de mando;
- Porcentaje de órganos con control de reserva (%);
- Frecuencia de ejercicios (una/año).
8) y movilización industrial
Umbral de rechazo: interrupción de las críticas/componentes > 30 días.
Cascades el contorno militar de la política exterior tecnológica.
Plan de recuperación
KPI
9) Educación/personal/INR (contorno de ingeniería)
Límite de renuncia: escasez persistente de profesionales clave o fuga de competencias.
Cascade: Tecnología de la industria de la defensa.
Plan de recuperación
- 0–24ch: Priorización de competencias clave, Registro de Personal.
- 24–72ch: paquetes de estímulo, programas acelerados de readiestramiento.
- hasta 30d: Escuelas de Ingeniería, subsidios de investigación y desarrollo, encargo de aplicaciones.
KPI
- Emisión de ingenieros/año por orden de prioridad;
- La proporción de I+D del PIB (%);
- Fecha de cierre de las vacantes en las criticas (días).
10) Media/infosreda/sostenibilidad cognitiva
El umbral de rechazo es la polarización masiva, la caída de la confianza por debajo del umbral crítico o el éxito de las operaciones de información que causan parálisis administrativa.
Cascad: Sostenibilidad social
Plan de recuperación
- 0–24ch: un centro de comunicaciones para la crisis, hechos-contorno rápidos, prevención del pánico.
- 24–72ch: Campañas de sensibilización, alfabetización en los medios de comunicación, trabajo con líderes comunitarios.
- 30d: Estrategia de seguridad del sistema (educación + cultura + medios de comunicación).
KPI
- Velocidad de desactivación (horas);
- Índice de confianza en las instituciones;
- Proporción de la población con nivel básico de alfabetización en los medios de comunicación (%).
Anexo G - El cuartel general del incidente (cuarto de la estructura)
Composición:
Energía, comunicaciones, ciberfinanzas, logística, socialismo, medios de comunicación, industria.
Protocolo único:
Encuentra el aislamiento de ○ Restauración postanálisis.
Modo:
24/7 en escenarios de estrés, ejercicios semanales en el modo de base.
PASO DE LA SOSTENIBILIDAD
(norma para el sistema crítico de la Unión)
1. Identificación del sistema
- Nombre del sistema:
- Contorno (militar/tecnológico/económico/cognitivo/institucional):
- Nivel de criticidad: I / II / III
- Órgano responsable/coordinador:
2. Función específica
¿Qué tiene que hacer el sistema en cualquier circunstancia? (formulado en 1–2 líneas, sin palabras comunes)
3. Umbral de cesión (zona roja)
Concretamente:
- Tiempo de degradación:
- Escala:
- Pérdida de funcionamiento (%):
4. Reserva
- Reserva física (capacidad, almacenes, equipo):
- Reserva de información (por canales paralelos):
- Reserva de personal:
- Reserva financiera:
5. Hipótesis de respuesta. 0–24 horas
(primeras acciones) 24–72 horas
(estabilización) hasta 30 días
(rehabilitación y fortalecimiento)
6. KPI Sostenibilidad
- Hora de recuperación (RTO):
- Pérdida admisible de datos (RPO):
- % Autonomía:
- Frecuencia de las pruebas de estrés:
- Índice de preparación (combinado):
7. Nivel de madurez
1
2
3 en funcionamiento
4
5 - Resiliencia al estrés
Ejemplo 1
Pasaporte para la sostenibilidad
Contorno: tecnología económica
Crítica: I
Función específica:
Garantizar la continuidad del suministro de energía a la infraestructura y la industria críticas.
Umbral de rechazo:
Pérdida > 15% capacidad regional por > 6 Horas.
Reservación:
- 20% generación distribuida
- 100% Reserva de objetos críticos
- 30 días de existencias de componentes esenciales
KPI:
- Horas de recuperación < 12
- 95% Críticas de alimentación autónoma
- 2 prueba de estrés por año
Ejemplo 2
Sistema financiero
Contorno: económico
Crítica: I
Función específica:
Continuidad de los cálculos y las prestaciones sociales.
Umbral de rechazo:
Imposibilidad de las operaciones masivas > 24 horas.
Reservación:
- Mecanismo alternativo de compensación
- 24 meses para cubrir las importaciones de posiciones críticas
- 2 Centro de datos independientes
KPI:
- 99% pagos pendientes
- Restablecimiento de los pagos en masa < 6 horas
- Porcentaje de cálculos autónomos 70%
Ejemplo 3
Pasaporte de sostenibilidad - Comunicaciones y gestión
Contorno: institucional y militar
Crítica: I
Función específica:
Gestión garantizada a todos los niveles.
Umbral de rechazo:
Interrupción de las comunicaciones permanentes > 2 horas.
Reservación:
- Canales de repetición (optica + satélite + reserva de radio)
- Centros de control de reserva
- Doble contorno criptográfico
KPI:
- Cambio a reserva < 10 minutos
- 100% nodos clave con duplicación
- Ejercicios trimestrales
Cómo usar esto estratégicamente
Si el documento se envía oficialmente, recomiendo que:
- Construir 10 pasaportes (todos los sistemas críticos).
- Remplazarlos en el cuadro sinóptico Índices de Sostenibilidad de la Unión.
- Implantar un procedimiento anual de auditoría.
- Añádase una sección sobre la dinámica de 3.
I. Índice de sostenibilidad de la Unión (SIU)
1. Lógica del índice
La sostenibilidad no es una suma, sino un diseño de contorno.
Si un contorno es débil, todo el sistema es vulnerable.
Fórmula:
SIU = (W × T × E × C × I)^{1/5},
Donde:
- W - Contorno militar
- T - Tecnología
- E ○ Económico
- C - Cognitivo (social)
- I. Instituciones
Cada contorno se mide en una escala de 0–100.
Se utiliza la media geométrica para que el eslabón débil reduzca el total.
2. Cálculo interno de cada contorno
Cada contorno = promedio de 5:
Sistema |
Opciones |
W |
Control, autonomía de gestión, reservas, estabilidad cibernética, ejercicios |
T |
Localización, I+D, dotación de personal, independencia del software, profundidad de producción |
E |
Industria, finanzas, energía, alimentos, logística |
C |
Confianza, sostenibilidad de la información, educación, integración cultural, preparación para la movilización |
I |
Velocidad de las soluciones, coordinación intersectorial, duplicación de centros, auditoría de riesgos, transparencia KPI |
3. Escala de interpretación
SIU |
Nivel |
|
0–40 |
Sistema vulnerable |
|
40–60 |
Parcialmente sostenible |
|
60–75 |
Estable |
|
75–85 |
Alta sostenibilidad |
|
85–100 |
Estratégicamente protegida |
4. Ejemplo de cálculo (condicional)
W = 78
T = 62
E = 70
C = 65
I = 60
SIU ~ 66 Conclusión: el sistema es estable, pero es necesario fortalecer el marco tecnológico e institucional.
II. CARTA DE DURA: TRANSICIÓN 2 - 5
Niveles de madurez
2 ○ Conseguido parcialmente
3
4 ○ Se prueba periódicamente
5 ○ Resiliencia al estrés
ETAP 1 (0–2)
Transición 2 ° 3. Objetivo: Formalizar el sistema.
- Confirmar los pasaportes de estabilidad.
- Establecer un registro único de dependencia crítica.
- Iniciar la auditoría anual SIU.
- Establecer un observatorio de riesgos.
- Comienza las pruebas de estrés trimestrales.
Resultado: el sistema se está gestionando.
ETAP 2 (2–5 años)
Transición 3 ° 4. Objetivo: Verificar el sistema en la práctica.
- Ejercicios intersectoriales periódicos.
- Duplicación de los centros de control.
- Aumento de las reservas a niveles normativos.
- Localización de 60–75% componentes críticos.
- Aumento de I+D: 3% PIB.
Resultado: El sistema aguanta el estrés básico.
ETAP 3 (5–10 años)
Transición 4 ° 5. Objetivo: Autonomía estratégica total.
- Doble contorno de control completo.
- 80–90% autonomía de las industrias críticas.
- Sostenibilidad al aislamiento financiero.
- Un alto índice de confianza (75).
- SIU ≥ 80.
Resultado: la agresión se vuelve insostenible.
III. Mecanismo de control
Una vez al año
- Contrabando SIU.
- Actualización de pasaportes.
- Informe público (o cerrado) sobre la dinámica.
- Ajuste de la hoja de ruta.
General
La sostenibilidad no es un informe. Es una dinámica controlada de los indicadores.
PLATFORMA DE CONSULTAS
Prototipo de interfaz (MVP)
1 - - - STRATEGIC DASHBOARD
Elemento central:
SIU - Índice consolidado de sostenibilidad
Un gran indicador circular:
- 0–40 Zona roja
- 40–60 amarilla
- 60–75 Verde
- 75 + verde oscuro
Bajo él, la dinámica de 12 meses.
Derecha: 5
Sistema |
Índice |
Entrenamiento |
|
Militar |
78 |
↑ |
|
Tecnología |
62 |
→ |
|
Económico |
70 |
↑ |
|
Cognitivo |
65 |
↓ |
|
Institucional |
60 |
→ |
Click para cada uno de ellos es un paso hacia el detalle.
2 - Contorno (ejemplo: Económico)
Bloque 1 — KPI en tiempo real
- Autonomía industrial (%)
- Sostenibilidad financiera
- Equilibrio energético
- Índice de alimentación
- Sostenibilidad lógica
Cada uno con una indicación semáfora.
Grupo 2 - Mapa de riesgos
Matriz: Probabilidad
Los riesgos se ponen de relieve automáticamente cuando se sobrepasa el umbral.
Grupo 3
Calendario 1 / 3 / 5
- Proyección al ritmo actual.
3
Interfaz:
Filtrador:
- Industria
- Nivel de riesgo
- Parte de las importaciones
- Período de sustitución
Cuadro
○ Componente ○ Riesgo ○ Sustitución ○ Período de la reserva
El sistema identifica automáticamente las posiciones críticas.
4
Pantalla de escenarios:
- Optimista
- Base
- Estrés
El usuario selecciona el evento:
- Bloqueo financiero
- Ciberataca
- Un fallo lógico
- Incidente energético
El sistema prevé:
- Caída SIU
- Horas de recuperación
- Efectos de cascada
5️⃣ WAR ROOM DIGITAL
El modo se activa automáticamente con:
- SIU menos 60
- Excediendo el umbral de riesgo crítico
La pantalla se divide en 4:
- Mapa de acontecimientos
- Críticas KPI
- Desafíos y decisiones
- Tiempo de reacción
6 - Arquitectura de los niveles de acceso
Nivel 1
Solo los índices y el analista.
Nivel 2
Indicadores sectoriales y riesgos.
Nivel 3 ○
Datos y parámetros profundos.
7 - Estructura técnica MVP
- Backend: Contorno de servidor protegido
- Base de datos: distribuida
- Análisis: módulo de cálculo SIU
- Interfaz: web + protegido intranet
- Lógica: Auditoría continua de las medidas
8 - Funcionamiento mínimo de lanzamiento (6–9 meses)
- Cuantía SIU.
- Dashbord 5 contorno.
- Pasaportes de sostenibilidad.
- Prueba básica de estrés.
- Ingreso manual KPI.
Sin demasiadas complicaciones.
I. Efecto económico del aumento de la sostenibilidad
1. Lógica básica
La sostenibilidad reduce:
- bonificación por riesgo,
- volatilidad,
- pérdidas debidas a las crisis,
- Costos de sustitución de las importaciones en caso de emergencia.
Y aumenta:
- El atractivo de las inversiones,
- la profundidad del reprocesamiento,
- valor añadido,
- La autonomía tecnológica.
2. Modelo de impacto en el PIB.
Dividiendo el efecto en 4:
1○ Reducción de las pérdidas de crisis
Históricamente las crisis se comen 3–8% El PIB en el escenario del estrés.
El aumento de SIU de 60 a 80 reduce las pérdidas en 30–50%.
Economías: 1,5–3% PIB anual en el horizonte de 10 años.
2Aumento del valor añadido tecnológico
Aumento de la proporción de alto riesgo: +10% respecto de la estructura de las exportaciones
= +2–3% al PIB a mediano plazo.
3○ Reducción de los costos financieros
La sostenibilidad disminuye:
- Costo de los préstamos;
- Pérdidas relacionadas con las sanciones,
- Una fuga de capitales.
Efecto estimado: +0,5–1,5% PIB.
4
Inversiones en:
- Energía,
- digitalización,
- Cooperación industrial,
- La animadora es 1,4–1,8.
3. Efecto acumulativo
Durante la transición SIU 65 ° 80: Posible crecimiento del PIB: +3–6% a la trayectoria básica en el horizonte de 7–10.
General: La sostenibilidad es rentable.
II. Plataforma de vigilancia
Vamos al control digital.
Arquitectura de la plataforma
1. Objetivo
Vigilancia real de la sostenibilidad en modo 24/7. No informes una vez al año. Es un sistema vivo.
2. Módulos básicos
MÓDULO 1 — SIU-CORE
- Cálculo automático del índice de sostenibilidad.
- Dashbord 5 contorno.
- Evolución de 1–5–10 años.
MODOUL 2 ○ REESTRUCTURA DE LAS ESFERAS CRÍTICAS
- El componente de la industria de ○ es el proveedor del riesgo.
- Las señales están por encima del umbral.
MODOUL 3 ○ ESTS EST ENGINE
- Modelización de escenarios.
- Evaluación de los efectos en cascada.
- Proyección del tiempo de recuperación.
MÓDULO 4 — SEGUIMIENTO DE KPI
- Energía.
- Comunicaciones.
- Finanzas.
- Logistica.
- Educación.
- CGK.
MÓDULO 5 — WAR ROOM DIGITAL
- Integración de datos en la crisis.
- Centro de adopción de decisiones.
- Historia de los incidentes.
3. Arquitectura tecnológica
La plataforma comprende:
- Fecha-contorno protegido,
- Nodos distribuidos,
- la capa analítica (AI),
- Interfaz de gestión estratégica.
4. Niveles de acceso
- Estratégico (índice compuesto).
- Operativo (indicadores sectoriales).
- Técnica (metografías y alarmas específicas).
5. Etapa de aplicación
Etapa 1 (1–2)
- Inicio SIU-CORE.
- Pasaportes de sostenibilidad.
- Pruebas básicas de estrés.
Etapa 2 (3–5 años)
- Integración de los datos sectoriales.
- Señales automáticas.
- Centro de Vigilancia Digital.
Etapa 3 (5–10 años)
- Una doble digital completa de resistencia.
- Proyección en IA.
- Protección preventiva.
Conexión final. Crecimiento SIU - Reducción del riesgo de las inversiones - Fortalecimiento de la sostenibilidad del PIB. Ciclo cerrado.
Data Model (esquema de datos) de la plataforma de información sobre el medio ambiente para MVP. Esto se puede entregar inmediatamente al arquitecto/productor: naturaleza, conexiones, campos, normas de inversión y cálculo SIU.
Base de datos de la plataforma de información sobre el medio ambiente (MVP)
0) Principios del modelo
- Continuidad: Todo lo importante se registra como medida / incidente / decisión / prueba.
- Version: Pasaportes, KPI y umbrales tienen versiones (para que la auditoría vea la historia).
- Jerarquía: Sistema de Contorno KPI - Medición.
- Normativa vs Fact: Se mantienen por separado los valores específicos y las mediciones reales.
1) Repertorio (core)
1.1 Contour: Contorno de sostenibilidad (5 - ¿Qué).
- contour_id (PK)
- code (W, T, E, C, I)
- name
- weight (predeterminado 0.2)
- description
1.2 Critical System. 10 sistemas críticos (energía, comunicaciones, finanzas...).
- system_id (PK)
- name
- category (energy/comm/finance/…)
- criticality_level (1/2/3)
- owner_org
- region_scope (national/region/local)
- status (active/archived)
1.3 Subsystem. Subsistemas dentro de CriticalSystem.
- subsystem_id (PK)
- system_id (FK → CriticalSystem)
- name
- description
- status
1.4 OrgUnit. Organizaciones/oficinas.
- org_id (PK)
- name
- type (operator/regulator/analysis/…)
- contact_role (no datos personales, sólo papel)
- status
1.5 UserRole (RBAC). Roles de acceso.
- role_id (PK)
- name (strategic/operational/technical/auditor/admin)
- permissions (json/bitmask)
2) Pasaportes de sostenibilidad (versión y control)
2.1 ResiliencePassport. Pasaporte del sistema (sombrero actual).
- passport_id (PK)
- system_id (FK)
- contour_id (FK)
- current_version_id (FK → PassportVersion)
- maturity_level (1–5)
- created_at, updated_at
2.2 PassportVersion. Versión del pasaporte (auditoría y modificación).
- version_id (PK)
- passport_id (FK)
- version_no (int)
- target_function (text)
- failure_threshold (text + structured fields infra)
- rto_target_hours (float)
- rpo_target_hours (float)
- autonomy_target_pct (float)
- test_frequency_per_year (int)
- approved_by_org (FK → OrgUnit)
- effective_from, effective_to
- notes
2.3 FailureThreshold. (opcional, si se necesita estructurar)
- threshold_id (PK)
- version_id (FK)
- metric (e.g. “capacity_loss_pct”, “outage_hours”)
- operator (>, >=, <…)
- value (float)
- unit
2.4 ReserveProfile. Un perfil de las reservas en la versión del pasaporte.
- reserve_id (PK)
- version_id (FK)
- reserve_type (physical/data/people/finance)
- description
- coverage_days (float, nullable)
- capacity_units (nullable)
- last_verified_at
3) KPI y medidas
3.1 KPI. Manual KPI.
- kpi_id (PK)
- name
- unit (%, hours, days, index)
- aggregation (avg/min/max/last/weighted)
- direction (higher_is_better / lower_is_better)
- description
3.2 KPIDEfinition. Conexión KPI al sistema/subsistema y contorno + normas.
- kpi_def_id (PK)
- kpi_id (FK)
- system_id (FK)
- subsystem_id (FK, nullable)
- contour_id (FK)
- target_value (float)
- warning_value (float)
- critical_value (float)
- weight_in_contour (float) (monto de contorno = 1.0)
- effective_from, effective_to
- source_type (manual/api/import)
- owner_org (FK)
3.3 Measurement. Mediciones efectivas KPI.
- measurement_id (PK)
- kpi_def_id (FK)
- timestamp
- value (float)
- quality_flag (ok/suspect/missing)
- ingested_at
- source_ref (linea: archivo/detector/sistema)
4) Riesgos y dependencia
4.1 Risk Register. Registro de riesgos (por ejemplo, en el caso de la matriz, es probable que haya daños).
- risk_id (PK)
- name
- type (tech/finance/cyber/logistics/info/…)
- description
- probability (1–5)
- impact (1–5)
- risk_score (computed = prob×impact)
- owner_org (FK)
- status (open/mitigating/closed)
- last_reviewed_at
4.2 DependencyItem. Adicciones críticas (componente/programa/material).
- dep_id (PK)
- system_id (FK)
- subsystem_id (FK, nullable)
- item_name
- item_type (component/material/software/service)
- current_source (domestic/foreign/mixed)
- import_share_pct (float)
- substitution_plan (text)
- substitution_due_months (int)
- reserve_coverage_months (float)
- risk_level (low/med/high/critical)
- owner_org (FK)
- updated_at
5) Incidentes y War Room
5.1 Incident. Incidente/emergencia (real o doctrina).
- incident_id (PK)
- system_id (FK)
- incident_type (cyber/outage/supply/finance/info/…)
- severity (1–5)
- started_at, ended_at
- status (open/contained/recovered/closed)
- summary
- root_cause (nullable)
- created_by_role (FK → UserRole)
5.2 Incident Impact. Efectos de cascada (de los cuales KPI/sistemas resultaron dañados).
- impact_id (PK)
- incident_id (FK)
- kpi_def_id (FK, nullable)
- affected_system_id (FK, nullable)
- delta_value (float, nullable)
- notes
5.3 DecisionLog. Registro de decisiones War Room.
- decision_id (PK)
- incident_id (FK)
- time
- decision_text
- assigned_org (FK)
- deadline
- status (planned/in_progress/done)
- evidence_ref (nullable)
6) Pruebas de estrés y escenarios
6.1 Scenario
- scenario_id (PK)
- name (optimistic/base/stress + custom)
- description
- assumptions (text/json)
- created_at
6.2 StressTestRun. Iniciando la prueba.
- run_id (PK)
- scenario_id (FK)
- initiated_at
- initiated_by_role
- scope (national/region/system)
- status
6.3 StressTestResult. Resultados de sistemas/contorno.
- result_id (PK)
- run_id (FK)
- system_id (FK)
- contour_id (FK)
- expected_siu_drop (float)
- expected_rto_hours (float)
- critical_findings (text)
- recommended_actions (text)
7) Cálculo de índices (SIU)
7.1 ContourScore. Un resumen del período.
- contour_score_id (PK)
- contour_id (FK)
- period_start, period_end
- score_0_100
- computed_at
- method_version (para cambiar la metodología)
7.2 SIUScore. Índice SIU.
- siu_id (PK)
- period_start, period_end
- siu_0_100
- w_score, t_score, e_score, c_score, i_score
- computed_at
- method_version
Regla de cálculo (MVP)
- Consideramos que cada ContourScore es un promedio ponderado de KPI a KPI Definition.weight_in_contour durante el período (por ejemplo, last/avg).
- SIU = media geométrica de cinco contornos:
SIU = (W × T × E × C × I)^{1/5} - Si hay muchas missings en el contorno, debemos imponer una multa (por ejemplo, 5...-15), para estimular los datos.
8 Comunicaciones (corto)
- Contour 1—N Resilience Passport
- CriticalSystem 1—N ResiliencePassport, 1—N Subsystem, 1—N KPIDefinition, 1—N Incident, 1—N DependencyItem
- KPI 1—N KPIDefinition
- KPIDefinition 1—N Measurement
- Incident 1—N DecisionLog, 1—N IncidentImpact
- Scenario 1—N StressTestRun 1—N StressTestResult
- ContourScore + SIUScore ○ Acumulaciones periódicas
9) Conjunto mínimo de datos de lanzamiento MVP
Para que la plataforma viva de inmediato:
- 10 CriticalSystem
- 5 Contour
- 5 KPI por contorno (25 KPI mínimo)
- 1 Pasaporte al sistema (10) + versión
- Importaciones semanales de Measurement (incluso manuales)
- 1 Hipótesis básica de prueba de estrés
DDL esqueleto de PostgreSQL (cuadros/placas/índices) y wireframe de navegación/pantallas, estrictamente bajo nuestro Model Data.
1) PostgreSQL DDL (esqueleto)
-- =========================================
-- PLATFORM "SOYUZ" - MVP DDL (PostgreSQL)
-- =========================================
- 0) Enums (puede reemplazarse por directorios)
DO $$ BEGIN
CREATE TYPE risk_status AS ENUM ('open','mitigating','closed');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE incident_status AS ENUM ('open','contained','recovered','closed');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE quality_flag AS ENUM ('ok','suspect','missing');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE kpi_direction AS ENUM ('higher_is_better','lower_is_better');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE kpi_aggregation AS ENUM ('avg','min','max','last','weighted');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE system_status AS ENUM ('active','archived');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE reserve_type AS ENUM ('physical','data','people','finance');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE dependency_type AS ENUM ('component','material','software','service');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
DO $$ BEGIN
CREATE TYPE source_type AS ENUM ('manual','api','import');
EXCEPTION WHEN duplicate_object THEN NULL; END $$;
-- 1) Core reference tables
CREATE TABLE IF NOT EXISTS contour (
contour_id BIGSERIAL PRIMARY KEY,
code TEXT NOT NULL UNIQUE CHECK (code IN ('W','T','E','C','I')),
name TEXT NOT NULL,
weight NUMERIC(6,4) NOT NULL DEFAULT 0.2000,
description TEXT
);
CREATE TABLE IF NOT EXISTS org_unit (
org_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
type TEXT,
contact_role TEXT, sólo papel, sin datos personales
status system_status NOT NULL DEFAULT 'active'
);
CREATE TABLE IF NOT EXISTS user_role (
role_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE, -- strategic/operational/technical/auditor/admin
permissions JSONB NOT NULL DEFAULT '{}'::jsonb
);
CREATE TABLE IF NOT EXISTS critical_system (
system_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
category TEXT NOT NULL, -- energy/comm/finance/logistics/...
criticality_level SMALLINT NOT NULL CHECK (criticality_level BETWEEN 1 AND 3),
owner_org BIGINT REFERENCES org_unit(org_id),
region_scope TEXT NOT NULL DEFAULT 'national',
status system_status NOT NULL DEFAULT 'active'
);
CREATE TABLE IF NOT EXISTS subsystem (
subsystem_id BIGSERIAL PRIMARY KEY,
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
name TEXT NOT NULL,
description TEXT,
status system_status NOT NULL DEFAULT 'active',
UNIQUE(system_id, name)
);
-- 2) Passports (versioned)
CREATE TABLE IF NOT EXISTS resilience_passport (
passport_id BIGSERIAL PRIMARY KEY,
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
contour_id BIGINT NOT NULL REFERENCES contour(contour_id),
current_version_id BIGINT, -- FK added after passport_version exists
maturity_level SMALLINT NOT NULL DEFAULT 2 CHECK (maturity_level BETWEEN 1 AND 5),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(system_id, contour_id)
);
CREATE TABLE IF NOT EXISTS passport_version (
version_id BIGSERIAL PRIMARY KEY,
passport_id BIGINT NOT NULL REFERENCES resilience_passport(passport_id) ON DELETE CASCADE,
version_no INT NOT NULL,
target_function TEXT NOT NULL,
failure_threshold_txt TEXT - breve descripción del umbral de rechazo
rto_target_hours NUMERIC(10,2),
rpo_target_hours NUMERIC(10,2),
autonomy_target_pct NUMERIC(6,2),
test_frequency_per_year INT,
approved_by_org BIGINT REFERENCES org_unit(org_id),
effective_from DATE NOT NULL DEFAULT CURRENT_DATE,
effective_to DATE,
notes TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(passport_id, version_no)
);
ALTER TABLE resilience_passport
ADD CONSTRAINT fk_passport_current_version
FOREIGN KEY (current_version_id) REFERENCES passport_version(version_id);
CREATE TABLE IF NOT EXISTS failure_threshold (
threshold_id BIGSERIAL PRIMARY KEY,
version_id BIGINT NOT NULL REFERENCES passport_version(version_id) ON DELETE CASCADE,
metric TEXT NOT NULL,
operator TEXT NOT NULL, -- >, >=, < ...
value NUMERIC(18,6) NOT NULL,
unit TEXT
);
CREATE TABLE IF NOT EXISTS reserve_profile (
reserve_id BIGSERIAL PRIMARY KEY,
version_id BIGINT NOT NULL REFERENCES passport_version(version_id) ON DELETE CASCADE,
reserve_type reserve_type NOT NULL,
description TEXT,
coverage_days NUMERIC(10,2),
capacity_units TEXT,
last_verified_at TIMESTAMPTZ
);
-- 3) KPI model
CREATE TABLE IF NOT EXISTS kpi (
kpi_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
unit TEXT NOT NULL,
aggregation kpi_aggregation NOT NULL DEFAULT 'avg',
direction kpi_direction NOT NULL DEFAULT 'higher_is_better',
description TEXT
);
CREATE TABLE IF NOT EXISTS kpi_definition (
kpi_def_id BIGSERIAL PRIMARY KEY,
kpi_id BIGINT NOT NULL REFERENCES kpi(kpi_id),
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
subsystem_id BIGINT REFERENCES subsystem(subsystem_id) ON DELETE SET NULL,
contour_id BIGINT NOT NULL REFERENCES contour(contour_id),
target_value NUMERIC(18,6),
warning_value NUMERIC(18,6),
critical_value NUMERIC(18,6),
weight_in_contour NUMERIC(8,6) NOT NULL DEFAULT 0.200000,
effective_from DATE NOT NULL DEFAULT CURRENT_DATE,
effective_to DATE,
source_type source_type NOT NULL DEFAULT 'manual',
owner_org BIGINT REFERENCES org_unit(org_id),
CHECK (weight_in_contour >= 0 AND weight_in_contour <= 1)
);
CREATE INDEX IF NOT EXISTS idx_kpi_def_system ON kpi_definition(system_id);
CREATE INDEX IF NOT EXISTS idx_kpi_def_contour ON kpi_definition(contour_id);
CREATE INDEX IF NOT EXISTS idx_kpi_def_kpi ON kpi_definition(kpi_id);
CREATE TABLE IF NOT EXISTS measurement (
measurement_id BIGSERIAL PRIMARY KEY,
kpi_def_id BIGINT NOT NULL REFERENCES kpi_definition(kpi_def_id) ON DELETE CASCADE,
timestamp TIMESTAMPTZ NOT NULL,
value NUMERIC(18,6) NOT NULL,
quality_flag quality_flag NOT NULL DEFAULT 'ok',
ingested_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
source_ref TEXT
);
CREATE INDEX IF NOT EXISTS idx_measurement_kpi_def_time ON measurement(kpi_def_id, timestamp DESC);
CREATE INDEX IF NOT EXISTS idx_measurement_time ON measurement(timestamp DESC);
-- 4) Risks & dependencies
CREATE TABLE IF NOT EXISTS risk_register (
risk_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL,
type TEXT NOT NULL,
description TEXT,
probability SMALLINT NOT NULL CHECK (probability BETWEEN 1 AND 5),
impact SMALLINT NOT NULL CHECK (impact BETWEEN 1 AND 5),
risk_score SMALLINT GENERATED ALWAYS AS (probability * impact) STORED,
owner_org BIGINT REFERENCES org_unit(org_id),
status risk_status NOT NULL DEFAULT 'open',
last_reviewed_at TIMESTAMPTZ
);
CREATE INDEX IF NOT EXISTS idx_risk_score ON risk_register(risk_score DESC);
CREATE INDEX IF NOT EXISTS idx_risk_status ON risk_register(status);
CREATE TABLE IF NOT EXISTS dependency_item (
dep_id BIGSERIAL PRIMARY KEY,
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
subsystem_id BIGINT REFERENCES subsystem(subsystem_id) ON DELETE SET NULL,
item_name TEXT NOT NULL,
item_type dependency_type NOT NULL,
current_source TEXT NOT NULL, -- domestic/foreign/mixed
import_share_pct NUMERIC(6,2),
substitution_plan TEXT,
substitution_due_months INT,
reserve_coverage_months NUMERIC(10,2),
risk_level TEXT NOT NULL, -- low/med/high/critical
owner_org BIGINT REFERENCES org_unit(org_id),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_dep_system ON dependency_item(system_id);
CREATE INDEX IF NOT EXISTS idx_dep_risk ON dependency_item(risk_level);
-- 5) Incidents & War Room
CREATE TABLE IF NOT EXISTS incident (
incident_id BIGSERIAL PRIMARY KEY,
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
incident_type TEXT NOT NULL, -- cyber/outage/supply/finance/info/...
severity SMALLINT NOT NULL CHECK (severity BETWEEN 1 AND 5),
started_at TIMESTAMPTZ NOT NULL,
ended_at TIMESTAMPTZ,
status incident_status NOT NULL DEFAULT 'open',
summary TEXT,
root_cause TEXT,
created_by_role BIGINT REFERENCES user_role(role_id)
);
CREATE INDEX IF NOT EXISTS idx_incident_system ON incident(system_id, started_at DESC);
CREATE INDEX IF NOT EXISTS idx_incident_status ON incident(status);
CREATE TABLE IF NOT EXISTS incident_impact (
impact_id BIGSERIAL PRIMARY KEY,
incident_id BIGINT NOT NULL REFERENCES incident(incident_id) ON DELETE CASCADE,
kpi_def_id BIGINT REFERENCES kpi_definition(kpi_def_id) ON DELETE SET NULL,
affected_system_id BIGINT REFERENCES critical_system(system_id) ON DELETE SET NULL,
delta_value NUMERIC(18,6),
notes TEXT
);
CREATE TABLE IF NOT EXISTS decision_log (
decision_id BIGSERIAL PRIMARY KEY,
incident_id BIGINT NOT NULL REFERENCES incident(incident_id) ON DELETE CASCADE,
time TIMESTAMPTZ NOT NULL DEFAULT NOW(),
decision_text TEXT NOT NULL,
assigned_org BIGINT REFERENCES org_unit(org_id),
deadline TIMESTAMPTZ,
status TEXT NOT NULL DEFAULT 'planned', -- planned/in_progress/done
evidence_ref TEXT
);
CREATE INDEX IF NOT EXISTS idx_decision_incident ON decision_log(incident_id, time DESC);
-- 6) Scenarios & stress tests
CREATE TABLE IF NOT EXISTS scenario (
scenario_id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE, -- optimistic/base/stress/custom
description TEXT,
assumptions JSONB NOT NULL DEFAULT '{}'::jsonb,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS stress_test_run (
run_id BIGSERIAL PRIMARY KEY,
scenario_id BIGINT NOT NULL REFERENCES scenario(scenario_id),
initiated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
initiated_by_role BIGINT REFERENCES user_role(role_id),
scope TEXT NOT NULL DEFAULT 'national', -- national/region/system
status TEXT NOT NULL DEFAULT 'running'
);
CREATE TABLE IF NOT EXISTS stress_test_result (
result_id BIGSERIAL PRIMARY KEY,
run_id BIGINT NOT NULL REFERENCES stress_test_run(run_id) ON DELETE CASCADE,
system_id BIGINT NOT NULL REFERENCES critical_system(system_id) ON DELETE CASCADE,
contour_id BIGINT NOT NULL REFERENCES contour(contour_id),
expected_siu_drop NUMERIC(10,2),
expected_rto_hours NUMERIC(10,2),
critical_findings TEXT,
recommended_actions TEXT
);
CREATE INDEX IF NOT EXISTS idx_stress_result_run ON stress_test_result(run_id);
CREATE INDEX IF NOT EXISTS idx_stress_result_system ON stress_test_result(system_id);
-- 7) Scores (computed aggregates)
CREATE TABLE IF NOT EXISTS contour_score (
contour_score_id BIGSERIAL PRIMARY KEY,
contour_id BIGINT NOT NULL REFERENCES contour(contour_id),
period_start DATE NOT NULL,
period_end DATE NOT NULL,
score_0_100 NUMERIC(6,2) NOT NULL CHECK (score_0_100 BETWEEN 0 AND 100),
computed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
method_version TEXT NOT NULL DEFAULT 'mvp_v1',
UNIQUE(contour_id, period_start, period_end, method_version)
);
CREATE TABLE IF NOT EXISTS siu_score (
siu_id BIGSERIAL PRIMARY KEY,
period_start DATE NOT NULL,
period_end DATE NOT NULL,
siu_0_100 NUMERIC(6,2) NOT NULL CHECK (siu_0_100 BETWEEN 0 AND 100),
w_score NUMERIC(6,2) NOT NULL,
t_score NUMERIC(6,2) NOT NULL,
e_score NUMERIC(6,2) NOT NULL,
c_score NUMERIC(6,2) NOT NULL,
i_score NUMERIC(6,2) NOT NULL,
computed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
method_version TEXT NOT NULL DEFAULT 'mvp_v1',
UNIQUE(period_start, period_end, method_version)
);
-- Helpful indexes for dashboard queries
CREATE INDEX IF NOT EXISTS idx_siu_latest ON siu_score(period_end DESC);
CREATE INDEX IF NOT EXISTS idx_contour_score_latest ON contour_score(period_end DESC, contour_id);
Nota MVP
- En DDL no hay tabla de usuario (Libros/autenticación). Para MVP, es suficiente RBAC funciones externas + SSO/LDAP más tarde.
- Hay muchos pesos: contour.weight + kpi_definition.weight_in_contour. En MVP se pueden registrar los contornos de 0.2 y sólo se pueden controlar KPI.
2) Wireframe interface (menú + pantallas)
Navegación mundial (menú izquierdo)
- Inicio
- Contorno
- W Militar
- T Tecnología
- E Economía
- C Cognitivo
- I Institucional
- Sistemas críticos
- Energía
- Contacto
- Finanzas
- Logistica
- Alimentación
- Salud
- Administración pública
- CGK
- Dotación de personal/INRA
- Infosred
- Pasaportes de sostenibilidad
- KPI y Mediciones
- Riesgos y dependencia
- Pruebas de estrés
- War Room
- Informes / Exportación
- Preferencias
- Referencias
- Umbrales/escalas
- Funciones de acceso
Pantalla 1: Principal (Strategic Dashboard)
Barra superior:
- Período (una semana/mes/trimes)
- Filtrador (país/región/sistema)
- Botón ♪ Iniciar pruebas de estrés
- Índice de modo (Normal / Alert / War Room)
Cuerpo:
- Gran SIU gauge
- 5 barras de contorno (W/T/E/C/I): score + tendencia + status
- - Top-5 - (de riesgo_register de riesgo_score)
- *Top-5 adicciones (dependency_item on risk_level=critical)
- ○ Incidentes activos (de hecho=open/contained)
Pantalla 2: Contorno (ejemplo: Economía)
Fichas:
- KPI
- Riesgos
- Adicciones
- Acontecimientos (incidentes)
- Recomendaciones (sobre la base de los resultados de las pruebas de estrés)
KPI.
- Cuadro KPI con umbrales (target/warn/critical)
- Calendario para cada KPI (last 90 days)
- * Falles de datos (quality_flag=missing) ○ multa en el índice
Pantalla 3: Sistema Crítico (ejemplo: Energía)
Botella del sistema:
- Nivel de crítica
- Órgano responsable (org_unit)
- Pasaporte actual (versión)
Bloques:
- KPI sistemas (por ejemplo, subsistemas)
- Umbral de rechazo (de passport_version + failure_threshold)
- Reservas (de reserve_profile)
- Incidentes del sistema
- Botón Abrir War Room en el sistema
Pantalla 4: Pasaportes de sostenibilidad
- Lista de pasaportes (system + contour + maturity)
- Abrir pasaporte - Historia de las versiones
- Editor de versión (si el papel lo permite)
- Botón }Asignar el nombre actual (actualizar actual_version_id)
Pantalla 5: KPI y mediciones
- Catálogo KPI
- Conexiones KPI a sistemas (kpi_definition)
- Importación de mediciones / entrada manual
- Control de calidad de los datos (ok/suspect/missing)
- Auditoría de las fuentes (source_ref)
Pantalla 6: Riesgos y dependencia
- Matriz probable de daño (heatmap)
- Registro de riesgos (risk_register)
- Registro de dependencia (dependency_item) con filtros:
- riesgo_level
- import_share_pct
- substitution_due_months
Pantalla 7: Pruebas de estrés
- Hipótesis (scenario)
- Inicio (stress_test_run)
- Resultados (stress_test_result):
- Reducción prevista SIU
- Estimación RTO
- recomendaciones
Pantalla 8: War Room
Layaut 4 panel:
- Mapa/tiempo del incidente
- KPI
- Lista de decisiones (decision_log)
- Objetivos/períodos/responsables (decision_log status)
Entrada automática a War Room si:
- siu_score < 60 or
- Incidente de severity 4 o
- риск_score ≥ 20 (5×4, 5×5)
1) ContourScore y SIU (SQL)
1.1 Normalización KPI en la escala 0–100
Idea: Cada dimensión KPI se traduce a 0–100 en relación con los umbrales críticos_value / warning_value / target_value.
- Si es superior_is_better:
- value ≥ target → 100
- value ≤ critical → 0
- Interpolación lineal entre critical y target (puede complicarse más tarde)
- Si lower_is_better: espejo
-- =========================================
-- KPI scoring view (0..100)
-- Uses latest measurement per KPI definition within period
-- =========================================
CREATE OR REPLACE VIEW v_kpi_latest_in_period AS
SELECT
kd.kpi_def_id,
kd.kpi_id,
kd.system_id,
kd.subsystem_id,
kd.contour_id,
kd.target_value,
kd.warning_value,
kd.critical_value,
kd.weight_in_contour,
k.direction,
k.aggregation,
m.timestamp,
m.value,
m.quality_flag
FROM kpi_definition kd
JOIN kpi k ON k.kpi_id = kd.kpi_id
JOIN LATERAL (
SELECT m1.*
FROM measurement m1
WHERE m1.kpi_def_id = kd.kpi_def_id
ORDER BY m1.timestamp DESC
LIMIT 1
) m ON TRUE
WHERE kd.effective_to IS NULL OR kd.effective_to >= CURRENT_DATE;
-- Score each KPI definition to 0..100
CREATE OR REPLACE VIEW v_kpi_score_latest AS
SELECT
v.*,
CASE
WHEN v.quality_flag = 'missing' THEN 0
WHEN v.direction = 'higher_is_better' THEN
CASE
WHEN v.target_value IS NULL OR v.critical_value IS NULL THEN NULL
WHEN v.value >= v.target_value THEN 100
WHEN v.value <= v.critical_value THEN 0
ELSE ROUND( ( (v.value - v.critical_value) / NULLIF((v.target_value - v.critical_value),0) ) * 100, 2)
END
WHEN v.direction = 'lower_is_better' THEN
CASE
WHEN v.target_value IS NULL OR v.critical_value IS NULL THEN NULL
WHEN v.value <= v.target_value THEN 100
WHEN v.value >= v.critical_value THEN 0
ELSE ROUND( ( (v.critical_value - v.value) / NULLIF((v.critical_value - v.target_value),0) ) * 100, 2)
END
ELSE NULL
END AS score_0_100
FROM v_kpi_latest_in_period v;
Nota: warning_value todavía no se ha utilizado en la fórmula. En v2, puedes hacer una función critical: warning tarrget.
1.2 ContourScore = promedio ponderado KPI por contorno
-- =========================================
-- Contour score = weighted average of KPI scores
-- =========================================
CREATE OR REPLACE VIEW v_contour_score_current AS
SELECT
c.contour_id,
c.code AS contour_code,
CURRENT_DATE AS period_start,
CURRENT_DATE AS period_end,
ROUND(
SUM(ks.score_0_100 * kd.weight_in_contour) / NULLIF(SUM(kd.weight_in_contour),0),
2
) AS score_0_100,
SUM(CASE WHEN ks.score_0_100 IS NULL THEN 1 ELSE 0 END) AS null_scores_cnt,
SUM(CASE WHEN ks.quality_flag = 'missing' THEN 1 ELSE 0 END) AS missing_cnt
FROM contour c
JOIN kpi_definition kd ON kd.contour_id = c.contour_id
JOIN v_kpi_score_latest ks ON ks.kpi_def_id = kd.kpi_def_id
GROUP BY c.contour_id, c.code;
1.3 SIU = media geométrica 5 + multa por missing
-- =========================================
-- SIU score = geometric mean of 5 contour scores
-- + optional penalty for missing data
-- =========================================
CREATE OR REPLACE VIEW v_siu_score_current AS
WITH cs AS (
SELECT
contour_code,
score_0_100,
missing_cnt
FROM v_contour_score_current
),
pivot AS (
SELECT
MAX(CASE WHEN contour_code='W' THEN score_0_100 END) AS w_score,
MAX(CASE WHEN contour_code='T' THEN score_0_100 END) AS t_score,
MAX(CASE WHEN contour_code='E' THEN score_0_100 END) AS e_score,
MAX(CASE WHEN contour_code='C' THEN score_0_100 END) AS c_score,
MAX(CASE WHEN contour_code='I' THEN score_0_100 END) AS i_score,
SUM(missing_cnt) AS total_missing
FROM cs
)
SELECT
CURRENT_DATE AS period_start,
CURRENT_DATE AS period_end,
w_score, t_score, e_score, c_score, i_score,
-- Base geometric mean
ROUND(
POWER(
NULLIF(w_score,0) * NULLIF(t_score,0) * NULLIF(e_score,0) * NULLIF(c_score,0) * NULLIF(i_score,0),
1.0/5.0
),
2
) AS siu_base,
-- Penalty: -0.5 per missing KPI (cap -15)
GREATEST(
ROUND(
POWER(
NULLIF(w_score,0) * NULLIF(t_score,0) * NULLIF(e_score,0) * NULLIF(c_score,0) * NULLIF(i_score,0),
1.0/5.0
) - LEAST(total_missing * 0.5, 15),
2
),
0
) AS siu_0_100
FROM pivot;
1.4 (opcional) materialized views para velocidad
-- Materialize contour and SIU daily/weekly via cron/job
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_contour_score_current AS
SELECT * FROM v_contour_score_current;
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_siu_score_current AS
SELECT * FROM v_siu_score_current;
-- Refresh commands:
-- REFRESH MATERIALIZED VIEW mv_contour_score_current;
-- REFRESH MATERIALIZED VIEW mv_siu_score_current;
2) Seed data (MVP)
2.1 Conturas, funciones, organizaciones, 10 sistemas críticos
-- =========================================
-- SEED DATA - CORE
-- =========================================
-- Contours
INSERT INTO contour (code, name, weight, description) VALUES
(W', 'Militar', 0.2, 'Retención, control, estabilidad cibernética, ejercicios')
('T', 'technology',0.2, 'localización, I+D, software, personal, profundidad de producción')
('E', 'E', '0.2, 'Industria, finanzas, energía, alimentos, logística')
('C', 'Cognitivo', '0.2,'Confianza, Infosos, Educación, Cultura')
( 'I', 'institution', '0.2, 'Coordinación, velocidad de decisión, auditoría de riesgos, reserva de control')
ON CONFLICT (code) DO NOTHING;
-- Roles
INSERT INTO user_role (name, permissions) VALUES
('strategic', '{"read":"all","write":"none"}'),
('operational','{"read":"all","write":"kpi,incident,decision"}'),
('technical', '{"read":"all","write":"kpi,measurement,deps"}'),
('auditor', '{"read":"all","write":"none"}'),
('admin', '{"read":"all","write":"all"}')
ON CONFLICT (name) DO NOTHING;
- Org units (aproximadamente)
INSERT INTO org_unit (name, type, contact_role, status) VALUES
('Центр мониторинга СОЮЗ','analysis','координатор','active'),
("Operador de Crítica," "Operator," "Operador," "Operador," "Operador"),
(" Kibercent " , " operator " , " guardia " , " activo ")
('Contorno Financiero', 'operator','Coordinador','active')
(" Contorno " , " Operator " , " Coordinador " , " Activ ")
(" Infosred/comunicaciones " , " Operator " , " Coordinador " , " Activ ")
(" I+D y personal " , " operator " , " coordinador " , ' active')
ON CONFLICT (name) DO NOTHING;
-- 10 Critical systems
INSERT INTO critical_system (name, category, criticality_level, owner_org, region_scope, status)
SELECT x.name, x.category, x.crit, ou.org_id, 'national', 'active'
FROM (VALUES
(" Energosistema " , " Energy " , 1),
(" Comunicaciones y Administración " , " Comm " , 1)
(" Sistema financiero " , " financiación " , 1),
(Logistics and Transport, Logistics, 1)
(" Sistema alimentario " , " alimentos " , 1),
(Salud, health, 2)
(" Continuidad de la administración pública " , " Gobierno " , 1)
('OPC y movilización industrial', 'defense_industry', 1)
(" e I+D " , " hr_rnd " , 2)
(" Infosred and Cognitive Sustainability " , "info " , 1)
) AS x(name, category, crit)
JOIN org_unit ou ON ou.name = 'Центр мониторинга СОЮЗ'
ON CONFLICT (name) DO NOTHING;
2.2 KPI (25: 5 por contorno)
-- =========================================
-- SEED DATA - KPI CATALOG (25)
-- =========================================
-- W (higher better unless stated)
INSERT INTO kpi (name, unit, aggregation, direction, description) VALUES
(W1: Autocontrol', '%', 'last', 'higher_is_better', 'Dolares de marcos autónomos de control'),
(W2: Proporción de canales protegidos, %', 'last', 'higher_is_better', 'Dol de canales protegidos'),
(W3: Hora del cambio a la reserva', 'min', 'last', 'lower_is_better', 'menos tiempo antes del cambio a los canales de reserva'),
(W4: Facturabilidad Cibernética (límite de impacto) ", "index', 'last', 'higher_is_better', 'Índice de resistencia a los ataques'),
(W5: Frecuencia de los ejercicios interconectores, 'per_year', 'last', 'higher_is_better', 'Enseñanza/año');
-- T
INSERT INTO kpi (name, unit, aggregation, direction, description) VALUES
(T1: Localización de los componentes críticos', '%', 'last', 'higher_is_better', 'Dol de los componentes críticos localizados')
('T2: Proporción de software nacional en los sistemas críticos', '%', 'last', 'higher_is_better', 'Utilización de software nacional'),
(T3: I+D al PIB', %GDP', 'last', 'higher_is_better', 'intensidad de I+D'),
(T4: Emisión de ingenieros por prioridades, 'per_year', 'last', 'higher_is_better', 'Número de graduados/año')
(T5: Tiempo de sustitución del crítico, "months," "last', 'lower_is_better', "Red de sustitución de un punto estrecho");
-- E
INSERT INTO kpi (name, unit, aggregation, direction, description) VALUES
(E1: Autonomía Industrial, %, last','higher_is_better', 'Samoaficy of Production'),
(E2: Continuidad de los pagos en masa, %', 'last', 'higher_is_better', 'La tasa de pago sin demora'),
(E3: Autonomía energética, porcentaje, last','higher_is_better', 'Del suministro interno de energía'),
(E4: Días de la Reserva Alimentaria, Días, Last', 'higher_is_better', 'Cuenta de la Reserva')
(E5: SLA entrega de critiques, '%', 'last','higher_is_better', 'entrega de critiques en SLA');
-- C
INSERT INTO kpi (name, unit, aggregation, direction, description) VALUES
('C1: Índice de confianza en las instituciones', 'index', 'last','higher_is_better', 'la confianza pública'),
(C2: Velocidad de refutación de los bucles, hours', 'last', 'lower_is_better', 'horas antes de la neutralización')
(C3: Tasa de alfabetización en los medios de comunicación, porcentaje, last','higher_is_better', 'Población con alfabetización en los medios de comunicación básica')
('C4: Cobertura de la educación del sistema', '%', 'last','higher_is_better', 'La cobertura de los programas'),
('C5: Índice de vinculación social', 'index', 'last','higher_is_better', 'Polarización/relación');
-- I
INSERT INTO kpi (name, unit, aggregation, direction, description) VALUES
(I1: Hora del ciclo de toma de decisiones, "hours," "last', 'lower_is_better', 'de un evento a una decisión')
(I2: Cubierta de pasaportes resistentes, %', 'last', 'higher_is_better', 'Dol de sistemas de pasaportes'),
(I3: Frecuencia de la auditoría de riesgos, 'per_year', 'last','higher_is_better', 'auditos/año'),
(I4: Duplicación de los centros de control, porcentaje, last', 'higher_is_better', 'Cubran los centros de reserva'),
(I5: Ejecución a tiempo, '%', 'last', 'higher_is_better', 'La proporción de tareas cumplidas a tiempo')
ON CONFLICT (name) DO NOTHING;
2.3 Conectores de KPI y 10 (KPIDEfinition)
Para que el MVP llegue a tiempo, hacemos que cada uno de los 25 KPI esté atado a todos los sistemas (es normal para el MVP y luego a los subsistemas). Peso dentro del contorno = 0.2 (5 KPI).
-- =========================================
-- SEED DATA - KPI DEFINITIONS (25 KPI x 10 systems)
-- =========================================
-- Helper: get contour_id by code
WITH contours AS (
SELECT contour_id, code FROM contour
),
systems AS (
SELECT system_id FROM critical_system WHERE status='active'
),
kpimap AS (
SELECT kpi_id, name FROM kpi
),
defs AS (
SELECT
s.system_id,
c.contour_id,
k.kpi_id,
-- targets/warn/critical per KPI name (MVP rough norms)
CASE
WHEN k.name LIKE 'W1:%' THEN 85
WHEN k.name LIKE 'W2:%' THEN 80
WHEN k.name LIKE 'W3:%' THEN 10
WHEN k.name LIKE 'W4:%' THEN 80
WHEN k.name LIKE 'W5:%' THEN 4
WHEN k.name LIKE 'T1:%' THEN 70
WHEN k.name LIKE 'T2:%' THEN 80
WHEN k.name LIKE 'T3:%' THEN 3
WHEN k.name LIKE "T4: %" THEN 100000 - Escala de condiciones, más tarde
WHEN k.name LIKE 'T5:%' THEN 12
WHEN k.name LIKE 'E1:%' THEN 75
WHEN k.name LIKE 'E2:%' THEN 99
WHEN k.name LIKE 'E3:%' THEN 90
WHEN k.name LIKE 'E4:%' THEN 180
WHEN k.name LIKE 'E5:%' THEN 95
WHEN k.name LIKE 'C1:%' THEN 75
WHEN k.name LIKE 'C2:%' THEN 6
WHEN k.name LIKE 'C3:%' THEN 60
WHEN k.name LIKE 'C4:%' THEN 50
WHEN k.name LIKE 'C5:%' THEN 70
WHEN k.name LIKE 'I1:%' THEN 12
WHEN k.name LIKE 'I2:%' THEN 100
WHEN k.name LIKE 'I3:%' THEN 4
WHEN k.name LIKE 'I4:%' THEN 80
WHEN k.name LIKE 'I5:%' THEN 90
ELSE NULL
END AS target_value,
CASE
WHEN k.name LIKE 'W3:%' THEN 20
WHEN k.name LIKE 'T5:%' THEN 18
WHEN k.name LIKE 'C2:%' THEN 12
WHEN k.name LIKE 'I1:%' THEN 24
ELSE NULL
END AS warning_value,
CASE
WHEN k.name LIKE 'W1:%' THEN 50
WHEN k.name LIKE 'W2:%' THEN 40
WHEN k.name LIKE 'W3:%' THEN 60
WHEN k.name LIKE 'W4:%' THEN 40
WHEN k.name LIKE 'W5:%' THEN 1
WHEN k.name LIKE 'T1:%' THEN 40
WHEN k.name LIKE 'T2:%' THEN 50
WHEN k.name LIKE 'T3:%' THEN 1
WHEN k.name LIKE 'T4:%' THEN 20000
WHEN k.name LIKE 'T5:%' THEN 36
WHEN k.name LIKE 'E1:%' THEN 50
WHEN k.name LIKE 'E2:%' THEN 90
WHEN k.name LIKE 'E3:%' THEN 70
WHEN k.name LIKE 'E4:%' THEN 30
WHEN k.name LIKE 'E5:%' THEN 80
WHEN k.name LIKE 'C1:%' THEN 45
WHEN k.name LIKE 'C2:%' THEN 48
WHEN k.name LIKE 'C3:%' THEN 30
WHEN k.name LIKE 'C4:%' THEN 20
WHEN k.name LIKE 'C5:%' THEN 40
WHEN k.name LIKE 'I1:%' THEN 72
WHEN k.name LIKE 'I2:%' THEN 60
WHEN k.name LIKE 'I3:%' THEN 1
WHEN k.name LIKE 'I4:%' THEN 40
WHEN k.name LIKE 'I5:%' THEN 60
ELSE NULL
END AS critical_value
FROM systems s
JOIN contours c ON TRUE
JOIN kpimap k ON (
(c.code='W' AND k.name LIKE 'W%:%') OR
(c.code='T' AND k.name LIKE 'T%:%') OR
(c.code='E' AND k.name LIKE 'E%:%') OR
(c.code='C' AND k.name LIKE 'C%:%') OR
(c.code='I' AND k.name LIKE 'I%:%')
)
)
INSERT INTO kpi_definition (
kpi_id, system_id, contour_id,
target_value, warning_value, critical_value,
weight_in_contour, source_type, owner_org
)
SELECT
d.kpi_id, d.system_id, d.contour_id,
d.target_value, d.warning_value, d.critical_value,
0.2,
'manual',
(SELECT org_id FROM org_unit WHERE name='Центр мониторинга СОЮЗ' LIMIT 1)
FROM defs d
ON CONFLICT DO NOTHING;
Importante: un KPI como «ingenieros graduados» requiere normalización según la población/el plan. En el MVP es solo demostrativo. En la versión de producción utilizamos «ingenieros por 100k» o «% de cumplimiento del plan».
2.4 Varias mediciones para que el Dashbord muestre SIU
-- =========================================
-- SEED DATA - MEASUREMENTS (latest values)
-- =========================================
-Vamos a medir "hoy" para todos los kpi_definition.
- Para mostrar: valores alrededor del target (con pequeñas variaciones).
INSERT INTO measurement (kpi_def_id, timestamp, value, quality_flag, source_ref)
SELECT
kd.kpi_def_id,
NOW(),
CASE
WHEN k.name LIKE 'W1:%' THEN 82
WHEN k.name LIKE 'W2:%' THEN 77
WHEN k.name LIKE 'W3:%' THEN 14
WHEN k.name LIKE 'W4:%' THEN 75
WHEN k.name LIKE 'W5:%' THEN 3
WHEN k.name LIKE 'T1:%' THEN 60
WHEN k.name LIKE 'T2:%' THEN 72
WHEN k.name LIKE 'T3:%' THEN 2.2
WHEN k.name LIKE 'T4:%' THEN 70000
WHEN k.name LIKE 'T5:%' THEN 16
WHEN k.name LIKE 'E1:%' THEN 70
WHEN k.name LIKE 'E2:%' THEN 98.5
WHEN k.name LIKE 'E3:%' THEN 88
WHEN k.name LIKE 'E4:%' THEN 120
WHEN k.name LIKE 'E5:%' THEN 93
WHEN k.name LIKE 'C1:%' THEN 68
WHEN k.name LIKE 'C2:%' THEN 10
WHEN k.name LIKE 'C3:%' THEN 45
WHEN k.name LIKE 'C4:%' THEN 38
WHEN k.name LIKE 'C5:%' THEN 62
WHEN k.name LIKE 'I1:%' THEN 18
WHEN k.name LIKE 'I2:%' THEN 70
WHEN k.name LIKE 'I3:%' THEN 2
WHEN k.name LIKE 'I4:%' THEN 55
WHEN k.name LIKE 'I5:%' THEN 84
ELSE NULL
END AS value,
'ok'::quality_flag,
'seed_mvp'
FROM kpi_definition kd
JOIN kpi k ON k.kpi_id = kd.kpi_id
WHERE (kd.effective_to IS NULL OR kd.effective_to >= CURRENT_DATE);
Cómo verificar que el cálculo funcione (ahora)
- 1) Ver KPI scores
SELECT contour_id, COUNT(*) cnt, ROUND(AVG(score_0_100),2) avg_score
FROM v_kpi_score_latest
GROUP BY contour_id
ORDER BY contour_id;
- 2) Contorno
SELECT * FROM v_contour_score_current ORDER BY contour_code;
-- 3) SIU
SELECT * FROM v_siu_score_current;
-- =========================================
-- DASHBOARD PACK (single query views)
-- SIU + contour tiles + top risks + top deps + active incidents
-- =========================================
-- 1) Latest SIU (from materialized if exists, else from view)
CREATE OR REPLACE VIEW v_dashboard_siu_latest AS
SELECT *
FROM v_siu_score_current;
-- 2) Contour tiles
CREATE OR REPLACE VIEW v_dashboard_contours AS
SELECT
contour_id,
contour_code,
score_0_100,
missing_cnt,
null_scores_cnt
FROM v_contour_score_current
ORDER BY contour_code;
-- 3) Top risks (by risk_score)
CREATE OR REPLACE VIEW v_dashboard_top_risks AS
SELECT
risk_id,
name,
type,
probability,
impact,
risk_score,
status,
last_reviewed_at
FROM risk_register
WHERE status IN ('open','mitigating')
ORDER BY risk_score DESC, last_reviewed_at NULLS LAST
LIMIT 5;
-- 4) Top dependencies (critical first, then high; shortest due date first)
CREATE OR REPLACE VIEW v_dashboard_top_dependencies AS
SELECT
dep_id,
item_name,
item_type,
system_id,
import_share_pct,
substitution_due_months,
reserve_coverage_months,
risk_level,
updated_at
FROM dependency_item
WHERE risk_level IN ('critical','high')
ORDER BY
CASE risk_level WHEN 'critical' THEN 0 ELSE 1 END,
substitution_due_months NULLS LAST,
reserve_coverage_months NULLS FIRST,
updated_at DESC
LIMIT 5;
-- 5) Active incidents (open/contained)
CREATE OR REPLACE VIEW v_dashboard_active_incidents AS
SELECT
i.incident_id,
i.system_id,
cs.name AS system_name,
i.incident_type,
i.severity,
i.started_at,
i.status,
i.summary
FROM incident i
JOIN critical_system cs ON cs.system_id = i.system_id
WHERE i.status IN ('open','contained')
ORDER BY i.severity DESC, i.started_at DESC
LIMIT 10;
-- 6) Single "dashboard pack" view as JSON (handy for API)
CREATE OR REPLACE VIEW v_dashboard_pack_json AS
SELECT jsonb_build_object(
'siu', (SELECT to_jsonb(s) FROM v_dashboard_siu_latest s),
'contours', (SELECT jsonb_agg(to_jsonb(c) ORDER BY c.contour_code) FROM v_dashboard_contours c),
'top_risks', (SELECT jsonb_agg(to_jsonb(r)) FROM v_dashboard_top_risks r),
'top_dependencies', (SELECT jsonb_agg(to_jsonb(d)) FROM v_dashboard_top_dependencies d),
'active_incidents', (SELECT jsonb_agg(to_jsonb(a)) FROM v_dashboard_active_incidents a)
) AS dashboard;
-- =========================================
-- OPTIONAL: ROLLUPS (weekly/monthly) for fast charts
-- Uses measurements to compute contour scores by period.
-- =========================================
-- Helper: choose period bucket. For weekly: date_trunc('week', ts), monthly: date_trunc('month', ts)
-- 1) KPI score per period (latest measurement within period)
CREATE OR REPLACE VIEW v_kpi_latest_by_week AS
WITH m2 AS (
SELECT
m.kpi_def_id,
date_trunc('week', m.timestamp)::date AS period_start,
(date_trunc('week', m.timestamp) + INTERVAL '6 days')::date AS period_end,
m.timestamp,
m.value,
m.quality_flag,
ROW_NUMBER() OVER (
PARTITION BY m.kpi_def_id, date_trunc('week', m.timestamp)
ORDER BY m.timestamp DESC
) AS rn
FROM measurement m
)
SELECT
kd.kpi_def_id,
kd.kpi_id,
kd.system_id,
kd.subsystem_id,
kd.contour_id,
kd.target_value,
kd.warning_value,
kd.critical_value,
kd.weight_in_contour,
k.direction,
m2.period_start,
m2.period_end,
m2.timestamp,
m2.value,
m2.quality_flag
FROM m2
JOIN kpi_definition kd ON kd.kpi_def_id = m2.kpi_def_id
JOIN kpi k ON k.kpi_id = kd.kpi_id
WHERE m2.rn = 1;
-- Score weekly
CREATE OR REPLACE VIEW v_kpi_score_by_week AS
SELECT
v.*,
CASE
WHEN v.quality_flag = 'missing' THEN 0
WHEN v.direction = 'higher_is_better' THEN
CASE
WHEN v.target_value IS NULL OR v.critical_value IS NULL THEN NULL
WHEN v.value >= v.target_value THEN 100
WHEN v.value <= v.critical_value THEN 0
ELSE ROUND( ( (v.value - v.critical_value) / NULLIF((v.target_value - v.critical_value),0) ) * 100, 2)
END
WHEN v.direction = 'lower_is_better' THEN
CASE
WHEN v.target_value IS NULL OR v.critical_value IS NULL THEN NULL
WHEN v.value <= v.target_value THEN 100
WHEN v.value >= v.critical_value THEN 0
ELSE ROUND( ( (v.critical_value - v.value) / NULLIF((v.critical_value - v.target_value),0) ) * 100, 2)
END
ELSE NULL
END AS score_0_100
FROM v_kpi_latest_by_week v;
-- 2) Contour score by week (across all systems, MVP global)
CREATE OR REPLACE VIEW v_contour_score_by_week AS
SELECT
c.contour_id,
c.code AS contour_code,
ks.period_start,
ks.period_end,
ROUND(
SUM(ks.score_0_100 * kd.weight_in_contour) / NULLIF(SUM(kd.weight_in_contour),0),
2
) AS score_0_100,
SUM(CASE WHEN ks.score_0_100 IS NULL THEN 1 ELSE 0 END) AS null_scores_cnt,
SUM(CASE WHEN ks.quality_flag = 'missing' THEN 1 ELSE 0 END) AS missing_cnt
FROM contour c
JOIN kpi_definition kd ON kd.contour_id = c.contour_id
JOIN v_kpi_score_by_week ks ON ks.kpi_def_id = kd.kpi_def_id
GROUP BY c.contour_id, c.code, ks.period_start, ks.period_end;
-- 3) SIU by week
CREATE OR REPLACE VIEW v_siu_by_week AS
WITH cs AS (
SELECT period_start, period_end, contour_code, score_0_100, missing_cnt
FROM v_contour_score_by_week
),
pivot AS (
SELECT
period_start,
period_end,
MAX(CASE WHEN contour_code='W' THEN score_0_100 END) AS w_score,
MAX(CASE WHEN contour_code='T' THEN score_0_100 END) AS t_score,
MAX(CASE WHEN contour_code='E' THEN score_0_100 END) AS e_score,
MAX(CASE WHEN contour_code='C' THEN score_0_100 END) AS c_score,
MAX(CASE WHEN contour_code='I' THEN score_0_100 END) AS i_score,
SUM(missing_cnt) AS total_missing
FROM cs
GROUP BY period_start, period_end
)
SELECT
period_start,
period_end,
w_score, t_score, e_score, c_score, i_score,
ROUND(
POWER(
NULLIF(w_score,0) * NULLIF(t_score,0) * NULLIF(e_score,0) * NULLIF(c_score,0) * NULLIF(i_score,0),
1.0/5.0
),
2
) AS siu_base,
GREATEST(
ROUND(
POWER(
NULLIF(w_score,0) * NULLIF(t_score,0) * NULLIF(e_score,0) * NULLIF(c_score,0) * NULLIF(i_score,0),
1.0/5.0
) - LEAST(total_missing * 0.5, 15),
2
),
0
) AS siu_0_100
FROM pivot
ORDER BY period_end DESC;
If you want the MVP to feel “alive” immediately, run this quick seed for risks/dependencies/incidents too:
-- =========================================
-- Optional seed: risks, dependencies, incident
-- =========================================
INSERT INTO risk_register (name, type, description, probability, impact, owner_org, status, last_reviewed_at)
VALUES
(" Bloqueo técnico de los componentes críticos " , " tech " , " Control de suministros/equipo " , "5','5',
(SELECT org_id FROM org_unit WHERE name='Центр мониторинга СОЮЗ'), 'open', NOW()),
(" Kiberatake a Criterinfraestructura " , " Cyber " , " Atacos a la energía/comunicaciones/logística " , "5','4',
(SELECT org_id FROM org_unit WHERE name='Cibercentro'), 'open', NOW
(" Logistics " , " Descarrilamiento de rutas/superficies "4','4',
(SELECT org_id FROM org_unit WHERE name='Logistical'), 'mitigating', NOW
ON CONFLICT DO NOTHING;
INSERT INTO dependency_item (system_id, item_name, item_type, current_source, import_share_pct,
substitution_plan, substitution_due_months, reserve_coverage_months,
risk_level, owner_org)
VALUES
(SELECT system_id FROM critical_system WHERE name= 'Comunicación y control'),
"Patata crítica," "component," "foreign," 85,
" Desarrollo de un equivalente nacional + producción por contrato " , 24,6, 'critical',
(SELECT org_id FROM org_unit WHERE name='Центр мониторинга СОЮЗ')),
(SELECT system_id FROM critical_system WHERE name= 'Sistema financiero'),
Componentes HSM, Component, Mixed, 40,
" Localización de la producción y certificación " , 18,9, 'high,
(SELECT org_id FROM org_unit WHERE name='Cibercent')
ON CONFLICT DO NOTHING;
INSERT INTO incident (system_id, incident_type, severity, started_at, status, summary, created_by_role)
VALUES
(SELECT system_id FROM critical_system WHERE name='Energosystem'),
'outage',4,NOW - INTERVAL '3 hours', 'contained', 'una falla local en el centro de control',
(SELECT role_id FROM user_role WHERE name='operational'))
ON CONFLICT DO NOTHING;
Use this one-liner to fetch the whole dashboard payload: