Skip to main content
Version: 8.0.0

Componentes

Externos

ELK

Elasticsearch

Componente que forma parte del stack de ELK, sirve para almacenar logs generados por los componentes Spring, Gateway y .NET Core.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/elk/docker-compose.yml
  • Imagen docker base: docker.elastic.co/elasticsearch/elasticsearch:8.17.4
  • Puertos expuestos: 9200

APM

Componente que forma parte del stack de ELK, sirve para monitorear el rendimiento de los componentes Gateway y .NET Core, estos envían información sobre los endpoints consumidos, uso de cpu y uso de memoria ram. EL APM centraliza todas esta información y se la puede explorar mediante el componente Kibana.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/elk/docker-compose.yml
  • Imagen docker base: docker.elastic.co/apm/apm-server:8.17.4
  • Puertos expuestos: 8300

Kibana

Componente que forma parte del stack de ELK, sirve como visualizador de la información del componente APM y de los logs almacenados por el componente elasticsearch.

Se puede acceder mediante el proxy desplegado en el servidor de administración y las credenciales de acceso son generadas de forma aleatoria durante el proceso de instalación, en el punto: Configuración de ELK, los valores están disponibles en el archivo defaults/local_vars.yml en el directorio ansible del servidor de administración:

Ejemplo:

  elastic:
username: elastic
password: brdR1ByJbYHrx5uLg2Bm

component_kibana

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/elk/docker-compose.yml
  • Imagen docker base: docker.elastic.co/kibana/kibana:8.17.4
  • Puertos expuestos: ninguno

Vault

Componente usado para el almacenamiento de configuración confidencial, usuarios, passwords, api keys, etc, y para procesos de encriptación de datos, passwords, preguntas de seguridad y códigos de autorización.

Este componente se despliega en modo cluster donde el servidor de administración y todos los servidores de aplicaciones son nodos. La cantidad mínima de nodos para formar un cluster es de tres, con esto tenemos una Alta Disponibilidad, con esta configuración se puede tolerar la falla de uno de los nodos y aun mantener el quorum necesario para que el cluster siga operativo.

component_vault

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración y servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/vault/docker-compose.yml
  • Imagen docker base: hashicorp/vault:1.19.1
  • Puertos expuestos: 8200,8201

Unseal keys y key threshold

Los unseal keys son un conjunto de llaves utilizadas para desellar vault después de que se haya iniciado o reiniciado. Vault emplea un método de seguridad llamado "Shamir's Secret Sharing" para dividir la llave maestra de desencriptación en varias partes (unseal keys), de este conjunto de llaves, se necesita un numero mínimo para hacer el desellado de vault (key threshold), ambos valores son definidos durante el proceso de instalación, en el punto: Configuración de Vault.

Los unseal keys generados se encuentran disponibles en el archivo defaults/vault_init.yml en el directorio ansible del servidor de administración.

Ejemplo:

unseal_keys:
- dd00094696d0043a1a5f61eddb0608fa329a09f5bc763ecfcc4bb45b8cd5898eb0
- 57b91ad8aa89b3f8d67af2587277afbaba56ec38651e3536b6090cca6be2338143
- 857b37dea42dde986693211f6b1cc7ac3433b599514cbf15f7e0e688aadaf15e1c
- f2ffb9c915796d58866b185d8372a36b106b25fb39d057cd866e07734d2a5714f2
- 1ddaceaed68989446127e0fcc723d0e15d479f684df8f5cbc96a480eafc0bd4cca
Aviso

Durante el proceso de instalación, el archivo defaults/vault_init.yml existe en el directorio ansible del servidor de administración. Sin embargo según la recomendación del punto: Configuración de Vault:

Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.

El archivo ya no debería existir en el servidor de administración por lo tanto el banco es el custodio de los unseal keys.

Token root

