Pular para o conteúdo

Princípios

O basedb foi concebido a partir de um documento de arquitetura — dezesseis capítulos, no repositório, em docs/architecture. Seu capítulo 00 fixa vinte e cinco decisões; eis o espírito delas.

Uma base de usuário é um schema PostgreSQL, uma tabela é uma tabela, um campo é uma coluna tipada com nome legível. Nada de EAV (entidade-atributo-valor), nada de documento JSON para tudo, nada de nome opaco. O catálogo _basedb descreve esses objetos; ele não os substitui.

Consequência desejada: o SQL direto é um uso legítimo. As restrições são definidas no banco, o histórico é capturado por trigger — nada pressupõe que a escrita passe pelo aplicativo.

A interface, a API REST, o servidor MCP, os formulários compartilhados, os webhooks: tudo passa pelo mesmo ponto de aplicação das permissões, no núcleo. A interface é um consumidor da API como qualquer outro — sem rota privada, sem token de serviço. Um recurso que não se pode ver responde exatamente como um recurso que não existe.

Um monorepo TypeScript: @basedb/core contém toda a lógica (catálogo, motor DDL, permissões, registros, histórico); apps/api (Hono), apps/mcp e apps/web (Next.js) são adaptadores que não chamam uns aos outros. A interface nunca depende do núcleo: ela fala HTTP, e ponto.

Excluir rebaixa, sem destruir: uma tabela excluída mantém suas linhas, legíveis em SQL sob um nome rebaixado, e pode ser restaurada. Renomear um nome físico mantém o antigo servido por um alias. A purga é uma decisão da administração, precedida de uma exportação verificada.

PostgreSQL 16 ou superior, e nenhuma dependência externa obrigatória: nem fila de mensagens, nem cache, nem mecanismo de busca. A fila dos webhooks, o escoamento do histórico, os limites de taxa, tudo cabe no banco ou no processo.

CapítuloAssunto
00Decisões estruturantes e registro dos códigos de erro
01Nomenclatura e slugificação
02O catálogo _basedb, fonte da verdade
03Motor DDL e migrações
04Tipos de campo e projeção no PostgreSQL
05Permissões
06Ciclo de vida: renomeação, exclusão, purga
07Histórico
08API REST e webhooks
09Servidor MCP
10Arquitetura de software
11Interface
12Integração de IA
13Autenticação
14Ambientes
15Formulários compartilhados

O basedb é um software livre da Eodia, estúdio de software nativo em IA.