Sintaxe
Referência dos blocos Core e Infra (estável em v0.1). Gramática: Especificação. CRM: crm-reference.aip. Blocos Security e Behavior: Segurança, Workflows.Convenções
- Campos declarados dentro de
entity(nome: tipo modificadores). - Ordem:
required|optional→unique→default(valor). - Identificadores:
PascalCasepara entidades e eventos;snake_casepara campos.
app
| Membro | Valores iniciais |
|---|---|
database | postgres, mysql |
auth | jwt, session, api_key, oauth |
auth em app é o padrão; api { } pode sobrescrever detalhes HTTP. Toda spec v0.1 exige um bloco app.
entity
Tipos
relation
| Relação (inline, v0.1) | Uso |
|---|---|
belongs_to | FK para outra entidade |
has_one | 1:1 inversa (roadmap) |
has_many | 1:N (roadmap) |
many_to_many | N:N (roadmap) |
optional marca FK nullable.
crud
Validação
Prefira modificadores inline:validation (equivalente, para muitas regras):
index
unique no campo já cria constraint; use index para buscas compostas ou não únicas.
api
app.auth salvo override. Rate limit e CORS: Segurança.
Tabela resumo (Core + Infra)
| Bloco | Nível | Função |
|---|---|---|
app | Core | Aplicação e defaults |
entity | Core | Modelo de dados |
enum(…) inline | Core | Tipos enumerados |
belongs_to inline | Core | Relações (v0.1) |
crud | Core | Operações REST |
inline / validation | Core | Regras de campo |
index | Infra | Índices |
api | Infra | HTTP |
seed | Infra | Dados iniciais — Banco |
