Entidades e relacionamentos · Identidade e acesso
Modelo de identidade
A API mantém o cadastro da Pessoa, a conta local e os vínculos necessários à autorização. O Appwrite mantém a identidade e a sessão usadas pelo front. A conta local identifica seu titular por person_id e sua identidade externa por appwrite_subject.
| Entidade | Identificador e campos principais | Função |
|---|---|---|
people | id UUID, natureza, dados da Pessoa e papéis institucionais em roles | Representa a Pessoa titular da conta. |
users | id UUID, person_id, appwrite_subject, email único, name, password_hash anulável, access_profile, active e datas de registro | Identifica a conta local usada pela API na autorização; contas locais distintas também a usam na autenticação própria. |
nuclei | id UUID, sigla única, name e datas de registro | Representa um núcleo ao qual a conta pode estar vinculada. |
user_nuclei | user_id, nucleus_id, role e data de criação | Associa uma conta a um núcleo. |
api_tokens | id UUID, owner_id, name, secret_hash, scopes, expiração, revogação e último uso | Guarda credenciais de integração associadas a uma conta local. |
Relacionamentos
| Origem | Destino | Restrição |
|---|---|---|
users.person_id | people.id | Identifica a Pessoa titular; pode ser nulo em contas legadas ainda sem vínculo. |
user_nuclei.user_id | users.id | Chave estrangeira com exclusão em cascata. |
user_nuclei.nucleus_id | nuclei.id | Chave estrangeira com exclusão em cascata. |
api_tokens.owner_id | users.id | Chave estrangeira com exclusão em cascata. |
A chave composta user_id + nucleus_id impede repetir o mesmo vínculo. No cadastro conjunto, a API associa a conta à Pessoa e cria a identidade Appwrite com o ID da conta local. Contas Appwrite têm appwrite_subject = users.id e password_hash = NULL; somente contas locais distintas mantêm hash de senha. A migração remove os hashes de contas já vinculadas ao Appwrite. Na autenticação Appwrite, appwrite_subject identifica a conta; a busca temporária por e-mail atende contas legadas sem esse vínculo até sua reconciliação por manifesto operacional.