Picks up the new SMTP settings resource added in utopia-php/migration#add-smtp-migration.
Also pins utopia-php/abuse to dev-feat-bump-sdk-24 to unblock the
SDK 24.* transitive constraint from migration.
- Bump utopia-php/migration to add-policies-migration dev branch
- MigrationReport rule for TYPE_POLICIES
- E2E: testAppwriteMigrationPolicies covers int (passwordHistory),
bool (sessionAlert), and bundled MembershipPrivacy (userEmail) so all
three field shapes are exercised end-to-end
- Bump utopia-php/migration to add-services-migration dev branch
- MigrationReport rule for TYPE_SERVICES
- E2E: testAppwriteMigrationServices disables functions + graphql on
source, runs migration, asserts both land disabled on destination
- Bump utopia-php/migration to add-labels-migration dev branch
- MigrationReport rule for TYPE_LABELS
- E2E: testAppwriteMigrationLabels sets unique labels on source via
console patch, runs migration, asserts destination has matching set
- Bump utopia-php/migration to add-protocols-migration dev branch
- MigrationReport rule for TYPE_PROTOCOLS
- E2E: testAppwriteMigrationProtocols flips graphql + websocket on
source, runs migration, asserts both land disabled on destination
- Bump utopia-php/migration to add-auth-methods-migration dev branch
- Add MigrationReport rule for TYPE_AUTH_METHODS
- E2E: testAppwriteMigrationAuthMethods flips email-password + JWT on
source, runs migration, asserts both land as false on destination
- Bump graphql-php to 15.32 in composer.json and update composer.lock
- Extend Storage/Files/Create with mergeUploadMetadata and pass path and
deviceForFiles into the lock callback
- Remove obsolete type hints in Storage/Files/Preview/Get
- Update Storage tests to tolerate S3-backed signatures
Brings in cursor pagination (cursorAfter/cursorBefore) and count(max)
support for the activities/audit endpoints. Pulls utopia-php/query 0.1.x
as a new transitive dependency. utopia-php/audit 2.3.x requires PHP 8.4,
satisfied by the appwrite/base:1.4.1 runtime image used on this branch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adopts the new split DI containers in utopia-php/http: `resources()` for
boot-time wiring (shared across requests) and `context()` for per-request
state. Replaces the removed `getResource()`/`setResource()`/`getContainer()`
helpers throughout the HTTP entry point, controllers, GraphQL layer, and
installer.
Bumps the dependency chain accordingly: utopia-php/http to the dev branch
(aliased to 0.34.25 to satisfy platform's exact pin), servers 0.4.*,
queue 0.18.*, and pulled-along cli/platform/database upgrades.
Also tightens app/init/resources/request.php by collapsing single-return
factories to arrow functions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add APP_LIMIT_UPLOAD_CHUNK_SIZE constant (5MB) matching official SDKs
- Replace dynamic chunk calculation with fixed 5MB chunk math in all upload endpoints
- Remove -1 last-chunk sentinel that broke when last chunk arrived first
- Fix duplicate-retry guards: return existing resource instead of erroring for chunked uploads
- Add out-of-order e2e tests for Storage, Functions, and Sites
- Upgrade utopia-php/storage to 2.0.0 for device-level out-of-order assembly support
utopia-php/framework was the old name for utopia-php/http. Replacing it
with utopia-php/http 0.34.19 which fixes getCookie() to use Swoole's
native cookie store (populated via php_raw_url_decode) instead of
re-parsing the raw Cookie header without URL-decoding.
This fixes a production auth bug where Swoole's setcookie() URL-encodes
base64 session values (+ → %2B, / → %2F, = → %3D) in Set-Cookie headers.
RFC 6265 clients (Dart, Swift) reflect these verbatim; the old getCookie()
returned %2B/%2F/%3D to base64_decode() which produced corrupted output,
rejecting valid sessions.
Also updates the e2e test client to use cURL's built-in RFC 6265 cookie
engine (CURLOPT_COOKIEFILE) instead of parse_str() which silently
URL-decoded values, masking the bug in tests. Adds a cookie roundtrip
assertion to testCreateAccountSession.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>