From ed32a66f6476c22676545f45d8d82b0e616abc7a Mon Sep 17 00:00:00 2001 From: husbando_enjoyer Date: Sun, 18 Jan 2026 17:47:04 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20Registro=20de=20decisiones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Registro-de-decisiones.md | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Registro-de-decisiones.md diff --git a/Registro-de-decisiones.md b/Registro-de-decisiones.md new file mode 100644 index 0000000..7eb6803 --- /dev/null +++ b/Registro-de-decisiones.md @@ -0,0 +1,58 @@ +Registro de decisiones y cambios (taller) + + Separar CI y CD en dos Jenkinsfiles +- Decisión: usar `Jenkinsfile.ci` y `Jenkinsfile.cd` en lugar de uno único. +- Motivo: separar responsabilidades (validación vs despliegue) y simplificar operación. +- Referencias: + - Issue #7 + - PR #8 + + Parametrización: pasar de puertos/health URLs a “base urls” +- Decisión: eliminar variables tipo `BACKEND_PORT`, `*_HEALTH_URL` y parametrizar: + - `VITE_API_BASE` + - `JENKINS_BASE_URL` + - `JENKINS_JOB_NAME` +- Motivo: compatibilizar local/VPS con menos fricción y sin duplicar config. +- Referencias: + - Issue #5 + - Issue #13 + +Compatibilizar VPS/local (context path + proxy) +- Decisión: mantener `/taller/` como base y proxy de `/taller/api/` hacia backend. +- Motivo: misma URL base en local y prod; despliegue más predecible. +- Referencias: + - Issue #13 + - `frontend/vite.config.js`, `frontend/nginx.conf` + +Mostrar datos de Jenkins en la web (historial builds) +- Decisión: exponer endpoint `/builds` en backend y mostrar historial (ultimas 5 builds). +- Motivo: es una curiosidad más que nada. Puede ser útil para montar un dashboard con el estado de las builds. +- Referencias: + - Issue #2 + - Commit https://openbokeron.uma.es/gitea/OpenBokeron/TallerCiCd/commit/790f167907cb01954d449bde9ecb8f7fcd9b5bf0 + +Manejo de errores al consultar Jenkins API +- Decisión: evitar propagar excepciones y devolver error coherente (`503` + payload estable). +- Motivo: el backend petaba :/. +- Referencias: + - Issue #16 + +Seguridad Jenkins (roles + CSRF/XSS + evitar RCE por Jenkinsfile) +- Decision: hardening Jenkins + forzar Jenkinsfile desde `main` con Remote Jenkinsfile Provider. +- Motivo: minimizar privilegios y mitigar ejecución de código arbitrario desde PRs. +- Referencias: + - Issue #12 + - PR #21 + +Compose: eliminar atributo `version` +- Decisión: quitar `version:` del compose. +- Motivo: se quejaba docker. +- Referencias: + - Issue #9 + - PR #10 + +Webhooks +- Decision: webhook de deploy en `main` configurado. +- Motivo: automatizar despliegue en main. +- Referencias: + - Issue #15 \ No newline at end of file