From 759f35654b3ddbb79a6f9cfce8602ec9a8bc8b26 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 16:10:27 +0100 Subject: [PATCH 01/44] Created deployment --- deployment/develop/docker/Dockerfile | 10 ++ deployment/develop/docker/docker-compose.yaml | 86 ++++++++++++++++ deployment/develop/docker/rebuild.sh | 9 ++ deployment/develop/jenkinsfile.groovy | 98 +++++++++++++++++++ package.json | 2 +- packages/sim-entrada-eventos/package.json | 2 +- packages/sim-objenious-cron/package.json | 2 +- packages/sim-shared/package.json | 2 +- 8 files changed, 207 insertions(+), 4 deletions(-) create mode 100644 deployment/develop/docker/Dockerfile create mode 100644 deployment/develop/docker/docker-compose.yaml create mode 100644 deployment/develop/docker/rebuild.sh create mode 100644 deployment/develop/jenkinsfile.groovy diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile new file mode 100644 index 0000000..9186e9e --- /dev/null +++ b/deployment/develop/docker/Dockerfile @@ -0,0 +1,10 @@ +# --- Release image --- +FROM node:22-alpine AS release +ARG PORT +WORKDIR /home/node/app +COPY ./src ./src +COPY ./package.json ./ +COPY ./package-lock.json ./ +RUN npm ci +EXPOSE $PORT +ENTRYPOINT ["node", "src/apps/index.js"] diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml new file mode 100644 index 0000000..d9cbe23 --- /dev/null +++ b/deployment/develop/docker/docker-compose.yaml @@ -0,0 +1,86 @@ +name: sim-eventos +networks: + savefamily: + external: true + proxy: + external: true + +services: + rabbitmq-sim-broker: + container_name: rabbitmq-sim-broker + image: "rabbitmq:4.2.2-management" + expose: + - 5672 + - 15672 + env_file: + - ./.env + restart: unless-stopped + healthcheck: + test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"] + interval: 10s + timeout: 5s + retries: 5 + environment: + RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER} + RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} + volumes: + - ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro + - ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro + - ./rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro + labels: + - "io.portainer.accesscontrol.teams=develop" + + sf-sims-api: + container_name: sf-sims-api + build: + context: . + dockerfile: Dockerfile + args: + PORT: ${PORT:-3000} + image: sf-sims-api + env_file: + - ./.env + restart: unless-stopped + depends_on: + rabbitmq-sim-broker: + condition: service_healthy + postgresql-sim: + condition: service_healthy + networks: + - savefamily + - proxy + expose: + - ${PORT} + labels: + - "io.portainer.accesscontrol.teams=develop" + - "traefik.enable=true" + - "traefik.http.routers.sf-sims.entrypoints=web" + - "traefik.http.routers.sf-sims.rule=Host(`sf-sims.savefamilygps.net`)" + - "traefik.http.middlewares.sf-sims-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.sf-sims.middlewares=sf-sims-https-redirect" + - "traefik.http.routers.sf-sims-secure.entrypoints=websecure" + - "traefik.http.routers.sf-sims-secure.rule=Host(`sf-sims.savefamilygps.net`)" + - "traefik.http.routers.sf-sims-secure.tls=true" + - "traefik.http.routers.sf-sims-secure.service=sf-sims" + - "traefik.http.routers.sf-sims-secure.tls.certresolver=myresolver" + - "traefik.http.routers.sf-sims-secure.middlewares=tailscale-ipwhitelist@file" + - "traefik.http.services.sf-sims.loadbalancer.server.port=${PORT}" + - "traefik.docker.network=proxy" + + postgresql-sim: + image: postgres:16.1 + env_file: + - ./.env + ports: + - 5432 + volumes: + - ./postgres:/var/lib/postgres/data + - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + retries: 5 + start_period: 5s + timeout: 5s + labels: + - "io.portainer.accesscontrol.teams=develop" diff --git a/deployment/develop/docker/rebuild.sh b/deployment/develop/docker/rebuild.sh new file mode 100644 index 0000000..a94fd45 --- /dev/null +++ b/deployment/develop/docker/rebuild.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd /mnt/docker-storage/containers/savefamily/sf-sims + +docker stop sf-sims-api || true +docker rm sf-sims-api || true +docker rmi sf-sims-api || true + +docker compose -f docker-compose.yaml up --build -d sf-sims-api diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy new file mode 100644 index 0000000..99dfe0e --- /dev/null +++ b/deployment/develop/jenkinsfile.groovy @@ -0,0 +1,98 @@ +#!/usr/bin/env groovy + +String BASE_REMOTE_PATH = "//home/devops" +String APP_REMOTE_PATH = "//mnt/docker-storage/containers/savefamily/sf-sims" + +pipeline { + agent any + tools { nodejs "22.15.0" } + + environment { + GENERAL_CHANGES = "false" + } + + stages { + stage("🧱 Building") { + sh 'yarn run build' + } + stage("🏗 Deploying") { + steps { + sshPublisher( + publishers: [ + sshPublisherDesc( + verbose: true, + configName: "Save Family", + transfers: [ + sshTransfer( + cleanRemote: false, + execCommand: "mkdir -p $APP_REMOTE_PATH" + ), + sshTransfer( + cleanRemote: false, + execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/.env $APP_REMOTE_PATH/.env" + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "dist/**/*" + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "deployment/database/**/*", + removePrefix: "deployment", + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "deployment/rabbit/**/*", + removePrefix: "deployment", + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "rabbitmq_plugins/**/*" + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "deployment/develop/docker/**/*", + removePrefix: "deployment/develop/docker", + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "deployment/Dockerfile", + removePrefix: "deployment", + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "package.json", + ), + sshTransfer( + cleanRemote: false, + remoteDirectory: "$APP_REMOTE_PATH", + sourceFiles: "package-lock.json", + ), + sshTransfer( + cleanRemote: false, + execCommand: "sh $APP_REMOTE_PATH/rebuild.sh" + ) + ] + ) + ] + ) + } + } + } + + post { + failure { + echo '👎🏼 Processing failed' + } + success { + echo '👍🏼 Processing success' + } + } +} diff --git a/package.json b/package.json index a87aaa6..8f8609a 100644 --- a/package.json +++ b/package.json @@ -43,4 +43,4 @@ "tsx": "^4.21.0", "vitest": "^4.0.16" } -} \ No newline at end of file +} diff --git a/packages/sim-entrada-eventos/package.json b/packages/sim-entrada-eventos/package.json index f4380f0..7c7d826 100644 --- a/packages/sim-entrada-eventos/package.json +++ b/packages/sim-entrada-eventos/package.json @@ -73,4 +73,4 @@ "tsx": "*", "vitest": "*" } -} \ No newline at end of file +} diff --git a/packages/sim-objenious-cron/package.json b/packages/sim-objenious-cron/package.json index 843c4e2..bf8da38 100644 --- a/packages/sim-objenious-cron/package.json +++ b/packages/sim-objenious-cron/package.json @@ -73,4 +73,4 @@ "tsx": "*", "vitest": "*" } -} \ No newline at end of file +} diff --git a/packages/sim-shared/package.json b/packages/sim-shared/package.json index 300e8c0..ab5a0d0 100644 --- a/packages/sim-shared/package.json +++ b/packages/sim-shared/package.json @@ -57,4 +57,4 @@ "tsx": "*", "vitest": "*" } -} \ No newline at end of file +} From 36632f73c2d035858450f076d138a5d46d455637 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 16:16:30 +0100 Subject: [PATCH 02/44] Created deployment --- deployment/develop/jenkinsfile.groovy | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 99dfe0e..6a10592 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -13,7 +13,9 @@ pipeline { stages { stage("🧱 Building") { - sh 'yarn run build' + steps { + sh 'yarn run build' + } } stage("🏗 Deploying") { steps { From c8ccc21dd2868c5548a49eb0edfec793528642b2 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 16:17:51 +0100 Subject: [PATCH 03/44] Created deployment --- deployment/develop/jenkinsfile.groovy | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 6a10592..dedfe6a 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -12,6 +12,14 @@ pipeline { } stages { + stage('📦 Install dependencies') { + steps { + sh 'npm install -g yarn' + sh 'corepack enable' + sh 'corepack prepare yarn@3.2.1 --activate' + sh 'yarn install --immutable' + } + } stage("🧱 Building") { steps { sh 'yarn run build' From 43a7b788dd3e4d1d2a5af6cda9cf2a06588f5e03 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 16:18:42 +0100 Subject: [PATCH 04/44] Created deployment --- deployment/develop/docker/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 9186e9e..c1886ca 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -2,9 +2,9 @@ FROM node:22-alpine AS release ARG PORT WORKDIR /home/node/app -COPY ./src ./src -COPY ./package.json ./ -COPY ./package-lock.json ./ +COPY ./dist/src ./src +COPY ./dist/package.json ./ +COPY ./dist/package-lock.json ./ RUN npm ci EXPOSE $PORT ENTRYPOINT ["node", "src/apps/index.js"] From efc16d4ff37c928072684c8f8eb8d088898b9e33 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 16:20:37 +0100 Subject: [PATCH 05/44] Created deployment --- deployment/develop/jenkinsfile.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index dedfe6a..43d06b5 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -44,7 +44,8 @@ pipeline { sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", - sourceFiles: "dist/**/*" + sourceFiles: "dist/**/*", + excludes: "dist/**/node_modules/**" ), sshTransfer( cleanRemote: false, From 97c9ffaf77f057276b3371b59f53d25f54ed6c34 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:16:29 +0100 Subject: [PATCH 06/44] Created deployment --- deployment/develop/docker/Dockerfile | 27 ++++++++++++++----- deployment/develop/docker/docker-compose.yaml | 15 +++++++++++ deployment/develop/docker/entrypoint.sh | 5 ++++ deployment/develop/jenkinsfile.groovy | 10 ++----- 4 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 deployment/develop/docker/entrypoint.sh diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index c1886ca..a3d43d2 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -1,10 +1,23 @@ # --- Release image --- FROM node:22-alpine AS release -ARG PORT WORKDIR /home/node/app -COPY ./dist/src ./src -COPY ./dist/package.json ./ -COPY ./dist/package-lock.json ./ -RUN npm ci -EXPOSE $PORT -ENTRYPOINT ["node", "src/apps/index.js"] + +# Copiar paquetes compilados del monorepo +COPY ./dist/packages ./packages + +# Instalar dependencias de produccion +COPY ./package.json ./ +COPY ./package-lock.json ./ +RUN npm ci --omit=dev + +# Symlinks para modulos compartidos del workspace +RUN mkdir -p packages/node_modules && \ + ln -sf ../sim-shared packages/node_modules/sim-shared && \ + ln -sf ../sim-consumidor-objenious packages/node_modules/sim-consumidor-objenious + +# Script de inicio para los 3 servicios +COPY ./entrypoint.sh ./ +RUN chmod +x entrypoint.sh + +EXPOSE ${PORT:-3000} +ENTRYPOINT ["./entrypoint.sh"] diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index d9cbe23..638a9b5 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -4,6 +4,8 @@ networks: external: true proxy: external: true + internal: + driver: bridge services: rabbitmq-sim-broker: @@ -27,6 +29,8 @@ services: - ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro - ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro - ./rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro + networks: + - internal labels: - "io.portainer.accesscontrol.teams=develop" @@ -49,8 +53,17 @@ services: networks: - savefamily - proxy + - internal expose: - ${PORT} + volumes: + - ./.env:/home/node/app/.env:ro + healthcheck: + test: ["CMD-SHELL", "wget -qO- http://localhost:${PORT:-3000}/health || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 15s labels: - "io.portainer.accesscontrol.teams=develop" - "traefik.enable=true" @@ -82,5 +95,7 @@ services: retries: 5 start_period: 5s timeout: 5s + networks: + - internal labels: - "io.portainer.accesscontrol.teams=develop" diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh new file mode 100644 index 0000000..eed841e --- /dev/null +++ b/deployment/develop/docker/entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +node packages/sim-objenious-cron/index.js & +node packages/sim-consumidor-objenious/index.js & +exec node packages/sim-entrada-eventos/index.js diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 43d06b5..6027aba 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -16,7 +16,7 @@ pipeline { steps { sh 'npm install -g yarn' sh 'corepack enable' - sh 'corepack prepare yarn@3.2.1 --activate' + sh 'corepack prepare yarn@4.12.0 --activate' sh 'yarn install --immutable' } } @@ -46,7 +46,7 @@ pipeline { remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "dist/**/*", excludes: "dist/**/node_modules/**" - ), + ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", @@ -70,12 +70,6 @@ pipeline { sourceFiles: "deployment/develop/docker/**/*", removePrefix: "deployment/develop/docker", ), - sshTransfer( - cleanRemote: false, - remoteDirectory: "$APP_REMOTE_PATH", - sourceFiles: "deployment/Dockerfile", - removePrefix: "deployment", - ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", From d90f5af0d726b46e6becca9412c4ea716325b5a4 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:25:01 +0100 Subject: [PATCH 07/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 2 ++ deployment/develop/docker/entrypoint.sh | 9 ++++++--- deployment/develop/jenkinsfile.groovy | 8 ++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 638a9b5..aa5b365 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -58,6 +58,8 @@ services: - ${PORT} volumes: - ./.env:/home/node/app/.env:ro + - ./sim-consumidor-objenious.env:/home/node/app/packages/sim-consumidor-objenious/.env:ro + - ./sim-objenious-cron.env:/home/node/app/packages/sim-objenious-cron/.env:ro healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:${PORT:-3000}/health || exit 1"] interval: 10s diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index eed841e..e188a31 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,5 +1,8 @@ #!/bin/sh -node packages/sim-objenious-cron/index.js & -node packages/sim-consumidor-objenious/index.js & -exec node packages/sim-entrada-eventos/index.js +# Cada servicio necesita CWD en su directorio de paquete +# para que loadEnvFile("../../.env") y loadEnvFile("./.env") resuelvan correctamente + +(cd /home/node/app/packages/sim-objenious-cron && node index.js) & +(cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & +cd /home/node/app/packages/sim-entrada-eventos && exec node index.js diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 6027aba..8253961 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -41,6 +41,14 @@ pipeline { cleanRemote: false, execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/.env $APP_REMOTE_PATH/.env" ), + sshTransfer( + cleanRemote: false, + execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/sim-consumidor-objenious.env $APP_REMOTE_PATH/sim-consumidor-objenious.env" + ), + sshTransfer( + cleanRemote: false, + execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/sim-objenious-cron.env $APP_REMOTE_PATH/sim-objenious-cron.env" + ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", From b86e6c6066cf036c09b8471ca80fbf339565371f Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:27:05 +0100 Subject: [PATCH 08/44] Created deployment --- deployment/develop/docker/entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index e188a31..59c2b44 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -5,4 +5,5 @@ (cd /home/node/app/packages/sim-objenious-cron && node index.js) & (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & +(cd /home/node/app/packages/sim-consumidor-nos && node index.js) & cd /home/node/app/packages/sim-entrada-eventos && exec node index.js From 3ce820ef6419caedca1363e128ea7734c61fc455 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:39:45 +0100 Subject: [PATCH 09/44] Created deployment --- deployment/develop/docker/Dockerfile | 18 ++++++++++++------ deployment/develop/docker/docker-compose.yaml | 6 +++++- deployment/develop/jenkinsfile.groovy | 5 ----- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index a3d43d2..529acb6 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -6,16 +6,22 @@ WORKDIR /home/node/app COPY ./dist/packages ./packages # Instalar dependencias de produccion +# Eliminar workspaces y scripts del package.json para evitar que npm +# intente resolver paquetes del workspace que no existen en la imagen COPY ./package.json ./ -COPY ./package-lock.json ./ -RUN npm ci --omit=dev +RUN node -e "\ + const p = require('./package.json'); \ + delete p.workspaces; \ + delete p.scripts; \ + delete p.devDependencies; \ + require('fs').writeFileSync('./package.json', JSON.stringify(p, null, 2));" +RUN npm install --omit=dev -# Symlinks para modulos compartidos del workspace +# Symlink para el modulo compartido del workspace RUN mkdir -p packages/node_modules && \ - ln -sf ../sim-shared packages/node_modules/sim-shared && \ - ln -sf ../sim-consumidor-objenious packages/node_modules/sim-consumidor-objenious + ln -sf ../sim-shared packages/node_modules/sim-shared -# Script de inicio para los 3 servicios +# Script de inicio para los 4 servicios COPY ./entrypoint.sh ./ RUN chmod +x entrypoint.sh diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index aa5b365..07a816c 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -61,7 +61,11 @@ services: - ./sim-consumidor-objenious.env:/home/node/app/packages/sim-consumidor-objenious/.env:ro - ./sim-objenious-cron.env:/home/node/app/packages/sim-objenious-cron/.env:ro healthcheck: - test: ["CMD-SHELL", "wget -qO- http://localhost:${PORT:-3000}/health || exit 1"] + test: + [ + "CMD-SHELL", + "wget -qO- http://localhost:${PORT:-3000}/health || exit 1", + ] interval: 10s timeout: 5s retries: 5 diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 8253961..a8430a9 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -83,11 +83,6 @@ pipeline { remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "package.json", ), - sshTransfer( - cleanRemote: false, - remoteDirectory: "$APP_REMOTE_PATH", - sourceFiles: "package-lock.json", - ), sshTransfer( cleanRemote: false, execCommand: "sh $APP_REMOTE_PATH/rebuild.sh" From aed7624e1e3997f494e99d12173dcdeddc9f9de0 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:43:31 +0100 Subject: [PATCH 10/44] Created deployment --- deployment/develop/docker/entrypoint.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index 59c2b44..e188a31 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -5,5 +5,4 @@ (cd /home/node/app/packages/sim-objenious-cron && node index.js) & (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & -(cd /home/node/app/packages/sim-consumidor-nos && node index.js) & cd /home/node/app/packages/sim-entrada-eventos && exec node index.js From 25bc40840e675447efdbf2317013f357365e0507 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:47:15 +0100 Subject: [PATCH 11/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 07a816c..ed13125 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -64,7 +64,7 @@ services: test: [ "CMD-SHELL", - "wget -qO- http://localhost:${PORT:-3000}/health || exit 1", + "node -e \"fetch('http://localhost:' + (process.env.PORT || 3000) + '/health').then(r => { if (!r.ok) process.exit(1) }).catch(() => process.exit(1))\"", ] interval: 10s timeout: 5s From 2d926d25833cd342d62368a0e094c027698fa635 Mon Sep 17 00:00:00 2001 From: hector Date: Tue, 10 Feb 2026 17:51:44 +0100 Subject: [PATCH 12/44] Created deployment --- deployment/develop/docker/Dockerfile | 6 ------ deployment/develop/docker/entrypoint.sh | 3 --- 2 files changed, 9 deletions(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 529acb6..9a2801c 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -2,12 +2,8 @@ FROM node:22-alpine AS release WORKDIR /home/node/app -# Copiar paquetes compilados del monorepo COPY ./dist/packages ./packages -# Instalar dependencias de produccion -# Eliminar workspaces y scripts del package.json para evitar que npm -# intente resolver paquetes del workspace que no existen en la imagen COPY ./package.json ./ RUN node -e "\ const p = require('./package.json'); \ @@ -17,11 +13,9 @@ RUN node -e "\ require('fs').writeFileSync('./package.json', JSON.stringify(p, null, 2));" RUN npm install --omit=dev -# Symlink para el modulo compartido del workspace RUN mkdir -p packages/node_modules && \ ln -sf ../sim-shared packages/node_modules/sim-shared -# Script de inicio para los 4 servicios COPY ./entrypoint.sh ./ RUN chmod +x entrypoint.sh diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index e188a31..869bc27 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,8 +1,5 @@ #!/bin/sh -# Cada servicio necesita CWD en su directorio de paquete -# para que loadEnvFile("../../.env") y loadEnvFile("./.env") resuelvan correctamente - (cd /home/node/app/packages/sim-objenious-cron && node index.js) & (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & cd /home/node/app/packages/sim-entrada-eventos && exec node index.js From 61c91b6548eb6467308eab7397cb9838c0c062dc Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 11:33:12 +0100 Subject: [PATCH 13/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index ed13125..e1b668a 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -64,7 +64,7 @@ services: test: [ "CMD-SHELL", - "node -e \"fetch('http://localhost:' + (process.env.PORT || 3000) + '/health').then(r => { if (!r.ok) process.exit(1) }).catch(() => process.exit(1))\"", + 'node -e "fetch(''http://localhost:'' + (process.env.PORT || 3000) + ''/health'').then(r => { if (!r.ok) process.exit(1) }).catch(() => process.exit(1))"', ] interval: 10s timeout: 5s @@ -82,7 +82,6 @@ services: - "traefik.http.routers.sf-sims-secure.tls=true" - "traefik.http.routers.sf-sims-secure.service=sf-sims" - "traefik.http.routers.sf-sims-secure.tls.certresolver=myresolver" - - "traefik.http.routers.sf-sims-secure.middlewares=tailscale-ipwhitelist@file" - "traefik.http.services.sf-sims.loadbalancer.server.port=${PORT}" - "traefik.docker.network=proxy" From 05ea4e76cc4f24ebdb61c3bb020aa42180a1c263 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 13:20:04 +0100 Subject: [PATCH 14/44] Notificacion cuando finalice una activacion --- packages/sim-objenious-cron/.env | 2 + .../sim-objenious-cron/config/env/index.ts | 3 +- .../tasks/check_objenious_request.ts | 50 ++++++++++++------- .../domain/operationsRepository.port.ts | 4 +- 4 files changed, 39 insertions(+), 20 deletions(-) diff --git a/packages/sim-objenious-cron/.env b/packages/sim-objenious-cron/.env index 919cf75..63352e7 100644 --- a/packages/sim-objenious-cron/.env +++ b/packages/sim-objenious-cron/.env @@ -6,3 +6,5 @@ OBJ_CLIENT_ID=savefamily_rest_ws OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E OBJ_BASE_URL=https://api-getway.objenious.com/ws //OBJ_BASE_URL=https://api-getway.objenious.com/ws/test + +NOTIFICATION_URL=https://api-paloma.com diff --git a/packages/sim-objenious-cron/config/env/index.ts b/packages/sim-objenious-cron/config/env/index.ts index 8977540..2540574 100644 --- a/packages/sim-objenious-cron/config/env/index.ts +++ b/packages/sim-objenious-cron/config/env/index.ts @@ -28,7 +28,8 @@ export const env = { OBJ_CLI_ASSERTION: String(process.env.OBJ_CLI_ASSERTION), OBJ_CLIENT_ID: String(process.env.OBJ_CLIENT_ID), OBJ_KID: String(process.env.OBJ_KID), - OBJ_BASE_URL: String(process.env.OBJ_BASE_URL) + OBJ_BASE_URL: String(process.env.OBJ_BASE_URL), + NOTIFICATION_URL: String(process.env.NOTIFICATION_URL) }; diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index f47897e..d535ab5 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -1,3 +1,4 @@ +import { env } from "#config/env/index.js"; import { IOperationsRepository, Objenious, ObjeniousOperation, ObjeniousOperationChange, StatusEnum } from "sim-shared/domain/operationsRepository.port.js"; import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js"; @@ -36,14 +37,13 @@ export class CheckObjeniousRequests { const consultarEstado = pendingOperations.data .filter(e => e.mass_action_id != undefined) - console.log("validas", operacionesValidas) - console.log("Solicitando mass id para", solicitarMassId) + console.log("[cron] Solicitando mass id para", solicitarMassId.map(e => e.id)) const newMassActions = await this.getMassIdFromRequest(solicitarMassId) const merged = [...newMassActions || [], ...consultarEstado] - console.log("Solicitando status para", merged) + console.log("[cron] Solicitando status para", merged.map(e => e.id)) const result = await this.getMassActionsStatus(merged) } @@ -55,16 +55,9 @@ export class CheckObjeniousRequests { const PATH = "/actions/massActions/" const updated = [] - const iccids = operationsList - .map(e => e.iccids) - .flat() - const mass_actions = operationsList .filter(e => e.mass_action_id != undefined) - const iccidSet = new Set(iccids) - console.log("iccidSet", iccidSet) - // 1. Una peticion por cada accion a comprobar // Las peticiones por iccid u otro filtro tardan ~50s for (const originalAction of mass_actions) { @@ -79,18 +72,18 @@ export class CheckObjeniousRequests { try { res = await req } catch (e) { - console.error("Error comprobando el estado de ", originalAction) - console.error("Error: ", e) + console.error("[cron] Error comprobando el estado de ", originalAction) + console.error("[cron] Error: ", e) return; } const { data } = res - console.log("Estado de : ", originalAction.mass_action_id, originalAction.iccids) + console.log("[cron] Estado de : ", originalAction.mass_action_id, originalAction.iccids) console.log(res.status, data) if (res.status != 200 || data == undefined) { - console.error("Error buscando los massActions") + console.error("[cron] Error buscando los massActions") continue; } @@ -98,8 +91,7 @@ export class CheckObjeniousRequests { const { id, status, info } = data if (status != originalAction.objenious_status) { - console.log(status, "!=", originalAction.objenious_status) - console.log("Actualizando", originalAction, status) + console.log("[cron] Actualizando", originalAction.id, originalAction.iccids, status) const uorStatus = this.mapStatus(status) const updateData: ObjeniousOperationChange = { operation_id: originalAction.id!, @@ -109,10 +101,22 @@ export class CheckObjeniousRequests { previous_status: originalAction.status } + originalAction.status = uorStatus; originalAction.objenious_status = status; originalAction.last_change_date = new Date().toISOString() + if (uorStatus == "finished") { + this.notifyFinalization(originalAction) + .then(e => { + console.log("Notificada la activacion de ", originalAction.iccids) + }) + .catch(e => { + console.error("Error enviando la activacion de ", originalAction) + console.error(e) + }) + } + if (info != undefined) { updateData.info = info } @@ -191,10 +195,22 @@ export class CheckObjeniousRequests { console.log("Error actualizando el estado de ", request) continue; } - } // 3. Se devuelve la lista de los requests con las actualizaciones return operationsList } + + /** + * Se devuelve la respuesta de una operacion completa de objenious + * al servicio que manda los mails + */ + private async notifyFinalization(operation: ObjeniousOperation) { + const req = this.httpClient.client.post(env.NOTIFICATION_URL, + { operation: operation } + ) + await req + } } + + diff --git a/packages/sim-shared/domain/operationsRepository.port.ts b/packages/sim-shared/domain/operationsRepository.port.ts index 23c82d9..e148660 100644 --- a/packages/sim-shared/domain/operationsRepository.port.ts +++ b/packages/sim-shared/domain/operationsRepository.port.ts @@ -13,11 +13,11 @@ export type ObjeniousOperation = { operation: string; retry_count?: number; max_retry?: number; - max_date_retry?: Date | null; + max_date_retry?: string | null; iccids: string[]; request_id?: string; mass_action_id?: string; - end_date?: Date | null; + end_date?: string | null; error?: string | null; status: StatusEnum; objenious_status?: string; From 4d778e96ea12cf02e596db6680b167e3ab26193e Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 13:29:46 +0100 Subject: [PATCH 15/44] Problema de despliegue --- deployment/develop/jenkinsfile.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index a8430a9..bd29740 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -22,6 +22,7 @@ pipeline { } stage("🧱 Building") { steps { + sh 'rm -rf dist/' sh 'yarn run build' } } From 261342a629b9500a00e51d2211c9af234bd84429 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 13:41:45 +0100 Subject: [PATCH 16/44] Prueba despliegue --- deployment/develop/docker/entrypoint.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index 869bc27..31afa2a 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/sh +cd /hom -(cd /home/node/app/packages/sim-objenious-cron && node index.js) & -(cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & -cd /home/node/app/packages/sim-entrada-eventos && exec node index.js +cd /home/node/app && yarn start +# (cd /home/node/app/packages/sim-objenious-cron && node index.js) & +# (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & +# cd /home/node/app/packages/sim-entrada-eventos && exec node index.js From 4a585958703ce06da6c199791481205ec4290f32 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 15:14:15 +0100 Subject: [PATCH 17/44] =?UTF-8?q?=C3=B1adir=20numero=20en=20la=20respuesta?= =?UTF-8?q?=20de=20las=20activaciones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/sim-objenious/Unit action by id copy.bru | 33 +++++++++++++++++++ .../tasks/check_objenious_request.ts | 32 ++++++++++++++++-- .../domain/operationsRepository.port.ts | 2 +- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 docs/sim-objenious/Unit action by id copy.bru diff --git a/docs/sim-objenious/Unit action by id copy.bru b/docs/sim-objenious/Unit action by id copy.bru new file mode 100644 index 0000000..5591505 --- /dev/null +++ b/docs/sim-objenious/Unit action by id copy.bru @@ -0,0 +1,33 @@ +meta { + name: Unit action by id copy + type: http + seq: 19 +} + +get { + url: https://api-getway.objenious.com/ws/actions/massActions/{{id}} + body: formUrlEncoded + auth: bearer +} + +auth:bearer { + token: {{ws-access-token-partenaire}} +} + +body:json { + { + "identifier": { + "identifiers": ["8933201124059175967"], + "identifierType": "ICCID" + } + } +} + +vars:pre-request { + id: 5192767 +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index d535ab5..377e658 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -107,7 +107,14 @@ export class CheckObjeniousRequests { originalAction.last_change_date = new Date().toISOString() if (uorStatus == "finished") { - this.notifyFinalization(originalAction) + const targetIccids = JSON.parse(originalAction.iccids || "[]") as string[] + const lineData = await this.getLineData(targetIccids) + const msisdn = lineData.content[0].identifier.msisdn + + this.notifyFinalization({ + ...originalAction, + msisdn + }) .then(e => { console.log("Notificada la activacion de ", originalAction.iccids) }) @@ -148,6 +155,26 @@ export class CheckObjeniousRequests { return res } + private async getLineData(iccids: string[]) { + const PATH = "/lines" + + const req = this.httpClient.client.get(PATH, { + params: { + pageSize: 100, // no hace fata + "identifier.identifierType": "ICCID", + "identifier.identifiers": iccids + } + }) + + try { + const res = await req + return res.data + } catch (e) { + console.error("Error obteniendo datos de la sim") + throw new Error(String(e)) + } + } + /** * Refrescar los requests hasta que conseguir una Id de mass action * Como no se puede consultar por @@ -205,7 +232,8 @@ export class CheckObjeniousRequests { * Se devuelve la respuesta de una operacion completa de objenious * al servicio que manda los mails */ - private async notifyFinalization(operation: ObjeniousOperation) { + private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { + const req = this.httpClient.client.post(env.NOTIFICATION_URL, { operation: operation } ) diff --git a/packages/sim-shared/domain/operationsRepository.port.ts b/packages/sim-shared/domain/operationsRepository.port.ts index e148660..1892b86 100644 --- a/packages/sim-shared/domain/operationsRepository.port.ts +++ b/packages/sim-shared/domain/operationsRepository.port.ts @@ -14,7 +14,7 @@ export type ObjeniousOperation = { retry_count?: number; max_retry?: number; max_date_retry?: string | null; - iccids: string[]; + iccids: string; // Deberia ser string[] pero no parseo la lista de iccids request_id?: string; mass_action_id?: string; end_date?: string | null; From 166abf8b167862f552c8aa1daf964c3085f3f219 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 15:41:03 +0100 Subject: [PATCH 18/44] Error de tipado --- packages/sim-consumidor-objenious/aplication/Sim.usecases.ts | 5 ++--- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/sim-consumidor-objenious/aplication/Sim.usecases.ts b/packages/sim-consumidor-objenious/aplication/Sim.usecases.ts index 2842a93..adcf35d 100644 --- a/packages/sim-consumidor-objenious/aplication/Sim.usecases.ts +++ b/packages/sim-consumidor-objenious/aplication/Sim.usecases.ts @@ -8,7 +8,6 @@ import { ObjeniousOperation, IOperationsRepository as OperationsRepositoryPort } // - Pasar a un archivo de DTOs // - Mucha repeticion por funcion, deberia hacer una plantilla - export class SimUseCases { private readonly httpClient: HttpClient private readonly operationRepository: OperationsRepositoryPort @@ -41,7 +40,7 @@ export class SimUseCases { const operation: ObjeniousOperation = { operation: "activate", - iccids: activationData.identifier.identifiers, + iccids: String(activationData.identifier.identifiers), status: "noMassID", request_id: response.data.requestId } @@ -84,7 +83,7 @@ export class SimUseCases { console.log("Sim preactivada con exito", resp.data) const operation: ObjeniousOperation = { operation: "preActivate", - iccids: preActivateData.identifier.identifiers, + iccids: String(preActivateData.identifier.identifiers), status: "noMassID", request_id: resp.data.requestId } diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 377e658..873f24f 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -105,7 +105,7 @@ export class CheckObjeniousRequests { originalAction.status = uorStatus; originalAction.objenious_status = status; originalAction.last_change_date = new Date().toISOString() - + console.log(" ----> Status", uorStatus) if (uorStatus == "finished") { const targetIccids = JSON.parse(originalAction.iccids || "[]") as string[] const lineData = await this.getLineData(targetIccids) @@ -233,7 +233,7 @@ export class CheckObjeniousRequests { * al servicio que manda los mails */ private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { - + console.log("Notificada, ", operation) const req = this.httpClient.client.post(env.NOTIFICATION_URL, { operation: operation } ) From 54e670cb87f5f883681a1a3a611d4919743730cd Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 17:09:23 +0100 Subject: [PATCH 19/44] Errata --- deployment/develop/docker/entrypoint.sh | 2 +- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index 31afa2a..3d74e51 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,5 +1,5 @@ #!/bin/sh -cd /hom +cd /home cd /home/node/app && yarn start # (cd /home/node/app/packages/sim-objenious-cron && node index.js) & diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 873f24f..036cefa 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -101,14 +101,15 @@ export class CheckObjeniousRequests { previous_status: originalAction.status } - originalAction.status = uorStatus; originalAction.objenious_status = status; originalAction.last_change_date = new Date().toISOString() console.log(" ----> Status", uorStatus) - if (uorStatus == "finished") { + if (uorStatus /*== "finished"*/) { + console.log(" ****> Status", uorStatus) const targetIccids = JSON.parse(originalAction.iccids || "[]") as string[] const lineData = await this.getLineData(targetIccids) + console.log("lineData", lineData.content[0]) const msisdn = lineData.content[0].identifier.msisdn this.notifyFinalization({ From 1888b824254e8dbe1c936354ba4c55c915d898b7 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:11:23 +0100 Subject: [PATCH 20/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index e1b668a..06d787d 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -33,6 +33,18 @@ services: - internal labels: - "io.portainer.accesscontrol.teams=develop" + - "traefik.enable=true" + - "traefik.http.routers.sf-sims-rabbitmq.entrypoints=web" + - "traefik.http.routers.sf-sims-rabbitmq.rule=Host(`sf-sims-rabbitmq.savefamilygps.net`)" + - "traefik.http.middlewares.sf-sims-rabbitmq-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.sf-sims-rabbitmq.middlewares=sf-sims-rabbitmq-https-redirect" + - "traefik.http.routers.sf-sims-rabbitmq-secure.entrypoints=websecure" + - "traefik.http.routers.sf-sims-rabbitmq-secure.rule=Host(`sf-sims-rabbitmq.savefamilygps.net`)" + - "traefik.http.routers.sf-sims-rabbitmq-secure.tls=true" + - "traefik.http.routers.sf-sims-rabbitmq-secure.service=sf-sims-rabbitmq" + - "traefik.http.routers.sf-sims-rabbitmq-secure.tls.certresolver=myresolver" + - "traefik.http.services.sf-sims-rabbitmq.loadbalancer.server.port=15672" + - "traefik.docker.network=proxy" sf-sims-api: container_name: sf-sims-api @@ -84,23 +96,3 @@ services: - "traefik.http.routers.sf-sims-secure.tls.certresolver=myresolver" - "traefik.http.services.sf-sims.loadbalancer.server.port=${PORT}" - "traefik.docker.network=proxy" - - postgresql-sim: - image: postgres:16.1 - env_file: - - ./.env - ports: - - 5432 - volumes: - - ./postgres:/var/lib/postgres/data - - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql - healthcheck: - test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] - interval: 5s - retries: 5 - start_period: 5s - timeout: 5s - networks: - - internal - labels: - - "io.portainer.accesscontrol.teams=develop" From 71e0ec959cce2fedc32073d04be5b7b4d25fe542 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 17:24:28 +0100 Subject: [PATCH 21/44] Vuelta atras del entrypoint --- deployment/develop/docker/entrypoint.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index 3d74e51..5b4d68d 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/sh cd /home -cd /home/node/app && yarn start -# (cd /home/node/app/packages/sim-objenious-cron && node index.js) & -# (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & -# cd /home/node/app/packages/sim-entrada-eventos && exec node index.js +# cd /home/node/app && yarn start +(cd /home/node/app/packages/sim-objenious-cron && node index.js) & +(cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & +(cd /home/node/app/packages/sim-entrada-eventos && exec node index.js From 5296f58cef1d47734260b9f0eb5e68bfd69b4adb Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:44:44 +0100 Subject: [PATCH 22/44] Created deployment --- deployment/develop/docker/Dockerfile | 7 +------ deployment/develop/docker/entrypoint.sh | 5 +---- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 9a2801c..5b13083 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -5,12 +5,7 @@ WORKDIR /home/node/app COPY ./dist/packages ./packages COPY ./package.json ./ -RUN node -e "\ - const p = require('./package.json'); \ - delete p.workspaces; \ - delete p.scripts; \ - delete p.devDependencies; \ - require('fs').writeFileSync('./package.json', JSON.stringify(p, null, 2));" + RUN npm install --omit=dev RUN mkdir -p packages/node_modules && \ diff --git a/deployment/develop/docker/entrypoint.sh b/deployment/develop/docker/entrypoint.sh index 3d74e51..7c35e23 100644 --- a/deployment/develop/docker/entrypoint.sh +++ b/deployment/develop/docker/entrypoint.sh @@ -1,7 +1,4 @@ #!/bin/sh cd /home -cd /home/node/app && yarn start -# (cd /home/node/app/packages/sim-objenious-cron && node index.js) & -# (cd /home/node/app/packages/sim-consumidor-objenious && node index.js) & -# cd /home/node/app/packages/sim-entrada-eventos && exec node index.js +cd /home/node/app && yarn start \ No newline at end of file From 4df80f61718956b3f59f812004b6448bc4100e33 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:45:36 +0100 Subject: [PATCH 23/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 06d787d..9e1f6d5 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -60,8 +60,6 @@ services: depends_on: rabbitmq-sim-broker: condition: service_healthy - postgresql-sim: - condition: service_healthy networks: - savefamily - proxy From 6c6916c4cb805c943f3ad60bfaee4e1448b31a03 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:48:29 +0100 Subject: [PATCH 24/44] Created deployment --- deployment/develop/docker/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 5b13083..2eedcdc 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -2,11 +2,13 @@ FROM node:22-alpine AS release WORKDIR /home/node/app +RUN corepack enable + COPY ./dist/packages ./packages COPY ./package.json ./ -RUN npm install --omit=dev +RUN yarn install RUN mkdir -p packages/node_modules && \ ln -sf ../sim-shared packages/node_modules/sim-shared From 0a9470b1d83b379bff71c12c2ef75f2ca8a868be Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:52:22 +0100 Subject: [PATCH 25/44] Created deployment --- deployment/develop/docker/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 2eedcdc..cc8043d 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -8,6 +8,9 @@ COPY ./dist/packages ./packages COPY ./package.json ./ +# Force node-modules linker (no .yarnrc.yml in build context) +RUN echo 'nodeLinker: node-modules' > .yarnrc.yml + RUN yarn install RUN mkdir -p packages/node_modules && \ From 43cef09f8971a9e9d1f3d5f72630988d0adc8496 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:56:40 +0100 Subject: [PATCH 26/44] Created deployment --- deployment/develop/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index cc8043d..011e76a 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -16,6 +16,8 @@ RUN yarn install RUN mkdir -p packages/node_modules && \ ln -sf ../sim-shared packages/node_modules/sim-shared +RUN mkdir -p dist && ln -sf ../packages dist/packages + COPY ./entrypoint.sh ./ RUN chmod +x entrypoint.sh From 669abd3c43b9ec65c8c3781e5e39fcefa818240c Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 17:59:46 +0100 Subject: [PATCH 27/44] Created deployment --- deployment/develop/docker/Dockerfile | 3 --- deployment/develop/jenkinsfile.groovy | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/deployment/develop/docker/Dockerfile b/deployment/develop/docker/Dockerfile index 011e76a..e9dad49 100644 --- a/deployment/develop/docker/Dockerfile +++ b/deployment/develop/docker/Dockerfile @@ -13,9 +13,6 @@ RUN echo 'nodeLinker: node-modules' > .yarnrc.yml RUN yarn install -RUN mkdir -p packages/node_modules && \ - ln -sf ../sim-shared packages/node_modules/sim-shared - RUN mkdir -p dist && ln -sf ../packages dist/packages COPY ./entrypoint.sh ./ diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index bd29740..993a4b7 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -22,7 +22,7 @@ pipeline { } stage("🧱 Building") { steps { - sh 'rm -rf dist/' + sh 'rm -rf dist/' sh 'yarn run build' } } From a217914ec6e87b4f2854b31e66899ab3a8104404 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 18:07:54 +0100 Subject: [PATCH 28/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 9e1f6d5..8289bb1 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -31,6 +31,7 @@ services: - ./rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro networks: - internal + - proxy labels: - "io.portainer.accesscontrol.teams=develop" - "traefik.enable=true" From fe5b492218175461b4c3ee20a36c10f5bfc216ea Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 18:10:39 +0100 Subject: [PATCH 29/44] Error de la ruta de env --- packages/sim-entrada-eventos/config/env/index.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/sim-entrada-eventos/config/env/index.ts b/packages/sim-entrada-eventos/config/env/index.ts index a27000d..fb61bca 100644 --- a/packages/sim-entrada-eventos/config/env/index.ts +++ b/packages/sim-entrada-eventos/config/env/index.ts @@ -1,7 +1,9 @@ import { loadEnvFile } from "node:process"; import path from "node:path"; -loadEnvFile(path.join(import.meta.dirname, "../../../../.env")) + +loadEnvFile(path.join("../../.env")) // Global +loadEnvFile(path.join("./.env")) // base export const env = { ENVIRONMENT: process.env.ENVIORMENT, @@ -12,8 +14,8 @@ export const env = { POSTGRES_HOST: process.env.POSTGRES_HOST, POSTGRES_DATABASE: process.env.POSTGRES_DATABASE, RABBITMQ_HOST: String(process.env.RABBITMQ_HOST ?? "localhost"), - RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "guest"), - RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "guest"), + RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "test"), + RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "test"), RABBITMQ_EXCHANGE: String(process.env.RABBITMQ_EXCHANGE ?? "/"), RABBITMQ_PORT: parseInt(process.env.RABBITMQ_PORT ?? "5672"), RABBITMQ_MODULENAME: process.env.MODULENAME, From b32e1af71c6f6c0b904a806ae19c87425ce5ab61 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 18:11:10 +0100 Subject: [PATCH 30/44] error env --- packages/sim-entrada-eventos/config/env/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/sim-entrada-eventos/config/env/index.ts b/packages/sim-entrada-eventos/config/env/index.ts index fb61bca..3923ba0 100644 --- a/packages/sim-entrada-eventos/config/env/index.ts +++ b/packages/sim-entrada-eventos/config/env/index.ts @@ -3,7 +3,6 @@ import path from "node:path"; loadEnvFile(path.join("../../.env")) // Global -loadEnvFile(path.join("./.env")) // base export const env = { ENVIRONMENT: process.env.ENVIORMENT, From d17e399a4c0ab416a35404e986b7048b723774df Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 18:21:49 +0100 Subject: [PATCH 31/44] Created deployment --- deployment/develop/jenkinsfile.groovy | 4 +- deployment/develop/rabbit/definitions.json | 91 ++++++++++++++++++++++ deployment/develop/rabbit/rabbitmq.conf | 3 + 3 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 deployment/develop/rabbit/definitions.json create mode 100644 deployment/develop/rabbit/rabbitmq.conf diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index 993a4b7..b5dfa44 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -65,8 +65,8 @@ pipeline { sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", - sourceFiles: "deployment/rabbit/**/*", - removePrefix: "deployment", + sourceFiles: "deployment/develop/rabbit/**/*", + removePrefix: "deployment/develop", ), sshTransfer( cleanRemote: false, diff --git a/deployment/develop/rabbit/definitions.json b/deployment/develop/rabbit/definitions.json new file mode 100644 index 0000000..6e66b35 --- /dev/null +++ b/deployment/develop/rabbit/definitions.json @@ -0,0 +1,91 @@ +{ + "rabbit_version": "4.2.2", + "rabbitmq_version": "4.2.2", + "product_name": "RabbitMQ", + "product_version": "4.2.2", + "users": [ + { + "name": "guest", + "password": "guest", + "hashing_algorithm": "rabbit_password_hashing_sha256", + "tags": "administrator" + } + ], + "vhosts": [ + { + "name": "sim-vhost" + } + ], + "permissions": [ + { + "user": "guest", + "vhost": "sim-vhost", + "configure": ".*", + "write": ".*", + "read": ".*" + } + ], + "topic_permissions": [], + "parameters": [], + "global_parameters": [ + { + "name": "cluster_name", + "value": "rabbit@a8d5c6e08439" + }, + { + "name": "internal_cluster_id", + "value": "rabbitmq-cluster-id-gXeBLbsUC2W2tU0Bx_QY_w" + } + ], + "policies": [ + { + "vhost": "sim-vhost", + "name": "pol.sim.dlx", + "pattern": "sim.*", + "apply-to": "queues", + "definition": { + "dead-letter-exchange": "sim.dlx" + }, + "priority": 7 + } + ], + "exchanges": [ + { + "name": "sim.exchange", + "vhost": "sim-vhost", + "type": "topic", + "durable": true, + "auto_delete": false, + "internal": false, + "argurments": {} + }, + { + "name": "sim.dlx", + "vhost": "sim-vhost", + "type": "topic", + "durable": true, + "auto_delete": false, + "internal": false, + "argurments": {} + } + ], + "queues": [ + { + "name": "sim.logs", + "vhost": "sim-vhost", + "durable": true, + "auto_delete": false, + "arguments": {} + } + ], + "bindings": [ + { + "source": "sim.exchange", + "vhost": "sim-vhost", + "destination": "sim.logs", + "destination_type": "queue", + "routing_key": "sim.#", + "arguments": {} + } + ] +} diff --git a/deployment/develop/rabbit/rabbitmq.conf b/deployment/develop/rabbit/rabbitmq.conf new file mode 100644 index 0000000..a950954 --- /dev/null +++ b/deployment/develop/rabbit/rabbitmq.conf @@ -0,0 +1,3 @@ +management.load_definitions = /etc/rabbitmq/definitions.json + +default_queue_type = quorum \ No newline at end of file From e878c9a27e6a41fda6532c1359eacb9f6235113c Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 18:41:02 +0100 Subject: [PATCH 32/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 2 + deployment/develop/jenkinsfile.groovy | 4 + deployment/develop/rabbit/definitions.json | 172 +++++++++--------- deployment/develop/rabbit/rabbitmq.conf | 1 + 4 files changed, 89 insertions(+), 90 deletions(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 8289bb1..7e801ff 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -71,6 +71,8 @@ services: - ./.env:/home/node/app/.env:ro - ./sim-consumidor-objenious.env:/home/node/app/packages/sim-consumidor-objenious/.env:ro - ./sim-objenious-cron.env:/home/node/app/packages/sim-objenious-cron/.env:ro + - ./obj.pem:/home/node/app/packages/sim-consumidor-objenious/obj.pem:ro + - ./obj.pem:/home/node/app/packages/sim-objenious-cron/obj.pem:ro healthcheck: test: [ diff --git a/deployment/develop/jenkinsfile.groovy b/deployment/develop/jenkinsfile.groovy index b5dfa44..4768bfd 100644 --- a/deployment/develop/jenkinsfile.groovy +++ b/deployment/develop/jenkinsfile.groovy @@ -50,6 +50,10 @@ pipeline { cleanRemote: false, execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/sim-objenious-cron.env $APP_REMOTE_PATH/sim-objenious-cron.env" ), + sshTransfer( + cleanRemote: false, + execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/obj.pem $APP_REMOTE_PATH/obj.pem" + ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", diff --git a/deployment/develop/rabbit/definitions.json b/deployment/develop/rabbit/definitions.json index 6e66b35..50c94d8 100644 --- a/deployment/develop/rabbit/definitions.json +++ b/deployment/develop/rabbit/definitions.json @@ -1,91 +1,83 @@ { - "rabbit_version": "4.2.2", - "rabbitmq_version": "4.2.2", - "product_name": "RabbitMQ", - "product_version": "4.2.2", - "users": [ - { - "name": "guest", - "password": "guest", - "hashing_algorithm": "rabbit_password_hashing_sha256", - "tags": "administrator" - } - ], - "vhosts": [ - { - "name": "sim-vhost" - } - ], - "permissions": [ - { - "user": "guest", - "vhost": "sim-vhost", - "configure": ".*", - "write": ".*", - "read": ".*" - } - ], - "topic_permissions": [], - "parameters": [], - "global_parameters": [ - { - "name": "cluster_name", - "value": "rabbit@a8d5c6e08439" - }, - { - "name": "internal_cluster_id", - "value": "rabbitmq-cluster-id-gXeBLbsUC2W2tU0Bx_QY_w" - } - ], - "policies": [ - { - "vhost": "sim-vhost", - "name": "pol.sim.dlx", - "pattern": "sim.*", - "apply-to": "queues", - "definition": { - "dead-letter-exchange": "sim.dlx" - }, - "priority": 7 - } - ], - "exchanges": [ - { - "name": "sim.exchange", - "vhost": "sim-vhost", - "type": "topic", - "durable": true, - "auto_delete": false, - "internal": false, - "argurments": {} - }, - { - "name": "sim.dlx", - "vhost": "sim-vhost", - "type": "topic", - "durable": true, - "auto_delete": false, - "internal": false, - "argurments": {} - } - ], - "queues": [ - { - "name": "sim.logs", - "vhost": "sim-vhost", - "durable": true, - "auto_delete": false, - "arguments": {} - } - ], - "bindings": [ - { - "source": "sim.exchange", - "vhost": "sim-vhost", - "destination": "sim.logs", - "destination_type": "queue", - "routing_key": "sim.#", - "arguments": {} - } - ] -} + "rabbit_version": "4.2.2", + "rabbitmq_version": "4.2.2", + "product_name": "RabbitMQ", + "product_version": "4.2.2", + "vhosts": [ + { + "name": "sim-vhost" + } + ], + "permissions": [ + { + "user": "guest", + "vhost": "sim-vhost", + "configure": ".*", + "write": ".*", + "read": ".*" + } + ], + "topic_permissions": [], + "parameters": [], + "global_parameters": [ + { + "name": "cluster_name", + "value": "rabbit@a8d5c6e08439" + }, + { + "name": "internal_cluster_id", + "value": "rabbitmq-cluster-id-gXeBLbsUC2W2tU0Bx_QY_w" + } + ], + "policies": [ + { + "vhost": "sim-vhost", + "name": "pol.sim.dlx", + "pattern": "sim.*", + "apply-to": "queues", + "definition": { + "dead-letter-exchange": "sim.dlx" + }, + "priority": 7 + } + ], + "exchanges": [ + { + "name": "sim.exchange", + "vhost": "sim-vhost", + "type": "topic", + "durable": true, + "auto_delete": false, + "internal": false, + "argurments": {} + }, + { + "name": "sim.dlx", + "vhost": "sim-vhost", + "type": "topic", + "durable": true, + "auto_delete": false, + "internal": false, + "argurments": {} + } + ], + "queues": [ + { + "name": "sim.logs", + "vhost": "sim-vhost", + "durable": true, + "auto_delete": false, + "arguments": {} + } + ], + "bindings": [ + { + "source": "sim.exchange", + "vhost": "sim-vhost", + "destination": "sim.logs", + "destination_type": "queue", + "routing_key": "sim.#", + "arguments": {} + } + ] +} \ No newline at end of file diff --git a/deployment/develop/rabbit/rabbitmq.conf b/deployment/develop/rabbit/rabbitmq.conf index a950954..25e4351 100644 --- a/deployment/develop/rabbit/rabbitmq.conf +++ b/deployment/develop/rabbit/rabbitmq.conf @@ -1,3 +1,4 @@ management.load_definitions = /etc/rabbitmq/definitions.json +default_vhost = sim-vhost default_queue_type = quorum \ No newline at end of file From c4721328f818bcefa01c211af96e6f0638c32863 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 18:52:12 +0100 Subject: [PATCH 33/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 9 ++++++--- deployment/develop/rabbit/definitions.json | 9 ++++++++- .../develop/rabbit/docker-entrypoint-wrapper.sh | 12 ++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) create mode 100755 deployment/develop/rabbit/docker-entrypoint-wrapper.sh diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index 7e801ff..c42a0ae 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -23,12 +23,15 @@ services: timeout: 5s retries: 5 environment: - RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER} - RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} + RABBITMQ_USER: ${RABBITMQ_USER} + RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD} + entrypoint: ["/usr/local/bin/docker-entrypoint-wrapper.sh"] + command: ["rabbitmq-server"] volumes: + - ./rabbit/docker-entrypoint-wrapper.sh:/usr/local/bin/docker-entrypoint-wrapper.sh:ro - ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro - ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro - - ./rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro + - ./rabbit/definitions.json:/etc/rabbitmq/definitions.template.json:ro networks: - internal - proxy diff --git a/deployment/develop/rabbit/definitions.json b/deployment/develop/rabbit/definitions.json index 50c94d8..d8c3b60 100644 --- a/deployment/develop/rabbit/definitions.json +++ b/deployment/develop/rabbit/definitions.json @@ -3,6 +3,13 @@ "rabbitmq_version": "4.2.2", "product_name": "RabbitMQ", "product_version": "4.2.2", + "users": [ + { + "name": "RABBITMQ_USER_PLACEHOLDER", + "password": "RABBITMQ_PASSWORD_PLACEHOLDER", + "tags": ["administrator"] + } + ], "vhosts": [ { "name": "sim-vhost" @@ -10,7 +17,7 @@ ], "permissions": [ { - "user": "guest", + "user": "RABBITMQ_USER_PLACEHOLDER", "vhost": "sim-vhost", "configure": ".*", "write": ".*", diff --git a/deployment/develop/rabbit/docker-entrypoint-wrapper.sh b/deployment/develop/rabbit/docker-entrypoint-wrapper.sh new file mode 100755 index 0000000..a960ee7 --- /dev/null +++ b/deployment/develop/rabbit/docker-entrypoint-wrapper.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -eu + +# Substitute env vars into definitions template before RabbitMQ starts. +# RabbitMQ 4.x skips default user creation when definitions.json is loaded, +# so the user must be defined in the JSON itself. +sed \ + -e "s|RABBITMQ_USER_PLACEHOLDER|${RABBITMQ_USER}|g" \ + -e "s|RABBITMQ_PASSWORD_PLACEHOLDER|${RABBITMQ_PASSWORD}|g" \ + /etc/rabbitmq/definitions.template.json > /etc/rabbitmq/definitions.json + +exec docker-entrypoint.sh "$@" From f176788267b21f2d70ef739c422099b8c0512de5 Mon Sep 17 00:00:00 2001 From: hector Date: Wed, 11 Feb 2026 18:53:40 +0100 Subject: [PATCH 34/44] Created deployment --- deployment/develop/docker/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/develop/docker/docker-compose.yaml b/deployment/develop/docker/docker-compose.yaml index c42a0ae..0ff7ea6 100644 --- a/deployment/develop/docker/docker-compose.yaml +++ b/deployment/develop/docker/docker-compose.yaml @@ -25,7 +25,7 @@ services: environment: RABBITMQ_USER: ${RABBITMQ_USER} RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD} - entrypoint: ["/usr/local/bin/docker-entrypoint-wrapper.sh"] + entrypoint: ["bash", "/usr/local/bin/docker-entrypoint-wrapper.sh"] command: ["rabbitmq-server"] volumes: - ./rabbit/docker-entrypoint-wrapper.sh:/usr/local/bin/docker-entrypoint-wrapper.sh:ro From d91e7e746c07a3625c8995fa4897494c30f24c9a Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 19:34:31 +0100 Subject: [PATCH 35/44] Config --- packages/sim-consumidor-nos/config/env/index.ts | 4 ++-- packages/sim-consumidor-objenious/config/env/index.ts | 4 ++-- packages/sim-objenious-cron/.env | 2 +- .../sim-objenious-cron/tasks/check_objenious_request.ts | 8 +++++++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/sim-consumidor-nos/config/env/index.ts b/packages/sim-consumidor-nos/config/env/index.ts index f803690..021873e 100644 --- a/packages/sim-consumidor-nos/config/env/index.ts +++ b/packages/sim-consumidor-nos/config/env/index.ts @@ -9,8 +9,8 @@ export const env = { POSTGRES_HOST: process.env.POSTGRES_HOST, POSTGRES_DATABASE: process.env.POSTGRES_DATABASE, RABBITMQ_HOST: String(process.env.RABBITMQ_HOST ?? "localhost"), - RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "guest"), - RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "guest"), + RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "test"), + RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "test"), RABBITMQ_EXCHANGE: String(process.env.RABBITMQ_EXCHANGE ?? "/"), RABBITMQ_PORT: parseInt(process.env.RABBITMQ_PORT ?? "5672"), RABBITMQ_MODULENAME: process.env.MODULENAME, diff --git a/packages/sim-consumidor-objenious/config/env/index.ts b/packages/sim-consumidor-objenious/config/env/index.ts index 8977540..73b33a7 100644 --- a/packages/sim-consumidor-objenious/config/env/index.ts +++ b/packages/sim-consumidor-objenious/config/env/index.ts @@ -12,8 +12,8 @@ export const env = { POSTGRES_HOST: process.env.POSTGRES_HOST, POSTGRES_DATABASE: process.env.POSTGRES_DATABASE, RABBITMQ_HOST: String(process.env.RABBITMQ_HOST ?? "localhost"), - RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "guest"), - RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "guest"), + RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "test"), + RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "test"), RABBITMQ_EXCHANGE: String(process.env.RABBITMQ_EXCHANGE ?? "/"), RABBITMQ_PORT: parseInt(process.env.RABBITMQ_PORT ?? "5672"), RABBITMQ_MODULENAME: process.env.MODULENAME, diff --git a/packages/sim-objenious-cron/.env b/packages/sim-objenious-cron/.env index 63352e7..18b6c62 100644 --- a/packages/sim-objenious-cron/.env +++ b/packages/sim-objenious-cron/.env @@ -7,4 +7,4 @@ OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E OBJ_BASE_URL=https://api-getway.objenious.com/ws //OBJ_BASE_URL=https://api-getway.objenious.com/ws/test -NOTIFICATION_URL=https://api-paloma.com +NOTIFICATION_URL=https://sf-sim-activation.savefamilygps.net/send-activation-mail diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 036cefa..2ed8e46 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -236,7 +236,13 @@ export class CheckObjeniousRequests { private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { console.log("Notificada, ", operation) const req = this.httpClient.client.post(env.NOTIFICATION_URL, - { operation: operation } + { operation: operation }, + { + headers: { + "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" + } + } + ) await req } From 8fcf592b8840d58e9dc90f6c1cc79fb19b15e275 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 19:43:54 +0100 Subject: [PATCH 36/44] URLURL --- .../sim-objenious-cron/tasks/check_objenious_request.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 2ed8e46..72f6773 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -235,12 +235,14 @@ export class CheckObjeniousRequests { */ private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { console.log("Notificada, ", operation) - const req = this.httpClient.client.post(env.NOTIFICATION_URL, + + const req = this.httpClient.client.post("", { operation: operation }, { headers: { "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" - } + }, + baseURL: env.NOTIFICATION_URL } ) From 404f142c7ed6a905d5bd1bbc6dd529844bd199c4 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 19:46:33 +0100 Subject: [PATCH 37/44] Inicio del cron --- packages/sim-objenious-cron/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sim-objenious-cron/index.ts b/packages/sim-objenious-cron/index.ts index a9d0e47..6f51158 100644 --- a/packages/sim-objenious-cron/index.ts +++ b/packages/sim-objenious-cron/index.ts @@ -22,6 +22,7 @@ async function startCron() { httpClient ) + await objTask.getPendingOperations() const interval = setInterval(async () => { console.log("Updating...") await objTask.getPendingOperations() From 672de92e5b9545a38bb3dbca5f3f96998f925707 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 19:53:55 +0100 Subject: [PATCH 38/44] Fix url --- packages/sim-objenious-cron/.env | 2 +- .../tasks/check_objenious_request.ts | 30 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/packages/sim-objenious-cron/.env b/packages/sim-objenious-cron/.env index 18b6c62..627af25 100644 --- a/packages/sim-objenious-cron/.env +++ b/packages/sim-objenious-cron/.env @@ -7,4 +7,4 @@ OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E OBJ_BASE_URL=https://api-getway.objenious.com/ws //OBJ_BASE_URL=https://api-getway.objenious.com/ws/test -NOTIFICATION_URL=https://sf-sim-activation.savefamilygps.net/send-activation-mail +NOTIFICATION_URL="https://sf-sim-activation.savefamilygps.net/send-activation-mail" diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 72f6773..fd31a8d 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -1,4 +1,5 @@ import { env } from "#config/env/index.js"; +import axios from "axios"; import { IOperationsRepository, Objenious, ObjeniousOperation, ObjeniousOperationChange, StatusEnum } from "sim-shared/domain/operationsRepository.port.js"; import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js"; @@ -236,16 +237,25 @@ export class CheckObjeniousRequests { private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { console.log("Notificada, ", operation) - const req = this.httpClient.client.post("", - { operation: operation }, - { - headers: { - "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" - }, - baseURL: env.NOTIFICATION_URL - } - - ) + const req = axios.post(env.NOTIFICATION_URL, { + operation: operation + }, { + headers: { + "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" + }, + baseURL: env.NOTIFICATION_URL + }) + /* + const req = this.httpClient.client.post("", + { operation: operation }, + { + headers: { + "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" + }, + baseURL: env.NOTIFICATION_URL + } + + )*/ await req } } From e454a3fee13df5b2c83488853d24033769287086 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 19:56:46 +0100 Subject: [PATCH 39/44] url --- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index fd31a8d..6644699 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -242,8 +242,7 @@ export class CheckObjeniousRequests { }, { headers: { "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" - }, - baseURL: env.NOTIFICATION_URL + } }) /* const req = this.httpClient.client.post("", From 2299d5f735261381d988ee0379b410fea7eaf403 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 20:08:22 +0100 Subject: [PATCH 40/44] Body --- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 6644699..78f29f3 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -238,7 +238,7 @@ export class CheckObjeniousRequests { console.log("Notificada, ", operation) const req = axios.post(env.NOTIFICATION_URL, { - operation: operation + operation }, { headers: { "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" From 6bc13409302e8619c129b22ec4c7497d90e65647 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 11 Feb 2026 20:24:33 +0100 Subject: [PATCH 41/44] operation --- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 78f29f3..99ca8bc 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -238,7 +238,7 @@ export class CheckObjeniousRequests { console.log("Notificada, ", operation) const req = axios.post(env.NOTIFICATION_URL, { - operation + ...operation }, { headers: { "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" From 3a55e5f0573765ec95a73fc965a91a1c4f32fba3 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Thu, 12 Feb 2026 08:56:11 +0100 Subject: [PATCH 42/44] Caracteres de escaoe en el iccid --- packages/sim-objenious-cron/tasks/check_objenious_request.ts | 4 ++-- packages/sim-shared/infrastructure/OperationRepository.ts | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 99ca8bc..f029950 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -108,7 +108,7 @@ export class CheckObjeniousRequests { console.log(" ----> Status", uorStatus) if (uorStatus /*== "finished"*/) { console.log(" ****> Status", uorStatus) - const targetIccids = JSON.parse(originalAction.iccids || "[]") as string[] + const targetIccids = originalAction.iccids const lineData = await this.getLineData(targetIccids) console.log("lineData", lineData.content[0]) const msisdn = lineData.content[0].identifier.msisdn @@ -157,7 +157,7 @@ export class CheckObjeniousRequests { return res } - private async getLineData(iccids: string[]) { + private async getLineData(iccids: string) { const PATH = "/lines" const req = this.httpClient.client.get(PATH, { diff --git a/packages/sim-shared/infrastructure/OperationRepository.ts b/packages/sim-shared/infrastructure/OperationRepository.ts index 4717756..14c02d6 100644 --- a/packages/sim-shared/infrastructure/OperationRepository.ts +++ b/packages/sim-shared/infrastructure/OperationRepository.ts @@ -14,8 +14,7 @@ export class OperationsRepository implements IOperationsRepository { INSERT INTO objenious_operation (operation, iccids, status, max_retry, request_id) VALUES ($1, $2, $3, $4, $5) RETURNING *`; - const iccids = JSON.stringify(data.iccids) - const values = [data.operation, iccids, data.status, data.max_retry, data.request_id]; + const values = [data.operation, data.iccids, data.status, data.max_retry, data.request_id]; const { rows } = await this.pgClient.query(query, values); return >{ data: rows[0] From 8a53fb67497df7c71a0f2be87bfae6b8325fef90 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Thu, 12 Feb 2026 09:41:00 +0100 Subject: [PATCH 43/44] iccid en lista --- docs/sim-api/environments/prod.bru | 3 +++ packages/sim-objenious-cron/tasks/check_objenious_request.ts | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 docs/sim-api/environments/prod.bru diff --git a/docs/sim-api/environments/prod.bru b/docs/sim-api/environments/prod.bru new file mode 100644 index 0000000..1ef2e33 --- /dev/null +++ b/docs/sim-api/environments/prod.bru @@ -0,0 +1,3 @@ +vars { + baseurl: https://sf-sims.savefamilygps.net +} diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index f029950..81ec0d5 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -105,6 +105,7 @@ export class CheckObjeniousRequests { originalAction.status = uorStatus; originalAction.objenious_status = status; originalAction.last_change_date = new Date().toISOString() + originalAction.end_date = originalAction.last_change_date console.log(" ----> Status", uorStatus) if (uorStatus /*== "finished"*/) { console.log(" ****> Status", uorStatus) @@ -238,7 +239,8 @@ export class CheckObjeniousRequests { console.log("Notificada, ", operation) const req = axios.post(env.NOTIFICATION_URL, { - ...operation + ...operation, + iccids: [operation.iccids] }, { headers: { "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" From 44fea21a56af2aaab43ed2c0b076574681c6d376 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Fri, 13 Feb 2026 10:55:19 +0100 Subject: [PATCH 44/44] Fix de api-key y mejora del control de versiones --- docs/sim-api/Activate.bru | 2 +- docs/sim-api/Activation Email Health.bru | 16 ++++++++++++ docs/sim-api/Activation Email.bru | 26 +++++++++++++++++++ docs/sim-objenious/Get request by ID.bru | 2 +- package.json | 1 + packages/sim-objenious-cron/.env | 3 ++- .../sim-objenious-cron/config/env/index.ts | 23 +++++++++++++--- .../sim-objenious-cron/tasks/background1.ts | 1 - .../tasks/check_objenious_request.ts | 15 +---------- 9 files changed, 67 insertions(+), 22 deletions(-) create mode 100644 docs/sim-api/Activation Email Health.bru create mode 100644 docs/sim-api/Activation Email.bru delete mode 100644 packages/sim-objenious-cron/tasks/background1.ts diff --git a/docs/sim-api/Activate.bru b/docs/sim-api/Activate.bru index 58c9cf7..42a9d5c 100644 --- a/docs/sim-api/Activate.bru +++ b/docs/sim-api/Activate.bru @@ -11,7 +11,7 @@ post { } body:form-urlencoded { - iccid: 8933201125065160406 + iccid: 8933201125065160331 offer: SAVEFAMILY1 } diff --git a/docs/sim-api/Activation Email Health.bru b/docs/sim-api/Activation Email Health.bru new file mode 100644 index 0000000..eebbd63 --- /dev/null +++ b/docs/sim-api/Activation Email Health.bru @@ -0,0 +1,16 @@ +meta { + name: Activation Email Health + type: http + seq: 8 +} + +post { + url: https://sf-sim-activation.savefamily.net/health + body: none + auth: inherit +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/docs/sim-api/Activation Email.bru b/docs/sim-api/Activation Email.bru new file mode 100644 index 0000000..a6817c3 --- /dev/null +++ b/docs/sim-api/Activation Email.bru @@ -0,0 +1,26 @@ +meta { + name: Activation Email + type: http + seq: 6 +} + +post { + url: https://sf-sim-activation.savefamily.net/send-activation-mail + body: json + auth: inherit +} + +headers { + x-apikey-sim-activation: 9e48c4ac-1ab0-4397-b3f3-6c239200dfe6 +} + +body:json { + { + "iccids":["1234"] + } +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/docs/sim-objenious/Get request by ID.bru b/docs/sim-objenious/Get request by ID.bru index 82efb13..4c85e9e 100644 --- a/docs/sim-objenious/Get request by ID.bru +++ b/docs/sim-objenious/Get request by ID.bru @@ -37,7 +37,7 @@ body:form-urlencoded { } vars:pre-request { - params.id: 14111 + params.id: 14333 } settings { diff --git a/package.json b/package.json index a1f8c44..fb0a23e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "sim-eventos", + "version": "1.0.0", "packageManager": "yarn@4.12.0", "workspaces": [ "packages/*" diff --git a/packages/sim-objenious-cron/.env b/packages/sim-objenious-cron/.env index 627af25..06d6f02 100644 --- a/packages/sim-objenious-cron/.env +++ b/packages/sim-objenious-cron/.env @@ -5,6 +5,7 @@ OBJ_CLI_ASSERTION=XOc7FtwXD8hUX2SFVX94XSty8wkOmChkwDNF09O_aIxPubMDdFUdCDCB4zpzSI OBJ_CLIENT_ID=savefamily_rest_ws OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E OBJ_BASE_URL=https://api-getway.objenious.com/ws -//OBJ_BASE_URL=https://api-getway.objenious.com/ws/test +# OBJ_BASE_URL=https://api-getway.objenious.com/ws/test NOTIFICATION_URL="https://sf-sim-activation.savefamilygps.net/send-activation-mail" +SIM_ACTIVATION_API_KEY=9e48c4ac-1ab0-4397-b3f3-6c239200dfe6 diff --git a/packages/sim-objenious-cron/config/env/index.ts b/packages/sim-objenious-cron/config/env/index.ts index 2540574..a8d2fac 100644 --- a/packages/sim-objenious-cron/config/env/index.ts +++ b/packages/sim-objenious-cron/config/env/index.ts @@ -1,5 +1,6 @@ import { loadEnvFile } from "node:process"; import path from "node:path"; +import assert from "node:assert"; loadEnvFile(path.join("../../.env")) // Global loadEnvFile(path.join("./.env")) // base @@ -12,9 +13,9 @@ export const env = { POSTGRES_HOST: process.env.POSTGRES_HOST, POSTGRES_DATABASE: process.env.POSTGRES_DATABASE, RABBITMQ_HOST: String(process.env.RABBITMQ_HOST ?? "localhost"), - RABBITMQ_USER: String(process.env.RABBITMQ_USER ?? "guest"), - RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD ?? "guest"), - RABBITMQ_EXCHANGE: String(process.env.RABBITMQ_EXCHANGE ?? "/"), + RABBITMQ_USER: String(process.env.RABBITMQ_USER), + RABBITMQ_PASSWORD: String(process.env.RABBITMQ_PASSWORD), + RABBITMQ_EXCHANGE: String(process.env.RABBITMQ_EXCHANGE), RABBITMQ_PORT: parseInt(process.env.RABBITMQ_PORT ?? "5672"), RABBITMQ_MODULENAME: process.env.MODULENAME, RABBITMQ_TTL: process.env.RABBITMQ_TTL, @@ -30,6 +31,20 @@ export const env = { OBJ_KID: String(process.env.OBJ_KID), OBJ_BASE_URL: String(process.env.OBJ_BASE_URL), - NOTIFICATION_URL: String(process.env.NOTIFICATION_URL) + NOTIFICATION_URL: String(process.env.NOTIFICATION_URL), + SIM_ACTIVATION_API_KEY: String(process.env.SIM_ACTIVATION_API_KEY) }; +// assert las partes criticas +assert(env.RABBITMQ_PASSWORD != undefined) +assert(env.RABBITMQ_USER != undefined) +assert(env.SIM_ACTIVATION_API_KEY != undefined) +assert(env.NOTIFICATION_URL != undefined) + +if (env.ENVIRONMENT == "production") { + assert(env.RABBITMQ_PASSWORD != "guest") + assert(env.RABBITMQ_HOST != "localhost") +} + +console.log("CRON: ENV", env) + diff --git a/packages/sim-objenious-cron/tasks/background1.ts b/packages/sim-objenious-cron/tasks/background1.ts deleted file mode 100644 index e582b85..0000000 --- a/packages/sim-objenious-cron/tasks/background1.ts +++ /dev/null @@ -1 +0,0 @@ -export const task = async () => console.log("Background " + new Date().toISOString()) diff --git a/packages/sim-objenious-cron/tasks/check_objenious_request.ts b/packages/sim-objenious-cron/tasks/check_objenious_request.ts index 81ec0d5..4476117 100644 --- a/packages/sim-objenious-cron/tasks/check_objenious_request.ts +++ b/packages/sim-objenious-cron/tasks/check_objenious_request.ts @@ -236,27 +236,14 @@ export class CheckObjeniousRequests { * al servicio que manda los mails */ private async notifyFinalization(operation: ObjeniousOperation & { msisdn: string }) { - console.log("Notificada, ", operation) - const req = axios.post(env.NOTIFICATION_URL, { ...operation, iccids: [operation.iccids] }, { headers: { - "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" + "x-apikey-sim-activation": env.SIM_ACTIVATION_API_KEY } }) - /* - const req = this.httpClient.client.post("", - { operation: operation }, - { - headers: { - "x-apikey-sim-activation": "9e48c4ac-1ab0-4397-b3f3-6c239200dfe6" - }, - baseURL: env.NOTIFICATION_URL - } - - )*/ await req } }