El token root es un token para acceder a vault cuando ya esta desellado, este token tiene permisos para hacer cualquier operación dentro de vault, crear, editar, eliminar, etc. Su valor es generado durante el proceso de instalación, en el punto: Configuración de Vault.

El token root generado se encuentra disponible en el archivo defaults/vault_init.yml en el directorio ansible del servidor de administración.

Ejemplo:

root_token: hvs.xr1QX3v6X9r4eAJoRZElh1Of
Aviso

Durante el proceso de instalación, el archivo defaults/vault_init.yml existe en el directorio ansible del servidor de administración. Sin embargo según la recomendación del punto: Configuración de Vault:

Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.

El archivo ya no debería existir en el servidor de administración por lo tanto el banco es el custodio del token root.

Token microservicio

El token microservicio es un token que permite leer la configuración almacenada en vault, es usado por los componentes .NET Core cuando solicitan la configuración al server-config. Su valor es generado durante el proceso de instalación, en el punto: Configuración de Vault.

El token microservicio generado se encuentra disponible en el archivo defaults/vault_tokens.yml en el directorio ansible del servidor de administración.

Ejemplo:

microservice_token: hvs.CAESIEKxB56_fYokc3nrKgc3UA2drGz4a2KrzfVofQ2OUKmyGh4KHGh2cy5nWUp1OEV5SmN3eUxueTFzNG1EWGI0dEs
Aviso

Durante el proceso de instalación, el archivo defaults/vault_tokens.yml existe en el directorio ansible del servidor de administración. Sin embargo según la recomendación del punto: Configuración de Vault:

Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.

El archivo ya no debería existir en el servidor de administración por lo tanto el banco es el custodio del token microservicio.

Token transit

El token transit es un token que permite acceder a proceso de encriptación/desencriptación en vault, es usado por los componentes .NET Core que requieran encriptar/desencriptar data. Su valor es generado durante el proceso de instalación, en el punto: Configuración de Vault.

El token transit generado se encuentra disponible en el archivo defaults/vault_tokens.yml en el directorio ansible del servidor de administración.

Ejemplo:

transit_token: hvs.CAESIJHsOO_tzKdATkU5OXFUdJVmfv4ERl-uR-deww4_ZeRcGh4KHGh2cy5MMzJHQUtBNndwUTd3WkszMXp4RmxxMHc
Aviso

Durante el proceso de instalación, el archivo defaults/vault_tokens.yml existe en el directorio ansible del servidor de administración. Sin embargo según la recomendación del punto: Configuración de Vault:

Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.

El archivo ya no debería existir en el servidor de administración por lo tanto el banco es el custodio del token transit.

Token admin

El token admin es un token para administrar vault, es un reemplazo del Token root ya que este solo debe usarse para casos de emergencia o para renovar los tokens. Su valor es generado durante el proceso de instalación, en el punto: Configuración de Vault.

El token admin generado se encuentra disponible en el archivo defaults/vault_tokens.yml en el directorio ansible del servidor de administración.

Ejemplo:

admin_token: hvs.CAESIB_KdD7HBonsarfg9olCma_f_wIw8__5_dxszitwsGa0Gh4KHGh2cy5jb08wdjVSdzF1SUt5TUxXcHdITUxlOVI
Aviso

Durante el proceso de instalación, el archivo defaults/vault_tokens.yml existe en el directorio ansible del servidor de administración. Sin embargo según la recomendación del punto: Configuración de Vault:

Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.

El archivo ya no debería existir en el servidor de administración por lo tanto el banco es el custodio del token admin.

Kafka

Componente usado como message broker entre los componentes .NET Core, usando al patrón producer/consumer, donde un componente produce un mensaje y otro componente consume el mensaje para procesarlo.

Este componente se despliega en modo cluster donde el servidor de administración y todos los servidores de aplicaciones son nodos, cada uno cuenta con un kafka-controller y un kafka-broker. La cantidad mínima de nodos para formar un cluster es de tres, con esto tenemos una Alta Disponibilidad, con esta configuración se puede tolerar la falla de uno de los nodos y aun mantener el quorum necesario para que el cluster siga operativo.

