Releases: v4Codes/observer
Releases · v4Codes/observer
v0.1.4
v0.1.3
Fixed MIME type error for observer.css.
v0.1.2
Fixed broken dashboard CSS by bundling it locally.
v0.1.1
Correções de robustez na instalação/captura do child.
Fixed
- A captura nunca quebra a app host (RNF-2). Uma tabela
obs_outboxausente (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 erroBase table or view not found: obs_outboxao 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 — umcomposer requirenão faz nada até o setup ser concluído (observer:install --child).
Atualizar
composer update v4codes/observerv0.1.0
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|--childescreve 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_idestável; o parent deduplica por(projeto, batch_id). Retry de rede não duplica mais eventos. reserve()do outbox e oobserver:aggregateserializam 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.