Adds the stored byte size (after compression and/or encryption) alongside
sizeOriginal so clients can see how much space a file actually occupies.
The sizeActual attribute is already persisted on file documents.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 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
Inject the live cache resource and ping it directly instead of
rebuilding pool adapters from pools-cache. The container already
constructs the right adapter (pool, multiplexing, none), so the
healthcheck now exercises the actual configured cache.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- 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
- Move GetDefault endpoint to Console module as Get.php
(GET /v1/console/templates/email/:templateId, console.getEmailTemplate)
- Remove from Project module
- Add e2e tests for console.getEmailTemplate and reset=true
- Add GET /v1/project/templates/email/:templateId/default that returns
Appwrite built-in defaults, ignoring any custom project overrides
- Add reset param to PATCH /v1/project/templates/email — when reset=true,
clears the custom template entry and returns defaults without requiring
SMTP to be enabled
- 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