43f1f6e9f2
sign.js : - aria-label sur les 4 Fab (Se déconnecter, dashboard, Se connecter, S'enregistrer) - Correction des guillemets typographiques U+2018/U+2019 en ASCII (empêchaient le parsing JSX) - Suppression de useMemo inutilisé - IIFE async ;() → startSubscription() nommée + .catch() explicite (semi-style + no-void) auth-form/index.js : - aria-label des IconButton visibility traduits en français avec état dynamique : 'Afficher/Masquer le mot de passe' et 'Afficher/Masquer la vérification' version-timeline.js : - aria-label='Comparer les versions' sur IconButton Comparer - aria-label dynamique + aria-expanded sur le bouton expand/collapse - Correction object-curly-newline et jsx-closing-bracket-location (pré-existants) version-search.js : - inputProps aria-label='Rechercher dans les versions' (placeholder seul insuffisant) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# Tâches — Konstitisyon Frontend
|
|
|
|
## Améliorations critiques (P1)
|
|
|
|
- [x] **Rate limiting** — `lib/rate-limit.js` + `middleware.js`
|
|
- Routes protégées : `/api/auth/register` (5/15min) et `/api/auth/callback/credentials` (10/5min)
|
|
- Logique vérifiée : comptage, blocage 429 + Retry-After, expiration fenêtre ✓
|
|
- [x] **CORS whitelist** — restreindre `CORS_ORIGIN=true` dans l'env Directus
|
|
- [x] **Sanitisation Markdown** — DOMPurify sur la sortie `marked` dans export-pdf et print-button
|
|
|
|
## Améliorations hautes (P2)
|
|
|
|
- [x] **Headers CSP** — `next.config.mjs` (renommé depuis .js) avec CSP + 4 headers sécurité
|
|
- [x] **Tests unitaires** — Vitest sur `lib/format.js`, `lib/version-utils.js`, `lib/rate-limit.js`
|
|
- [x] **Tests extensions Directus** — mocks VersionsService
|
|
- [x] **Refresh token explicite** — callback `jwt` dans NextAuth options
|
|
- [ ] **Pipeline CI** — Forgejo Actions / Woodpecker CI (lint + test + build) ⏸ en attente
|
|
- [x] **Sentry** — tracking erreurs frontend + API routes
|
|
|
|
## Améliorations moyennes (P3)
|
|
|
|
- [x] ISR page d'accueil (`revalidate`)
|
|
- [x] Dockerisation frontend (`output: standalone`)
|
|
- [x] Audit accessibilité WCAG 2.1
|
|
- [ ] Responsive mobile dashboard
|
|
- [ ] Lazy loading jsPDF + md-editor
|
|
- [ ] Migration NextAuth v5 stable
|