Files
Jake BarnbyandClaude Opus 4.7 87892e7895 feat: restore V25 SDK filters for old-client compatibility
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>
2026-05-01 14:02:08 +12:00
..
2026-04-29 13:52:13 +02:00