06 5 stack tecnologico - lfnavarroj1/sport-app-platform GitHub Wiki
Stack tecnológico
Lectura de estados
- Verificado localmente: existe evidencia reproducible en el repositorio o entorno local.
- Línea base: tecnología aprobada por arquitectura.
- Planeado: uso definido sin evidencia de ejecución final.
- Pendiente: falta ratificación, configuración o implementación.
- Diferido: no pertenece a la primera solución.
Stack por capa
| Capa | Tecnología | Uso | Estado |
|---|---|---|---|
| Gestión y documentación | GitHub, Projects, Wiki, Markdown y Mermaid | Repositorios, backlog, decisiones y presentación. | Operativo. |
| Diseño UX | Figma | Prototipos web y móvil. | Línea base. |
| Web | Angular, TypeScript, HTML y CSS | Aplicación web y experiencia de escritorio. | Andamiaje disponible; versiones y librería visual por ratificar. |
| Móvil | Kotlin, Android SDK, Android Studio y MVVM | Aplicación móvil nativa. | Línea base; andamiaje y versiones pendientes. |
| Backend | Python 3.13, FastAPI 0.142.2, Pydantic 2.13.5, Uvicorn 0.54.0 y HTTPX 0.28.1 | Microservicios, BFF, validación y comunicación HTTP. | Verificado localmente. |
| Dependencias backend | uv 0.12.23 y uv.lock |
Workspace reproducible de nueve paquetes. | Verificado localmente. |
| Persistencia | PostgreSQL 17.11, SQLAlchemy 2.1.3, psycopg 3.3.6 y Alembic 1.20.0 | Datos por dominio y migraciones. | Verificado localmente para el alcance actual. |
| Mensajería | Google Cloud Pub/Sub | Eventos y trabajo asíncrono por dominio. | Línea base; evidencia remota actual pendiente. |
| Integración externa | Strava API V3 y patrón Adaptador | Sincronización sin acoplar el core al contrato externo. | Planeado. |
| Contenedores | Docker y Docker Desktop | Construcción OCI y entorno local. | Verificado localmente. |
| Orquestación | Kubernetes, GKE y Kustomize | Servicios core, configuración y escalamiento. | Local parcialmente verificado; GKE objetivo. |
| Servicios GCP | Cloud Run, Cloud SQL, Artifact Registry y Cloud Functions | Clientes/BFF, datos, imágenes e integración. | Arquitectura objetivo. |
| Infraestructura | Terraform y Secret Manager | Recursos compartidos, identidades y referencias a secretos desde sport-app-platform. |
Aprobado en ADR-021 y ADR-022; desarrollo local implementado y verificado, producción implementada sin aplicar. |
| CI/CD | GitHub Actions y OIDC/WIF | Calidad, seguridad, artefactos y promoción. | Workflows backend presentes; ejecución y despliegue remoto pendientes. |
Calidad y pruebas
| Tipo | Herramientas principales |
|---|---|
| Calidad Python | Ruff y mypy estricto. |
| Unitarias e integración backend | unittest, TestClient, PostgreSQL efímero y pruebas de contrato. |
| Web y E2E | Jasmine y Playwright. |
| Móvil | Espresso. |
| API y contratos | unittest, TestClient/HTTPX, OpenAPI, PostgreSQL efímero y emuladores aprobados. |
| Rendimiento | Locust para escenarios y k6 para smoke, estrés y umbrales de CI. |
| Seguridad | Gitleaks, Bandit y pip-audit; pruebas especializadas adicionales pendientes. |
Nota — herramientas de seguridad: Gitleaks detecta posibles secretos, tokens y credenciales en archivos o en el historial Git; Bandit realiza análisis estático de seguridad del código Python para localizar patrones inseguros; pip-audit compara las dependencias Python resueltas con avisos de vulnerabilidades conocidas. Son controles complementarios: no sustituyen revisión humana, pruebas funcionales, pruebas de penetración ni gestión segura de secretos.
Playwright se utiliza para recorridos web E2E y puede preparar o verificar datos por HTTP dentro de esos recorridos; no sustituye las pruebas de integración y contrato del backend. Postman no forma parte del stack vigente porque no existe una colección versionada, ejecución Newman ni un check de CI asociado. Una comprobación manual aislada en Postman no se considerará evidencia automatizada de aceptación.
Seguridad y operación
flowchart LR
CODE[Código] --> STATIC[Ruff, mypy y SAST]
STATIC --> TEST[Pruebas y cobertura]
TEST --> IMAGE[Imagen OCI]
IMAGE --> SCAN[Escaneo y digest]
SCAN --> REG[Artifact Registry]
REG --> DEPLOY[Despliegue autorizado]
OIDC[GitHub OIDC y WIF] --> DEPLOY
SEC[Secret Manager] --> DEPLOY
DEPLOY --> OBS[Logging, Monitoring y alertas]
Redis, Memcached, MongoDB y sharding permanecen diferidos. No deben incorporarse sin una nueva decisión arquitectónica y evidencia experimental.