malefici/metabase-bundle
A Laravel/PHP bundle for integrating Metabase analytics into your application. It provides configuration and helpers to connect your app with Metabase, making it easier to embed dashboards and questions and surface analytics within Laravel projects.
Architecture fit
malefici/metabase-bundle is a Symfony bundle, not a Laravel package. There is no service provider, no config/*.php publish target, and no facade. Architectural fit for a Laravel codebase is therefore indirect at best: you would consume the underlying service class manually or port it.Integration feasibility
frame-ancestors allowlisting on both sides. That work is identical whether you use this bundle or write your own, and it dominates the timeline.Technical risk
params, missing exp, secret logged or leaked in an exception trace, unsigned fallback) is an authorization-bypass class bug. Conversely, the surface is small enough to read every line in an hour — this is auditable in a way a large dependency is not.composer.json transitive dependencies (likely a JWT library). Prefer pinning to an audited, widely-used JWT implementation (firebase/php-jwt / lcobucci/jwt) that you control directly rather than relying on this package's constraint.Key questions
exp always set on the JWT, and is it configurable/short? Are tokens minted server-side only, never in client-rendered templates with the secret in scope?Stack fit
MetabaseEmbedService bound in a service provider, with config in config/services.php and the secret in .env/a secrets manager. This is a half-day of work and gives you ownership of the security-critical path.<iframe>. Keep the minting server-side and scope the URL to a single dashboard + tenant parameter set per request.Migration path
DashboardEmbedder) so the bundle is swappable without touching call sites.Compatibility
Sequencing
composer.json, run a dependency audit. Half a day, one reviewer.Maintenance
Support
Scaling
Failure modes
exp short (minutes) and mint per page load.X-Frame-Options misconfiguration on either app or Metabase → silent blank frame, commonly misdiagnosed as an auth bug.Ramp-up
How can I help you explore Laravel packages today?