Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Dependency Manager Laravel Package

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...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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):

  1. Bun support is a shim, not native. 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.
  2. Shelling out to package managers. Any feature that executes 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:

  • Does the package enforce authorisation (Filament policy / gate) on the panel page and the copy actions?
  • Are registry calls cached, and is there a configurable timeout? What happens when the registry is unreachable?
  • Is 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?
  • How does it behave with pnpm/yarn workspaces and monorepos, and with lockfile-less projects?
  • Is there a documented minimum PHP/Laravel/Filament version matrix for 3.x?
  • Does the Bun fallback table parser have a stated supported Bun version range?

Integration Approach

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.

  1. Spike install on a single non-production app; confirm the panel page renders and authorisation works.
  2. Validate the Composer and npm paths against a repo with known-outdated packages, including a devDependency to verify the package.json type fix.
  3. Validate the Bun path separately, if relevant — treat it as experimental and capture the fallback behaviour with a deliberately malformed bun outdated output.
  4. Test with the registry blocked to characterise the failure mode (timeout vs error vs empty state).
  5. Roll out to one internal panel, monitor for a sprint, then widen.

Operational Impact

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:

  • Registry unreachable or rate-limited → stale or empty results; must not present "no outdated packages" as success.
  • bunx npm outdated resolves or updates npm mid-run → non-deterministic output; pin or pre-install if this matters.
  • Non-JSON stdout noise → now tolerated, but the tolerance could mask genuine errors as "no results"; check that exit codes are still inspected.
  • Long-running subprocess blocking a PHP-FPM worker → worker exhaustion under concurrent admin usage; enforce a timeout.
  • Authorisation gap → dependency inventory (package names and versions) exposed to users who should not see it. This is a genuine information-disclosure surface and the single most important thing to verify.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums