daljo25/filament-dependency-manager
A Filament plugin for managing dependencies between records. It helps you define, attach, and organize dependency relationships directly in your admin panel, making dependency-aware workflows and linked data easier to handle without custom code. Built for Laravel and Filament. Simple to add to exist...
What this release is. v3.1.0 is an incremental feature + hardening release for a Filament v3 plugin (branch 3.x) that surfaces outdated Composer/NPM dependencies inside the admin panel and offers copy-to-clipboard update commands. No breaking API changes are signalled; the release is additive plus fixes.
Architecture fit. Well-scoped for Laravel/Filament estates: it is a dev-tooling package that lives alongside the app, reads composer.json/composer.lock and package.json, and renders results through Filament. It does not sit in the request-critical path of production traffic, which materially lowers technical risk. The DEPENDENCY_MANAGER_NPM_CLIENT env switch is a sensible extension point but pushes configuration into environment variables rather than config files — worth confirming it is read through config() with an env fallback so it survives config:cache.
Integration feasibility. High for teams already on Filament v3 with the standard Vite/NPM toolchain. The main feasibility question is runtime topology: dependency checks depend on outbound access to the Composer registry and the npm registry (and, for Bun, bunx) from whatever host executes them. In containerised or air-gapped CI/production this will fail silently or noisily depending on how the package handles timeouts.
Technical risk (moderate, and concentrated in two places):
bun outdated has no JSON output, so the package runs bunx npm outdated --json under the hood and falls back to scraping the native ASCII table. Table scraping is inherently brittle across Bun versions and terminal widths, and bunx implies a network fetch of the npm CLI on first use. Treat Bun support as best-effort until proven in your environment; do not assume parity with the npm path.composer/npm/bun subprocesses inside a web request carries timeout, memory, and (in multi-tenant setups) authorisation risk. Confirm the plugin restricts access via Filament policies/gates and that checks are cached or queued rather than run on every page load.Positive signals. Pinning GitHub Actions to full commit SHAs and adding composer to Dependabot with a cooldown policy (7d default, 14d major) is above-average supply-chain hygiene for a package of this size and directly reduces the chance that the tool you use to detect vulnerable dependencies is itself the vector. Fixing dependency type resolution from package.json (dependencies vs devDependencies) and tolerating non-JSON stdout noise both address real-world failure modes rather than hypotheticals.
Key questions to resolve before adopting:
DEPENDENCY_MANAGER_NPM_CLIENT read via config() so it is config:cache-safe? Is there a published config file, or is env the only surface?3.x?Stack fit. Requires Filament v3 and a Laravel app with standard Composer plus a JS package manager. Best fit: internal admin panels and developer-facing dashboards where a small set of trusted users see the page. Poor fit: customer-facing panels, multi-tenant SaaS where tenant admins share the panel, or hardened production environments without outbound egress.
Migration path. Greenfield install — no prior assessment exists and nothing to migrate from. Pin to ^3.1 on the 3.x branch. Sequence as a dev/staging-only dependency first; promote to production only if the access-control and egress questions above come back satisfactory. Because it is a Filament plugin, expect a service provider registration plus a panel plugin registration in the PanelProvider — verify that against the package README rather than assuming.
Compatibility. The 3.x branch line is tied to Filament v3. If your roadmap includes a Filament v4 upgrade, budget for this package being a gating item — confirm a v4 branch exists or is planned before committing. PHP version floor is unstated in the release notes and should be checked against your fleet. The Bun path additionally requires the Bun runtime and network access to fetch the npm CLI via bunx, so it is only compatible with environments where that is acceptable.
Sequencing.
package.json type fix.bun outdated output.Maintenance. Low-to-moderate and mostly passive. The package is a read-only reporter; it does not mutate composer.json, package.json, or lockfiles — the copy-command action deliberately hands the command to a human. That is the right design and keeps blast radius small. Ongoing cost is keeping pace with the Filament major version and with upstream package-manager output formats, the latter being the fragile surface (particularly the Bun table parser). Dependabot cooldown on the package's own repo is a good sign but note it governs the maintainer's dependencies, not yours.
Support. Community/OSS support model presumed — no vendor SLA is evidenced in the release notes. Internal support burden falls on whoever owns the admin panel: triaging "the dependency page is blank/slow" tickets, which will almost always trace to egress, timeouts, or a changed upstream output format rather than to the plugin's own logic. Document a one-line runbook for those three causes.
Scaling. Scales with number of installs, not with traffic, provided checks are cached or triggered on demand. The risk is the anti-pattern of running package-manager subprocesses on page load across many apps — each check is a process spawn plus two network round-trips. At fleet scale (dozens of Laravel apps), this is better run as a scheduled job writing to a cache or table than as an interactive page. Confirm the plugin supports, or can be wrapped to support, that pattern.
Failure modes to plan for:
bunx npm outdated resolves or updates npm mid-run → non-deterministic output; pin or pre-install if this matters.Ramp-up. Low for a Laravel developer — install, register the plugin, set the env var if using Bun, done in under an hour. The learning curve is not in the package but in the surrounding operational questions (egress, caching, authz), which need a platform/infra voice in the room. Budget roughly half a day of engineer time for the spike plus a short security review; not a multi-sprint effort.
Verdict. Worth adopting as internal developer tooling on Filament v3 panels, with Bun support treated as beta. The security hardening in this release increases confidence in the package as a dependency; the remaining risk is environmental (egress, subprocess cost, authorisation) rather than inherent to the code. Gate production use on confirmed access control and a characterised offline failure mode.
How can I help you explore Laravel packages today?