P04: COGRID ~~~~~~~~~~~ .. 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 - P04: COGRID (SIGRID) System(SIGRIDCLIENTS, {{ node('ITRENDCL-SIGRID-SYS-SIGRIDCLIENTS') }}) System_Ext(SYSGROUP, {{ node('ITRENDCL-SIGRID-SYS-SYSGROUP') }}) 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') }}) } Boundary(GIS_SYSTEMS, "Sistemas GIS Externos") { System_Ext(VISOR_CHILE, {{ node('ITRENDCL-SIGRID-SYS-ARC_GIS_ONLINE') }}) System_Ext(VISORGRD, {{ node('ITRENDCL-SIGRID-SYS-ARC_GIS_PLATFORM') }}) System_Ext(GEOMOP, {{ node('ITRENDCL-SIGRID-SYS-GEOMOP') }}) System_Ext(PORTAL_GEOMIN, {{ node('ITRENDCL-SIGRID-SYS-PORTAL_GEOMIN') }}) } Boundary(MONITORING_SYSTEMS, "Sistemas de Monitoreo") { System_Ext(DMC, {{ node('ITRENDCL-SIGRID-SYS-DMC') }}) System_Ext(DGA, {{ node('ITRENDCL-SIGRID-SYS-DGA') }}) System_Ext(CSN, {{ node('ITRENDCL-SIGRID-SYS-CSN') }}) System_Ext(SERNAGEOMIN, {{ node('ITRENDCL-SIGRID-SYS-SERNAGEOMIN') }}) System_Ext(SIDCO, {{ node('ITRENDCL-SIGRID-SYS-SIDCO') }}) } 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_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_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_COM, {{ node('ITRENDCL-SIGRID-DOM-COM', slim=True) }}) { ContainerDb(DB_COM_BROKER, {{ node('ITRENDCL-SIGRID-DB-COM-BROKER') }}) } } Rel(SIGRIDCLIENTS, SRV_EC_API, "usa", "API") Rel(SIGRIDCLIENTS, SRV_UM_IDENT, "usa", "API") Rel(SRV_EC_API, SRV_GIS_BOUNDS, "expone", "API") Rel(SRV_EC_API, SRV_ANALYSIS_INGEST, "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, 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, SRV_INT_DISPATCH, "gatilla", "API") Rel(SRV_INT_DISPATCH, SYSGROUP, "informa", "API") Rel(SRV_GIS_WEBMAPS, VISOR_CHILE, "integra con", "API") Rel(SRV_GIS_WEBMAPS, VISORGRD, "integra con", "API") Rel(SRV_GIS_INGEST, GIS_SYSTEMS, "obtiene datos de", "API") 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, MONITORING_SYSTEMS, "obtiene datos de", "API") Rel(SRV_ANALYSIS_INGEST, DMC, "obtiene datos meteorológicos", "API") Rel(SRV_ANALYSIS_INGEST, DGA, "obtiene datos hidrológicos", "API") Rel(SRV_ANALYSIS_INGEST, CSN, "obtiene datos sísmicos", "API") Rel(SRV_ANALYSIS_INGEST, SERNAGEOMIN, "obtiene datos geológicos", "API") Rel(SRV_ANALYSIS_INGEST, SIDCO, "obtiene datos de incendios", "API") 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_GOB_DQ, DB_GOB, "consulta/guarda") Rel(SRV_GOB_LC, DB_GOB, "consulta/guarda") Rel(SRV_GOB_PM, DB_GOB, "consulta/guarda") SHOW_LEGEND() @enduml