Note
We are working towards making supabase-kt official. Your PRs may wait longer than usual until we migrate the namespace and transfer the repository. Check out this discussion for more information.
(Critical) bug fixes should be targeted to the 3.X branch.
Changes
Chore
- Update CODEOWNERS by @safaorhan in #1435
- Update CONTRIBUTING.md with information on how to run tests by @cmelchior in #1392
- Add more articles and sample by @hieuwu in #1401
- docs: how to read the library logs on iOS by @veropduro in #1408
- docs: Add migration to official notice to README.md. by @safaorhan in #1431
- docs: document SDK compatibility with Supabase services by @cmelchior in #1444
- chore(deps): upgrade dependencies, AGP and Gradle by @jan-tennert in #1430
Auth
- Add lifecycle callbacks for iOS and tvOS by @olipetrovic in #1390
Uses the same config property as the Android implementation. - fix(auth): [Security] Avoid writing session credentials to the platform log & mask sensitive values by @hieuwu in #1391
- Handle OAuth query errors in the implicit flow on Android, Apple and web by @AtharvaLakhe in #1426
- docs: notes for writing a custom SessionManager by @veropduro in #1409
- Add Storage integration tests, fix vector and analytics bucket response deserialization by @hieuwu in #1410
- fix(auth): decode URL fragment parameters and recognize errors without error_code by @AndroidPoet in #1424
Storage
- feat(storage): add new storage exception and expose
codeparameter by @jan-tennert in #1376
All Storage methods no longer throw a generic exception, but a StorageRestException - fix(storage): keep the file size a Long when sizing an upload chunk by @AndroidPoet in #1404
- fix(storage): fix reading resumable uploads back from the cache by @AndroidPoet in #1405
- fix(storage): keep the error and message when an error body has no code by @AndroidPoet in #1407
- fix(storage): download variant with channel doesn't throw rest exceptions by @jan-tennert in #1419
- fix(storage): return the unencoded path in FileUploadResponse by @RaphaelFakhri in #1428
- fix(storage): send cacheNonce on authenticated downloads by @AndroidPoet in #1453
- fix(storage): add download and cacheNonce to the signed url, not the sign request by @AndroidPoet in #1452
- fix(storage): don't require an id in the uploadToSignedUrl response by @AndroidPoet in #1457
Postgrest
- docs(postgrest): document the empty list behaviour of likeAll, likeAny, ilikeAll and ilikeAny by @AndroidPoet in #1432
- fix(postgrest): escape reserved characters in array filter values by @AndroidPoet in #1403
- fix(postgrest): allow multiple filters on one column by @jan-tennert in #1420
- fix(postgrest): quote column names in the insert and upsert columns parameter by @AndroidPoet in #1448
- fix(postgrest): send rpc arguments as query parameters for GET and HEAD by @AndroidPoet in #1454
- fix(postgrest): keep other filters on the column when adding a text search by @AndroidPoet in #1455
Realtime (reliability)
- fix(realtime): handle channel errors and rejoins like realtime-js by @sproctor in #1433
- fix(realtime): include join_ref on leave and access_token messages by @grdsdev in #1402
- fix(realtime): prevent heartbeat tick from racing disconnect() by @alperen-kaplan in #1395
- fix(realtime): reset the heartbeat ref when a new socket connects by @devjn in #1423
- fix(realtime): Fix race condition when scheduling multiple disconnects by @jan-tennert in #1418
- fix(realtime): Fix race condition when rejoining channels before auth is ready by @jan-tennert in #1417
- fix(realtime): Fix race condition when resubscribing channel by @jan-tennert in #1415
- fix(realtime): don't take channel messages for heartbeat replies by @sproctor in #1434
- fix(realtime): replace the held presences on a presence_state message by @AndroidPoet in #1451