Kafka Controller

Componente kafka con el rol de controller que se encarga de organizar la gestión de brokers, topics, particiones y réplicas dentro del cluster.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración y servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/kafka-controller/docker-compose.yml
  • Imagen docker base: confluentinc/cp-kafka:7.9.0
  • Puertos expuestos: 9093

Kafka Broker

Componente kafka con el rol de broker que se encarga recibir datos de los producers, almacenarlos y luego entregarlos a los consumers. Cada broker maneja una parte de los datos, y los datos están replicados en varios brokers para asegurar la disponibilidad y durabilidad. Los brokers colaboran entre sí para equilibrar la carga y gestionar los datos de manera eficiente.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración y servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/kafka-controller/docker-compose.yml
  • Imagen docker base: confluentinc/cp-kafka:7.9.0
  • Puertos expuestos: 9092,9992

Kafka UI

Componente para visualizar la información de los brokers, topics y consumers del cluster kafka.

Se puede acceder mediante el proxy desplegado en el servidor de administración y las credenciales de acceso son generadas de forma aleatoria durante el proceso de instalación, en el punto: Configuración de Kafka, los valores están disponibles en el archivo defaults/local_vars.yml en el directorio ansible del servidor de administración:

Ejemplo:

  kafka:
username: kafka
password: 6JGEyMlXzK3x4OCN2OVi

component_kafka

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/kafka-ui/docker-compose.yml
  • Imagen docker base: ghcr.io/kafbat/kafka-ui:v1.2.0
  • Puertos expuestos: ninguno

Proxy

En el servidor de administración

Componente usado como reverse proxy para dar acceso a servicios expuestos en el mismo servidor de administración.

Cuando se despliega este componente, se configuran por defecto los siguientes sitios disponibles:

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/proxy/docker-compose.yml
  • Imagen docker base: nginx:1.27.4-alpine
  • Puertos expuestos: 443

En los servidores web

Componente usado como reverse proxy y balanceador de carga para los servicios expuestos en todos los servidores de aplicaciones.

Cuando se despliega este componente, se configuran por defecto los siguientes sitios disponibles:

sitiodescripciónreverse proxyrestricciones
https://benetdesa.baneco.com.boBanca webfrontend-vdbninguna
https://benetdesa.baneco.com.bo/appBackend para la banca webgateway-publicninguna
https://managerdesa.baneco.com.boVIRIDIAN Managerfrontend-adminallow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
deny all;
https://managerdesa.baneco.com.bo/appBackend para VIRIDIAN Managergateway-internalallow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
deny all;
https://kioscodesa.baneco.com.boAplicación kioscofrontend-kioskninguna
https://kioscodesa.baneco.com.bo/appBackend para Aplicación kioscogateway-publicninguna
Características técnicas
  • Formato: imagen docker
  • Despliegue: servidores web
  • Ubicación docker compose: /opt/viridian/proxy/docker-compose.yml
  • Imagen docker base: nginx:1.27.4-alpine
  • Puertos expuestos: 443

Ansible

Ansible es un componente utilizado para la automatización de tareas relacionadas con la gestión de configuraciones, aprovisionamiento y despliegue de componentes.

Ansible UI

Componente para ejecutar comandos ansible a través de una interfaz gráfica, incluye:

  • Conexión al Active Directory del banco para usar los usuarios ya existentes.
  • Control de acceso de usuarios basado en roles.
  • Guardado de logs de tareas ejecutadas.

Se puede acceder mediante el proxy desplegado en el servidor de administración y las credenciales de acceso son generadas de forma aleatoria durante el proceso de instalación, los valores están disponibles en el archivo defaults/local_vars.yml en el directorio ansible del servidor de administración:

Ejemplo:

  ansible:
username: admin
password: admin

