mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Pre-1.9.4 SDKs send a single composite resourceId and read the same
shape back. After dropping the compound concept end-to-end (server,
worker, library), keep the wire-format compatibility for old clients
via translation filters at the API boundary.
- Request V25: when migrations.create{CSV,JSON}{Import,Export} arrives
with a "{databaseId}:{collectionId}" resourceId, split it into the
separate databaseId/collectionId UID params the new endpoints
expect. Explicit databaseId/collectionId from 1.9.4+ SDKs take
precedence. A non-composite resourceId is left in place so the new
validators surface a useful error.
- Response V25: rebuild the composite resourceId from
parentResourceId/resourceId, restore the legacy database-family
resourceType, and strip the new attributes so the payload matches
the 1.9.3 schema for clients on response-format 1.9.3 or earlier.
- Wired into general.php under x-appwrite-response-format < 1.9.4.
Internally, the storage and library layers stay free of compound IDs
— this is purely an SDK boundary translation, not a "sidestep".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>