PostgreSQL e persistência

O banco guarda isolamento, idempotência e histórico. Reiniciar a API não apaga integrações nem sessões.

Modelo

  • Identidade: User, Session, Account, Verification, Membership.
  • Plataforma: Workspace, ApiKey, Integration.
  • Checkout: CheckoutSession, Payment, PaymentEvent.
  • Entrega: WebhookEndpoint, WebhookDelivery.
  • Operação: AuditLog, ApiRequestLog, RateWindow.

As relações possuem chaves estrangeiras. Sessões têm chave de idempotência única por organização; pagamentos são únicos por sessão; eventos e entregas têm deduplicação própria.

Migrações

pnpm db:generate
pnpm db:deploy
# Somente desenvolvimento, após alterar schema:
pnpm db:migrate --name nome_da_mudanca

Versione as migrações SQL e revise alterações destrutivas. Não use db push como substituto de migrações de produção. Faça backup antes de migrar e teste compatibilidade com a imagem anterior.

Dados sensíveis

Campos de pagador e pré-preenchimento são criptografados. Tokens de checkout possuem resumo para autenticação e cópia criptografada para respostas idempotentes. Credenciais da API possuem apenas resumo; segredos de assinatura ficam criptografados.

Backup e retenção

Configure pg_dump agendado para armazenamento externo criptografado e teste restauração em banco isolado. Um volume Docker não é backup. Defina retenção para sessões, requisições, eventos e dados pessoais antes de produção; o worker já remove janelas antigas de rate limit.

Modelos da plataforma

ProviderConnection isola credenciais por negócio. NotificationInbox persiste tokens com controle de tentativas. EmailOutbox guarda destinatário, texto e HTML criptografados, remetente/provedor imutáveis, resumo de idempotência, vínculo da credencial, tentativas e identificador de aceite. O status accepted não comprova entrega; envios SMTP inconclusivos ficam uncertain sem repetição cega. SupportMessage guarda mensagens criptografadas. Defina retenção antes de coleta em escala.

Documentação técnica do MagnumAPI v1

Buscar na documentação