component_ansible

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/ansible/docker-compose.yml
  • Imagen docker base: semaphoreui/semaphore:v2.14.1
  • Puertos expuestos: ninguno

Ansible Database

Componentes para almacenar la información generada por Ansible UI.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidor de administración
  • Ubicación docker compose: /opt/viridian/ansible/docker-compose.yml
  • Imagen docker base: mysql:8.0
  • Puertos expuestos: ninguno

Configuración

viridian-config-properties

Componente que contiene propiedades de configuración para todos los productos.

Características técnicas
  • Formato: archivo yml
  • Despliegue: primero en servidor de administración y desde ahi se copia el archivo hacia los servidores de aplicaciones
  • Ubicación: en el servidor de administración en /opt/viridian/config y se copia a los servidores de aplicaciones en /opt/viridian/config/application.yml

vdb-config-properties

Componente que contiene propiedades de configuración para el producto VDB.

Características técnicas
  • Formato: archivo yml
  • Despliegue: primero en servidor de administración y desde ahi se copia el archivo hacia los servidores de aplicaciones
  • Ubicación: en el servidor de administración en /opt/viridian/config y se copia a los servidores de aplicaciones en /opt/viridian/config/vdb/application.yml

cobalt-config-properties

Componente que contiene propiedades de configuración para el producto COBALT.

Características técnicas
  • Formato: archivo yml
  • Despliegue: primero en servidor de administración y desde ahi se copia el archivo hacia los servidores de aplicaciones
  • Ubicación: en el servidor de administración en /opt/viridian/config y se copia a los servidores de aplicaciones en /opt/viridian/config/cobalt/application.yml

Rutas

vdb-routes-public

Componente que contiene todos los endpoints del producto VDB, que son expuestos para ser consumidos de manera publica desde el componente gateway-public.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/public

vdb-routes-internal

Componente que contiene todos los endpoints del producto VDB, que son expuestos para ser consumidos de manera interna desde el componente gateway-internal.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/internal

vdb-routes-bank

Componente que contiene todos los endpoints del producto VDB, que son expuestos por el servicio del banco para ser consumidos de manera interna desde el componente bank-gateway.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/bank

cobalt-routes-public

Componente que contiene todos los endpoints del producto COBALT, que son expuestos para ser consumidos de manera publica desde el componente gateway-public.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/public

cobalt-routes-internal

Componente que contiene todos los endpoints del producto COBALT, que son expuestos para ser consumidos de manera interna desde el componente gateway-internal.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/internal

jade-routes-public

Componente que contiene todos los endpoints del producto JADE, que son expuestos para ser consumidos de manera publica desde el componente gateway-public.

Características técnicas
  • Formato: archivo json
  • Despliegue: servidores de aplicaciones
  • Ubicación: /opt/viridian/routes/public

Gateway

gateway-public

Componente API Gateway que usa la librería Ocelot, su función es ser el único punto de consumo de cualquier endpoint publico expuesto para los componentes frontend: angular o flutter.

Usa todos los componentes routes-public disponibles para leer desde ahi los endpoints a exponer.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/gateway/docker-compose.yml
  • Imagen docker base: viridian-netcore:8.0.0-base-debian
  • Puertos expuestos: 7002

gateway-internal

Componente API Gateway que usa la librería Ocelot, su función es ser el único punto de consumo de cualquier endpoint interno expuesto para el banco.

Usa todos los componentes routes-internal disponibles para leer desde ahi los endpoints a exponer.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/gateway/docker-compose.yml
  • Imagen docker base: viridian-netcore:8.0.0-base-debian
  • Puertos expuestos: 7004

Spring

server-config

Component java que usa la librería Spring Cloud Config, su función es centralizar la configuración para los componentes Gateway y .NET Core, estos componentes al momento de bootear, se comunican con el server-config para pedir la configuración, el server-config entonces lee la configuración disponible en el componente vault y los componentes config, internamente realiza un merge de toda la configuración leída y la devuelve al solicitante.

