Skip to main content
Membership representa a atribuição de uma role a um usuário. Para roles de organização e de ambiente, a Membership também define a organização ativa dessa atribuição. Para roles internas de BKO, a organização fica ausente.

Campos

Relacionamentos

  • Relaciona-se com User
  • Relaciona-se com Organization (opcional — ausente em roles internas)
  • Relaciona-se com Role
  • Membership representa acesso operacional de um usuário; Employee é um vínculo separado da Company e não depende de Membership.

Regras de Negócio

  • INTERNAL usa Membership sem organização e concede acesso interno de BKO.
  • ENVIRONMENT usa Membership com organização preenchida, mesmo que a Role seja global.
  • ORGANIZATION usa Membership com a mesma organização da Role.
  • Um usuário pode pertencer a múltiplas organizações com roles diferentes, e acumular mais de uma role na mesma organização.
  • O mesmo usuário não deve ter duas Memberships ACTIVE para o mesmo par organizationId + roleId. Para roles INTERNAL, a unicidade considera organizationId = null.
  • Surge no aceite de um Invite do tipo MEMBER.
  • Apenas Membership ACTIVE concede claims, roles e permissions no Profile.
  • Criação, atualização e revogação emitem membership.created, membership.updated e membership.revoked, além de solicitar auditoria do recurso MEMBERSHIP quando executadas por uma API autenticada.
  • Revogar uma Membership muda status para REVOKED, preenche revokedAt e preserva o histórico do vínculo.
  • Membership REVOKED não pode ser reativada nem bloquear novo convite equivalente. Para devolver acesso, um novo Invite deve criar um novo vínculo.
  • Uma Company pode administrar Memberships de seus membros e Employees de seus funcionários, mas os dois vínculos têm finalidades diferentes.

Enums

MembershipStatus

Example