Pourquoi cette app
Une application de productivité ne vit pas sans sa salle des machines.
L'application mobile est la partie visible : ce que la personne ouvre le matin pour retrouver ses objectifs, ses tâches du jour, son journal et ses idées.
Derrière, il faut pouvoir suivre l'usage réel, gérer les comptes et leurs rôles, envoyer une notification à une population précise, publier un contenu, corriger une question de la foire aux questions ou mettre à jour des textes légaux dans plusieurs langues. Rien de tout cela ne doit exiger une nouvelle version de l'application sur les stores.
C'est le rôle du tableau de bord web : il travaille sur la même base de données que le mobile, avec des droits qui ne se contournent pas depuis un client.
Les défis techniques
Un back-office se juge sur ce qu'il empêche.
Les droits d'administration, portés par le jeton et pas par la base. Le rôle est une revendication signée dans le jeton d'authentification, pas un champ qu'un client pourrait écrire. Deux déclencheurs serveur posent et retirent cette revendication quand un administrateur est ajouté ou retiré, puis révoquent les jetons de rafraîchissement pour que le changement s'applique tout de suite plutôt qu'à la prochaine expiration. Une trace d'audit accompagne chaque mouvement, dans une collection que seul le serveur peut écrire.
Des règles de base qui refusent par défaut. La dernière règle du fichier interdit tout ce qui n'a pas été explicitement autorisé. Chaque utilisateur est isolé sur son propre arbre de données, et les zones sensibles, journal d'audit, instantanés de métriques et alertes de budget, sont en lecture seule côté client : elles n'existent que par écriture serveur.
Voir la facture avant de la recevoir. Le tableau de bord lit les métriques d'infrastructure, lectures, écritures, latences au quatre-vingt-quinzième centile et erreurs serveur, avec un pas d'agrégation adapté à la période demandée, puis les coûts réels par service dans l'export de facturation. Si la table d'export n'est pas encore en place, la réponse le dit explicitement au lieu de tomber, et une erreur sur une série de mesures renvoie une liste vide plutôt que de faire échouer toute la page. Un instantané périodique et des alertes de budget complètent le dispositif.
Une application à page unique sur un hébergement mutualisé. Rafraîchir une page profonde renvoyait une erreur, puisque le serveur cherchait un fichier qui n'existe pas. Le déploiement automatisé génère désormais la configuration du serveur avant l'envoi : réécriture des routes vers l'application, expiration du cache, et en-têtes de sécurité posés au passage.
Un back-office n'a rien à faire dans un moteur de recherche. Le tableau de bord se déclare non indexable, à la fois dans la page et dans le fichier destiné aux robots, et il déconnecte automatiquement après une période d'inactivité, en écoutant l'activité réelle plutôt qu'un simple minuteur.