Aller au contenu principal

Projets, Applications et Mission Control

Dans TkushPatch, chaque application mobile est identifiée par son app_id (souvent calqué sur le bundle ID Android/iOS, ex. com.sara.money ou com.entreprise.agent) et rattachée de manière isolée à une organisation (tenant_id).


1. Création d'un projet (CreateProjectModal)​

Un projet peut être créé de deux manières complémentaires :

A. Depuis la console web (CreateProjectModal.tsx)​

Accessible depuis le bouton Nouvelle Application sur /apps ou depuis le menu déroulant ProjectSwitcher de l'en-tête :

  1. Nom d'affichage (name) : Nom lisible de l'application (ex. Sara Money Retail).
  2. Identifiant technique (appId) : Identifiant unique au format package (ex. com.sara.money). Un générateur automatique suggère un identifiant à partir du nom saisi.
  3. Plateformes cibles (platforms) : Sélection entre Android & iOS, Android uniquement ou iOS uniquement.
  4. Environnement / Canal par défaut :Initialisé sur stable, staging et dev.
  5. Commandes d'initialisation CLI : Une fois créé, le projet génère l'extrait shorebird.yaml prêt à copier et la commande tk-ota-push init correspondante.

B. Découverte automatique depuis la CLI (ProjectContext.tsx)​

Lorsqu'un développeur publie directement une première release via tk-ota-push release android ou POST /api/admin/v1/releases, le composant ProjectContext détecte automatiquement le nouvel appId lors de l'appel à GET /api/admin/v1/releases?tenant_id=... et l'ajoute au registre des projets de la console avec le badge Auto-découvert.


2. Catalogue des applications (/apps)​

La page /apps (src/app/apps/page.tsx) présente la vue portefeuille de toutes les applications mobiles de l'organisation :

  • Cartes d'applications : Chaque carte affiche le nom du projet, son appId en police monospace, les badges de plateformes (ANDROID, IOS), le nombre total de releases verrouillées, le nombre de patchs actifs (APPROVED_AND_SIGNED) et la dernière version en production.
  • Indicateurs globaux : Nombre total d'applications gérées, total des releases et total des patchs déployés sur le tenant.
  • Filtrage instantané : Recherche par nom d'application ou par appId.
  • Accès direct : Un clic sur une carte ouvre le centre de commandement Mission Control (/apps/[appId]).

3. Barre d'onglets contextuelle (AppTabs)​

Dès que l'opérateur navigue sous /apps/[appId]/*, le composant AppTabs (src/components/layout/AppTabs.tsx) s'affiche sous l'en-tête principal et propose 8 onglets dédiés à l'application sélectionnée :

PositionOnglet (FR / EN)Route Next.jsFonctionnalité
1Mission Control/apps/[appId]Vue synthétique de l'application, dernière release, patch actif et guide shorebird.yaml
2Releases/apps/[appId]/releasesListe des versions de l'application (consolidée multi-ABI) et publication de release/patch
3Insights/apps/[appId]/insightsCourbes d'adoption des patchs, taux de succès d'installation et santé du Circuit-Breaker
4Dynamic Assets/apps/[appId]/assetsGestion des assets graphiques et configurations JSON OTA propres à l'application
5Clés & SDK/apps/[appId]/catalogClé publique signature numérique (patch_public_key), configuration shorebird.yaml et gouvernance Store
6Collaborators/apps/[appId]/collaboratorsÉquipe assignée à l'application et matrice des permissions RBAC
7Tracks/apps/[appId]/tracksGestion des canaux (dev, staging, stable, canaux personnalisés) et promotion 1-clic
8Settings/apps/[appId]/settingsRenommage de l'application, quotas spécifiques et suppression locale du registre

4. Mission Control (/apps/[appId])​

La page /apps/[appId] (src/app/apps/[appId]/page.tsx) constitue le tableau de bord opérationnel d'une application mobile :

  1. Cartes KPI de l'application :
    • Releases verrouillées : Nombre de versions binaires de base enregistrées et dernière version active (ex. 3.28.5+99).
    • Patchs OTA déployés : Nombre de patchs APPROVED_AND_SIGNED vs patchs en attente STAGED ou révoqués ROLLED_BACK.
    • Couverture d'architectures (ABI) : Détection des architectures couvertes (aarch64, arm, x86_64).
    • Statut Store & Sécurité : Indique si la dernière release est LIVE_ON_STORE, IN_STORE_REVIEW (bouclier actif) ou DEPRECATED.
  2. État vide guidé (Onboarding SDK) :
    • Si l'application ne comporte encore aucune release, Mission Control affiche un assistant d'intégration en 3 étapes :
      1. Récupération automatique de la clé publique RSA (GET /api/admin/v1/crypto/public-key).
      2. Génération du fichier shorebird.yaml pré-rempli avec app_id, base_url et patch_public_key.
      3. Commandes CLI exactes pour enregistrer la première release (tk-ota-push release android) puis pousser un premier patch (tk-ota-push patch android).
  3. Historique récent et actions rapides :
    • Accès en un clic à la dernière release (/apps/[appId]/releases/[version]), aux pistes de déploiement (/apps/[appId]/tracks) et aux approbations 4-Yeux.