Skip to Content

API Import et Export Utilisateurs

L’API Import et Export te permet d’importer des utilisateurs en masse depuis des fichiers CSV ou JSON, et d’exporter les données utilisateurs pour la migration, la sauvegarde ou l’intégration avec des systèmes externes. Les deux opérations sont traitées de manière asynchrone via des jobs qui peuvent être surveillés jusqu’à leur complétion.

Tous les endpoints requièrent l’en-tête x-tenant et un token Bearer valide.

Importer des Utilisateurs

Charger un Fichier d’Importation

POST/api/users/importRequires: manage:users

Démarre un job d’importation asynchrone en chargeant un fichier CSV ou JSON. Retourne immédiatement avec un ID de job que tu peux utiliser pour surveiller la progression et les erreurs.

Corps de la requête (multipart/form-data)

ChampTypeDescription
fileFileLe fichier CSV ou JSON à importer. Taille maximale : 10 Mo.

Réponse de succès

{ "ok": true, "data": { "id": "import_abc123", "status": "PENDING", "totalRows": 250, "processedRows": 0, "successCount": 0, "errorCount": 0, "errors": [], "createdAt": "2025-02-18T10:00:00Z" } }

Lister les Jobs d’Importation

GET/api/users/importRequires: manage:users

Retourne la liste paginée de tous les jobs d’importation pour ce tenant, du plus récent au plus ancien.

Paramètres de requête

ParamètreTypeDescription
pageintegerNuméro de page (défaut : 1)
limitintegerÉléments par page (défaut : 20, max : 100)

Récupérer le Détail du Job

GET/api/users/import/[id]Requires: manage:users

Retourne le détail complet d’un job d’importation, y compris les erreurs par ligne pour les lignes qui ont échoué.

Réponse de succès

{ "ok": true, "data": { "id": "import_abc123", "status": "PARTIAL", "totalRows": 250, "processedRows": 250, "successCount": 247, "errorCount": 3, "errors": [ { "row": 14, "email": "bad-email", "error": "Invalid email format" }, { "row": 87, "email": "[email protected]", "error": "Email already exists in this tenant" }, { "row": 203, "email": "[email protected]", "error": "Role 'superadmin' does not exist" } ], "createdAt": "2025-02-18T10:00:00Z", "completedAt": "2025-02-18T10:02:15Z" } }

Progression des États

ÉtatDescription
PENDINGFichier chargé, traitement en attente
PROCESSINGLignes en cours de traitement
COMPLETEDToutes les lignes traitées avec succès
PARTIALToutes les lignes traitées, certaines avec des erreurs
FAILEDÉchec total du job (ex. fichier invalide ou erreur système)

Formats des Fichiers d’Importation

Format CSV

email,firstName,lastName,roles,password [email protected],Jane,Doe,editor,SecurePass123! [email protected],Bob,Smith,"editor,viewer",AnotherPass456! [email protected],Alice,Johnson,,
  • La première ligne doit être l’en-tête avec les noms de colonnes
  • Plusieurs rôles doivent être entourés de guillemets : "editor,viewer"
  • Un mot de passe vide génère un magic link ou force une réinitialisation au premier accès (approche recommandée)

Format JSON

[ { "email": "[email protected]", "firstName": "Jane", "lastName": "Doe", "roles": ["editor"], "password": "SecurePass123!" }, { "email": "[email protected]", "firstName": "Bob", "lastName": "Smith", "roles": ["editor", "viewer"] }, { "email": "[email protected]" } ]

Référence des Champs

ChampObligatoireDescription
emailOuiL’adresse email de l’utilisateur. Doit être unique dans le tenant.
firstNameNonPrénom de l’utilisateur
lastNameNonNom de famille de l’utilisateur
rolesNonRôle(s) à assigner. CSV : chaîne séparée par des virgules ; JSON : tableau de chaînes. Si omis, aucun rôle n’est assigné.
passwordNonMot de passe initial de l’utilisateur. Si omis, l’utilisateur devra définir un mot de passe via magic link ou réinitialisation.

Il est recommandé de ne pas inclure de mots de passe dans les fichiers d’importation. Laisse le champ vide et Auris enverra automatiquement un lien de définition de mot de passe lors du premier accès.

Erreurs par Ligne

Message d’erreurDescription
Email is requiredLa colonne email est vide
Invalid email formatL’adresse email n’est pas valide
Email already exists in this tenantUn utilisateur avec cet email existe déjà
Role 'X' does not existLe rôle spécifié n’existe pas dans ce tenant
Password does not meet minimum length requirementLe mot de passe est trop court
Password does not meet complexity requirementsLe mot de passe ne respecte pas les règles de complexité

Exporter des Utilisateurs

Démarrer l’Export

POST/api/users/exportRequires: manage:users

Démarre un job d’export asynchrone. Retourne un ID de job que tu peux utiliser pour surveiller la progression et télécharger le fichier une fois prêt.

Corps de la requête

{ "format": "csv" }
ChampObligatoireDescription
formatOuiFormat du fichier d’export : csv ou json

Réponse de succès

{ "ok": true, "data": { "id": "export_abc123", "status": "PENDING", "format": "csv", "expiresAt": "2025-02-19T10:00:00Z", "createdAt": "2025-02-18T10:00:00Z" } }

Les fichiers d’export expirent après 24 heures (expiresAt). Télécharge le fichier avant l’expiration — tu devras lancer un nouveau job d’export après cette date.

Télécharger le Fichier d’Export

GET/api/users/export/[id]/downloadRequires: manage:users

Télécharge le fichier généré par un job d’export terminé. Retourne le contenu du fichier directement avec les en-têtes de téléchargement appropriés.

Réponse de succès

En-têtes de réponse :

Content-Type: text/csv Content-Disposition: attachment; filename="users-export-2025-02-18.csv"

Le corps de la réponse est le contenu brut du fichier CSV ou JSON.

Codes d’erreur

CodeHTTPDescription
NOT_READY400Le job d’export n’est pas encore terminé
EXPIRED410Le fichier d’export a expiré (après 24 heures)
EXPORT_NOT_FOUND404L’ID du job d’export n’existe pas

Champs Exportés

ChampTypeDescription
emailstringAdresse email de l’utilisateur
firstNamestringPrénom
lastNamestringNom de famille
rolesstring / arrayRôles assignés. CSV : séparés par des virgules ; JSON : tableau
emailVerifiedbooleanSi l’email a été vérifié
isEnabledbooleanSi le compte est actif
createdAtstringDate de création du compte (ISO 8601)
lastLoginAtstring | nullDernière connexion (ISO 8601), null si jamais connecté

Les mots de passe ne sont jamais inclus dans les exports, quelle que soit la configuration.


Flux de Migration

Pour migrer des utilisateurs d’un tenant Auris vers un autre, suis ces étapes :

  1. Exporter depuis le tenant source au format json
  2. Télécharger le fichier d’export
  3. Modifier optionnellement le fichier (ajuster les rôles, retirer certains utilisateurs)
  4. Importer dans le tenant de destination
  5. Surveiller le job d’importation jusqu’à l’état COMPLETED ou PARTIAL
  6. Examiner les erreurs dans errors[] et les traiter manuellement si nécessaire
  7. Notifier les utilisateurs de définir leur mot de passe via magic link ou réinitialisation

Puisque les mots de passe ne sont jamais exportés, les utilisateurs migrés devront définir un nouveau mot de passe. Il est recommandé d’importer sans mot de passe et de laisser Auris envoyer automatiquement les liens de définition de mot de passe.


Corrélés