Authentification

Deux mécanismes complémentaires : magic link (humains) et API key long-terme(intégrations CLI, MCP, CI/CD).

Magic link (défaut, humains)

  1. Va sur iridflow.com/login
  2. Saisis ton email → Envoyer le lien
  3. Reçois le lien dans ta boîte (expire dans 15 min)
  4. Clique dessus → session cookie 30 jours posé → redirect /dashboard

Anti-enumeration

L'endpoint /api/v1/magic-link/request répond toujours {sent: true}, même si l'email n'existe pas en DB. C'est intentionnel pour ne pas leaker la liste des users existants. Le mail n'est réellement envoyé que si l'email est connu.

Invitation-only

Note
Iridflow est invitation-only : impossible de créer un compte tout seul via magic link. Un admin doit t'inviter d'abord (voir plus bas). Si tu essaies un email inconnu, tu ne recevras rien.

API key long-terme

Pour brancher Claude Desktop, un script CLI, un pipeline CI/CD.

Générer ta clé

  1. Login via magic link
  2. Clique sur ton email dans la nav → /me
  3. Section API Key long-termerotate key
  4. Copie la clé affichée (format iridflow_live_...) : elle n'est jamais réaffichée
Attention
Rotater une clé révoque immédiatement l'ancienne. Toute intégration qui utilise l'ancienne clé cessera de fonctionner. Mets à jour tes configs avant de tester.

Utiliser ta clé

// Header HTTP
x-api-key: iridflow_live_...
// curl exemple
curl https://mcp.iridflow.com/api/v1/whoami \ -H "x-api-key: iridflow_live_..."
// Claude Desktop / Code (~/.claude/mcp.json)
{ "mcpServers": { "iridflow": { "url": "https://mcp.iridflow.com/mcp", "headers": { "x-api-key": "iridflow_live_..." } } } }

Sessions vs API keys

AspectSession (magic link)API key long-terme
Formatiridflow_sess_...iridflow_live_...
Durée30 joursIllimité (jusqu'à rotate)
StockageCookie HttpOnly (browser)A saisir (headers/env)
Use caseUtilisateur humain sur UI webClaude Desktop, CLI, CI/CD, MCP
RévocationLogout ou expirationRotate ou delete user

Inviter des utilisateurs (admin only)

  1. Va sur /users (visible seulement si admin)
  2. Section Inviter par email
  3. Saisis email + role (client par défaut) → Inviter par email
  4. L'invité reçoit un magic link, il clique, session posée, il arrive sur son Dashboard

Alternative : créer un user avec API key directe

Pour intégrations CLI/CI/MCP qui n'ont pas de boîte email :

  1. /usersCréer avec API key
  2. Récupère la clé iridflow_live_... affichée 1× dans la bannière ambre

Changer le role d'un user (admin only)

Dropdown role sur chaque row de /users.

  • client : voit + gère uniquement ses propres projects/sites/DBs
  • admin : accès plateforme complet + /admin, /admin/audit, /users
Note
Self-demote interdit : tu ne peux pas te retirer toi-même le rôle admin (protection contre le lockout accidentel).

Delete d'un user

  • Sur /users, bouton supprimer
  • Refuse si le user possède encore des projects (transfer d'abord via update_project_owner)
  • Self-delete interdit