Administration plateforme

Accessible uniquement aux users avec role admin. 3 pages dédiées + tools MCP admin-only.

/admin · Dashboard plateforme

Vue globale de la plateforme, rafraîchie à chaque visite :

  • Totaux : users, projects, sites (total / running / error), databases, repos, previews running, backups
  • 24h : deploys, deploys échoués, actions audit
  • Storage : taille totale des backups Nextcloud
  • Liens rapides : erreurs audit récentes, actions MCP, health endpoint

/users · Gestion des utilisateurs

Table des users

Chaque row expose :

  • Email + nom + user_id
  • Role dropdown : client ↔ admin (self-demote interdit)
  • rotate key : régénère l'API key long-terme (révoque l'ancienne)
  • supprimer : delete user (refuse si projects restants)

Créer un user

Deux méthodes dans la sidebar droite :

  • Inviter par email : envoie un magic link, user crée sa session au clic. Recommandé.
  • Créer avec API key : génère l'user + API key long-terme affichée 1×. Pour CLI/CI/MCP sans email.

/admin/audit · Journal d'audit

Historique complet des actions via MCP, API REST, Web UI, CLI.

Filtres disponibles

  • Tool : ex create_site, delete_project...
  • Source : mcp | api | web | cli
  • Résultat : success | error
  • User ID : filtre par utilisateur
  • Limit : nombre d'entrées à retourner (défaut 100, max 500)

Colonnes

  • Timestamp (ISO)
  • User (email joint depuis DB, ou "bootstrap")
  • Tool + source + résultat + durée
  • Détail : errorMsg surligné rouge OU params du call (JSON expandable)
Attention
Les params_json peuvent contenir des secrets si le tool en a reçu en input (ex mot de passe DB, contenu de fichiers via push_files). L'audit log est admin only pour cette raison.

Tools MCP admin-only

  • list_users · delete_user · update_user_role · invite_user
  • update_project_owner : transfert de project entre users
  • list_audit_log · audit_stats · admin_stats
  • exec_site : shell arbitraire dans un container (dangereux, admin only)

Compte bootstrap

Iridflow supporte un compte bootstrap via IRIDFLOW_ADMIN_API_KEY dans /etc/iridflow/mcp.env. Cette clé donne role admin sans user en DB (utile pour le premier login sur une nouvelle instance).

  • User apparent : id: "bootstrap", email : bootstrap@iridflow
  • Les tools qui créent au nom d'un user (create_project, rotate_api_key…) fallback vers le premier admin en DB
  • À éviter pour un usage régulier : créer un vrai user admin et utiliser sa propre API key

Sécurité opérationnelle

Rotation des clés

Rotate périodiquement les API keys long-terme (mensuel recommandé). Chaque rotate audite l'action dans audit_log.

Audit régulier

Check /admin/audit?result=error pour repérer les erreurs récurrentes (auth, RBAC, tool failures).

Backups plateforme

La DB SQLite Iridflow (/var/lib/iridflow/iridflow.db) n'a pas de backup auto en V1. Snapshot manuel recommandé avant grosses opérations (delete cascade, rotation admin bootstrap...).