Files
apps-registry/workloads/ecommerce
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
..
2026-07-31 23:27:01 -05:00
2026-07-24 06:40:21 +00:00
2026-07-31 23:27:01 -05:00
2026-07-31 23:27:01 -05:00

ARI Shopping Headless Storefront v4.1

Actualización enfocada en UX, interactividad y rendimiento sobre Next.js 15.5.10.

Correcciones principales

  • Encabezado blanco premium con acentos cyan, violeta, fucsia y navegación negra.
  • Imágenes promocionales sin opacity, mix-blend ni filtros de color.
  • Menú principal funcional mediante Drawer accesible de Radix UI.
  • Cuenta y favoritos funcionales.
  • Carrusel con flechas, teclado, scroll suave y scroll-snap.
  • Zoom real de producto entre 100% y 300%, rueda, botones, doble clic y arrastre.
  • Thumbnails WebP dedicados para tarjetas, búsqueda, carrito y favoritos.
  • Recursos originales recomprimidos y caché HTTP para /images.
  • next/image en modo unoptimized porque los recursos ya vienen procesados; evita latencia del optimizador durante la primera visita.
  • Menos componentes animados con JavaScript; las tarjetas usan transiciones CSS.
  • content-visibility para contenido fuera de pantalla.
  • Pantalla loading.tsx para transiciones de ruta.

Validación

npm ci
npm run typecheck
npm run build

Flujo

Gitea → Gitea Actions → Registry → actualización de frontend.yaml → Argo CD → Kubernetes.