Compare commits

..
Author SHA1 Message Date
gitea-actions b3da3cc131 chore(gitops): deploy Medusa v1.0.112 [skip ci] 2026-08-15 20:54:27 +00:00
devops e30093448e Merge fix/commerce-backend-npx-regression: arreglar npx roto en produccion
Build and Push Medusa / Escaneo de Secretos (Gitleaks) (push) Successful in 19s
Build and Push Medusa / Construir y publicar Medusa (push) Successful in 15m10s
2026-08-15 15:38:54 -05:00
devops 74ea0c624b fix(commerce-backend): regresion real -- npx roto en produccion tras remediacion de CVE
El fix de CVE-2026-59873 (rm -rf npm entero, mergeado en
fix/devsecops-medusa-cve-remediation) rompio en produccion el init
container "migrations" de workloads/ecommerce/commerce/medusa.yaml,
que corria "npx medusa db:migrate" contra la misma imagen. Detectado
revisando el estado real del cluster despues del deploy (kubectl get
pods): medusa-deploy quedo atascado en Init:CrashLoopBackOff con
"npx: executable file not found in $PATH".

Se probo primero borrar solo el tar vendorizado dentro de npm (en vez
de npm entero) para no tocar npx -- no alcanza: el propio npx depende
de ese mismo tar internamente (pacote/arborist), asi que sigue roto
igual ("Cannot find module 'tar'"), confirmado localmente.

Fix real: mantener el rm -rf de npm completo (sin CVE), y cambiar el
init container para invocar el CLI de Medusa directo con node, sin
pasar por npx -- mismo patron que ya usa el CMD de runtime de esta
misma imagen. Verificado localmente: build OK, "node .../cli/dist/index.js
db:migrate --help" funciona sin npm/npx presentes, Trivy en exit 0.
2026-08-15 15:36:50 -05:00
gitea-actions dac27bb262 chore(gitops): deploy Docs Portal v1.0.111 [skip ci] 2026-08-15 20:23:22 +00:00
devops f04bae61de Merge docs/devsecops-playbooks-y-hallazgos: 5 playbooks + cosign.md + index.md
Build and Push Docs Portal / Escaneo de Secretos (Gitleaks) (push) Successful in 18s
Build and Push Docs Portal / Construir y publicar Docs Portal (push) Successful in 5m10s
2026-08-15 15:17:59 -05:00
3 changed files with 29 additions and 12 deletions
+20 -7
View File
@@ -69,14 +69,27 @@ RUN apt-get update \
&& apt-get upgrade -y libgnutls30 \
&& rm -rf /var/lib/apt/lists/*
#
# El CLI global de npm que trae la imagen base node:*-slim no se usa en
# runtime (el CMD invoca a Medusa directo con `node`, nunca `npm`) y
# arrastra su propia copia vendorizada de `tar` con un CVE CRITICAL
# El CLI global de npm que trae la imagen base node:*-slim arrastra su
# propia copia vendorizada de `tar` con un CVE CRITICAL
# (CVE-2026-59873, detectado por Trivy en
# usr/local/lib/node_modules/npm/node_modules/tar). Se elimina en vez
# de forzar una versión: no es una dependencia real de este proyecto,
# así que no hay nada que "actualizar" -- solo superficie sin uso.
# usr/local/lib/node_modules/npm/node_modules/tar). Se elimina npm
# entero -- no alcanza con borrar solo el tar vendorizado: el propio
# `npx` depende de ese tar internamente (pacote/arborist) incluso para
# ejecutar un binario ya instalado localmente, así que queda roto igual
# si el paquete tar desaparece pero npm sigue ahí (confirmado
# probando "npx medusa --version" contra la imagen: falla con
# "Cannot find module 'tar'").
#
# OJO con este cambio: el init container "migrations" de
# workloads/ecommerce/commerce/medusa.yaml corría "npx medusa
# db:migrate" contra esta misma imagen -- un primer intento de este
# fix borraba npm sin ajustar ese comando y rompió el init container
# en producción ("npx: executable file not found in $PATH",
# medusa-deploy atascado en Init:CrashLoopBackOff, detectado revisando
# el estado real del cluster después del deploy). El fix completo
# incluye cambiar ese comando a invocar el CLI directo con `node`, sin
# pasar por npm/npx -- mismo patrón que ya usa el CMD de este
# Dockerfile más abajo.
RUN rm -rf /usr/local/lib/node_modules/npm
#
+1 -1
View File
@@ -16,7 +16,7 @@ spec:
- name: gitea-registry-secret
containers:
- name: docs-portal
image: gitea.cruzcloud.net/devops/docs-portal:v1.0.110
image: gitea.cruzcloud.net/devops/docs-portal:v1.0.111
ports:
- containerPort: 80
resources:
+8 -4
View File
@@ -52,11 +52,15 @@ spec:
memory: 64Mi
- name: migrations
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.108
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.112
imagePullPolicy: IfNotPresent
# node directo, sin npx: la imagen ya no trae npm (ver
# Dockerfile de commerce-backend, remediacion de
# CVE-2026-59873) -- mismo binario que ya invoca el CMD de
# runtime de esa misma imagen.
command:
- npx
- medusa
- node
- node_modules/@medusajs/cli/dist/index.js
- db:migrate
envFrom:
- configMapRef:
@@ -73,7 +77,7 @@ spec:
containers:
- name: medusa
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.108
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.112
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef: