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

Df Core Laravel Package

dreamfactory/df-core

Core foundation for DreamFactory's Laravel-based API platform, providing shared contracts, utilities, and service infrastructure that power modules for exposing, securing, and managing REST APIs.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict: dreamfactory/df-core is still not a library you adopt — it is the extracted core of the DreamFactory platform, published so the vendor's own app shell and connector packages can assemble into a runnable product. The 1.0.18 release does not change that. It does, however, change two inputs to the decision: the package is demonstrably being actively patched (security-relevant fixes shipped against the 7.7.1 platform cut), and its default network behavior has changed in ways that constitute breaking operational changes for any existing deployment. Composite score moves marginally (~22/100) on maintenance evidence, not on adoption. Treat the decision as "are we adopting the DreamFactory platform?" — not "are we adding a package?"

Architecture fit

  • Unchanged. df-core remains the platform's internal spine: base Service/Resource/resource-handler abstractions, service registry and event system, API definition and Swagger/OpenAPI generation, shared utilities — high fan-in, high fan-out, designed to be depended on by df-system, df-database, per-connector packages, and the dreamfactorysoftware/dreamfactory app shell.
  • Installing df-core alone still yields a non-functional artifact. 1.0.18 reinforces this: the fixes land in filter parsing, package import, service access lists, and MCP query templates — all of which only have meaning inside a running platform with a metadata store and configured services.
  • The release adds a genuinely new architectural consideration: MCP (Model Context Protocol) query templates are being actively maintained and fixed. That implies the platform now ships an MCP surface intended to expose data sources to AI/LLM clients. If our requirement includes "let agents query heterogeneous backends," that is a real capability signal — and a new external attack surface that we would own.
  • Fit conclusion holds: strongest only if the requirement is literally "API generation / API façade over many heterogeneous data sources" (or now, "MCP façade"), and we intend to run DreamFactory as a product. Otherwise, architectural mismatch remains severe.

Integration feasibility

  • Mechanically unchanged: Apache-2.0, composer require resolves, does nothing useful without the app shell and at least the system/database siblings.
  • Version alignment is still the gate, and 1.0.18 sharpens it. This release is explicitly labelled a "release for DreamFactory 7.7.1." That confirms the documented lockstep cadence and confirms that df-core versions map to platform versions, not to semantic-versioning of a public API. Pin the entire df-* set plus app shell as one tested combination.
  • The release notes materially close one earlier open question and raise new ones. Closed: the package is not dormant — there is a named, active maintainer and a steady fix stream. Raised: the security fixes are behavioral, not cosmetic.
    • Redirects are no longer followed automatically; each opted-in hop is validated and pinned to its resolved IP. Any connector or script relying on upstream 3xx behavior will now fail until explicitly configured.
    • SSL peer/host verification is on by default. Self-signed or internal-CA upstreams — common in enterprise data sources — will now fail until trust is configured.
    • The installed service-type catalog at the API root now requires authentication. Any unauthenticated client that introspected the root for discovery breaks.
  • The supported integration path is still the installer/Docker image with a configured .env and a backing database. Any other path is a fork.
  • Hard dependency to validate early and unchanged: the scripting subsystem requires V8js (or equivalent), a known operational liability on modern PHP runtimes.
  • PHP/Laravel pinning must still be read from composer.json at source. The earlier caution about feed metadata not reconciling with release cadence is now partly explained — releases track platform cuts, not a normal package cadence — but the recommendation to verify at source stands.

Technical risk

  • Vendor/abandonment risk (revised: medium-high, down from high): the 1.0.18 fix stream — including proactive SSRF/TLS hardening — is evidence the OSS core is maintained by the vendor, not abandoned. What has not changed is the absence of a community: 0 dependents, minimal stars, and effectively a single maintainer handle on the release. Concentration risk is unchanged even though activity risk is lower.
  • Coupling risk (high, unchanged): internal APIs are not public contracts; no evident stability guarantee, deprecation policy, or semantic-versioning discipline across the df-* family. 1.0.18 shipping security behavior changes in a patch-level bump is itself the evidence.
  • Behavior-change risk (new, medium-high): SSRF/TLS hardening, authenticated service catalog, corrected filter semantics (a='x' OR b='y' previously matched nothing and now returns rows; BETWEEN/NOT BETWEEN now expand to range comparisons), and update-validation errors returning 400 instead of 500 are all changes that can alter production responses. Correctness improves; predictability for existing clients does not.
  • Runtime risk (medium-high, unchanged): V8js, extension-level dependencies, older PHP idioms constrain images, upgrades, and hardening.
  • Testability risk (medium, unchanged): meaningful test surface is integration-level against real database backends.
  • Security surface (medium, materially improved but still ours): the SSRF/TLS defaults and authenticated catalog close real, serious holes — an unauthenticated service-type catalog and automatic redirect-following were exploitable. But note the disclosure model: these fixes arrived as ordinary release-note bullets, with no visible security advisory, CVE, or backport branch. In a fork scenario we would have had no notification. Patching remains our responsibility.
  • MCP surface (new, medium): an LLM-facing query interface on top of customer data sources expands the threat model — prompt-driven query construction, template injection, and authorization granularity all become our review scope.
  • Licensing (low, unchanged): Apache-2.0 favorable; confirm trademark/branding constraints if white-labelling.

