gotrue-csharp@4.2.7
signInAnonymously
from the JS clientpostgrest-csharp@3.5.1
Rpc
specifying a generic type for its return.postgrest-csharp@3.5.0
Table
so that it matches new generic signatures.QueryFilter
parameters to a more generic IPosgrestQueryFilter
to support constructing new QueryFilters from a LINQ expression.
QueryFilter
s will now need to be defined as: new List<IPostgrestQueryFilter> \{ new QueryFilter(), ... \}
QueryFilter
to support DateTime
and DateTimeOffset
using the ISO-8601 (https://stackoverflow.com/a/115002)functions-csharp@1.3.2
HttpTimeout
to InvokeFunctionOptions
gotrue-csharp@4.2.6
postgrest-csharp@3.4.1
IgnoreOnInsert
and IgnoreOnUpdate
from ReferenceAttribute
as changing these properties to false
does not currently provide the expected functionality.Insert
and Update
not working on models that have Reference
specified on a property with a non-null value.gotrue-csharp@4.2.5
postgrest-csharp@3.3.0
Not
and Filter
to include generic types for a better development experience.Table<TModel>.Not()
signaturespostgrest-csharp@3.2.10
ToUniversalTime
conversion in the LINQ Where
parser.gotrue-csharp@4.2.3
postgrest-csharp@3.2.9
gotrue-csharp@4.2.2
ResetPasswordForEmail
.postgrest-csharp@3.2.7
TableWithCache
for Get
requests that can pull reactive Models from cache before making a remote request.supabase-storage-csharp@1.4.0
SupabaseStorageException
on failure status codes for Upload
, Download
, Move
, CreateSignedUrl
and CreateSignedUrls
.gotrue-csharp@4.2.1
SetAuth
does not actually set Authorization Headers for subsequent requests by implementing SetSession
RefreshToken(string refreshToken)
and SetAuth(string accessToken
in favor of SetSession(string accessToken, string refreshToken)
RefreshAccessToken
require accessToken
and refreshToken
as parameters - overrides the authorization headers to use the supplied tokenDateTime.UtcNow
over DateTime.Now
.realtime-csharp@6.0.4
IsSubscribe
flag is flipped when encountering a channel error.postgrest-csharp@3.2.5
ReferenceAttribute
by changing shouldFilterTopLevel
to useInnerJoin
and adds an additional constructor for ReferenceAttribute
with a shortcut for specifying the JoinType
gotrue-csharp@4.1.1
postgrest-csharp@3.2.4
gotrue-csharp@4.1.0
postgrest-csharp@3.2.3
Thanks @wiverson for the work in this release!
functions-csharp@1.3.1
, gotrue-csharp@4.0.4
, postgrest-csharp@3.2.2
, realtime-csharp@6.0.3
, supabase-storage-csharp@1.3.2
, supabase-core@0.0.3
Core.dll
becomes Supabase.Core.dll
which will hopefully prevent future collisions.PostgrestException
now instead of Exception
. A FailureHint.Reason
is provided with failures if possible to parse.AddDebugListener
is now available on the client to help with debuggingreauthentication
endpoint which allows for secure password changes.RealtimeException
in ConnectAsync()
if the socket server is unreachable. After an initial connection has been established, the client will continue attempting reconnections indefinitely until disconnected.EventHandlers
have been changed to delegates
. This should allow for cleaner event data access over the previous subclassed EventArgs
setup. Events are scoped accordingly. For example, the RealtimeSocket
error handlers will receive events regarding socket connectivity; whereas the RealtimeChannel
error handlers will receive events according to Channel
joining/leaving/etc. This is implemented with the following methods prefixed by ( Add/Remove/Clear):
RealtimeBroadcast.AddBroadcastEventHandler
RealtimePresence.AddPresenceEventHandler
RealtimeSocket.AddStateChangedHandler
RealtimeSocket.AddMessageReceivedHandler
RealtimeSocket.AddHeartbeatHandler
RealtimeSocket.AddErrorHandler
RealtimeClient.AddDebugHandler
RealtimeClient.AddStateChangedHandler
RealtimeChannel.AddPostgresChangeHandler
RealtimeChannel.AddMessageReceivedHandler
RealtimeChannel.AddErrorHandler
Push.AddMessageReceivedHandler
ClientOptions.Logger
has been removed in favor of Client.AddDebugHandler()
which allows for implementing custom logging solutions if desired.
client.AddDebugHandler((sender, message, exception) => Debug.WriteLine(message));
Connect()
has been marked Obsolete
in favor of ConnectAsync()
Websocket.Client@4.6.1
.RealtimeException
s.XML
file is now generated on build.Supabase.SupabaseOptions.SessionPersistor
from using ISupabaseSessionHandler
to IGotrueSessionPersistance<Session>
(these are now synchronous operations).GotrueException
. A Reason
field has been added to GotrueException
to clarify what happened. This should also be easier to manage as the Gotrue server API & messages evolve.Save
/Load
/Destroy
have been simplified to no longer require async
.Client.AddDebugListener()
and the test cases for examples. This will allow you to implement your own logging strategy (write to temp file, console, user visible err console, etc).Options
headers.Settings
request to the stateless API only - you can now query the server instance to determine if it's got the settings you need. This might allow for things like a visual component in a tool to verify the GoTrue settings are working correctly, or tests that run differently depending on the server configuration.SignInWithIdToken
for Apple/Google signing from LW7. A HUGE thank you to @wiverson!PostgresChangesOptions
was not setting listenType
in constructor. Thanks @Kuffs2205DownloadPublicFile
method.Update dependency: gotrue-csharp@3.1.0
ProviderAuthState
rather than a string
.Update dependency: supabase-storage-csharp@1.2.9
SignInOptions
(i.e. RedirectTo
) on OAuth Provider
SignIn requests.Unsubscribe
. Thanks @Kuffs2205!ClientOptions
which supports specifying Upload, Download, and Request timeouts.AuthState.Changed
eventUploadOrUpdate
now appropriately throws request exceptionspresence
, broadcast
and postgres_changes
Channel.PostgresChanges
event will receive the wildcard *
changes event, not Channel.OnMessage
.Channel.OnInsert
, Channel.OnUpdate
, and Channel.OnDelete
now conform to the server's payload of Response.Payload.**Data**
Channel.OnInsert
, Channel.OnUpdate
, and Channel.OnDelete
now return PostgresChangesEventArgs
Channel
to RealtimeChannel
RealtimeSocket
and adds a Client.OnReconnect
event.ChannelOptions
to Channel.ChannelOptions
ChannelStateChangedEventArgs
to Channel.ChannelStateChangedEventArgs
Push
to Channel.Push
Channel.ChannelState
to Constants.ChannelState
SocketResponse
, SocketRequest
, SocketResponsePayload
, SocketResponseEventArgs
, and SocketStateChangedEventArgs
to Socket
namespace.RealtimeBroadcast
RealtimePresence
Session.CreatedAt
a publicly settable property, which should fix incorrect dates on retrieved Session
s.Where
when encountering a nullable type.== null
and != null
PrimaryKey
attribute defaults to shouldInsert: false
as most uses will have the Database generate the primary key.Select
, Where
, OnConflict
, Columns
, Order
, Update
, Set
, and Delete
GetHeaders
is now passed to ModeledResponse
and BaseModel
so that the default Update
and Delete
methods use the latest credentialsGetHeaders
is used in Rpc
calls (re: #39)GetHeaders
was not passing properly to SupabaseTable
and Gotrue.Api
[BREAKING CHANGES]
Client
is no longer a singleton, singleton interactions (if desired) are left to the developer to implement.Client
supports injection of dependent clients after initialization via property:
Auth
Functions
Realtime
Postgrest
Storage
SupabaseModel
contains no logic but remains for backwards compatibility. (Marked Obsolete
)ClientOptions.ShouldInitializeRealtime
was removed (no longer auto initialized)ClientOptions
now references an ISupabaseSessionHandler
which specifies expected functionality for session persistence on Gotrue (replaces ClientOptions.SessionPersistor
, ClientOptions.SessionRetriever
, and ClientOptions.SessionDestroyer
).supabase-csharp
and all child libraries now have support nullity
Other Changes:
Big thank you to @veleek for his insight into these changes.
Table<T>
methods. Thanks @devpikachu!WebClient
and instead leverages HttpClient
. Progress events on Upload
and Download
are now handled with EventHandler<float>
instead of WebClient
EventHandlers.redirect_url
option for MagicLink sign in (Thanks @MisterJimson)NullValueHandling
to be specified on a Column
Attribute and for it to be honored on Inserts and Updates. Defaults to: NullValueHandling.Include
.
SocketResponse
now exposes a method: OldModel
, that hydrates the OldRecord
property into a model.SignUp
will return a Session
with a populated User
object on an unconfirmed signup.
null
check on Session.User
will need to adjust accordingly.AdminUserAttributes
)
storage-csharp
, supabase-csharp
now references new repo.ListUsers
(paginate, sort, filter), GetUserById
, CreateUser
, and UpdateById