Exploitation¶
Demarrage API¶
Sequence:
- configuration services et middleware
- initialisation base (migrations/repli)
- seeding conditionnel (
Development) - exposition des routes + endpoints de sante + metriques
flowchart TD
A[Demarrage API] --> B[Configuration services et middleware]
B --> C{UseMigrations et migrations presentes?}
C -->|Oui| D[Migrate()]
C -->|Non| E{Environnement Development?}
E -->|Oui| F[EnsureCreated()]
E -->|Non| G[Echec immediat]
D --> H{SeedDatabase et Development?}
F --> H
H -->|Oui| I[Execution des initialiseurs]
H -->|Non| J[Exposition routes sante metriques]
I --> J
Observabilite¶
- logs ASP.NET Core
- Sentry (exceptions + tracing + breadcrumbs)
- OpenTelemetry metriques/traces
- endpoints de sante (
/health/live,/health/ready) - metriques Prometheus (
/metrics)
Procedures rapides¶
API ne demarre pas¶
Verifier:
JWT_SECRETpresent et >= 32 caracteres- accessibilite PostgreSQL
- coherence
ConnectionStrings:DefaultConnection - migrations disponibles si
UseMigrations=true
Frontend cible la mauvaise API¶
Verifier:
AdvancedDevSample.Frontend/wwwroot/appsettings.json(ApiBaseUrl)FRONTEND_API_BASE_URLa la construction Docker frontend
Multiples 401¶
Verifier:
- expiration JWT
- alignement
Jwt:Issuer/Jwt:Audience - validite refresh token
- horloge machine
flowchart LR
U[401 observes] --> T{JWT expire?}
T -->|Oui| R[Connexion ou refresh]
T -->|Non| IA{Issuer ou Audience incoherents?}
IA -->|Oui| C[Verifier la config Jwt]
IA -->|Non| RT{Refresh token valide?}
RT -->|Non| L[Forcer une nouvelle connexion]
RT -->|Oui| CLK[Verifier l horloge serveur et client]
Multiples 429 sur login¶
Cause:
- limite
5/min/IPsur/api/auth/login
Action:
- attendre la fenetre suivante et verifier les tentatives en boucle cote client
Sauvegarde PostgreSQL (local)¶
mkdir -p backups
docker exec advanceddevsample-postgres pg_dump -U postgres advanceddevsample > "backups/advanceddevsample-$(date +%Y%m%d-%H%M%S).sql"
Restauration PostgreSQL (local)¶
cat backups/advanceddevsample-YYYYMMDD-HHMMSS.sql | docker exec -i advanceddevsample-postgres psql -U postgres -d advanceddevsample
Rotation JWT secret¶
Impact:
- tous les JWT existants deviennent invalides
Procedure:
- generer un nouveau secret robuste
- mettre a jour
JWT_SECRET - redemarrer l'API
- monitorer
401et erreurs auth
sequenceDiagram
participant Ops as Equipe Ops
participant Env as Configuration env
participant Api as API
participant Users as Utilisateurs
Ops->>Env: Mise a jour JWT_SECRET
Ops->>Api: Redemarrage du deploiement
Api-->>Users: Anciens JWT rejetes (401)
Users->>Api: Nouvelle authentification
Api-->>Users: Nouveaux JWT emis