Skip to content

Latest commit

 

History

History
673 lines (534 loc) · 34.9 KB

CHANGELOG.md

File metadata and controls

673 lines (534 loc) · 34.9 KB

Changelog

1.1.1 - 2024-07-27

1.1.0 - 2024-07-25

  • Supports passing Headers specified in ClientOptions to child apis.
  • Drop support for netstandard2.0 - Supabase now targets netstandard2.1.
  • Update dependency: [email protected]

1.0.5 - 2024-06-29

1.0.4 - 2024-06-11

1.0.3 - 2024-05-22

  • Update dependency: [email protected]
    • Add missing properties (ProviderRefreshToken and ProviderToken) to Session object to reflect current state of auth-js
  • Update dependency: [email protected]
    • Re: #47 Return a Task from Track and Untrack methods

1.0.2 - 2024-05-16

1.0.1 - 2024-05-07

  • Update dependency: [email protected]
    • Re: #92 Changes IPostgrestTable<> contract to return the interface rather than a concrete type.

1.0.0 - 2024-04-21

  • Assembly Name has been changed to Supabase.dll
  • Update dependency: [email protected]
    • [MAJOR] Moves namespaces from Postgrest to Supabase.Postgrest
    • Re: #135 Update nuget package name postgrest-csharp to Supabase.Postgrest
  • Update dependency: [email protected]
    • Re: #135 Update nuget package name gotrue-csharp to Supabase.Gotrue
    • Re: #89, Only add access_token to request body when it is explicitly declared.
    • [MINOR] Re: #89 Update signature for SignInWithIdToken which adds an optional accessToken parameter, update doc comments, and call DestroySession in method
    • Re: #88, Add IsAnonymous property to User
    • Re: #90 Implement LinkIdentity and UnlinkIdentity
  • Update dependency: [email protected]
  • Update dependency: [email protected]
    • Re: #135 Update nuget package name storage-csharp to Supabase.Storage
  • Update dependency: [email protected]
    • Re: #135 Update nuget package name functions-csharp to Supabase.Functions
  • Update dependency: [email protected]
    • Re: #135 Update nuget package name supabase-core to Supabase.Core
  • Adds comments to the remaining undocumented code.

0.16.2 - 2024-04-02

  • Update dependency: [email protected]
    • #88 Implement signInAnonymously from the JS client
    • Include additional 3rd party providers in constants.

0.16.1 - 2024-03-15

