Profile Server API

Modelo de dados

Entidades Prisma (User, Customer, Tenant, App, AuditLog) e seus relacionamentos.

O schema Prisma (prisma/schema.prisma, PostgreSQL) define cinco modelos. Todas as entidades de negócio usam soft delete (deletedAt).

Diagrama de entidades

Entidades

User

Perfil local vinculado a uma identidade Keycloak.

CampoTipoObservações
iduuidPK
idIdentitystringÚnico; o sub do Keycloak
namestring
emailstringÚnico
typestringAdmin | Technician | Cooperative
customerIduuid?Customer opcional (FK)
createdAt/updatedAt/deletedAtdatetimedeletedAt = soft delete

Customer

Cliente/empresa. Raiz do multi-tenancy.

CampoTipoObservações
iduuidPK
federalTaxIdvarchar(14)Único (CPF/CNPJ)
namestring
aliasstring?
emailstring?
phonestring?
logoPathstring?
activebooleanPadrão true

Tenant

Instância de um App para um Customer.

CampoTipoObservações
iduuidPK
customerIduuidFK → Customer (indexado)
appIduuidFK → App (indexado)
namestring
activebooleanPadrão true
metadatajson?Dados livres
keycloakClientIdstring?Único; client Keycloak para auth de serviço
allowedScopesjson?Escopos permitidos no fluxo app-to-app

App

Aplicação registrada (ex.: app1, app2).

CampoTipoObservações
iduuidPK
namestringÚnico

AuditLog

Registro de auditoria gravado em operações de escrita (via @AuditLog).

CampoTipoObservações
iduuidPK
timestampdatetime
actionstringread | create | update | delete
entitystringEntidade afetada
entityIdstring?Id do registro afetado
metadatajson?
userIdstringAutor da ação