Skip to content

Releases: v4Codes/observer

v0.1.4

09 Jun 19:18

Choose a tag to compare

Mudancas

  • Namespace migration: \Stochero\Observer\ → \�4Codes\Observer\ para alinhar com o nome do pacote no Packagist.

v0.1.3

09 Jun 18:11

Choose a tag to compare

Fixed MIME type error for observer.css.

v0.1.2

09 Jun 17:54

Choose a tag to compare

Fixed broken dashboard CSS by bundling it locally.

v0.1.1

09 Jun 16:33

Choose a tag to compare

Correções de robustez na instalação/captura do child.

Fixed

  • A captura nunca quebra a app host (RNF-2). Uma tabela obs_outbox ausente (migrations ainda não rodadas) ou um banco indisponível não propaga mais exceção para o ciclo de request/comando — o lote é descartado em silêncio. Isto corrige o erro Base table or view not found: obs_outbox ao instalar o pacote antes de migrar.
  • Child sem parent_url + token fica inerte. Recém-instalado e não configurado, o child não anexa o middleware de captura nem agenda o envio — um composer require não faz nada até o setup ser concluído (observer:install --child).

Atualizar

composer update v4codes/observer

v0.1.0

09 Jun 16:14

Choose a tag to compare

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.