0.16.0 - 2024-03-12

  • Update dependency: [email protected]
    • Re: #78, Generalize query filtering creation in Table so that it matches new generic signatures.
    • Move from QueryFilter parameters to a more generic IPosgrestQueryFilter to support constructing new QueryFilters from a LINQ expression.
      • Note: Lists of QueryFilters will now need to be defined as: new List<IPostgrestQueryFilter> { new QueryFilter(), ... }
    • Adjust serialization of timestamps within a QueryFilter to support DateTime and DateTimeOffset using the ISO-8601 (https://stackoverflow.com/a/115002)
  • Update dependency: [email protected]
    • Re: #5 Add support for specifying Http Timeout on a function call by adding HttpTimeout to InvokeFunctionOptions

0.15.0 - 2024-01-08

  • Update Dependency: [email protected]
    • #83 Replaces JWTDecoder package with System.IdentityModel.Tokens.Jwt. Thanks @FantasyTeddy!
  • Update Dependency: [email protected]
    • Re: #85 Fixes problem when using multiple .Order() methods by merging #86. Thanks @hunsra!
    • Re: #81
      • [Minor] Removes IgnoreOnInsertand IgnoreOnUpdate from ReferenceAttribute as changing these properties to false does not currently provide the expected functionality.
      • Fixes Insert and Update not working on models that have Reference specified on a property with a non-null value.

0.14.0 - 2023-12-15

  • Update Dependency: [email protected]
    • #82 - Implements #82 - Creates a GenerateLink method on the AdminClient that supports signup, invite, magiclink, recovery, email_change_new and email_change_current
    • #81 - Adds InviteUserByEmailOptions as a parameter to the Gotrue Admin Client
  • Update Dependency: [email protected]
    • Re: #78 Updates signatures for Not and Filter to include generic types for a better development experience.
    • Updates internal generic type names to be more descriptive.
    • Add support for LINQ predicates on Table<TModel>.Not() signatures

0.13.7 - 2023-11-13

  • Update Dependency: [email protected]
    • Re: #76 Removes the incorrect ToUniversalTime conversion in the LINQ Where parser.

0.13.6 - 2023-10-12

0.13.5 - 2023-10-09

0.13.4 - 2023-10-08

  • Update Dependency: [email protected]
    • Re: #78 - Implements PKCE flow support for ResetPasswordForEmail.

0.13.3 - 2023-09-15

  • Re: #107 - removes Realtime socket being disconnected on a User sign-out - only the subscriptions should be removed.

0.13.2 - 2023-09-15

  • Update dependency: [email protected]
    • Implements a TableWithCache for Get requests that can pull reactive Models from cache before making a remote request.
    • Re: supabase-csharp#85 Includes sourcelink support.
    • Re: #75 Fix issue with marshalling of stored procedure arguments. Big thank you to @corrideat!

0.13.1 - 2023-08-26

  • Update dependency: [email protected]
    • Fixes #11 - Which implements missing SupabaseStorageException on failure status codes for Upload, Download, Move, CreateSignedUrl and CreateSignedUrls.

0.13.0 - 2023-08-26

  • Update dependency: [email protected]
    • #74 - Fixes bug where token refresh interval was not honored by client. Thanks @slater1!
    • Minor Breaking changes: #72 - Fixes Calling SetAuth does not actually set Authorization Headers for subsequent requests by implementing SetSession
      • Removes RefreshToken(string refreshToken) and SetAuth(string accessToken in favor of SetSession(string accessToken, string refreshToken)
      • Makes RefreshAccessToken require accessToken and refreshToken as parameters - overrides the authorization headers to use the supplied token
      • Migrates project internal times to use DateTime.UtcNow over DateTime.Now.

0.12.2 - 2023-07-28

  • Update dependency: [email protected]
    • Fixes #29 Where the Realtime client could disconnect from channels after a few hours and fail to reconnect by removing the case where the IsSubscribe flag is flipped when encountering a channel error.
  • Update dependency: [email protected]
    • Re: supabase-community/supabase-csharp#81: Clarifies ReferenceAttribute by changing shouldFilterTopLevel to useInnerJoin and adds an additional constructor for ReferenceAttribute with a shortcut for specifying the JoinType

0.12.1 - 2023-06-29

0.12.0 - 2023-06-25

  • Update dependency: [email protected]
    • Minor #66 - Separates out Admin JWT functionality into a separate AdminClient
    • #67 - Adds shutdown method which terminates the background refresh threads.
    • Movement of much of the documentation for methods out of their classes and into their interfaces.
    • Language features locked to C#9
  • Update dependency: [email protected]
    • #69 Locks language version to C#9
    • #68 Makes RPC parameters optional

Thanks @wiverson for the work in this release!

0.11.1 - 2023-06-10

0.11.0 - 2023-05-24

  • Update dependency: [email protected]
    • General codebase and QOL improvements. Exceptions are generally thrown through 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 debugging
    • Merges #65 Cleanup + Add better exception handling
    • Merges #66 Local test Fixes
    • Fixes #67 Postgrest Reference attribute is producing StackOverflow for circular references
  • Update dependency: [email protected]
    • #58 - Add support for the reauthentication endpoint which allows for secure password changes.
  • Update dependency: [email protected]
    • Updates publishing action for future packages, includes README and icon.
    • Merges #28 and #30
    • The realtime client now takes a "fail-fast" approach. On establishing an initial connection, client will throw a 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.
    • [Major, New] C# 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
    • [Major, new] ClientOptions.Logger has been removed in favor of Client.AddDebugHandler() which allows for implementing custom logging solutions if desired.
      • A simple logger can be set up with the following:
      client.AddDebugHandler((sender, message, exception) => Debug.WriteLine(message));
    • [Major] Connect() has been marked Obsolete in favor of ConnectAsync()
    • Custom reconnection logic has been removed in favor of using the built-in logic from [email protected].
    • Exceptions that are handled within this library have been marked as RealtimeExceptions.
    • The local, docker-composed test suite has been brought back (as opposed to remotely testing on live supabase servers) to test against.
    • Comments have been added throughout the entire codebase and an XML file is now generated on build.

0.10.0 - 2023-05-14

  • Changes options to require Supabase.SupabaseOptions.SessionPersistor from using ISupabaseSessionHandler to IGotrueSessionPersistance<Session> (these are now synchronous operations).
  • Update dependency: [email protected]
    • #60 - Add interfaces, bug fixes, additional error reason detection. Thanks @wiverson!
    • #57 Refactor exceptions, code cleanup, and move to delegate auth state changes
      • Huge thank you to @wiverson for his help on this refactor and release!
      • Changes
        • Exceptions have been simplified to a single 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.
        • The session delegates for Save/Load/Destroy have been simplified to no longer require async.
        • Console logging in a few places (most notable the background refresh thread) has been removed in favor of a notification method. See 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).
        • The client now more reliably emits AuthState changes.
        • There is now a single source of truth for headers in the stateful Client - the Options headers.
      • New feature:
        • Added a 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.
      • Implementation notes:
        • Test cases have been added to help ensure reliability of auth state change notifications and persistence.
        • Persistence is now managed via the same notifications as auth state change

0.9.1 - 2023-04-28

0.9.0 - 2023-04-12

  • Update dependency: [email protected]

    • [Minor] Implements PKCE auth flow. SignIn using a provider now returns an instance of ProviderAuthState rather than a string.
  • Update dependency: [email protected]

    • Implements storage features from LW7:

0.8.8 - 2023-03-29

  • Update dependency: [email protected]
    • Supports adding SignInOptions (i.e. RedirectTo) on OAuth Provider SignIn requests.

0.8.7 - 2023-03-23

0.8.6 - 2023-03-23

0.8.5 - 2023-03-10

  • Update dependency: [email protected]
    • Re: #25 - Support Channel being resubscribed after having been unsubscribed, fixes rejoin timer being erroneously called on channel Unsubscribe. Thanks @Kuffs2205!

0.8.4 - 2023-03-03

  • Update dependency: [email protected]
    • Re: #4 Implementation for ClientOptions which supports specifying Upload, Download, and Request timeouts.
  • Update dependency: [email protected]
    • Re: #24 - Fixes join failing until reconnect happened + adds access token push on channel join. Big thank you to @Honeyhead for the help debugging and identifying!

0.8.3 - 2023-02-26

0.8.2 - 2023-02-26

  • Update dependency: [email protected]
    • UploadOrUpdate now appropriately throws request exceptions

0.8.1 - 2023-02-06

  • Update dependency: [email protected]
    • Re: #22 - SerializerSettings were not being passed to PostgresChangesResponse - Thanks @Shenrak for the help debugging!

0.8.0 - 2023-01-31

  • Update dependency: [email protected]
    • Re: #21 Provide API for presence, broadcast and postgres_changes
      • [Major, New] Channel.PostgresChanges event will receive the wildcard * changes event, not Channel.OnMessage.
      • [Major] Channel.OnInsert, Channel.OnUpdate, and Channel.OnDelete now conform to the server's payload of Response.Payload.**Data**
      • [Major] Channel.OnInsert, Channel.OnUpdate, and Channel.OnDelete now return PostgresChangesEventArgs
      • [Minor] Rename Channel to RealtimeChannel
      • Supports better handling of disconnects in RealtimeSocket and adds a Client.OnReconnect event.
      • [Minor] Moves ChannelOptions to Channel.ChannelOptions
      • [Minor] Moves ChannelStateChangedEventArgs to Channel.ChannelStateChangedEventArgs
      • [Minor] Moves Push to Channel.Push
      • [Minor] Moves Channel.ChannelState to Constants.ChannelState
      • [Minor] Moves SocketResponse, SocketRequest, SocketResponsePayload, SocketResponseEventArgs, and SocketStateChangedEventArgs to Socket namespace.
      • [New] Adds RealtimeBroadcast
      • [New] Adds RealtimePresence
      • [Improvement] Better handling of disconnection/reconnection
  • Update dependency: [email protected]
    • Another fix for #61 which futher typechecks nullable values.

0.7.2 - 2023-01-27

  • Update dependency: [email protected]
    • Makes Session.CreatedAt a publicly settable property, which should fix incorrect dates on retrieved Sessions.
  • Update dependency: [email protected]
    • Fix #61 which did not correctly parse Linq Where when encountering a nullable type.
    • Add missing support for transforming for == null and != null

0.7.1 - 2023-01-17

  • Update dependency: [email protected]
    • Fix issue from #48 where boolean model properties would not be evaluated in predicate expressions

0.7.0 - 2023-01-16

  • Update dependency: [email protected]
    • [Minor] Breaking API Change: PrimaryKey attribute defaults to shouldInsert: false as most uses will have the Database generate the primary key.
    • Merged #60 which Added linq support for Select, Where, OnConflict, Columns, Order, Update, Set, and Delete

0.6.2 - 2022-11-22

  • Update dependency: [email protected]
    • GetHeaders is now passed to ModeledResponse and BaseModel so that the default Update and Delete methods use the latest credentials
    • GetHeaders is used in Rpc calls (re: #39)

0.6.1 - 2022-11-12

  • [Hotfix] GetHeaders was not passing properly to SupabaseTable and Gotrue.Api

0.6.0 - 2022-11-12

[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.

Re: #35, #34, #23, #36

0.5.3 - 2022-10-11

  • Update dependency: [email protected]
    • [Minor] Breaking API change: Remove BaseModel.PrimaryKeyValue and BaseModel.PrimaryKeyColumn in favor of a PrimaryKey dictionary with support for composite keys.
    • Re: #48 - Add support for derived models on ReferenceAttribute
    • Re: #49 - Added Match(T model)

0.5.2 - 2022-9-13

0.5.1 - 2022-8-1

0.5.0 - 2022-7-17

  • Update dependency: [email protected]
  • Update dependency: [email protected]
  • Update dependency: [email protected]
    • API Change [Breaking/Minor] Library no longer uses WebClient and instead leverages HttpClient. Progress events on Upload and Download are now handled with EventHandler<float> instead of WebClient EventHandlers.

0.4.4 - 2022-5-24

0.4.3 - 2022-5-13

0.4.2 - 2022-4-30

0.4.1 - 2022-4-23

0.4.0 - 2022-4-12

0.3.5 - 2022-4-11

0.3.4 - 2022-03-28

0.3.3 - 2022-02-27

0.3.2 - 2022-02-18

0.3.1 - 2022-01-20

0.3.0 - 2021-12-30

  • Update dependency: [email protected]
    • Add support for NullValueHandling to be specified on a Column Attribute and for it to be honored on Inserts and Updates. Defaults to: NullValueHandling.Include.
      • Implements #38
  • Update dependency: [email protected]
    • Implement Upstream Realtime RLS Error Broadcast Handler
      • Implements #12
    • SocketResponse now exposes a method: OldModel, that hydrates the OldRecord property into a model.

0.2.12 - 2021-12-29

  • Update dependency: [email protected]
    • SignUp will return a Session with a populated User object on an unconfirmed signup.
      • Fixes #19
      • Developers who were using a null check on Session.User will need to adjust accordingly.
  • Update dependency: [email protected]
    • Fix for #37 - Return Type minimal would fail to resolve because of incorrect Accept headers. Added header and test to verify for future.
    • Fix for #36 - Inserting/Upserting bulk records would fail while doing an unnecessary generic coercion.

0.2.11 - 2021-12-24

0.2.10 - 2021-12-23

0.2.9 - 2021-12-9

  • Separate Storage client from Supabase repo and into storage-csharp, supabase-csharp now references new repo.

0.2.8 - 2021-12-4

  • Update gotrue-csharp to 2.2.4
    • Adds support for ListUsers (paginate, sort, filter), GetUserById, CreateUser, and UpdateById

0.2.7 - 2021-12-2

  • Update gotrue-csharp to 2.2.3
    • Adds support for sending password resets to users.

0.2.6 - 2021-11-29

  • Support for #12
  • Update realtime-csharp to 2.0.6
  • Update gotrue-csharp to 2.2.2
  • Add StatelessClient re:#7