Segurança
Camada Security (beta v0.1). Predicados: Especificação — Políticas. Exemplo: crm-reference.aip.auth
Padrão global em app:
| Estratégia | Uso típico |
|---|---|
jwt | APIs stateless (recomendado) |
session | Apps web com cookie |
api_key | Integrações M2M |
oauth | Login social / IdP |
app uma vez; evite repetir auth jwt em api salvo override.
policy
Lead.seller deve existir como belongs_to User.
Entidades sem policy: padrão authenticated (com auth no app) ou public (sem auth) — ver Especificação.
Papéis e permissões
permission(nome) em policy é suportado; declaração top-level permission é apenas preview.
Predicados
| Predicado | Descrição |
|---|---|
public | Sem auth |
authenticated | JWT/sessão válida |
role(name) | Papel global |
permission(name) | Permissão nomeada |
owner(field) | Usuário autenticado igual a field |
owner_or_manager(field) | Dono, manager ou admin |
custom reservado para o futuro — não misturar SQL manual com policies geradas no v0.1.
rate_limit e CORS
SQL injection
Transpiladores devem emitir queries parametrizadas / ORM. Códigocustom manual fica fora dessa garantia.
Geração multi-target
| Alvo | Artefato |
|---|---|
| Go | middleware JWT, checks em handlers |
| TypeScript | guards, decorators |
| Python | dependencies / decorators |
| PHP | policies, gates |
| OpenAPI | securitySchemes |
crm-reference.aip inclui policy Lead e api com rate limit + CORS.