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 BackOffice, a organização fica ausente.

Campos

CampoTipoDescrição
membershipIdUUIDIdentificador único
userIdUUIDReferência ao usuário
organizationIdUUID?Referência à organização; null apenas para role INTERNAL
roleIdUUIDReferência à role
statusMembershipStatusStatus do vínculo de acesso
revokedAtDateTime?Data em que o vínculo foi revogado
revokedByUUID?Usuário que revogou o vínculo, quando aplicável
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtDateTimeData de criação
updatedByUUID?Usuário que fez a última atualização, quando aplicável
updatedAtDateTimeData da última atualização

Relacionamentos

  • Relaciona-se com User
  • Relaciona-se com Organization (opcional — ausente em roles internas)
  • Relaciona-se com Role
  • Pode ser referenciada por Employee, quando a Organization pertence a uma Company.

Regras de Negócio

  • INTERNAL usa Membership sem organização e concede acesso interno de BackOffice.
  • 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.
  • 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.
  • Quando a Membership pertence à Organization de uma Company, ela pode originar o Employee correspondente para o mesmo userId.

Enums

MembershipStatus

ValorDescrição
ACTIVEVínculo ativo e considerado no Profile
REVOKEDVínculo encerrado e ignorado para autorização

Example

{
  "membershipId": "0197a803-39a7-75e7-8cc2-62fb0542e642",
  "userId": "0197a7f5-2a88-7c1e-9b65-1f6d8f3b3a10",
  "organizationId": "0197a7f7-7291-7a43-96db-2c8580b80c5d",
  "roleId": "0197a7f8-15d1-7320-9b60-02497d7a0d61",
  "status": "ACTIVE",
  "revokedAt": null,
  "revokedBy": null,
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T13:30:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T13:30:00.000Z"
}