Mode opératoire — Super-administrateur (plateforme)
Réservé à l'équipe MaterielTrack : créer et gérer les espaces clients (tenants), publier sur le blog et le centre d'aide, surveiller la plateforme et les quotas.
Périmètre
Le rôle super_admin traverse tous les espaces clients (tenants). Il ne s'attribue jamais via l'interface ni l'API — uniquement en base, volontairement. Ne l'utilisez pas pour le travail quotidien d'un parc : créez-vous un compte admin dans le tenant concerné.
1. Créer un espace client (tenant)
- Console (menu Plateforme) → « Créer un tenant » : nom, slug (URL), email du premier administrateur.
- Le tenant est créé avec son quota par défaut, et l'administrateur reçoit son invitation par lien magique.
- Le commutateur Actif/Inactif suspend l'accès d'un tenant entier (impayé, fin de pilote) sans rien supprimer.
2. Ajuster un plan / quota
Le pricing par paliers s'appuie sur tenants.max_equipments (appliqué en base : la création d'équipements au-delà du quota est refusée). Pour changer de palier : mettez à jour max_equipments et subscription_tier du tenant. Le client voit sa jauge dans ses Paramètres, avec une incitation à l'upgrade dès 80 %.
3. Publier du contenu (blog + centre d'aide)
Blog & SEO (menu) gère les deux familles de contenu :
- Article de blog → publié sur
/blog(référencement, mots-clés réglementaires). - Guide d'aide → publié sur
/aide(modes opératoires par persona — ce document lui-même).
Rédaction en markdown avec aperçu en direct, champs SEO avec compteurs, brouillon/publication. Le sitemap se met à jour tout seul à la publication.
4. Suivre les demandes entrantes
Les soumissions du formulaire de contact partent par email à contact@materieltrack.fr et sont archivées en base (contact_messages) avec le consentement newsletter horodaté (preuve RGPD) — consultables via l'éditeur SQL Supabase, lisibles uniquement par le super-admin.
5. Surveillance
- Console : latence base, nombre de tenants/utilisateurs/équipements, dernières alertes parties.
- Cron d'alertes : tourne chaque jour à 7 h UTC, protégé par
CRON_SECRET(variable Vercel). S'il est mal configuré, la route répond 503 — fail-closed. - Journal d'audit de chaque tenant : alimenté par triggers, en lecture seule.
Rappels de sécurité
- Les clés API clients ne transitent jamais en clair (hash SHA-256) — une clé perdue se révoque et se recrée, elle ne se « retrouve » pas.
- Les buckets documents/photos/signatures sont privés (URLs signées 1 h) — ne jamais les repasser publics.
- Toute modification de schéma passe par migration versionnée dans le repo, appliquée via MCP.