Changes
Core
- fix(sample): move "Forgot password?" button out of overlapping Box in… by @MohammedThalha2002 in #1367
- docs: fix broken star history chart by @OctoBored in #1381
Postgrest
- feat(postgrest): add dryRun(), maybeSingle() modifiers, notIn filter by @jan-tennert in #1365
Auth
- feat(auth): add support for OAuth consent flow by @jan-tennert in #1235
- Add tests for RestException and plugin-specific subtypes by @MohammedThalha2002 in #1368
- fix(auth): include the status code description as the fallback by @jan-tennert in #1379
- fix(auth): catch all throwables instead of exceptions for refresh and loading by @jan-tennert in #1383
Realtime
- feat(realtime): add system flow,
replicationReadyoption by @jan-tennert in #1366
val channel = supabase.realtime.channel("test") {
broadcast {
replicationReady = true
}
}
channel.systemFlow().collect {
println(it.status)
}- feat(realtime): add realtime filter builder by @jan-tennert in #1380
channel.postgresChangeFlow<PostgresAction>("public") {
table = "myTable"
filter {
lt("id", 20)
eq("name", "Tom")
}
}
// supported by all realtime postgres methods including:
supabase.from("myTable").selectAsFlow(...) {
eq("id", 2)
lt("age", 58)
}- fix(realtime): catch exceptions when resolving access token by @jan-tennert in #1386
Storage
- feat(storage): add purge methods for buckets and single objects by @jan-tennert in #1375
supabase.storage.purgeBucketCache("myBucket")
supabase.storage["myBucket"].purgeCache("myFile.png")New Contributors
- @MohammedThalha2002 made their first contribution in #1368
- @OctoBored made their first contribution in #1381