SIGRID_CNT_001 - Sistema de Información de Gestión de Riesgos y Desastres (SIGRID) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. needuml:: :scale: 50 {%- macro node(id, slim=False) -%} "{{needs[id].title}}", {% if not slim %}"{{ needs[id].content.split('\n') | first }}", {% endif %}$link="{{ref(id) | replace('[', '') | replace(']', '')}}" {%- endmacro -%} @startuml scale 0.7 !include !include title Diagrama de Contenedores - Sistema de Información de Gestión de Riesgos y Desastres (SIGRID) System_Ext(SYSGROUP, {{ node('ITRENDCL-SIGRID-SYS-SYSGROUP') }}) System(SIGRIDCLIENTS, {{ node('ITRENDCL-SIGRID-SYS-SIGRIDCLIENTS') }}) Boundary(EXTERNAL_AUTH, "Sistemas de autenticación externos") { System_Ext(OAUTH_SENAPRED, {{ node('ITRENDCL-SIGRID-SYS-OAUTH_SENAPRED') }}) System_Ext(OAUTH_BOMBEROS, {{ node('ITRENDCL-SIGRID-SYS-OTMA') }}) System_Ext(OAUTH_SERNAGEOMIN, {{ node('ITRENDCL-SIGRID-SYS-OAUTH_ORG_PUBLICO') }}) } System_Boundary(SIGRID, {{ node('ITRENDCL-SIGRID-SYS-SIGRID', slim=True) }}) { Container_Boundary(DOM_GOB, {{ node('ITRENDCL-SIGRID-DOM-GOB', slim=True) }}) { Container(SRV_GOB_DQ, {{ node('ITRENDCL-SIGRID-SRV-GOB-DQ') }}) Container(SRV_GOB_LC, {{ node('ITRENDCL-SIGRID-SRV-GOB-LC') }}) Container(SRV_GOB_PM, {{ node('ITRENDCL-SIGRID-SRV-GOB-LC') }}) ContainerDb(DB_GOB, {{ node('ITRENDCL-SIGRID-DB-GOB') }}) } Container_Boundary(DOM_EC, {{ node('ITRENDCL-SIGRID-DOM-EC', slim=True) }}) { Container(SRV_EC_API, {{ node('ITRENDCL-SIGRID-SRV-EC-API') }}) } Container_Boundary(DOM_UM, {{ node('ITRENDCL-SIGRID-DOM-UM', slim=True) }}) { Container(SRV_UM_IDENT, {{ node('ITRENDCL-SIGRID-SRV-UM-IDENT') }}) Container(SRV_UM_PERM, {{ node('ITRENDCL-SIGRID-SRV-UM-PERM') }}) } Container_Boundary(DOM_INT, {{ node('ITRENDCL-SIGRID-DOM-INT', slim=True) }}) { ContainerQueue(SRV_INT_INGESTQUEUE, {{ node('ITRENDCL-SIGRID-SRV-INT-INGESTQUEUE') }}) Container(SRV_INT_DISPATCH, {{ node('ITRENDCL-SIGRID-SRV-INT-DISPATCH') }}) Container(SRV_INT_PIPELINE, {{ node('ITRENDCL-SIGRID-SRV-INT-PIPELINE') }}) Container(SRV_INT_CONV, {{ node('ITRENDCL-SIGRID-SRV-INT-CONV') }}) Container(SRV_INT_PUB, {{ node('ITRENDCL-SIGRID-SRV-INT-PUB') }}) ContainerQueue(SRV_INT_PUBQUEUE, {{ node('ITRENDCL-SIGRID-SRV-INT-PUBQUEUE') }}) } Container_Boundary(DOM_EMG, {{ node('ITRENDCL-SIGRID-DOM-EMG', slim=True) }}) { Container(SRV_EMG_ORCH, {{ node('ITRENDCL-SIGRID-SRV-EMG-ORCH') }}) Container(SRV_EMG_DOCFMT, {{ node('ITRENDCL-SIGRID-SRV-EMG-DOCFMT') }}) Boundary(DOM_EMG_APPS, "") { Container(SRV_EMG_INFNET, {{ node('ITRENDCL-SIGRID-SRV-EMG-INFNET') }}) Container(SRV_EMG_INFPEOPLE, {{ node('ITRENDCL-SIGRID-SRV-EMG-INFPEOPLE') }}) Container(SRV_EMG_INFHISTORY, {{ node('ITRENDCL-SIGRID-SRV-EMG-INFHISTORY') }}) Container(SRV_EMG_KNOWLEDGE, {{ node('ITRENDCL-SIGRID-SRV-EMG-KNOWLEDGE') }}) Container(SRV_EMG_RESOURCES, {{ node('ITRENDCL-SIGRID-SRV-EMG-RESOURCES') }}) Container(SRV_EMG_MONITOR, {{ node('ITRENDCL-SIGRID-SRV-EMG-MONITOR') }}) } Container(SRV_EMG_SEARCH, {{ node('ITRENDCL-SIGRID-SRV-EMG-SEARCH') }}) ContainerDb(DB_EMG, {{ node('ITRENDCL-SIGRID-DB-EMG') }}) ContainerDb(DB_EMG_FS, {{ node('ITRENDCL-SIGRID-DB-EMG-FS') }}) } Container_Boundary(DOM_GIS, {{ node('ITRENDCL-SIGRID-DOM-GIS', slim=True) }}) { Container(SRV_GIS_BOUNDS, {{ node('ITRENDCL-SIGRID-SRV-GIS-BOUNDS') }}) Container(SRV_GIS_WEBMAPS, {{ node('ITRENDCL-SIGRID-SRV-GIS-WEBMAPS') }}) Container(SRV_GIS_INGEST, {{ node('ITRENDCL-SIGRID-SRV-GIS-INGEST') }}) ContainerDb(DB_GIS, {{ node('ITRENDCL-SIGRID-DB-GIS') }}) } Container_Boundary(DOM_ANALYSIS, {{ node('ITRENDCL-SIGRID-DOM-ANALYSIS', slim=True) }}) { Container(SRV_ANALYSIS_INGEST, {{ node('ITRENDCL-SIGRID-SRV-ANALYSIS-INGEST') }}) Container(SRV_ANALYSIS_ETL, {{ node('ITRENDCL-SIGRID-SRV-ANALYSIS-ETL') }}) Container(SRV_ANALYSIS_RESOURCES, {{ node('ITRENDCL-SIGRID-SRV-ANALYSIS-RESOURCES') }}) Container(SRV_ANALYSIS_STATS, {{ node('ITRENDCL-SIGRID-SRV-ANALYSIS-STATS') }}) Container(SRV_ANALYSIS_OTHER, {{ node('ITRENDCL-SIGRID-SRV-ANALYSIS-OTHER') }}) ContainerDb(DB_ANALYSIS, {{ node('ITRENDCL-SIGRID-DB-ANALYSIS') }}) } Container_Boundary(DOM_ALERT, {{ node('ITRENDCL-SIGRID-DOM-ALERT', slim=True) }}) { Container(SRV_ALERT_CAP, {{ node('ITRENDCL-SIGRID-SRV-ALERT-CAP') }}) Container(SRV_ALERT_SIREN, {{ node('ITRENDCL-SIGRID-SRV-ALERT-SIREN') }}) Container(SRV_ALERT_SAE, {{ node('ITRENDCL-SIGRID-SRV-ALERT-SAE') }}) } Container_Boundary(DOM_NOTIFY, {{ node('ITRENDCL-SIGRID-DOM-NOTIFY', slim=True) }}) { Container(SRV_NOTIFY_ORCH, {{ node('ITRENDCL-SIGRID-SRV-NOTIFY-ORCH') }}) Container(SRV_NOTIFY_CHANNELS, {{ node('ITRENDCL-SIGRID-SRV-NOTIFY-CHANNELS') }}) Container(SRV_NOTIFY_SUBS, {{ node('ITRENDCL-SIGRID-SRV-NOTIFY-SUBS') }}) ContainerDb(DB_NOTIFY, {{ node('ITRENDCL-SIGRID-DB-NOTIFY') }}) } Container_Boundary(DOM_COM, {{ node('ITRENDCL-SIGRID-DOM-COM', slim=True) }}) { ContainerDb(DB_COM_BROKER, {{ node('ITRENDCL-SIGRID-DB-COM-BROKER') }}) } Container_Boundary(DOM_ENCRYPT, {{ node('ITRENDCL-SIGRID-DOM-ENCRYPT', slim=True) }}) { Container(SRV_ENCRYPT_KMS, {{ node('ITRENDCL-SIGRID-SRV-ENCRYPT-KMS') }}) Container(SRV_ENCRYPT_CHK, {{ node('ITRENDCL-SIGRID-SRV-ENCRYPT-CHK') }}) } Container_Boundary(DOM_INTERNAL, {{ node('ITRENDCL-SIGRID-DOM-INTERNAL', slim=True) }}) { Container(SRV_INTERNAL_ORCH, {{ node('ITRENDCL-SIGRID-SRV-INTERNAL-ORCH') }}) ContainerDb(DB_INTERNAL, {{ node('ITRENDCL-SIGRID-DB-INTERNAL') }}) ContainerDb(DB_INTERNAL_FS, {{ node('ITRENDCL-SIGRID-DB-INTERNAL-FS') }}) } Container_Boundary(DOM_PLANS, {{ node('ITRENDCL-SIGRID-DOM-PLANS', slim=True) }}) { Container(SRV_PLANS_COMPLIANCE, {{ node('ITRENDCL-SIGRID-SRV-PLANS-COMPLIANCE') }}) Container(SRV_PLANS_ORCH, {{ node('ITRENDCL-SIGRID-SRV-PLANS-ORCH') }}) ContainerDb(DB_PLANS, {{ node('ITRENDCL-SIGRID-DB-PLANS') }}) ContainerDb(DB_PLANS_FS, {{ node('ITRENDCL-SIGRID-DB-PLANS-FS') }}) } Container_Boundary(DOM_NODES, {{ node('ITRENDCL-SIGRID-DOM-NODES', slim=True) }}) { Container(SRV_NODES_HEALTHCHECK, {{ node('ITRENDCL-SIGRID-SRV-NODES-HEALTHCHECK') }}) Container(SRV_NODES_ORCH, {{ node('ITRENDCL-SIGRID-SRV-NODES-ORCH') }}) Container(DB_NODES, {{ node('ITRENDCL-SIGRID-DB-NODES') }}) } Container_Boundary(DOM_BOOT, {{ node('ITRENDCL-SIGRID-DOM-BOOT', slim=True) }}) { Container(SRV_BOOT_BACKUPS, {{ node('ITRENDCL-SIGRID-SRV-BOOT-BACKUPS') }}) Container(SRV_BOOT_BOOT, {{ node('ITRENDCL-SIGRID-SRV-BOOT-BOOT') }}) Container(SRV_BOOT_SNAPSHOT, {{ node('ITRENDCL-SIGRID-SRV-BOOT-SNAPSHOT') }}) ContainerDb(DB_BOOT, {{ node('ITRENDCL-SIGRID-DB-BOOT') }}) } Container_Boundary(DOM_AUDIT, {{ node('ITRENDCL-SIGRID-DOM-AUDIT', slim=True) }}) { Container(SRV_AUDIT_PROC, {{ node('ITRENDCL-SIGRID-SRV-AUDIT-PROC') }}) ContainerDb(DB_AUDIT_TRACE, {{ node('ITRENDCL-SIGRID-DB-AUDIT-TRACE') }}) ContainerDb(DB_AUDIT_ACCESS, {{ node('ITRENDCL-SIGRID-DB-AUDIT-ACCESS') }}) ContainerDb(DB_AUDIT_EVENTS, {{ node('ITRENDCL-SIGRID-DB-AUDIT-EVENTS') }}) } Container_Boundary(DOM_INTELLIGENCE, {{ node('ITRENDCL-SIGRID-DOM-INTELLIGENCE', slim=True) }}) { ContainerDb(DB_INTELLIGENCE_RAG, {{ node('ITRENDCL-SIGRID-DB-INTELLIGENCE') }}) Container(SRV_INTELLIGENCE_RAG, {{ node('ITRENDCL-SIGRID-SRV-INTELLIGENCE-RAG') }}) } System_Ext(GOOGLE_CAP, {{ node('ITRENDCL-SIGRID-SYS-GOOGLE_CAP') }}) System_Ext(EMAIL, {{ node('ITRENDCL-SIGRID-SYS-EMAIL') }}) System_Ext(PUSH, {{ node('ITRENDCL-SIGRID-SYS-PUSH') }}) System_Ext(SIGRIDNODE, {{ node('ITRENDCL-SIGRID-SYS-SIGRIDNODE') }}) Rel(SRV_GOB_DQ, DB_GOB, "consulta/guarda") Rel(SRV_GOB_LC, DB_GOB, "consulta/guarda") Rel(SRV_GOB_PM, DB_GOB, "consulta/guarda") Rel(SIGRIDCLIENTS, SRV_EC_API, "usa", "API") Rel(SIGRIDCLIENTS, SRV_UM_IDENT, "usa", "API") Rel(SYSGROUP, SRV_EC_API, "usa", "API") Rel(SRV_EC_API, DOM_GOB, "usa", "API") Rel(SRV_EC_API, SRV_EMG_ORCH, "expone", "API") Rel(SRV_EC_API, SRV_EMG_SEARCH, "expone", "API") Rel(SRV_EC_API, SRV_GIS_BOUNDS, "expone", "API") Rel(SRV_EC_API, SRV_ANALYSIS_INGEST, "expone", "API") Rel(SRV_EC_API, DOM_ALERT, "expone", "API") Rel(SRV_EC_API, SRV_PLANS_ORCH, "expone", "API") Rel(SRV_UM_IDENT, EXTERNAL_AUTH, "federa identidades", "API") Rel(SRV_UM_IDENT, SRV_UM_PERM, "usa", "API") Rel(SYSGROUP, SRV_INT_INGESTQUEUE, "informa", "API") Rel(SRV_INT_INGESTQUEUE, SRV_INT_PIPELINE, "gatilla", "API") Rel(SRV_INT_PIPELINE, DOM_GOB, "usa", "API") Rel(SRV_INT_PIPELINE, SRV_INT_PUB, "gatilla", "API") Rel(SRV_INT_PUB, DB_COM_BROKER, "publica") Rel(SRV_INT_PUBQUEUE, SRV_INT_CONV, "gatilla", "API") Rel(SRV_INT_PUBQUEUE, DB_COM_BROKER, "consume") Rel(SRV_INT_CONV, DOM_GOB, "usa", "API") Rel(SRV_INT_CONV, SRV_INT_DISPATCH, "gatilla", "API") Rel(SRV_INT_DISPATCH, SYSGROUP, "informa", "API") Rel(SRV_EMG_ORCH, SRV_EMG_INFNET, "expone", "API") Rel(SRV_EMG_ORCH, SRV_EMG_INFPEOPLE, "expone", "API") Rel(SRV_EMG_ORCH, SRV_EMG_INFHISTORY, "expone", "API") Rel(SRV_EMG_ORCH, SRV_EMG_KNOWLEDGE, "expone", "API") Rel(SRV_EMG_ORCH, SRV_EMG_RESOURCES, "expone", "API") Rel(SRV_EMG_ORCH, SRV_EMG_MONITOR, "expone", "API") Rel(SRV_EMG_ORCH, DB_COM_BROKER, "publica") Rel(DOM_EMG_APPS, SRV_EMG_DOCFMT, "usa", "API") Rel(DOM_EMG_APPS, DB_EMG, "consulta/guarda") Rel(DOM_EMG_APPS, DB_EMG_FS, "consulta/guarda") Rel(SRV_GIS_BOUNDS, DB_GIS, "consulta/guarda") Rel(SRV_GIS_WEBMAPS, DB_GIS, "consulta/guarda") Rel(SRV_GIS_WEBMAPS, DB_COM_BROKER, "consume") Rel(SRV_GIS_INGEST, DB_GIS, "consulta/guarda") Rel(SRV_GIS_INGEST, DB_COM_BROKER, "consume") Rel(SRV_ANALYSIS_INGEST, SRV_ANALYSIS_ETL, "gatilla", "API") Rel(SRV_ANALYSIS_INGEST, DB_COM_BROKER, "consume") Rel(SRV_ANALYSIS_ETL, DB_ANALYSIS, "guarda") Rel(DB_ANALYSIS, SRV_ANALYSIS_RESOURCES, "gatilla", "API") Rel(DB_ANALYSIS, SRV_ANALYSIS_STATS, "gatilla", "API") Rel(DB_ANALYSIS, SRV_ANALYSIS_OTHER, "gatilla", "API") Rel(SRV_ALERT_CAP, GOOGLE_CAP, "usa", "API") Rel(DOM_ALERT, DB_COM_BROKER, "consume") Rel(SRV_NOTIFY_ORCH, SRV_NOTIFY_CHANNELS, "usa", "API") Rel(SRV_NOTIFY_ORCH, SRV_NOTIFY_SUBS, "usa", "API") Rel(SRV_NOTIFY_ORCH, DB_NOTIFY, "guarda") Rel(SRV_NOTIFY_ORCH, DB_COM_BROKER, "consume") Rel(SRV_NOTIFY_ORCH, EMAIL, "usa", "API") Rel(SRV_NOTIFY_ORCH, PUSH, "usa", "API") Rel(SYSGROUP, SRV_ENCRYPT_KMS, "usa", "API") Rel(SRV_INT_PUB, SRV_ENCRYPT_KMS, "usa", "API") Rel(SRV_INT_PUB, SRV_ENCRYPT_CHK, "usa", "API") Rel(SRV_INT_PUBQUEUE, SRV_ENCRYPT_KMS, "usa", "API") Rel(SRV_INT_PUBQUEUE, SRV_ENCRYPT_CHK, "usa", "API") Rel(SRV_INTERNAL_ORCH, DB_INTERNAL, "consulta/guarda") Rel(SRV_INTERNAL_ORCH, DB_INTERNAL_FS, "consulta/guarda") Rel(SRV_INTERNAL_ORCH, DB_COM_BROKER, "publica/consume") Rel(SRV_PLANS_COMPLIANCE, DB_PLANS, "consulta/guarda") Rel(SRV_PLANS_COMPLIANCE, DB_PLANS_FS, "consulta/guarda") Rel(SRV_PLANS_ORCH, DB_PLANS, "consulta/guarda") Rel(SRV_PLANS_ORCH, DB_PLANS_FS, "consulta/guarda") Rel(SRV_PLANS_ORCH, DB_COM_BROKER, "publica/consume") Rel(SRV_NODES_ORCH, SRV_NODES_HEALTHCHECK, "usa", "API") Rel(SRV_NODES_ORCH, DB_NODES, "consulta/guarda") Rel(SRV_NODES_ORCH, SRV_BOOT_BOOT, "gatilla") Rel(SRV_NODES_HEALTHCHECK, SIGRIDNODE, "consulta") Rel(SRV_BOOT_BACKUPS, DB_BOOT, "guarda") Rel(SRV_BOOT_BOOT, DB_BOOT, "consulta") Rel(SRV_BOOT_SNAPSHOT, DB_BOOT, "consulta/guarda") Rel(SRV_AUDIT_PROC, DB_AUDIT_TRACE, "guarda") Rel(SRV_AUDIT_PROC, DB_AUDIT_ACCESS, "guarda") Rel(SRV_AUDIT_PROC, DB_AUDIT_EVENTS, "guarda") Rel(DOM_AUDIT, SIGRID, "monitorea") Rel(SRV_INTELLIGENCE_RAG, DB_INTELLIGENCE_RAG, "consulta/guarda") Rel(SRV_INTELLIGENCE_RAG, DOM_GOB, "usa", "API") Rel(SRV_INTELLIGENCE_RAG, DOM_EC, "usa", "API") Rel(SRV_INTELLIGENCE_RAG, DOM_EMG, "usa", "API") Rel(SRV_INTELLIGENCE_RAG, DOM_GIS, "usa", "API") Rel(SRV_INTELLIGENCE_RAG, DOM_ANALYSIS, "usa", "API") Rel(SRV_INTELLIGENCE_RAG, DOM_ALERT, "usa", "API") SHOW_LEGEND() @enduml