# Script de déploiement backend sécurisé # Usage: .\deploy_backend.ps1 [test|prod] param( [Parameter(Mandatory=$true)] [ValidateSet("test", "prod")] [string]$mode ) Write-Host "========================================" -ForegroundColor Cyan Write-Host " Migration Backend - Déploiement" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "" # Mode TEST : Lancer les émulateurs if ($mode -eq "test") { Write-Host "Mode: TEST (émulateurs)" -ForegroundColor Yellow Write-Host "Lancement des émulateurs Firebase..." -ForegroundColor Yellow Write-Host "" firebase emulators:start exit } # Mode PROD : Déploiement en production Write-Host "Mode: PRODUCTION" -ForegroundColor Green Write-Host "" # Confirmation Write-Host "ATTENTION: Vous allez déployer en PRODUCTION !" -ForegroundColor Red $confirmation = Read-Host "Tapez 'OUI' pour confirmer" if ($confirmation -ne "OUI") { Write-Host "Déploiement annulé." -ForegroundColor Yellow exit 0 } Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Étape 1/4 : Vérification du code" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan # Vérifier que ApiConfig est en mode production $apiConfigPath = "lib\config\api_config.dart" $apiConfigContent = Get-Content $apiConfigPath -Raw if ($apiConfigContent -match "isDevelopment = true") { Write-Host "ERREUR: ApiConfig est en mode développement !" -ForegroundColor Red Write-Host "Veuillez mettre 'isDevelopment = false' dans $apiConfigPath" -ForegroundColor Yellow exit 1 } Write-Host "✓ ApiConfig en mode production" -ForegroundColor Green Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Étape 2/4 : Installation dépendances" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Push-Location functions npm install if ($LASTEXITCODE -ne 0) { Write-Host "ERREUR: Installation des dépendances échouée" -ForegroundColor Red Pop-Location exit 1 } Pop-Location Write-Host "✓ Dépendances installées" -ForegroundColor Green Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Étape 3/4 : Déploiement Cloud Functions" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan firebase deploy --only functions if ($LASTEXITCODE -ne 0) { Write-Host "ERREUR: Déploiement des functions échoué" -ForegroundColor Red exit 1 } Write-Host "✓ Cloud Functions déployées" -ForegroundColor Green Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Étape 4/4 : Déploiement Firestore Rules" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan firebase deploy --only firestore:rules if ($LASTEXITCODE -ne 0) { Write-Host "ERREUR: Déploiement des règles échoué" -ForegroundColor Red exit 1 } Write-Host "✓ Firestore Rules déployées" -ForegroundColor Green Write-Host "" Write-Host "========================================" -ForegroundColor Green Write-Host " DÉPLOIEMENT RÉUSSI !" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Green Write-Host "" Write-Host "Prochaines étapes :" -ForegroundColor Yellow Write-Host "1. Tester les opérations CRUD (voir TESTING_PLAN.md)" -ForegroundColor Gray Write-Host "2. Surveiller les logs: firebase functions:log" -ForegroundColor Gray Write-Host "3. Vérifier les permissions utilisateurs" -ForegroundColor Gray Write-Host "" Write-Host "Console Firebase:" -ForegroundColor Cyan Write-Host "https://console.firebase.google.com/project/em2rp-951dc/functions" -ForegroundColor Blue Write-Host ""