- Fix float/int/bool attribute creation failures caused by type loss
during queue serialization in the Databases worker
- Rework session limit test to retry session creation for cache
propagation in shared mode
- Increase GraphQL attribute polling timeouts from 30s to 60s
- Increase SchemaPolling waitForAllAttributes timeout to 180s
- Increase Realtime WebSocket client timeout from 30s to 45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace redundant Console::info/error/success logs with Span::add
for document count — all other details (project ID, sequence, region,
database, duration) are already captured by the telemetry span.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auto-create specs directory in Specs.php if it doesn't exist
- Add helpful error message in SDKs.php when specs are missing
- Remove docs/examples from git tracking (added to .gitignore)
- Replace findOne()->isEmpty() with count() > 0 in spatial check to avoid
potential false positives when checking for existing data in empty collections
- Use waitForAllAttributes instead of waitForAttribute before spatial index
creation to ensure the collection document cache is refreshed
- Add response assertions for attribute creation in testSpatialPolygonAttributes
to fail fast instead of timing out for 15 minutes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The activate param in Deployments/Create was missing the optional flag,
making it required unlike the VCS and Template deployment endpoints.
This caused 400 errors for multipart/form-data requests where the param
was present but treated as missing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Increase SchemaPolling default timeouts from 8min to 15min for
waitForAttribute, waitForAttributes, waitForAttributeCount, and
waitForIndex to match waitForAllAttributes/waitForAllIndexes. Under
parallel test load the database worker gets backlogged, causing
attributes to stay in 'processing' state longer than 8 minutes.
- Add isEmpty check in Functions Delete before updating schedules to
prevent 500 errors when the schedule document is missing (consistent
with other modules like Executions/Delete).
- Add retry logic to cleanupFunction in FunctionsBase for transient
MongoDB transaction abort errors during function deletion.
- Increase Realtime attribute/index polling timeouts from 2min to 15min
to handle worker backlog under CI load.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Path parameters should not be optional. This caused SDK TypeScript
build failures where transactionId was typed as string | undefined.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: sanitize branch names for valid domain generation
Branch names containing invalid domain characters (like '/') were being
used directly when creating VCS preview domains, resulting in invalid
domains like 'branch-abc/test.appwrite.network'. This adds a Domain
helper class that sanitizes branch names by replacing invalid characters
with hyphens before generating domains.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: use Text constants for branch name sanitization
Replace regex with explicit character validation using Utopia Text
constants for better readability and maintainability.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Move to transformation adapter
* lint
* tiny
* fix test
* ut
* use Filter
* lint
* more lint
* simplify
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Add 'id' => Type::string() to GraphQL Mapper Registry defaults to handle
Model::TYPE_ID used by Document and Row models ($sequence field)
- Refactor SchedulesConsoleClientTest to use static-cached setup helpers
instead of @depends annotations, which don't work in ParaTest --functional mode
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>