Skip to content

v0.1.0

Choose a tag to compare

@VictorStochero VictorStochero released this 09 Jun 16:14
· 7 commits to main since this release

APM self-hosted para Laravel, com zero dependências de runtime — parent/child sobre eventos nativos, armazenado no seu próprio RDBMS.

Destaques

Onboarding de um comando

  • php artisan observer:install --parent|--child escreve o .env, publica e migra.
  • O parent imprime (CLI e painel) um comando pronto e não-interativo para o child — ideal para deploy no Forge.
  • Schedules de manutenção (parent) e de envio (child) auto-registrados por modo: o child precisa só do .env + o cron do scheduler.

Painel do parent

  • Gestão de projetos (criar, rotacionar credenciais, ativar/desativar) e disparo de comandos de manutenção pela UI, sob a ability separada manageObserver.

Confiabilidade dos dados

  • Ingestão exactly-once: cada lote carrega um batch_id estável; o parent deduplica por (projeto, batch_id). Retry de rede não duplica mais eventos.
  • reserve() do outbox e o observer:aggregate serializam via locks de banco (seguros em multi-host).
  • Dead-letter centralizado: lotes descartados são reportados ao parent e exibidos no painel, com fallback de log local.

Segurança e operação

  • Token por projeto + assinatura HMAC-SHA256 do corpo (comparação timing-safe, janela anti-replay); segredos armazenados encriptados.
  • Scrubbing de chaves sensíveis em bindings, input, headers, log e mensagens de exceção; paths de stack relativizados.
  • Limites de payload no ingest (OBSERVER_MAX_BODY_BYTES / OBSERVER_MAX_EVENTS) com HTTP 413.
  • Canal de alerta por e-mail opt-in, usando o mailer do parent.

Qualidade

  • CI em matriz Laravel 12/13 × SQLite/MySQL/PostgreSQL + Pint + PHPStan nível max (sem baseline) — tudo verde.
  • Particionamento MySQL e portabilidade Postgres exercitados na CI.

Veja o CHANGELOG.md para a lista completa.