Key questions

  1. Is the requirement "generate REST APIs over N heterogeneous backends" (and now, "expose them to AI clients via MCP"), or "build our product on DreamFactory"? Only the former justifies looking at this codebase.
  2. What is the exact supported PHP/Laravel matrix for the 7.7.1 / df-core 1.0.18 combination, and can we pin to it for 24+ months?
  3. Does DreamFactory offer commercial support/SLAs, at what cost versus our own maintenance estimate — and does it include advance notice of security fixes, which the public channel does not provide?
  4. Can we satisfy the scripting runtime dependency (V8js) in our container and security posture, or run with scripting disabled?
  5. New: Do any of our planned connectors depend on automatic redirect-following, self-signed or internal-CA upstreams, or unauthenticated service-type discovery? Each is now a configuration task or a breakage.
  6. New: Do we need the MCP query surface, and if so who owns authorization and query-template review for it?
  7. What is the realistic upgrade cost when app shell and df-core must move together, given that security fixes arrive as coordinated platform cuts?
  8. Which sibling df-* packages are mandatory for our connectors, and are all published and version-aligned with 7.7.1?
  9. Is there a viable exit — can API definitions and service configurations be exported and reimplemented?

Integration Approach

Stack fit

  • Unchanged: partial fit, high friction for a Laravel/PHP shop. df-core does not compose into an existing app's service layer; it wants to be the app.
  • Preferred topology remains isolation: run DreamFactory (with df-core inside) as a dedicated API-gateway service in its own container, fronted by our own gateway/auth layer, primary application staying on its current stack. This contains blast radius and preserves exit.
  • If we intend to use the MCP surface, that strengthens the case for isolation rather than weakening it — the LLM-facing endpoint belongs behind our own authz and egress controls, not in-process with the product.
  • Non-PHP teams: stack fit poor; push toward consuming DreamFactory as a managed/self-hosted product, not a dependency.

Migration path

  • Phase 0 — Validate, do not integrate: stand up the official Docker image at the 7.7.1 line, connect one representative data source, generate an API, and confirm the generated surface meets requirements (auth model, pagination, filtering, schema drift, OpenAPI output quality). Add explicit checks for the 1.0.18 behavior set: redirect-dependent upstreams, internal-CA TLS, root-level service-type discovery, and AND/OR/BETWEEN filter shapes.
  • Phase 1 — Run it as a product, not a dependency: pin image digest and an exact df-* version set (7.7.1 / df-core 1.0.18 as the current candidate). Do not fork. All customization goes through supported extension points so upgrades stay possible.
  • Phase 2 — Only if extension points prove insufficient: fork under our own namespace, accept full maintenance ownership, document as a one-way door with explicit cost — and add release-note monitoring on the upstream repo as a standing obligation, since security fixes are not separately announced.
  • Anti-pattern to reject up front, emphatically reinforced by this release: composer require dreamfactory/df-core into an existing product to "reuse the API generator." 1.0.18 shows you would inherit behavior changes in network defaults and filter semantics on a patch bump, with none of the platform's scaffolding to absorb them.

Compatibility

  • Pin the entire df-* set plus app shell to a single tested combination; upgrade as one unit, never individually.
  • Treat 1.0.18 as requiring a compatibility review, not a routine patch. Specifically audit: connector configs relying on redirect-following; upstream certificates and CA bundles; any client calling the API root unauthenticated for service-type discovery; query filters written without parentheses or relying on the old silent-no-match behavior; client error handling keyed on 500 for validation failures (now 400).
  • Lock PHP minor version and container base image; extension requirements are the fragile part.
  • Verify driver versions for both the metadata store and each connected source — connector-level driver drift remains a recurring breakage class.
  • Re-verify changelogs at the source repository; the release notes are currently our only security-change channel, so subscribe/watch rather than relying on aggregated feed metadata.

Sequencing

  1. Requirements decomposition: which capabilities genuinely need DreamFactory (heterogeneous connectors, auto-generated docs, MCP exposure) versus commodity (CRUD REST, auth) we already have.
  2. Time-boxed spike (≤2 weeks) against the 7.7.1 Docker image with 2–3 real data sources, including one SOAP/legacy source and one internal-CA HTTPS source if those are the drivers.
  3. Compatibility audit of the 1.0.18 behavior changes against any existing DreamFactory footprint we already run — this is the urgent item if we have anything in flight.
  4. Security and licensing review of the deployed artifact, covering the scripting runtime, the new SSRF/TLS defaults, and the MCP surface if enabled.
  5. Build-vs-buy TCO over 36 months, explicitly pricing fork maintenance and the release-watching obligation.
  6. Decision gate. If approved, Phase 1 with pinned artifacts and a documented exit plan before production traffic.

