@m3r/sdk 0.5.0
Sample 0.6.1
Extensão de referência fatiada por pastas — o index só orquestra. O SDK e o Core já entregam isso de ponta a ponta.
Pasta: m3r-developer-platform/examples/sample-extension. Só @m3r/sdk. Sem React, SQL ou TypeORM.
O contrato da SDK continua 0.5.0. A sample 0.6.1 é o roteiro de homologação e o padrão de pastas: um domínio, um register, o index.ts só chama.
Árvore e ordem do activate: Padrões.
Pastas
Não há compras/ nem estoque/ vazios. O próximo domínio entra com o mesmo molde e uma linha no activate.
O que já funciona
| Canal | O que a sample prova |
|---|---|
| IP | Carimba [M3R-DEMO], bloqueia BLOQUEAR, botões no pedido e na lista, Faturar / Cancelar / Pedido Rápido |
AFTER_SAVE | writeAudit grava auditoria (origem=ip) |
tables.ensure | JSONB (demo_auditoria) e física FAX#### (demo_lote, sem physicalName fixo) |
records | Semeia DEMO-001 na física se estiver vazia |
screens | Página, modal com SdkFormBind, hideField / disableField, actions com openReport: |
reports | Filtro data / enum / texto; PDF e Excel; um relatório na tabela física |
| Eventos | created / fulfilled / cancelled — os dois últimos também gravam auditoria |
| Gestão | Configurações → Extensões lista, mostra logs e desliga o tenant |
Sequência para ver no ERP
- M3R: Validate Project → M3R: Deploy Extension (obrigatório em production) → M3R: Run Extension.
- Novo pedido, salvar: observação termina com
[M3R-DEMO]. - Vendas → Auditoria demo: linha
origem=ip,acao=gravado. - No pedido, Nova auditoria:
pedido_codigovem do bind;origemsome;acaotrava. - Cadastros → Lote físico:
DEMO-001. Relatório Posição de lotes exporta PDF/Excel. - Faturar ou cancelar: nova linha na auditoria + log no host.
- Configurações → Extensões: Logs / Desativar / Ativar.
Desativar não apaga FAX#### nem as linhas.
Como o index inicia
AFTER_SAVE e tables.ensure não ficam no index. O registerVendas chama ensureAuditoriaTable antes de ligar o IP que grava a linha.
