dreamfactory/df-rackspace
A DreamFactory integration package for Rackspace that lets PHP projects connect Rackspace services and expose their resources through configurable REST API endpoints. Useful for adding Rackspace connectivity to DreamFactory instances.
This package is a DreamFactory service connector for Rackspace (Cloud Files / OpenStack Swift and related Rackspace endpoints). It is not a standalone library — it must be installed into an existing DreamFactory instance (dreamfactory/df-core already present).
Minimal steps:
composer require dreamfactory/df-rackspace
df-core constraint in the package’s composer.json against your DreamFactory version — this is the first thing to check, because the package has not been released since Feb 2023.php artisan dreamfactory:setup or its df:* equivalent depending on your core version) so the bundled ServiceProvider registers the new service type.Where to look first in the repo:
src/ServiceProviders/ — the provider that registers the service type.src/Services/ — the actual service/handler classes; this is where endpoint behavior lives.config/ — any publishable config (usually empty or minimal for connectors).composer.json — pin the correct df-core and OpenStack SDK versions.First realistic use case: expose a Rackspace Cloud Files container as a governed REST API (list containers/objects, upload, download, delete) so an internal app or LLM tool harness can read/write objects without embedding Rackspace credentials. Point the service at a container, then browse /api/v2/{api_name}/_schema for the auto-generated endpoint map.
Configure once, consume through the standard DreamFactory API surface. The Rackspace connector plugs into DreamFactory's uniform verbs, so once a service named e.g. rackspace exists, everything lives under /api/v2/rackspace/.... Prefer letting DreamFactory generate the Swagger at _schema and build clients from that rather than hand-coding URLs.
Service definition via Admin or seed data. For repeatable environments, define the service through the Admin API / database seeder rather than clicking through the UI. Store the credential set in DreamFactory's credential store (or env vars referenced from the config) — do not commit raw API keys into service records in version control.
Role-based exposure. Treat the connector as untrusted by default: create roles that grant only the specific containers/verbs each app needs. This is the main reason to use a connector instead of direct SDK calls — governance is the point.
Server-side scripting for orchestration. Use DreamFactory's scripting engine (Node/V8js) with platform.api to chain Rackspace calls to other services. For example: on a POST event to an app endpoint, upload a generated file to Cloud Files via the Rackspace service, then write a pointer record to a SQL service. Keep scripts small; each script is a deployment artifact.
Events as extension points. Hook pre_process / post_process events on the Rackspace service to enforce naming conventions, inject metadata, or reject oversized uploads before they hit Rackspace. This avoids forking the connector.
Wrapper service for product-specific endpoints. If your app needs a stable contract (e.g. /files/{id}) that survives a migration off Rackspace, put a thin custom service in front of the connector. That way swapping the backend later is a service-class change, not an app rewrite.
df-aws will work here; verify container/object paths against _schema.storage/logs/laravel.log. The connector frequently swallows OpenStack exceptions into a generic platform error — the real stack trace is in the log, not the API response.ServiceProvider. This survives composer update far better than editing vendor/.How can I help you explore Laravel packages today?