Tenants gérés

Représenter les clients de votre SaaS : entreprises ou individus auxquels vous vendez vos applications.

Qu'est-ce qu'un Tenant géré ?

Un ManagedTenant est un client qui souscrit à au moins une de vos Applications. Le modèle est volontairement minimaliste : nom, email, coordonnées, métadonnées libres. Aucun champ métier imposé.

Créer un tenant

Depuis la console /tenants/new. Le slug est généré automatiquement à partir du nom si vous n'en fournissez pas. Il doit être unique dans votre Organisation et ne peut plus être modifié.

  • Nom et email sont obligatoires.
  • Phone, country, timezone, locale, currency sont optionnels — héritent par défaut de votre Organisation.
  • Metadata : un objet JSON libre pour stocker des champs personnalisés (numéro de TVA, secteur, segment commercial…).

Utiliser le slug du tenant

Le slug est un excellent identifiant stable à inclure dans les claims JWT de votre app. Vous l'utiliserez ensuite avec GET /api/resolve/by-slug?slug=....

Métadonnées libres

Stockez n'importe quoi dont vous avez besoin pour vos process internes :

{
  "vatNumber": "MA123456",
  "industry": "transport",
  "salesOwner": "ali@algosoft.ma",
  "onboardingDate": "2026-04-15",
  "billingNotes": "Demande facture papier"
}

Ces champs ne sont pas exposés via l'API de résolution — ils restent dans la console pour vos opérations.

Cycle de vie du tenant

Le champ globalStatus a trois valeurs :

  • ACTIVE — fonctionnement normal.
  • SUSPENDED — toutes les souscriptions de ce tenant retournent 403 via l'API de résolution. Utile pour un blocage rapide en cas d'impayé global.
  • CANCELLED — fin de relation contractuelle. Les enregistrements sont conservés à des fins d'audit.

Cascade des suspensions

Suspendre un tenant ne supprime passes souscriptions, mais l'API de résolution retourne { "error": "TENANT_SUSPENDED" } en 403. Votre app doit gérer ce cas (typiquement : afficher un message explicite, refuser l'accès).

Recherche et filtres

La page /tenants permet de filtrer par statut et de chercher par nom, slug ou email. Pour récupérer uniquement les tenants abonnés à une app spécifique, utilisez la query ?appSlug=crs.