use_transaction => false.production environment โ a rollback can't undo the other side effects of requesting every page as an admin (queued jobs, mail, audit logs, writes on secondary connections), so Canary won't run there.Full changelog: https://github.com/Baspa/filament-canary/compare/v1.1.0...v1.2.0
could not create an authorized user for panel [admin]: Could not verify the hashed value's configuration.) instead of a generic "no authorized user" / "no factory" skip. (#4)permissions, and a SECURITY.md disclosure policy was added. (#5)Requester. (#3)Full changelog: https://github.com/Baspa/filament-canary/compare/v1.0.0...v1.1.0
First release. ๐ค
Filament Canary is a runtime smoke-sweep for your Filament panels. It introspects every panel, resource and page at runtime and asserts the one thing you almost never write tests for: every page mounts for an authorized user, and is denied to guests โ enforced in CI on every PR.
No generated test files, no drift: new resources are covered automatically.
Filament::getPanels() โ resources โ pages, driven by the live route table.canary:check command โ per-page report + non-zero exit for CI (with --strict).InteractsWithCanary test helper โ one $this->canarySweep() assertion in your suite.canary:install โ reads each panel's access gate (canAccessPanel, roles, email allowlists, tenancy) and proposes an acting_as config for you.โ
passed ยท โ failed (5xx / authorization leak) ยท ๐ needs-auth ยท โญ๏ธ skipped (with a reason). Nothing is silently left untested.Mount + authorization only. No form submissions / CRUD assertions (that's the app-specific part to write by hand). Filament v3 is out of scope.
How can I help you explore Laravel packages today?