Public Markdown Document
📄 FASTAPP SCHEMA — Ciclo de Vida do Esquema
O esquema do Fastapp existe em dois estados: Dinâmico (Banco de Dados) e Estático (Sistema de Arquivos) . Esta dualidade garante agilidade no desenvolvimento e robustez em produção.
📄 FASTAPP SCHEMA — Ciclo de Vida do Esquema
O esquema do Fastapp existe em dois estados: Dinâmico (Banco de Dados) e Estático (Sistema de Arquivos). Esta dualidade garante agilidade no desenvolvimento e robustez em produção.
1. Esquema Dinâmico (Primary Source)
- Local: Tabela
appno PostgreSQL. - Edição: Feita via Schema Manager v3 ou API.
- Uso: Ferramenta de No-Code para design-time.
2. Esquema Estático (Snapshot)
- Local:
app/fastapp/static-manifest.ts. - Geração: Via endpoint de Snapshot.
- Uso: Carregamento instantâneo em produção, versionamento Git e segurança contra falhas de conexão com o banco.
🔄 Fluxo de Evolução
- Iteração: O Arquiteto IA ou o Dev edita o Esquema Dinâmico.
- Validação: Teste das mudanças em tempo real na aba de aplicativos.
- Congelamento: Geração do Snapshot para "pergelar" a versão estável.
- Sincronia: Notificação do Protocolo Fadap para ajustar o banco físico (DDL).
📐 Estrutura Técnia (V3)
O esquema é definido por interfaces TypeScript que governam a renderização e o comportamento.
📦 ObjectSchema
Define a entidade principal e seu comportamento de CRUD.
crud_mode:'modal' | 'sidebar' | 'page' | 'split'.detail_mode:'sidebar' | 'modal' | 'page'.group_render_mode:'tabs' | 'wizard' | 'sections'. (Define comoproperty_groupssão exibidos).
🔗 RelationSchema
Define como os objetos se conectam e como o CRUD filho é orquestrado.
nested_crud:boolean. Habilita a aba de CRUD para o objeto alvo.nested_view_mode:'table' | 'kanban' | 'list' | 'grid'. Define a visualização padrão na aba.ui_visibility:boolean | 'hidden' | 'visible'. Controla se a relação aparece nos menus/exploradores automáticos.storage:'reference_id' | 'document_embed' | 'pivot'.
🛠️ Custom Actions
O esquema também define o comportamento de ações customizadas. Quando uma ação (ex: Gerar Relatório) é declarada no objeto:
- O metadado registra a intenção e o ícone.
- O motor busca a implementação correspondente no diretório de handlers Nitro (
server/api/v1/actions/...).
"O esquema é o contrato entre a intenção do negócio e a execução do software."