|
|
8356ccc0b0
|
feat(security): SPKI pinning rotation Firebase + Play Integrity/App Attest + freerasp 7.5.1
P0-NEW-21 — SPKI Pinning service avec rotation Firebase Remote Config
- Remplace ancien check CN par digest SHA-256 SPKI
- Liste pins dynamique depuis Firebase RC (clé 'spki_pins')
- Multi-pin (leaf + backup + intermediate)
- Câblé dans ApiClient._configureSslPinning()
P0-NEW-22 — App Device Integrity (Play Integrity Android + App Attest iOS)
- Token attestation court cache 60s
- Bypass kDebugMode
- Obligatoire audit BCEAO PI-SPI banking-grade
pubspec.yaml :
- freerasp 7.0.0 → 7.5.1
- +app_device_integrity 1.1.0
- +firebase_core 3.6.0 + firebase_remote_config 5.1.3
|
2026-04-25 01:27:44 +00:00 |
|
dahoud
|
37db88672b
|
feat: BLoC tests complets + sécurité production + freerasp 7.5.1 migration
## Tests BLoC (Task P2.4 Mobile)
- 25 nouveaux fichiers *_bloc_test.dart + mocks générés (build_runner)
- Features couvertes : authentication, admin_users, adhesions, backup,
communication/messaging, contributions, dashboard, finance (approval/budget),
events, explore/network, feed, logs_monitoring, notifications, onboarding,
organizations (switcher/types/CRUD), profile, reports, settings, solidarity
- ~380 tests, > 80% coverage BLoCs
## Sécurité Production (Task P2.2)
- lib/core/security/app_integrity_service.dart (freerasp 7.5.1)
- Migration API breaking changes freerasp 7.5.1 :
- onRootDetected → onPrivilegedAccess
- onDebuggerDetected → onDebug
- onSignatureDetected → onAppIntegrity
- onHookDetected → onHooks
- onEmulatorDetected → onSimulator
- onUntrustedInstallationSourceDetected → onUnofficialStore
- onDeviceBindingDetected → onDeviceBinding
- onObfuscationIssuesDetected → onObfuscationIssues
- Talsec.start() split → start() + attachListener()
- const AndroidConfig/IOSConfig → final (constructors call ConfigVerifier)
- supportedAlternativeStores → supportedStores
## Pubspec
- bloc_test: ^9.1.7 → ^10.0.0 (compat flutter_bloc ^9.0.0)
- freerasp 7.5.1
## Config
- android/app/build.gradle : ajustements release
- lib/core/config/environment.dart : URLs API actualisées
- lib/main.dart + app_router : intégrations sécurité/BLoC
## Cleanup
- Suppression docs intermédiaires (TACHES_*.md, TASK_*_COMPLETION_REPORT.md,
TESTS_UNITAIRES_PROGRESS.md)
- .g.dart régénérés (json_serializable)
- .mocks.dart régénérés (mockito)
## Résultat
- 142 fichiers, +27 596 insertions
- Toutes les tâches P2 mobile complétées
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-21 12:42:35 +00:00 |
|
dahoud
|
f96ab6e86e
|
fix(prod): corriger URL API prod et bundler fonts Roboto
- apiBaseUrl: https://api.lions.dev → https://api.lions.dev/unionflow
(l'ingress K8s route /unionflow/* vers le backend)
- wsBaseUrl: wss://api.lions.dev → wss://api.lions.dev/unionflow
- Bundler 13 fichiers TTF Roboto dans google_fonts/
(GoogleFonts.allowRuntimeFetching=false en prod crashait sans fonts locales)
- Déclarer google_fonts/ dans pubspec.yaml assets
|
2026-04-17 19:20:36 +00:00 |
|
dahoud
|
07b8488714
|
feat(core): refonte architecture transverse (cache, network, websocket, DI)
- lib/app : app.dart, router mis à jour (routes nouveaux modules)
- lib/core/cache : cache_service + cached_datasource_decorator
- lib/core/network : api_client, offline_manager, retry_policy
- lib/core/websocket : websocket service (reconnexion exponentielle, heartbeat)
- lib/core/di : injection + register_module
- lib/core/storage : pending_operations_store (offline support)
- lib/core/navigation : main_navigation_layout (onglets par rôle)
- lib/core/config : environment, lcb_ft_constants
- lib/core/utils : error_formatter, validators
- pubspec.yaml/lock : dépendances mises à jour
|
2026-04-15 20:26:20 +00:00 |
|
dahoud
|
70cbd1c873
|
fix(mobile): URL changement mdp corrigée + v3.0 — multi-org, AppAuth, sécurité prod
Auth:
- profile_repository.dart: /api/auth/change-password → /api/membres/auth/change-password
Multi-org (Phase 3):
- OrgSelectorPage, OrgSwitcherBloc, OrgSwitcherEntry
- org_context_service.dart: headers X-Active-Organisation-Id + X-Active-Role
Navigation:
- MorePage: navigation conditionnelle par typeOrganisation
- Suppression adaptive_navigation (remplacé par main_navigation_layout)
Auth AppAuth:
- keycloak_webview_auth_service: fixes AppAuth Android
- AuthBloc: gestion REAUTH_REQUIS + premierLoginComplet
Onboarding:
- Nouveaux états: payment_method_page, onboarding_shared_widgets
- SouscriptionStatusModel mis à jour StatutValidationSouscription
Android:
- build.gradle: ProGuard/R8, network_security_config
- Gradle wrapper mis à jour
|
2026-04-07 20:56:03 +00:00 |
|
dahoud
|
5383df6dcb
|
refactoring
|
2026-03-31 09:14:47 +00:00 |
|
dahoud
|
5c5ec3ad00
|
docs(mobile): documentation complète Spec 001 + architecture
Documentation ajoutée :
- ARCHITECTURE.md : Clean Architecture par feature, BLoC pattern
- OPTIMISATIONS_PERFORMANCE.md : Cache multi-niveaux, pagination, lazy loading
- SECURITE_PRODUCTION.md : FlutterSecureStorage, JWT, HTTPS, ProGuard
- CHANGELOG.md : Historique versions
- CONTRIBUTING.md : Guide contribution
- README.md : Mise à jour (build, env config)
Widgets partagés :
- file_upload_widget.dart : Upload fichiers (photos/PDFs)
Cache :
- lib/core/cache/ : Système cache L1/L2 (mémoire/disque)
Dependencies :
- pubspec.yaml : file_picker 8.1.2, injectable, dio
Spec 001 : 27/27 tâches (100%)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-03-16 05:15:38 +00:00 |
|
dahoud
|
d094d6db9c
|
Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).
Signed-off-by: lions dev Team
|
2026-03-15 16:30:08 +00:00 |
|