Skip to main content

VIRIDIAN Digital Banking - Backend 5.3.9

Changelog

  • Consolidado de Cuentas: Se optimiza la carga de cuentas para reducir el uso de memoria y mejorar , marginalmente, el tiempo de respuesta individual, pero puede ser algo importante en general.
  • Encuestas: Se habilita el nuevo módulo de "Encuestas" para producción y pre producción.
  • General: Estamos realizando optimizaciones en el uso de memoria en general para los microservicios: manager-api y utilities-api.
  • Holdings: Se corrige la visualización de datos del cliente en producción para la Banca Móvil con rediseño, mostrando nombres en lugar de apellidos.
  • Mensajes & Anuncios: Se hicieron mejoras internas para evitar errores en las difusiones de grupos grandes de clientes; esto para atender un caso reportado en producción.
  • Mensajes & Anuncios: Se hicieron las correcciones necesarias para evitar errores internos en el procesamiento de archivos que contienen cientos de miles de registros para crear grupos de clientes; además se optimizó el tiempo de creación de los mismos.
  • Onboarding : Se mejora la gestión de conexiones de red hacia proveedores externos como FacePhi y/o Firebase, evitando el agotamiento de puertos disponibles en el sistema durante picos elevados de inicios de sesión.
  • Pagos QR : En los pagos QR al mismo banco, se identificó que la interfaz vdbVerifyAccount era llamada dos veces. Se corrige este comportamiento para realizar una única llamada a la interfaz, optimizando el flujo de validación.

Tareas previas

info

Les solicitamos por favor realicen los pasos Selección de versión del release y Descarga de componentes en horario de oficina para poder tener todo el equipo a disposición en caso de error.

Selección de versión del release

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook release.yml -t select -e="version=5.3.9"
    info

    Este comando selecciona la versión del release.

Descarga de componentes

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook release.yml -K -t warmup
    info

    Este comando descarga las nuevas versiones de todos los componentes que serán actualizados.

Instrucciones

Cambios en servidores

  1. Ninguno.

