sopamo/laravel-filepond
An all-in-one Laravel backend for FilePond. Handles temporary uploads, chunked uploads, and file reverting, with support for any Laravel filesystem disk. Get up and running in minutes with a simple composer install and minimal JS config.
Pros:
'' and '/') and historical server IDs remain supported with path validation and safe deletion — reduces the blast radius of the refactor for existing integrations.Cons:
2.0.0-beta.5 is a pre-release. No semver stability guarantee, API surface may still shift before GA, and production adoption carries elevated risk without an explicit rollback plan.Content-Type at initialization. Silent client-side breakage is possible for consumers who omit it.Content-Type on chunked upload init.Content-Type.FormRequest or middleware integration surfaces; existing validation hooks should hold, but the new pre-write rejection logic should be exercised in tests.| Risk Area | Severity | Mitigation |
|---|---|---|
| Beta / Pre-GA Stability | High | Pin the exact version (2.0.0-beta.5, not ^2.0), stage in non-production, and define an explicit rollback to v1.6.0. Do not adopt in production without a GA signal or a documented freeze point. |
| PHP 8.2/8.3 Runtime Floor | High | Inventory all services, CI images, and container base images for PHP version before committing. This is a platform migration, not a package upgrade. |
| Dropped Laravel 11 Support | High | Any project on Laravel 11 must upgrade the framework before or alongside this package. Sequence these as one workstream, not two. |
Azure Content-Type Contract Change |
Medium | Audit all Azure chunked-upload clients for Content-Type on init. Add a contract test asserting the header is present. |
| Chunk Rejection Behavior Change | Medium | Update client error handling for rejected chunk ranges / oversized headers. Verify no client retries indefinitely against a now-rejected payload. |
| Storage Backend Coverage | Medium | The release strengthens Azure and confirms S3/local; custom backends (e.g., Ceph) still require extension work and explicit verification. |
| Deprecation / Longevity | Low | Active maintenance, PR-driven changelog, and added CI across supported PHP/Laravel versions are strong positive signals. |
-beta.5 acceptable for a production upload path, or does this need to wait for GA?Content-Type change for Azure?Phase 0: Pre-Flight Inventory (1 week)
Content-Type change.Phase 1: Platform Upgrade (2–4 weeks, service-dependent)
Phase 2: Package Adoption (1–2 weeks)
composer require sopamo/laravel-filepond:2.0.0-beta.5 (exact, not range).php artisan vendor:publish --tag=filepond-config.'', '/') and historical server IDs correctly for your configured disks.Content-Type.Phase 3: Client & Contract Validation (1–2 weeks)
Content-Type on init.Phase 4: Hardening & Observability (1 week)
Content-Type required at init. This is the most impactful change.beta.x releases before GA; each is a potential re-validation cycle.Content-Type on Azure init.| Failure Mode | Trigger | Impact | Detection / Response |
|---|---|---|---|
Azure init missing Content-Type |
Client not updated | Upload init fails or produces wrong content metadata | Contract test in CI; explicit 4xx with actionable message |
| Invalid chunk range rejected | Buggy or hostile client | Upload stalls at the rejected chunk | Distinct rejection code; client-side stop-and-reset, not infinite retry |
| Oversized integer header | Malformed chunk metadata | Request rejected pre-write (safe, by design) | Log and alert on repeated occurrences — often a client bug signature |
| Partial block commit on Azure | Network interruption mid-commit | Orphaned staged blocks | Lifecycle/cleanup job; monitor staged block counts |
| Temp-upload path misconfiguration | Custom disk config using root paths | Uploads written to unexpected location or deletion fails | Assert disk-root path resolution in tests |
| Beta API drift on next pre-release | Upgrading to beta.6+ |
Rework of integration code | Pin exact version; review changelog before any bump |
| Runtime floor mismatch | Deploy to PHP 8.1 host | Hard failure at boot | Enforce PHP version in CI and base images |
2.0.0 stable release + one sprint of beta canary with no chunk-handling defects). Record it so the beta decision doesn't get relitigated.How can I help you explore Laravel packages today?