feat(sprint-15 web 2026-04-25): Live Activity Feed page (transparency operations)
Page consommant /api/audit-trail/recent avec auto-refresh PrimeFaces toutes les 10s.
Transparency opérationnelle UnionFlow — chaque utilisateur voit selon son scope.
REST client AuditTrailRestClient
- Nouvelle méthode recent(scope, orgId, userId, limit)
Bean LiveFeedBean (@ViewScoped)
- Polling pilote externe via p:poll interval=10
- 3 scopes : SELF (défaut, n'importe quel rôle), ORG (admin/officer), ALL (compliance/contrôleur)
- Helpers : couleurAction (8 mappings), couleurSod (3 cas), tempsRelatif (s/m/h/j/futur)
- Limit clamp [1, 500]
- Compteur de refresh visible dans l'UI (debug)
Page /pages/secure/conformite/live-feed.xhtml
- Panel scope avec selectOneMenu + p:ajax change → rafraîchir
- Conditional inputs : orgId si scope=ORG, userId si scope=SELF
- p:poll interval=10 listener=rafraichir autoStart=true
- DataTable opérations : index, "il y a Xs", acteur+rôle, action coloré, entité, description, SoD tag
- Tag refresh counter (visible feedback)
Centralisation
- ViewPaths.CONFORMITE_LIVE_FEED + getter ViewPathsBean
- menu.xhtml : entrée Live Feed sous sous-menu Conformité (icon pi-bolt)
Tests (13/13 verts)
- couleurAction × 4 (danger/success/info/autres)
- couleurSod
- tempsRelatif × 6 (null, secondes, minutes, heures, jours, futur)
- setLimit clamp × 4
- defaults