Cambios en base de datos

  1. Ejecutar el siguiente script:

    DELETE FROM onboarding_codes WHERE param_type = 'ACCOUNT_DOCUMENT_TYPE' AND param_code = '4' AND param_value = 'Póliza de seguro de protección';

    -- survey

    DROP TABLE IF EXISTS survey;

    CREATE TABLE IF NOT EXISTS survey (
    id bigserial NOT NULL,
    name varchar(100) NOT NULL,
    title varchar(100) NOT NULL,
    description varchar(250),
    audience varchar(20) NOT NULL,
    fk_customer_group bigint,
    topic varchar(40),
    start_date date NOT NULL,
    end_date date NOT NULL,
    channel varchar(40) NOT NULL,
    is_mandatory smallint NOT NULL,
    max_skip_attempts int NOT NULL,
    status varchar(40) NOT NULL,
    user_create varchar(40),
    date_create datetime year to second,
    user_update varchar(40),
    date_update datetime year to second,
    admin_user_create varchar(40),
    admin_user_update varchar(40),
    admin_date_update datetime year to second,
    PRIMARY KEY (id) CONSTRAINT pk_survey_id
    );

    CREATE INDEX idx_survey_status ON survey (status);


    -- survey_answer

    DROP TABLE IF EXISTS survey_answer;

    CREATE TABLE IF NOT EXISTS survey_answer (
    id bigserial NOT NULL,
    fk_survey bigint NOT NULL,
    fk_response bigint NOT NULL,
    fk_question bigint NOT NULL,
    answer_text varchar(100),
    score int,
    fk_option bigint,
    option_value varchar(100),
    PRIMARY KEY (id) CONSTRAINT pk_survey_answer_id
    );

    CREATE INDEX idx_survey_answer_question ON survey_answer (fk_question);
    CREATE INDEX idx_survey_answer_response ON survey_answer (fk_response);


    -- survey_question

    DROP TABLE IF EXISTS survey_question;

    CREATE TABLE IF NOT EXISTS survey_question (
    id bigserial NOT NULL,
    fk_survey bigint NOT NULL,
    question_order int NOT NULL,
    question_text varchar(150),
    question_type varchar(20) NOT NULL,
    is_required smallint NOT NULL,
    min_value int,
    max_value int,
    PRIMARY KEY (id) CONSTRAINT pk_survey_question_id
    );

    CREATE INDEX idx_survey_question_survey ON survey_question (fk_survey);


    -- survey_question_option

    DROP TABLE IF EXISTS survey_question_option;

    CREATE TABLE IF NOT EXISTS survey_question_option (
    id bigserial NOT NULL,
    fk_survey bigint NOT NULL,
    fk_question bigint NOT NULL,
    option_order int NOT NULL,
    option_text lvarchar(350),
    PRIMARY KEY (id) CONSTRAINT pk_survey_question_option_id
    );

    CREATE INDEX idx_survey_question_option_question ON survey_question_option (fk_question);
    CREATE INDEX idx_survey_question_option_survey ON survey_question_option (fk_survey);


    -- survey_response

    DROP TABLE IF EXISTS survey_response;

    CREATE TABLE IF NOT EXISTS survey_response (
    id bigserial NOT NULL,
    fk_survey bigint NOT NULL,
    fk_user bigint NOT NULL,
    customer_code varchar(20),
    channel varchar(40) NOT NULL,
    is_mandatory smallint NOT NULL,
    max_skip_attempts int NOT NULL,
    total_attempts_number int NOT NULL,
    skip_survey smallint NOT NULL,
    status varchar(40) NOT NULL,
    response_date datetime year to second,
    user_create varchar(40),
    date_create datetime year to second,
    user_update varchar(40),
    date_update datetime year to second,
    admin_user_create varchar(40),
    admin_user_update varchar(40),
    admin_date_update datetime year to second,
    PRIMARY KEY (id) CONSTRAINT pk_survey_response_id
    );

    CREATE INDEX idx_survey_response_survey ON survey_response (fk_survey);
    CREATE INDEX idx_survey_response_survey_user ON survey_response (fk_survey, fk_user);
    CREATE INDEX idx_survey_response_user_status_channel ON survey_response (fk_user, status, channel);

    INSERT INTO man_action
    (code, subtype_code, order, status, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update, exp_points, endpoint, description)
    VALUES('UPSERT_SURVEY', 'ADMIN_OPERATION', '1001', 'ACTIVE', NULL, current , NULL, NULL, 'admin', NULL, NULL, NULL, NULL, NULL);

Cambios en componentes

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook release.yml -K -t deploy -e "type=hot"

Limpieza de archivos generados por el release

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -K -t cleanup

Verificación de componentes

  1. En los servidores de aplicaciones, ejecutar el siguiente comando:

    docker ps -vs
    info

    Este comando muestra el estado de todos los docker containers ordenados alfabéticamente.

  2. Revisar el output del comando y asegurarse de que todos los docker containers tengan un status UP y no haya ningún docker container detenido.

Resumen de versiones

componenterelease 5.3.8release 5.3.9
viridian-config-properties9.32.19.33.4
server-config9.1.0
server-eureka9.1.0
vdb-routes-public9.12.09.13.0
vdb-routes-internal9.4.09.5.0
vdb-routes-bank9.4.0
gateway-public9.4.0
gateway-internal9.4.0
gateway-external9.3.0
bank-gateway9.7.0
bank-service9.4.0
batchpayments-api9.5.0
batchpayments-hosted9.4.0
beneficiaries-api9.7.0
digitalcredit-api9.4.1
digitalpay-qr9.18.09.19.0
guaranteebond-api9.4.0
manager-api9.23.09.24.1
manager-hosted9.11.0
myfinances-api9.6.0
notifications-hosted9.10.0
onboarding-api9.16.0
servicepayments-api9.6.0
statements-api9.6.0
trade-api9.8.3
transactions-api9.11.0
transactions-hosted9.4.0
utilities-api9.13.09.14.3
wiretransfer-api9.5.1
insurance-agents9.4.0
insurance-sales9.4.0
assistant-requests9.7.0
frontend-vdb9.14.19.15.0
frontend-vdb-29.14.19.15.0
frontend-admin9.8.09.9.2
frontend-kiosk9.2.0