Añadir Registro de decisiones

2026-01-18 17:47:04 +01:00
parent 2449b31d4b
commit ed32a66f64

58
Registro-de-decisiones.md Normal file

@@ -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