Skip to main content

Changelog

Tots els canvis notables del projecte Line Dance Platform es documentaran aquí.

El format s’inspira en Keep a Changelog
i el projecte, quan entri en producció, seguirà Semantic Versioning.

De moment, estructurem el canvi per Fases del roadmap.


[Fase 3] - 2024-11-14 – Autenticació i seguretat JWT

✨ Added

Backend

  • Sistema complet d’autenticació basat en JWT:
    • access tokens (~15 minuts) per a crides d’API.
    • refresh tokens (~7 dies) per renovar autenticació.
  • Entitat User amb:
    • email únic (case-insensitive),
    • passwordHash (BCrypt),
    • camp role (USER, TEACHER, ADMIN),
    • camp tokenVersion per invalidar tokens antics.
  • Endpoints d’autenticació:
    • POST /auth/register – alta d’usuari.
    • POST /auth/login – obtenció d’accessToken + refreshToken.
    • POST /auth/refresh – renovació d’accessToken.
    • GET /auth/me – dades bàsiques de l’usuari autenticat.
    • POST /auth/logout – invalidació de refresh token actual.
    • POST /auth/logoutAll – increment de tokenVersion (revoca tots els tokens).
  • Integració amb Spring Security:
    • filtre JWT,
    • configuració de rutes públiques vs protegides.
  • Migracions Flyway:
    • creació de taula users,
    • camps de rols i timestamps,
    • seeding inicial d’un usuari ADMIN (DataInitializer).

Frontend (esbós funcional)

  • Flux bàsic de login:
    • formulari d’email + password,
    • crida a /auth/login,
    • emmagatzematge del token (o ús de cookies segons configuració).
  • Començament de:
    • guardes de rutes segons rol,
    • crides autenticades amb Authorization: Bearer <token>.

Seguretat

  • Configuració CORS ajustada per permetre:
    • domini de frontend en local (http://localhost:xxxx),
    • futura URL de producció.
  • Polítiques de contrasenyes i encriptació amb BCryptPasswordEncoder.

📝 Changed

  • Fitxers de configuració:
    • SecurityConfig actualitzat per:
      • permetre autenticació JWT,
      • definir rutes públiques (/auth/**, /actuator/health, docs) i rutes protegides (/api/**).
    • application.yml ajustat per:
      • propietats de JWT (expiracions, secret),
      • configuració de logs per debugging.
  • Documentació:
    • Nou document architecture/security.md amb el disseny JWT i RBAC.
    • Actualització de overview/tech-stack.md per reflectir l’stack de seguretat.

🔧 Pending / To do (derivat de Fase 3)

  • Afegir tests d’integració per:
    • login,
    • ús d’accessToken en endpoints protegits,
    • refresh i logout.
  • Millorar gestió d’errors d’autenticació al frontend:
    • feedback a l’usuari,
    • expiració de sessió i redirecció automàtica al login.

Notes sobre versionat

  • Fase N: milestones funcionals del projecte (Fase 1 = MVP, Fase 2 = entitats relacionades, Fase 3 = autenticació…).
  • A partir del moment en què l’aplicació tingui entorn de producció estable, es començarà a utilitzar un esquema MAJOR.MINOR.PATCH més clàssic (p. ex. 1.0.0, 1.1.0, etc.).

Estat actual

  • ✅ Fase 3 completada a nivell funcional (autenticació JWT operativa).
  • 📌 Fases 4B–4E en planificació (import-system, db-redesign-plan i evolució de domini).

Els propers canvis importants s’aniran afegint aquí, referenciant sempre els documents rellevants del roadmap/ i architecture/.