Al ser un componente que tiene acceso a toda la configuración disponible, requiere que los componentes que soliciten obtener configuración, envien la siguiente información:

  • Token microservicio para acceder a vault: Este valor es obtenido durante el proceso de instalación, en el punto: Configuración de Vault.

  • Usuario de autenticación: Este valor es generado de manera aleatoria durante el proceso de instalación, en el punto: Variable locales.

  • Password de autenticación: Este valor es generado de manera aleatoria durante el proceso de instalación, en el punto: Variables locales.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/spring/docker-compose.yml
  • Imagen docker base: viridian-java:8.0.4-base
  • Puertos expuestos: ninguno

server-eureka

Component java que usa la librería Spring Cloud Netflix, actúa como service registration y service discovery para los componentes Gateway y .NET Core, estos componentes al momento de bootear, se registran en server-eureka (service registration) y cuando un componente necesita consumir un endpoint de otro componente, se consulta a server-eureka (service discovery) para obtener información de las instancias disponibles del componente destino.

Características técnicas
  • Formato: imagen docker
  • Despliegue: servidores de aplicaciones
  • Ubicación docker compose: /opt/viridian/spring/docker-compose.yml
  • Imagen docker base: viridian-java:8.0.4-base
  • Puertos expuestos: ninguno

Backend

Todos los componentes del backend funcionan con el framework .NET Core 8.

bank-service

Component que simula ser el servicio del banco, esto para registrarse en el server-eureka, de manera que el componente bank-gateway pueda hacer el service discovery y obtener el host/puerto a usar.

bank-gateway

Componente API Gateway que usa la librería Ocelot, su función es ser el único punto de consumo de cualquier endpoint expuesto por el servicio del banco.

Usa todos los componentes routes-bank, lee desde ahi los endpoints disponibles para ser consumidos.

batchpayments-api

Componente con endpoints relacionados a pago de lotes.

batchpayments-hosted

Componente que procesa tareas asíncronas relacionadas a pago de lotes.

beneficiaries-api

Componente con endpoints relacionados a beneficiarios.

digitalcredit-api

Componente con endpoints relacionados a créditos digitales.

digitalpay-qr

Componente con endpoints relacionados a cobros/pagos QR.

guaranteebond-api

Componente con endpoints relacionados a fianzas bancarias.

manager-api

Componente con endpoints relacionados con la administración de usuarios, administración de clientes, administración de cuentas, marketing y temas relacionados a seguridad.

manager-hosted

Componente que procesa tareas asíncronas relacionadas a la actualización de cuentas, actualización del daily limit de los usuarios.

myfinances-api

Componente con endpoints relacionados a mis finanzas.

notifications-hosted

Componente con endpoints y procesamiento de tareas asíncronas relacionadas a notificaciones de marketing y notificaciones push.

onboarding-api

Componente con endpoints relacionados a procesos de onboarding.

servicepayments-api

Componente con endpoints relacionados a pago de servicios.

statements-api

Componente con endpoints relacionados a la generación de extractos.

trade-api

Componente con endpoints relacionados a transferencias internacionales.

transactions-api

Componente con endpoints relacionados a transferencias, pago de tarjetas, pago de prestamos y operaciones con tarjetas.

transactions-hosted

Componente que procesa tareas asíncronas relacionadas a transacciones/operaciones.

utilities-api

Componente con endpoints utilitarios generales.

wiretransfer-api

Componente con endpoints relacionados a remesas.

insurance-agents

Componente con endpoints relacionados a configuración de agentes de seguros.

insurance-sales

Componente con endpoints relacionados a venta de seguros.

assistant-requests

Componente con endpoints relacionados a asistencia de tarjetas.

Frontend

Todos los componentes del frontend funcionan con el framework Angular.

frontend-admin

Aplicación Viridian MANAGER.

frontend-kiosk

Aplicación de kioscos de autoservicio.

frontend-vdb

Aplicación de banca digital web.