{"id":"repo/fadap-protocol","source":"repo","sourceLabel":"repository root","sourcePath":"FADAP_PROTOCOL.md","routePath":"/fastapp/public-docs/page/repo/fadap-protocol","rawPath":"/fastapp/public-docs/raw/repo/fadap-protocol","slug":["repo","fadap-protocol"],"slugPath":"repo/fadap-protocol","title":"🔌 FADAP PROTOCOL — O Motor de Sincronização","description":"O FADAP Protocol (Fastapp Data & Architecture Protocol) rege a sincronia entre as três camadas do sistema: Metadados, Manifesto e Storage.","headings":["🔌 FADAP PROTOCOL — O Motor de Sincronização","🧩 O Problema das Três Camadas","🔄 O Ciclo de Sincronização (Fadap Sync)","🛠️ Heurísticas de Mapeamento (DDL Generator)","🧬 Ontologia v3 e o FADAP"],"wordCount":347,"markdown":"# 🔌 FADAP PROTOCOL — O Motor de Sincronização\r\n\r\nO **FADAP Protocol** (Fastapp Data & Architecture Protocol) rege a sincronia entre as três camadas do sistema: Metadados, Manifesto e Storage.\r\n\r\n---\r\n\r\n## 🧩 O Problema das Três Camadas\r\n\r\n1.  **Desejo (Metadata Layer)**: O JSON editado no Schema Manager (`App.objects`).\r\n2.  **Percepção (Manifest Layer)**: O arquivo estático `static-manifest.ts` para performance.\r\n3.  **Realidade (Storage Layer)**: As tabelas físicas e colunas no PostgreSQL.\r\n\r\nO FADAP garante que a **Realidade** siga o **Desejo**.\r\n\r\n---\r\n\r\n## 🔄 O Ciclo de Sincronização (Fadap Sync)\r\n\r\nSempre que uma mudança estrutural ocorre, o motor executa:\r\n\r\n1.  **Metadados (Desejo - Sovereign Patch)**: O JSON editado via `PATCH /api/app/[id]`. É a semente de toda mudança.\r\n2.  **Manifesto (Percepção - Snapshot Sync)**: Gerado via `POST /api/system/snapshot`. O motor bloqueia execuções de DDL se o manifesto não estiver em sincronia.\r\n3.  **Storage (Realidade - DDL Automation)**: O motor Nuxt analisa a tabela física e executa migrações (`ALTER TABLE`). **Este passo ocorre automaticamente através da API, nunca manualmente.**\r\n\r\n> [!WARNING]\r\n> A **Realidade** deve sempre seguir o **Desejo** através da API. Edições manuais no banco ou no manifesto causam \"Esquizofrenia de Arquitetura\", onde o motor não consegue mais prever o comportamento do dado.\r\n\r\n---\r\n\r\n## 🛠️ Heurísticas de Mapeamento (DDL Generator)\r\n\r\nO motor traduz tipos de metadados para tipos SQL reais:\r\n\r\n| Tipo Meta | SQL (Postgres) | Motivo |\r\n| :--- | :--- | :--- |\r\n| `string`, `enum` | `TEXT` | Flexibilidade máxima. |\r\n| `number` | `DOUBLE PRECISION` | Precisão decimal. |\r\n| `boolean` | `BOOLEAN` | Nativo. |\r\n| `array` / `json` | `JSONB` | Performance em dados semi-estruturados. |\r\n| `date` / `datetime`| `TIMESTAMP TZ` | Melhor prática global. |\r\n\r\n---\r\n\r\n## 🧬 Ontologia v3 e o FADAP\r\n\r\nCom a Ontologia v3, o FADAP sincroniza não apenas campos e tabelas, mas também:\r\n- **Semântica de campo** (`semantic: asset | money | phone`): persistida no JSON de `objects`\r\n- **Topologia de módulo** (`topology: focal | connected`): persistida no JSON de `modules`\r\n- **Temporal type** (`temporal_type: event`): persistida para ativar agendas automáticas\r\n\r\n> [!TIP]\r\n> O FADAP garante que as extensões semânticas da Ontologia v3 viagem do **Agent → Architect → Snapshot → Motor** sem perda de informação. É o protocolo que habilita a **Auto-Evolução**.\r\n\r\n---\r\n\r\n> \"O Protocolo Fadap é a garantia de que o sistema é evoluível sem medo de quebra de banco de dados. Ele é o elo entre a intenção (Agent) e a realidade (Storage).\"\r\n\r\n"}