feat: bump appwrite/appwrite to 23.*#111
Conversation
Greptile SummaryThis PR bumps
Confidence Score: 4/5Safe to merge once integration tests confirm the Row model data-access pattern behaves as expected in production. All mechanical migration work is correct: enum rename, typed property access on RowList/ColumnList/ColumnIndexList, PHP floor aligned to SDK requirement, CI matrix and Dockerfiles updated. The remaining risk is concentrated in TablesDB.php's count/hit methods, where how SDK 23's Row model surfaces user-defined columns is still unconfirmed by a passing integration test. If the nesting assumption is wrong, rate limits would silently fail open. src/Abuse/Adapters/TimeLimit/Appwrite/TablesDB.php — specifically the Row model data access in the count/hit methods, which drives rate-limit enforcement Important Files Changed
Reviews (4): Last reviewed commit: "ci: add PHP 8.4 to test matrix" | Re-trigger Greptile |
PHP version constraint (must-fix): - composer.json: php >=8.0 -> >=8.2 (SDK 22+ requires 8.2) - tests.yml matrix: drop 8.1 leg (composer install would fail) - Drop Dockerfile.php-8.1 (now dead) Column status filter (latent bug): - SDK 22+ exposes Column*::status as a ColumnStatus enum object; ColumnIndex::status is still string. The plain \$resource->status !== 'available' check is always true for column results (object !== string under strict equality), making the client-side safety filter dead code in the columns branch. Cast to string so both paths work.
Utopia\Exception came transitively from utopia-php/framework, which the SDK 23 bump dropped from the dependency graph. Replace the unresolved import with the built-in \Exception and prune the dead @throws tags.
| strategy: | ||
| matrix: | ||
| php-versions: ['8.1', '8.2', '8.3'] | ||
| php-versions: ['8.2', '8.3'] |
Adds Dockerfile.php-8.4 and bumps the existing 8.2 / 8.3 images to appwrite/utopia-base:php-X.Y-1.0.0 so all three stay aligned.
Summary
Test plan