Operational Impact

Maintenance

  • Still the highest-cost item, but the shape of it is clearer now. With 0 dependents we remain the de facto maintainers of anything we fork; in the non-fork path we own image builds, dependency patching, and PHP runtime upgrades on the vendor's schedule.
  • 1.0.18 is a useful calibration point: the vendor ships real fixes, including proactive security work, but bundles them into coordinated platform cuts rather than patch releases we can cherry-pick. Our upgrade decision is therefore periodically forced — take the platform bump to get the security fix, or carry the exposure.
  • New standing task: watch upstream release notes as a security feed. There is no advisory process to subscribe to, so an unmonitored deployment is an unpatched one.
  • Estimate holds at roughly 0.25–0.5 FTE for a production deployment (patching, upgrades, connector fixes, security response); higher if forked, and higher still if MCP is enabled and we own its authorization model.

Support

  • Community support still effectively absent. The 1.0.18 work is vendor-internal effort, not community contribution — good for quality, no help for diagnosis.
  • Escalation path remains vendor commercial support or our own engineers reading source. No meaningful public issue corpus, Q&A history, or third-party tutorials.
  • Maintain the named internal owner and written runbook from day one; bus factor is still the dominant support risk, and the 1.0.18 security changes are exactly the kind of thing that requires someone who understands the config surface to assess quickly.

Scaling

  • Unchanged for the application tier: stateless Laravel service, multiple replicas behind a load balancer, externalized sessions and cache, shared metadata database. No exotic constraint.
  • Scripting runtime remains the bottleneck: per-request V8 isolates are memory-hungry and sensitive to payload size and execution time. Enforce hard timeouts and memory caps; disable scripting if requirements allow.
  • One new scaling consideration: IP-pinned redirect validation means DNS/IP resolution happens on the request path for opted-in redirect connectors. Expect added latency and possible failures behind resolvers that return varying egress IPs; cache resolutions and test against multi-A-record upstreams.
  • If MCP is enabled, its query traffic is a separate capacity and cost profile — model it independently of REST request volume.
  • Size metadata database and API-definition cache against number of configured services, not request rate.

Failure modes

  • Behavior-change fallout from upgrades (new, high likelihood): TLS verification now enforced, redirects no longer followed, catalog requires auth, filter semantics corrected. Manifests as connector failures and changed result sets immediately after deploy — mitigate with the compatibility audit above and contract tests per connector run against a pre-production instance.
  • Scripting runtime faults (unchanged): V8js segfaults or memory exhaustion taking down workers; mitigate with process isolation, resource limits, circuit-breaking.
  • Version skew across df-* packages: subtle 500s and doc-generation drift; mitigate with lockstep pinning and a CI smoke suite.
  • Upstream data-source drift: schema changes silently breaking generated APIs; mitigate with per-connector contract tests and alerting on introspection failures.
  • Config/cache staleness: stale API definitions after deploys; cache-clearing steps in the release checklist.
  • Metadata store corruption or migration failure: high impact, hard to recover; pre-upgrade snapshots and rehearsed rollback.
  • Silent security regression: no broad community auditing and no advisory channel; mitigate with our own dependency scanning, a documented patch SLA, and active upstream release monitoring.
  • Abandonment: reduced but not eliminated — single-maintainer concentration means no upstream fix arrives for a newly disclosed issue; mitigate by archiving a buildable fork and keeping the container reproducible.

Ramp-up

  • Unchanged and steep. Engineers must learn DreamFactory's internal model (services, resources, resource handlers, event hooks, API doc pipeline) plus its config and scripting conventions, layered on top of Laravel.
  • Expect 2–4 weeks before a mid-level engineer can safely add a connector or debug a request path; longer for API-definition/doc-generation internals, and add time if MCP templates are in scope.
  • 1.0.18 slightly improves the learning surface by making implicit network behavior explicit (TLS on, redirects off, catalog gated) — defaults now document intent rather than hide it. Onboarding material is still thin; write internal docs during the spike.
  • Pair the spike with the engineer who will own it in production; the spike is the training.

Bottom line for the decision record: 1.0.18 is a credit to the vendor — real security hardening and correctness fixes on an active cadence — but it changes the risk profile only at the margin. Adoption, coupling, and upgrade-coordination risks still dominate. The release additionally demonstrates the core operational hazard: security-relevant, behavior-changing fixes arrive inside coordinated platform cuts with no advisory channel, so anyone deploying this must fund release monitoring and upgrade rehearsals permanently. Approve only as an isolated, pinned, product-style deployment at the 7.7.1 / df-core 1.0.18 line, with a named owner, a written exit plan, and an explicit pre-upgrade compatibility audit; do not embed df-core into an existing Laravel application.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
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