Aller au contenu
Filtrer les règles par style d’implémentation
Style
Tactique
Sévérité
bloquanteBloquante pour une requête sans filtre sur le tenant. Majeure sinon.
S’applique à
  • Modèle (domain)
  • Adapters driven

ENT-09 · En multi-tenant, chaque entity et chaque requête portent l’identité du tenant ​

Condition
Seulement si le système est multi-tenant.
Style
Tactique
Sévérité
bloquanteBloquante pour une requête sans filtre sur le tenant. Majeure sinon.
S’applique à
  • Modèle (domain)
  • Adapters driven

Signal ​

  • Une entity qui appartient à un tenant mais ne porte pas son identité.
  • Une requête de repository qui ne filtre pas par tenant.
  • Une égalité d’entities qui ignore le tenant.

Pourquoi ​

Quand les clients sont des entreprises concurrentes sur la même plateforme, chaque entity, dans chaque bounded context, porte l’identité du tenant. Chaque requête en a besoin pour trouver une entity.

Le tenant fait partie de l’identité : deux wallets de tenants différents ne sont jamais égaux.

Exceptions ​

Les objets réellement partagés entre tenants, et déclarés comme tels.

Correction ​

Un TenantId typé sur chaque entity concernée, et en paramètre obligatoire de chaque méthode de repository.