- Related collection lookup used internal name as document ID, but
Appwrite collections have user-facing IDs. Extract sequence from
internal name and use findOne by $sequence instead.
- Increase all schema polling timeouts from 240s to 360s for CI
dedicated mode parallel load.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Updates utopia-php/database with fix for inline relationship data
without $id not being auto-converted to Document objects. The
Relationships hook now converts associative arrays to Documents before
type-checking, allowing auto-ID generation to work.
Also increases testEventTrigger timeout to 120s and Realtime concurrent
test timeout to 90s for CI resilience.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Functions testEventTrigger: increase assertEventually from 20s to 60s
to accommodate shared mode queue latency and cold starts
- Realtime testConcurrentRealtimeTrafficCoroutines: already has 45s
WebSocket timeout and TimeoutException handling for CI resilience
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Metadata decorator: look for relatedCollection inside options array
since new Attribute format nests it there
- Skip decorators during silenced operations to prevent $databaseId etc.
from leaking into internal write operations
- Fix aggregate test queries to use Query::count('*', 'total') instead
of Query::count('total') which treats 'total' as a column name
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add getDatabaseResourceType() helper to map database types to resource constants
- Use database-specific resourceType for CSV/JSON import/export instead of hardcoded TYPE_DATABASE
- Skip attribute validation for schemaless databases (DocumentsDB/VectorsDB) in exports
- Parse JSON export queries in migration worker
- Restore MigrationsBase from 1.9.x and append VectorsDB/DocumentsDB E2E tests
V17 filter's str_contains($method, '.') throws when $method is a Method
enum. Guard with is_string() since enum cases never contain dots.
Proxy test: delete rule before site to avoid cascade-delete race.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Revert the is_int preservation — SDKs declare $sequence as string,
so the API must always return a string. Updated tests to match.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>