Aller au contenu principal

Référentiel UI des Écrans et Composants

Ce document constitue la référence exhaustive de l'interface utilisateur de la console web TkushPatch (ota-web-console), construite sur Next.js 15, React 19, Tailwind CSS et Lucide Icons.


1. Cartographie Complète des Routes App Router​

RouteFichier sourceRôles RBAC autorisésFinalité principale
/src/app/page.tsxTous les rôlesCockpit principal : métriques globales, alertes de patchs en attente et statut des services.
/loginsrc/app/login/page.tsxPublicMire de connexion par identifiant/mot de passe et déclenchement du challenge OTP 2FA.
/registersrc/app/register/page.tsxPublicEnregistrement d'organisation ou finalisation d'invitation avec jeton sécurisé.
/forgot-passwordsrc/app/forgot-password/page.tsxPublicRécupération de compte par réinitialisation de mot de passe via lien temporaire signé.
/releasessrc/app/releases/page.tsxADMIN, DEV, SECURITY, SREDashboard master-detail des releases Store, architectures (aarch64/arm) et patchs associés.
/rolloutsrc/app/rollout/page.tsxADMIN, SREPilotage du Canary Rollout (0-100 %), ciblage géographique par pays et Kill-Switch d'urgence.
/catalogsrc/app/catalog/page.tsxTous les rôlesCatalogue des applications enregistrées, identifiants app_id et clés publiques moteur de signature.
/assetssrc/app/assets/page.tsxADMIN, DEVGestion et téléversement des ressources dynamiques OTA (traductions i18n, assets graphiques).
/approvalssrc/app/approvals/page.tsxADMIN, SECURITY, AUDITOR (lecture)Centre d'approbation réglementaire Maker-Checker et signature asymétrique moteur de signature RSA.
/symbolssrc/app/symbols/page.tsxADMIN, DEV, SREGestion des archives .symbols, inspection des traces obfusquées et désobfuscateur Dart en direct.
/policiessrc/app/policies/page.tsxADMIN, SECURITY, AUDITOR (lecture)Paramétrage des politiques 4-yeux, expiration OTP, SMTP d'organisation et bouclier mobile.
/cli/loginsrc/app/cli/login/page.tsxADMIN, DEVPasserelle de consentement OAuth/PKCE pour les sessions en ligne de commande tk-ota-push.
/telemetrysrc/app/telemetry/page.tsxADMIN, SECURITY, SRE, AUDITORWar Room télémétrique temps réel, taux de crashs, latence réseau et alertes circuit-breaker.
/supportsrc/app/support/page.tsxADMIN, DEV, SREConsole de diagnostic N3, inspection par client_id, liste blanche QA et rollback ciblé.
/auditsrc/app/audit/page.tsxADMIN, SECURITY, AUDITORJournal d'audit immuable avec signatures SHA-256 et export réglementaire certifié (CSV/PDF).
/healthsrc/app/health/page.tsxADMIN, SRESupervision Day-2 : métriques moteur de signature (sealed/unsealed), espace disque et purge des binaires.
/teamssrc/app/teams/page.tsxADMIN (écriture), Tous (lecture)Gestion des membres de l'organisation, attribution des 5 rôles RBAC et réinitialisation MFA.
/accountsrc/app/account/page.tsxTous les rôlesEspace profil opérateur, préférences de thème (clair/sombre) et statut de sécurité.
/organization/settingssrc/app/organization/settings/page.tsxADMINNom d'organisation, quotas d'applications et paramètres de facturation/licence.
/apps/[appId]/trackssrc/app/apps/[appId]/tracks/page.tsxADMIN, DEV, SECURITY, SREGestion des canaux (dev, staging, stable) et promotion 1-clic zéro-recompilation.

2. Composants Structurels et de Layout​

L'architecture visuelle repose sur des composants d'encadrement garantissant cohérence et ergonomie :

ComposantEmplacementRôle technique
AppLayoutShellsrc/components/layout/AppLayoutShell.tsxStructure globale de la console : barre latérale rétractable, entête fixe et zone de contenu responsive.
Headersrc/components/layout/Header.tsxEntête supérieur : sélecteur de projet (ProjectSwitcher), basculeur de thème, sélecteur de langue et menu profil.
ProjectSwitchersrc/components/layout/ProjectSwitcher.tsxMenu déroulant permettant de basculer instantanément le contexte de l'application active (selectedAppId).
RoleGuardsrc/lib/auth/RoleGuard.tsxComposant d'isolation RBAC enveloppant les pages et boutons pour masquer les fonctionnalités non autorisées.
IdleTimersrc/lib/auth/IdleTimer.tsxDétecteur d'inactivité opérateur sur événements souris/clavier déclenchant le verrouillage automatique de session.

3. Composants Spécialisés Déploiement et Releases​

Ces composants modulaires animent les pages complexes de déploiement et de pilotage :

ComposantEmplacementFonctionnalité
ReleaseListMasterPanesrc/components/deployments/ReleaseListMasterPane.tsxVolet gauche de la vue releases : liste ordonnée des versions de base avec badges multi-plateformes.
ReleaseDetailInspectorPanesrc/components/deployments/ReleaseDetailInspectorPane.tsxVolet droit d'inspection : métriques détaillées, patchs enfants, statut de verrouillage et actions.
FullWidthPlatformBarsrc/components/deployments/FullWidthPlatformBar.tsxSélecteur visuel pleine largeur basculant entre Android, iOS et plateformes unifiées.
PlatformSegmentedControlsrc/components/deployments/PlatformSegmentedControl.tsxContrôle segmenté compact pour filtrer rapidement les architectures processeur (arm64-v8a, armeabi-v7a).
PatchActionMenusrc/components/deployments/PatchActionMenu.tsxMenu contextuel unifié proposant Rollback, Promotion, Suspension et Téléchargement binaire.
CountrySelectorModalsrc/components/deployments/CountrySelectorModal.tsxBoîte de dialogue permettant la sélection et le filtrage des codes pays ISO (ex. CM, CI, SN) pour le déploiement.
UpdateStrategyModalsrc/components/deployments/UpdateStrategyModal.tsxModale de configuration des politiques de mise à jour (Wi-Fi obligatoire vs Forcée avec blocage UI).
CreateProjectModalsrc/components/project/CreateProjectModal.tsxFormulaire modal de création d'une nouvelle application avec détection de namespace Store.
ReleaseHistoryDrawersrc/components/deployments/ReleaseHistoryDrawer.tsxTiroir coulissant présentant la chronologie exhaustive des modifications d'une release.

4. Composants UI Atomiques​

ComposantEmplacementRôle et caractéristiques
StatusBadgesrc/components/ui/StatusBadge.tsxBadge de statut coloré avec icône associée pour ACTIVE, STAGED, REVOKED, etc.
CopyableHashsrc/components/ui/CopyableHash.tsxAffichage tronqué et ergonomique de hachages SHA-256 avec bouton de copie instantanée et retour visuel.
PaginationBarsrc/components/ui/PaginationBar.tsxBarre de pagination serveur standardisée (10, 25, 50 éléments par page) avec navigation rapide.
Toastsrc/components/ui/Toast.tsxNotifications toast contextuelles (Succès, Erreur, Avertissement, Info) avec disparition automatique.
Buttonsrc/components/ui/Button.tsxBouton accessible supportant les variantes primary, secondary, danger, outline et les états de chargement (isLoading).