Esquema
| Campo | Tipo | Descricao |
|---|
userId | UUIDv7 | Identificador unico |
externalRef | string | Referencia do usuario no WorkOS |
email | string | Email unico, max 255 caracteres |
firstName | string | Primeiro nome, max 100 caracteres |
lastName | string | Sobrenome, max 100 caracteres |
locale | enum | en-US, pt-BR, es-ES |
avatar | string? | URL da foto de perfil |
lastSignInAt | datetime? | Timestamp do ultimo login |
emailVerified | boolean | Se o email foi verificado |
createdAt | datetime | Timestamp de criacao |
updatedAt | datetime | Timestamp da ultima atualizacao |
Exemplo
{
"userId": "019525fd-7e40-7c5a-b2d8-4e6f8a0c2e4a",
"externalRef": "user_01JK8QWERTY12345ABCDE",
"email": "joao.silva@empresa.com.br",
"firstName": "Joao",
"lastName": "Silva",
"locale": "pt-BR",
"avatar": null,
"lastSignInAt": "2026-04-01T18:45:00Z",
"emailVerified": true,
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-04-01T18:45:00Z"
}
Relacionamentos
Regras de Negocio
- Email deve ser globalmente unico
- Criado via padrao Saga: banco local -> WorkOS. Revertido em caso de falha.
- Exclusao remove tanto do banco local quanto do provedor de identidade
- Cacheado por ID
- Nao pode fazer sign up se
lastSignInAt ja estiver preenchido
A criacao de usuario utiliza o padrao Saga com dois sistemas (banco local + WorkOS). Se o WorkOS falhar apos a insercao local, a operacao e revertida automaticamente.
O campo externalRef armazena o ID do WorkOS (formato user_*) e e utilizado para sincronizar dados entre a aplicacao e o provedor de identidade.