* Move teams API to Modules
* lint
* Move team prefs & logs API to Modules (#11359)
* Move team prefs & logs API to Modules
* format
* missin desc
* Move team memberships API to Modules (#11362)
* Move team memberships API to Modules
* fix config dir
* Cloud parity
* params
* Cloud conflicts
* refactor
* prop
* refactor
* set teamId
* feedback
* feedback 2
* fix url-encoding
Executions that time out can remain stuck in waiting or processing status
in the database. This mirrors the frontend workaround from console#2788
across the relevant API endpoints for both functions and sites.
Changes:
- GET execution/log: override status to failed in response if elapsed time
since creation exceeds the resource timeout
- LIST executions/logs: same in-response override; when caller filters by
failed, expands DB query with OR to also fetch waiting/processing entries
created before the timeout threshold so they appear in results; skips
in-response override when caller explicitly requests a non-failed status
to avoid contradicting the filter
- DELETE execution: allows deletion of timed-out executions that are still
stored as waiting/processing by treating them as failed for the status guard
All changes are in-memory only — the database records are not modified.
Includes a note to remove once a proper DB-level fix is applied.
- 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>
Reverts composer.lock (database 5.3.0→5.2.1), Model.php TYPE_ID,
Document.php/Row.php $sequence type changes, and OpenAPI/Swagger
id type additions that were unintentionally included in dd1a3d82.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>