FASTAPP_SCHEMA.md

📄 FASTAPP SCHEMA — Ciclo de Vida do Esquema

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.

293 palavras8 headingsrepository root

📄 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 app no 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

  1. Iteração: O Arquiteto IA ou o Dev edita o Esquema Dinâmico.
  2. Validação: Teste das mudanças em tempo real na aba de aplicativos.
  3. Congelamento: Geração do Snapshot para "pergelar" a versão estável.
  4. 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 como property_groups sã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:

  1. O metadado registra a intenção e o ícone.
  2. 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."