dreamfactory/df-system
DreamFactory df-system provides the System API module for Laravel/PHP applications, exposing administrative endpoints to manage apps, roles, services, users, and platform configuration. It integrates with DreamFactory to handle core system resources, access control, and environment administration.
Architecture fit
dreamfactory/df-system is not a general-purpose Laravel package — it is the System Service module of the DreamFactory platform, the admin-plane of the product. It ships the service provider, routes, controllers, models, migrations, and config for the system/* API surface: users, roles, apps, services, config, scripts, events, CORS, environment, email templates, upgrade, and session. It assumes the host application already provides the DreamFactory runtime: df-core service contracts, the service manager and dependency resolution, the platform authentication/authorization stack (API keys, JWT, role-based system.* permissions), and the shared database schema.
Consequence: fit is high inside a DreamFactory deployment, near-zero as a standalone dependency. Dropping it into a bespoke Laravel app would require reimplementing the service contract and auth model it binds to — a rewrite, not an integration.
Integration feasibility
Technical risk
df-core and df-system typically surfaces as boot-time or service-registration failures, not graceful degradation.system/config. It deserves threat modeling, not just code review.Key questions to resolve before commitment
df:setup, dashboard, CLI)?Stack fit
Fits an existing DreamFactory deployment (PHP 8.x, Laravel per the platform's supported matrix, Composer). Does not fit a standalone Laravel application, and should not be evaluated as a library you compose into one. The correct framing is: "we are adopting DreamFactory as an API gateway/API-generation platform; this package is one of its internal services."
Migration path
There is no incremental "drop it in" path. The realistic sequence is a platform adoption:
system/*.Compatibility
df-core and df-system to exact matching versions; treat them as a single unit in the lockfile.Sequencing
Freeze the platform version → rehearse the upgrade in staging with a production-shaped database copy → back up system tables → migrate → smoke-test auth, roles, and service registration → promote. Keep the system service behind network policy or an admin-only route group at all times; never expose system/* on a public listener.
Maintenance
Upgrades are in lockstep with the platform, not independent. Each DF core bump is a coupled change to this package plus its schema migrations. Apache-2.0 gives you the right to fork, but forking converts a vendor dependency into a permanent internal maintenance obligation on your most security-sensitive code — a bad trade unless upstream is genuinely abandoned.
Support
Vendor commercial support exists at the platform level; community support is thin (3 stars, 0 dependents). Assume source-reading as the primary debugging method and budget for at least one engineer who owns the platform internally.
Scaling
The system service is an admin plane, not a data plane: low QPS, latency-insensitive. Throughput risk lives in the data services (database connectors, etc.), not here. The one scaling-adjacent concern is per-request config assembly — confirm it is cached rather than re-read on each call.
Failure modes to instrument and rehearse
system.service / system.config → unauthenticated exposure of configuration and credentials.df-core and df-system → boot failure or 500s on service registration.Ramp-up
A mid-level Laravel engineer is productive in the module within a few days, but productive in the platform in roughly 1–2 weeks: the service manager, dependency injection conventions, and auth model are DreamFactory-specific and undocumented in this repo. Plan for one designated owner, a written upgrade runbook, and a staging environment that mirrors production data shape before the first upgrade cycle.
How can I help you explore Laravel packages today?