Releases: supabase-community/supabase-kt
Releases · supabase-community/supabase-kt
2.5.0-rc-1
Changes
Auth
- Add error code enum for Auth API errors by @jan-tennert in #618
All rest errors containing aerror_code
field will now throw aAuthRestException
rather than genericBadRequestExceptions
, etc.
AuthRestException
s contain aerrorCode
field of the typeAuthErrorCode
containing all known error codes.
Two error codes have their own exceptions (but obviously inherit fromAuthRestException)
:AuthWeakPasswordException
andAuthSessionMissingException
.
API errors not containing this field will throw the generic exceptions. - Fix a major bug causing sessions to be refreshed later than they should be in 9b73c03 by @jan-tennert
TheexpiresAt
property was saved incorrectly, delaying the expiry date.
Realtime
- Use
Postgrest
spropertyConversionMethod
for getting the property name of primary keys
2.4.3 Major bug fix
Changes
Auth
- Fix a major bug causing sessions to be refreshed later than they should be in af9143d by @jan-tennert
TheexpiresAt
property was saved incorrectly, delaying the expiry date.
2.5.0-beta-2
Changes
Postgrest
- Add columns header to
PostgrestQueryBuilder#insert
by @jan-tennert in #611
This fixes an issue when inserting a list of objects where some objects might not have all keys. - Add
defaultToNull
parameter toPostgrestQueryBuilder#insert
Compose Auth Ui
- Add
isError
parameter to Compose Auth Ui fields by @jan-tennert in #612
Realtime
2.5.0-beta-1
Changes
Compose Auth Ui
- Add AuthUiExperimental annotation by @iruizmar in #603
All composables now have aAuthUiExperimental
annotation instead ofSupabaseExperimental
Auth
- Handle
weak_password
andsession_not_found
auth error codes by @jan-tennert in #596
There is now a new subclass ofRestException
:AuthRestExcepton
which will be a super class for exceptions based on error codes. Currently, there are two new exceptions:AuthWeakPasswordException
andAuthSessionMissingException
More changes will follow. - Fix/improve session expiry calculation by @JOsacky in #610
Realtime
Misc
- Update README.md by @rafalgawlik in #605
New Contributors
- @rafalgawlik made their first contribution in #605
2.4.2
Changes
Auth
- Remove OtpType deprecation notice and clarify documentation by @jan-tennert in #595
TheSIGNUP
andMAGIC_LINK
OtpType
s are no longer deprecated as they are used for resending OTPs. - Store session before emitting Authenticated state by @iruizmar in #600
This fixes a bug where it's possible to cancel any sign-in method and thesessionStatus
gets set toAuthenticated
without the session actually saving to storage due to the cancellation.
2.4.2-wasm0
Note
You need this repository because an EAP Ktor version is used: https://maven.pkg.jetbrains.space/public/p/ktor/eap
Ktor version: 3.0.0-beta-2-eap-932
Changes
- Merge
2.3.1
-2.4.1
changes into wasm
2.4.1
Changes
Compose Auth UI
Postgrest
- Include columns in upsert request & change default parameter value for
defaultToNull
totrue
by @jan-tennert in #590
This fixes an issue when upserting a list of objects where some objects might not have all keys.
New Contributors
2.4.0
Changes
Core
- Update Kotlin to 2.0.0-RC2 and Compose to 1.6.10-rc01 by @jan-tennert in #581
- Rethrow
CancellationException
s in network requests by @jan-tennert in #578 - Log the actual error if a network request fails by @jan-tennert in 0c93053
Auth
- Auth changes & fixes by @jan-tennert in #568
- The method
Auth#linkIdentity
will now return the OAuth URL if the config valueExternalAuthConfigDefaults.automaticallyOpenUrl
is set to false.
Otherwise, null. - Fix the
autoRefresh
default value forAuth#importSession
not being set toconfig.alwaysAutoRefresh
- Add
codeVerifier
parameter toMemoryCodeVerifierCache
to be able to set an initial value - Add missing
captchaToken
config option in theOTP
auth provider
- The method
- Change the default session key for the
SettingsSessionManager
to work with multiple instances on the same device and add akey
parameter to the constructor in case you want a custom key by @MohamedRejeb in #572
Realtime
- Add new experimental extension functions to retrieve initial data and listen for updates without using realtime channels by @jan-tennert #579:
//Not a suspending function, subscribing and unsubscribing is handled internally
val myProductFlow: Flow<Product> = supabase.from("products").selectSingleValueAsFlow(Product::id) {
Product::id eq 2
}.collect {
println(it)
}
val productsFlow: Flow<List<Product>> = supabase.from("products").selectAsFlow(Product::id, filter = FilterOperation("id", FilterOperator.GT, 2)).collect {
println(it)
}
This requires both Realtime
and Postgrest
to be installed within the SupabaseClient.
Storage
Functions
- Add new
region
parameter to invoke functions which allows changing the region where the Edge Function will be invoked in. Defaults toFunctions.Config#defaultRegion
(which isFunctionRegion.ANY
) by @jan-tennert in #580
2.4.0-rc-1
Note
Documentation will update shortly, after that I'll release the version.
Changes
Core
- Rework & clean up build files by @jan-tennert in #586
2.4.0-beta-1
Changes
Core
- Update Kotlin to 2.0.0-RC2 and Compose to 1.6.10-rc01 by @jan-tennert in #581
- Rethrow
CancellationException
s in network requests by @jan-tennert in #578 - Log the actual error if a network request fails by @jan-tennert in 0c93053
Auth
- Auth changes & fixes by @jan-tennert in #568
- The method
Auth#linkIdentity
will now return the OAuth URL if the config valueExternalAuthConfigDefaults.automaticallyOpenUrl
is set to false.
Otherwise, null. - Fix the
autoRefresh
default value forAuth#importSession
not being set toconfig.alwaysAutoRefresh
- Add
codeVerifier
parameter toMemoryCodeVerifierCache
to be able to set an initial value - Add missing
captchaToken
config option in theOTP
auth provider
- The method
- Change the default session key for the
SettingsSessionManager
to work with multiple instances on the same device and add akey
parameter to the constructor in case you want a custom key by @MohamedRejeb in #572
Realtime
- Add new experimental extension functions to retrieve initial data and listen for updates without using realtime channels by @jan-tennert #579:
//Not a suspending function, subscribing and unsubscribing is handled internally
val myProductFlow: Flow<Product> = supabase.from("products").selectSingleValueAsFlow(Product::id) {
Product::id eq 2
}.collect {
println(it)
}
val productsFlow: Flow<List<Product>> = supabase.from("products").selectAsFlow(Product::id, filter = FilterOperation("id", FilterOperator.GT, 2)).collect {
println(it)
}
This requires both Realtime
and Postgrest
to be installed within the SupabaseClient.
Storage
Functions
- Add new
region
parameter to invoke functions which allows changing the region where the Edge Function will be invoked in. Defaults toFunctions.Config#defaultRegion
(which isFunctionRegion.ANY
) by @jan-tennert in #580