- feat: make the headers property editable #185
// Add custom headers using the `headers` setter supabase.headers = {'my-headers': 'my-value'};
- feat: add async storage as parameter to support pkce flow #190
- fix: use onAuthStateChangeSync to set auth headers #193
- fix: race condition for passing auth headers for rest client #192
- fix: copy headers value on from() call #189
- fix: update storage to v1.2.3
- add
setAuth()
function
- add
- fix: keep one storage and functions instance to persist auth #182
- feat: update gotrue to v1.5.1
- add support for
signInWithIdToken
- add support for
- feat: update functions_client to v1.1.0
- add method parameter to invoke() to support all GET, POST, PUT, PATCH, DELETE methods
- fix: reuse isolate for
.rpc()
call #177
- feat: add
realtimeClientOptions
to SupabaseClient #173 - fix: add missing
options
parameter to rpc #174 - fix: update postgrest to v1.2.2
- improve comment docs
- deprecate
returning
parameter of.delete()
- fix: update storage to v1.2.2
- properly parse content type
- feat: use single isolate for functions and postgrest and add
isolate
parameter toSupabaseClient
#169 - fix: update gotrue to v1.4.1
onAuthStateChanged
now emits the latestAuthState
- downgrade minimum
collection
version to support wider range of Flutter SDK versions
- fix: update storage to v1.2.1
- correct path parameter documentation
- fix: handle update and delete on record that wasn't found properly using stream #167
- feat: update gotrue to v1.4.0
- add support for MFA
Read more about MFA with Supabase here
// Start the enrollment process for a new Multi-Factor Authentication (MFA) factor final res = await client.mfa .enroll(issuer: 'MyFriend', friendlyName: 'MyFriendName'); // Prepares a challenge used to verify that a user has access to a MFA factor. final res = await client.mfa.challenge(factorId: factorId1); // Verifies a code against a challenge. final res = await client.mfa .verify(factorId: factorId1, challengeId: challengeId, code: getTOTP());
- paginate
admin.listUsers()
auth.admin.listUsers(page: 2, perPage: 10);
- add support for MFA
- feat: update postgrest to v1.2.1
- fix: update realtime to v1.0.2
- export realtime presence
- feat: update storage to v1.2.0
- add transform option to
createSignedUrl()
,getPublicUrl()
, and.download()
to transform images on the flyfinal signedUrl = await storage.from(newBucketName).createSignedUrl(uploadPath, 2000, transform: TransformOptions( width: 100, height: 100, )); final publicUrl = storage.from(bucket).getPublicUrl(path, transform: TransformOptions(width: 200, height: 300)); final file = await storage.from(newBucketName).download(uploadPath, transform: TransformOptions( width: 200, height: 200, ));
- add transform option to
- feat: add storage retry option to enable storage to auto retry failed upload attempts (#163)
// The following will initialize a supabase client that will retry failed uploads up to 25 times, // which is about 10 minutes of retrying. final supabase = SupabaseClient('Supabase_URL', 'Anon_key', storageRetryAttempts: 25);
- feat: update storage to v1.1.0
- feat: update gotrue to v1.2.0
- add createUser(), deleteUser(), and listUsers() to admin methods.
- fix: enable listening to the same stream multiple times (#161)
- fix: update postgrest to v1.1.1
- fix: implement asyncMap and asyncExpand (#159)
- fix: stream filter other than eq is not properly applied. (#156)
- fix: update examples (#157)
- feat: update gotrue to v1.1.1
- fail to getSessionFromUrl throws error on
onAuthStateChange
supabase.onAuthStateChange.listen((data) { // handle auth state change here }, onError: (error) { // handle error here });
- fail to getSessionFromUrl throws error on
- feat: update postgrest to v1.1.0
- feat: add generic types to
.select()
// data is `List<Map<String, dynamic>>` final data = await supabase.from<List<Map<String, dynamic>>>('users').select(); // data is `Map<String, dynamic>` final data = await supabase.from<Map<String, dynamic>>('users').select().eq('id', myId).single();
- feat: add generic types to
- fix: update sample code on readme.md
- chore: v1.0.0 release 🚀
- BREAKING: set minimum SDK of Dart at 2.15.0 (#150)
- BREAKING:
.stream()
now takes a named parameterprimaryKey
instead of a positional argument.supabase.from('my_table').stream(primaryKey: ['id']);
- feat:
.stream()
has 5 additional filters:neq
,gt
,gte
,lt
,lte
(#148) - chore: update postgrest to v1.0.0
- chore: update realtime to v1.0.0
- chore: update storage to v1.0.0
- chore: update functions to v1.0.0
- BREAKING: update gotrue to v1.0.0
signUp()
now uses named parameters
// Before final res = await supabase.auth.signUp('[email protected]', 'password'); // After final res = await supabase.auth.signUp(email: '[email protected]', password: 'password');
signIn()
is split into different methods
// Magic link signin // Before final res = await supabase.auth.signIn(email: '[email protected]'); // After final res = await supabase.auth.signInWithOtp(email: '[email protected]'); // Email and password signin // Before final res = await supabase.auth.signIn(email: '[email protected]', password: 'password'); // After final res = await supabase.auth.signInWithPassword(email: '[email protected]', password: 'password');
onAuthStateChange
is now a stream
// Before supabase.auth.onAuthStateChange((event, session) { // ... }); // After final subscription = supabase.auth.onAuthStateChange().listen((data) { final AuthChangeEvent event = data.event; final Session? session = data.session; }); // Don't forget to cancel the subscription when you're done subscription.cancel();
update()
is renamed toupdateUser()
// Before final res = await supabase.auth.update( UserAttributes( email: '[email protected]', data: { 'username': 'new_username', }, ), ); // After final res = await supabase.auth.updateUser( UserAttributes( email: '[email protected]', data: { 'username': 'new_username', }, ), );
- fix: update realtime to v1.0.0-dev.5
- fix: sends null for access_token when not signed in (#53)
- fix: recreate a
PostgrestClient
with proper auth headers when calling.rpc()
(#143) - fix: allow custom headers to be set for
SupabaseClient
(#144) - fix: stream error will emit the entire exception and the stack trace (#145)
- fix: update realtime to v1.0.0-dev.4
- fix: bug where it throws exception when listening to postgres changes on old version of realtime server
- BREAKING: update relatime to v1.0.0-dev.3
- update payload shape on old version of realtime server to match the new version
- fix: update gotrue to v1.0.0-dev.4
- fix: encoding issue with some languages
- fix: update postgrest to v1.0.0-dev.4
- fix: update insert documentation to reflect new
returning
behavior
- fix: update insert documentation to reflect new
- fix:
.stream()
method typing issue
- BREAKING: update realtime to v1.0.0-dev.2
- deprecated:
.execute()
and.stream()
can be used without it - BREAKING: filters on
.stream()
no longer takes the realtime syntax..eq()
method should be used to applyeq
filter on.stream()
.
// before
supabase.from('my_table:title=eq.Supabase')
.stream(['id'])
.order('created_at')
.limit(10)
.execute()
.listen((payload) {
// do something with payload here
});
// now
supabase.from('my_table')
.stream(['id'])
.eq('title', 'Supabase')
.order('created_at')
.limit(10)
.listen((payload) {
// do something with payload here
});
- fix: update storage to v1.0.0-dev.3
- fix: add
web_socket_channel
to dev dependencies since it is used in tests - fix: add basic
postgrest
test - BREAKING: update gotrue to v1.0.0-dev.3
- fix: export storage types
- BREAKING: update postgrest to v1.0.0-dev.2
- BREAKING: update gotrue to v1.0.0-dev.2
- feat: update storage to v1.0.0-dev.2
- feat: custom http client
- BREAKING: update postgrest to v1.0.0-dev.1
- BREAKING: update gotrue to v1.0.0-dev.1
- BREAKING: update storage to v1.0.0-dev.1
- BREAKING: update functions to v1.0.0-dev.1
- fix: Calling postgrest endpoints within realtime callback throws exception
- feat: update gotrue to v0.2.3
- fix: export type,
SupabaseRealtimePayload
- fix: update gotrue to v0.2.2
- feat: update postgrest to v0.1.10
- fix: update functions_client to v0.0.1-dev.4
- feat: exporting classes of functions_client
- feat: add functions support
- BREAKING: update gotrue_client to v0.2.0
- chore: update gotrue_client to v0.1.6
- chore: update gotrue_client to v0.1.5
- chore: update postgrest to v0.1.9
- chore: update realtime_client to v0.1.15
- chore: update storage_client to v0.0.6+2
- chore: update realtime_client to v0.1.14
- fix: changedAccessToken never initialized error when changing account
- fix: stream replaces the correct row
- feat: listen for auth event and handle token changed
- chore: update gotrue to v0.1.3
- chore: update realtime_client to v0.1.13
- fix: use PostgrestFilterBuilder type for rpc
- docs: correct stream method documentation
- fix: type 'Null' is not a subtype of type 'List' in type cast
- feat: add user_token when creating realtime channel subscription
- fix: typo on Realtime data as Stream on readme.md
- chore: update gotrue to v0.1.2
- chore: update storage_client to v0.0.6
- fix: cleanup imports in
supabase_stream_builder
to remove analysis error
- chore: update postgrest to v0.1.8
- chore: add
X-Client-Info
header - chore: update gotrue to v0.1.1
- chore: update postgrest to v0.1.7
- chore: update realtime_client to v0.1.11
- chore: update storage_client to v0.0.5
- chore: update realtime_client to v0.1.10
- chore: update postgrest to v0.1.6
- chore: update realtime_client to v0.1.9
- fix: bug where
stream()
tries to emit data whenStreamController
is closed
- chore: update realtime_client to v0.1.8
- feat: added
stream()
method to listen to realtime updates as stream
- chore: update gotrue to v0.1.0
- feat: add phone auth
- chore: update postgrest to v0.1.5
- chore: update storage_client to v0.0.4
- chore: update realtime_client to v0.1.7
- chore: update realtime_client to v0.1.6
- chore: update realtime_client to v0.1.5
- chore: update realtime_client to v0.1.4
- chore: update storage_client to v0.0.3
- chore: update gotrue to v0.0.7
- chore: update postgrest to v0.1.4
- chore: update storage_client to v0.0.2
- chore: update storage_client to v0.0.1
- Initial Release
- chore: update realtime to v0.1.3
- chore: update gotrue to v0.0.6
- chore: update realtime to v0.1.2
- fix: export postgrest classes
- chore: update realtime to v0.1.1
- chore: update gotrue to v0.0.5
- chore: update realtime to v0.1.0
- chore: update gotrue to v0.0.4
- chore: update gotrue to v0.0.3
- chore: update gotrue to v0.0.2
- chore: update postgrest to v0.1.3
- chore: update storage_client to v0.0.1-dev.3
- chore: update realtime to v0.0.9
- chore: update postgrest to v0.1.2
- chore: update storage_client to v0.0.1-dev.2
- chore: update gotrue to v0.0.1
- chore: update postgrest to v0.1.1
- chore: update gotrue to v0.0.1-dev.11
- refactor: use storage_client package v0.0.1-dev.1
- fix: package dependencies
- feat: implement Storage API
- chore: update postgrest to v0.1.0
- chore: update gotrue to v0.0.1-dev.10
- fix: aligned exports with supabase-js
- chore: migrate to null-safety
- fix: rpc to return PostgrestTransformBuilder
- chore: update postgrest to v0.0.7
- chore: expose gotrue User as AuthUser
- chore: expose 'RealtimeSubscription'
- chore: update lib description
- fix: rpc method missing param name
- chore: update postgrest ^0.0.6
- chore: update gotrue v0.0.1-dev.7
- chore: update realtime_client v0.0.7
- refactor: SupabaseRealtimePayload variable names
- fix: export SupabaseEventTypes
- chore: include realtime supscription code in example
- fix: SupabaseRealtimeClient client and payload parsing bug
- update: realtime_client to v0.0.5
- fix: builder method not injecting table in the url
- Initial pre-release.