• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
You are now the owner of this repo.

supabase / supabase-flutter
86%

Build:
DEFAULT BRANCH: main
Repo Added 19 Jan 2025 06:54AM UTC
Token z3GUkNtD1PDnCOWpuPvCMvjUB924F4R9N regen
Build 786 Last
Files 80
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • chore-review-actions
  • chore/add-agents-md-file
  • chore/avoid-passing-async-when-sync-expected
  • chore/await-futures-lint
  • chore/bump-actions-ref
  • chore/bump-app_links
  • chore/bump-min-sdk-3.4
  • chore/cleanup-dead-code-simplifications
  • chore/cleanup-readmes-headers-foreach
  • chore/code-reference
  • chore/coverage
  • chore/coverage-realtime
  • chore/coverage-source
  • chore/enable-avoid-default-tostring
  • chore/enable-avoid-self-compare
  • chore/enable-avoid-shadowing
  • chore/enable-correct-json-casts
  • chore/enable-dcm-dispose-class-fields
  • chore/enable-dcm-easy-batch
  • chore/enable-dcm-lints-tier1-2
  • chore/enable-fatal-infos
  • chore/enable-misused-test-matchers
  • chore/enable-nullable-rules
  • chore/enable-single-violation-rules
  • chore/enable-small-safe-batch
  • chore/functions-coverage
  • chore/gotrue-coverage
  • chore/issue-form-platform-all
  • chore/issue-form-templates
  • chore/publish
  • chore/realtime-test-first-instead-of-index
  • chore/release
  • chore/remove-useless-tests
  • chore/rename-cond-platform-getters
  • chore/setup-release-please
  • chore/supabase-coverage
  • chore/test-coverage
  • chore/test-proper-matchers
  • chore/update-examples
  • chore/upgrade-app-links
  • ci/drop-publish-dry-run
  • ci/extract-app-builds
  • ci/imgproxy
  • ci/melos-publish-no-dry-run
  • ci/melos-publish-oidc-token
  • ci/melos-publish-yes
  • ci/release-tag-app-token
  • ci/storage
  • claude/agitated-dewdney-0268b3
  • claude/frosty-snyder-1b2f48
  • claude/mystifying-cerf-7d866b
  • claude/naughty-wright-f4fec3
  • claude/recursing-williamson-f3d62d
  • cleanup/remove-parens-fromJson
  • copilot/sub-pr-1327
  • dcm-baseline
  • dcm-pipeline
  • docs/error-codes
  • docs/fix-infra-typo-license-20250902-024002
  • docs/google-signin
  • docs/on-auth-state-change-error-handler
  • docs/pub-dev-logo
  • docs/update-signinwithidtoken-providers-1259
  • etienne/sec-666-pin-all-github-actions-to-full-commit-sha
  • examples-passkeys
  • feat-admin-oauth-update-list-19ca1
  • feat/add-examples-project
  • feat/add-force-function-region-query-param
  • feat/broadcast-replay-support
  • feat/cupertino
  • feat/custom-metadata
  • feat/facebook-sdk-example
  • feat/gotrue-get-claims
  • feat/gotrue-passkeys
  • feat/gotrue-sign-out-reason
  • feat/issue-1158-debug-instrumentation
  • feat/oauth-admin-endpoints
  • feat/passkey-ceremony-helpers
  • feat/phone-2fa
  • feat/phone-mfa
  • feat/private-stream
  • feat/realtime-explicit-rest-call
  • feat/semantic-release-automation
  • feat/signed-out-reason
  • feat/storage-download-query-params
  • feat/workflow-improvements
  • feat/workflow-phase4-developer-experience
  • feat/workflow-phase5-additional-improvements
  • fix-getclaims-token-decoding
  • fix-private-only-stream-channel-10188984025532099214
  • fix-to-string
  • fix/app-links-method-removal
  • fix/ci-wasm-test-timeout
  • fix/dartio-usage
  • fix/deprecate
  • fix/empty-response
  • fix/flutter-3x-windows-cache
  • fix/functions-exception
  • fix/gotrue-getclaims-asymmetric-jwt
  • fix/gotrue-shared-header-mutation
  • fix/gotrue-token-refresh-races
  • fix/gotrue-web
  • fix/immutable-default-headers
  • fix/postgrest-select-prefer-and-this-cleanup
  • fix/proactive-token-refresh-on-resume
  • fix/realtime
  • fix/realtime-cancel-conn-subscription
  • fix/realtime-channel-suppress-invalid-jwt-on-rejoin
  • fix/realtime-connect-race-condition
  • fix/realtime-ios-disconnect-detection
  • fix/realtime-ios-dropped-connection-detection
  • fix/realtime-lifecycle-queue
  • fix/realtime-postgres-changes-system-error
  • fix/realtime-reconnect-after-disconnect
  • fix/recover-session-duplicate-auth-error
  • fix/recover-session-stale-refresh-token
  • fix/release-tag-workflow
  • fix/review-bugs
  • fix/sdk-compliance-workflow
  • fix/session-expires-at-doc-clarification
  • fix/setup-presence-flag
  • fix/storage-exception-status-code
  • fix/toJson-print
  • fix/uppercase-http-method
  • fix/verify-otp-secure-email-change
  • fix/web-hot-restart
  • fix/web-oauth-code-cleanup
  • grdsdev-patch-1
  • grdsdev/align-dart-sdk-min-3-3-0
  • grdsdev/auth-token-refresh
  • grdsdev/automate-melos-release
  • grdsdev/check-swift-pr-958
  • grdsdev/docs-refreshtoken-completer
  • grdsdev/fix-postgrest-http-method-case
  • grdsdev/fix-release-workflow-failures
  • grdsdev/flutter-auth-refresh-bug
  • grdsdev/hartford-v1
  • grdsdev/log-auth-state-errors
  • grdsdev/postgrest-retry-flutter
  • grdsdev/resilient-decoding
  • grdsdev/retrigger-release-tagging
  • grdsdev/sdk-816-realtime-class-docs
  • grdsdev/share-yajson-isolate
  • grdsdev/storage-setheader
  • guilherme/ci
  • guilherme/clibs-108-supabase-flutter-change-default-heartbeat-interval-to-25s
  • guilherme/clibs-120-supabase-flutter-send-standard-client-headers-on-all
  • guilherme/clibs-171-supabase-flutter-validate-uuid-on-admin-methods
  • guilherme/clibs-282-supabase-flutter-implement-linkidentity-with-oidc
  • guilherme/clibs-287-supabase-flutter-storageretrycontroller-causes-cant-finalize
  • guilherme/clibs-294-supabase-flutter-remove-providers-check-for-the
  • guilherme/clibs-379-supabase-flutter-implement-maxaffected-method
  • guilherme/clibs-99-supabase-flutter-remove-jwt-check-and-send-x-client-info
  • guilherme/feat-test
  • guilherme/generate-app-token
  • guilherme/remove-trailing-commas-rule
  • guilherme/sdk-230-supabase-flutter-use-dedicated-storage-host-for-storage-lib
  • guilherme/sdk-514-refreshsession-shouldnt-fail-because-currentsession-doesnt
  • guilherme/sdk-524-duplicate-sdk-522-for-flutter
  • guilherme/sdk-531-flutter-verify-optional-refs-handling-in-message
  • guilherme/sdk-614-fix-verifyotp-parameter-validation-for-otptyperecovery
  • guilherme/sdk-624-apply-reusable-ci-workflows-to-supabase-flutter
  • guilherme/sdk-627-flutter-sdk-getclaims-crashes-on-first-use-with-asymmetric
  • guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on
  • guilherme/sdk-698-paritypostgrest-add-url-length-validation-and-timeout
  • guilherme/sdk-784-featauth-add-setsession-support-for-both-access_token-and
  • guilherme/sdk-789-fixstorage-_transformstorageurl-unconditionally-breaks
  • guilherme/sdk-794-oauth-provider-custom-string
  • iat/add-x-provider
  • idempotent_initialization
  • lukasklingsbo/sdk-1018-httpsend-per-event-url
  • lukasklingsbo/sdk-1020-parityauth-verifyotp-for-email_change-returns-null
  • lukasklingsbo/sdk-1023-parityauth-resend-with-pkce-flow-should-include
  • lukasklingsbo/sdk-1029-paritypostgrest-return-structured-error-for-non-json-body-on
  • lukasklingsbo/sdk-1032-parityauth-recognize-error-parameter-in-implicit-grant
  • lukasklingsbo/sdk-1054-consolidate-ci-into-a-single-workflow-and-stop-re-running
  • lukasklingsbo/sdk-583-realtime-protocol-200
  • lukasklingsbo/sdk-583-realtime-v3-renames
  • main
  • null-check-operator-on-realtime-conn
  • refactor/bucket-oauth-dedupe
  • refactor/gotrue-pkce-helper
  • refactor/realtime-broadcast-http
  • refactor/refresh-flow
  • refactor/storage-dedupe
  • refs/pull/1110/merge
  • release-23586209249
  • release-26828784805
  • release-27010981394
  • release-27216676269
  • release-27629220657
  • release-please/bootstrap/default
  • remove-wasm-ci
  • revert-commit
  • shared_prefs_async
  • storage
  • test/supabase-cli-integration-tests
  • test/web
  • unnecessary_current_user
  • upgrade-github-actions-node24
  • upgrade-github-actions-node24-general
  • worktree-899
  • worktree-ci-release-tags
  • worktree-ci-simplify
  • worktree-ci-uppercase
  • worktree-email-fix
  • worktree-facebook-login-issue
  • worktree-fix-coverage
  • worktree-fix-tests
  • worktree-flutter_lints
  • worktree-passkeys-interface-types
  • worktree-realtime-tests

26 Jun 2026 05:21PM UTC coverage: 85.64% (+0.02%) from 85.619%
28254051980

push

github

web-flow
feat(realtime): update httpSend to per-event broadcast URL with binary support (#1467)

## What

Brings `RealtimeChannel.httpSend()` to parity with supabase-js
([supabase/supabase-js#2400](https://github.com/supabase/supabase-js/pull/2400)).

- Uses the new per-event URL format `POST
/api/broadcast/{topic}/events/{event}` instead of the old `POST
/api/broadcast` with a `messages` array wrapper.
- Adds `?private=true` query parameter for private channels.
- URL-encodes the topic and event names.
- Sends the payload directly (no `messages` wrapper).
- `TypedData` (e.g. `Uint8List`) and `ByteBuffer` payloads are sent as
`application/octet-stream`; everything else is JSON-encoded.
- Returns a clearer error when the server responds with 404 (server too
old).

The implicit REST fallback in `send()` is intentionally left on the old
format, matching supabase-js, which only changed `httpSend()`.

## Compatibility

- The `payload` parameter type widens from `Map<String, dynamic>` to
`Object` to allow binary payloads. This is backward compatible: existing
calls passing a map still compile.
- The new endpoint requires Realtime server **v2.97.0+**
([supabase/realtime#1864](https://github.com/supabase/realtime/pull/1864)).
This matches supabase-js, which shipped the same change as a minor
`feat`.

## Test plan

- Updated `httpSend` tests for the new URL format and direct payload
body.
- Added tests for the `private` query parameter (present for private,
absent for public), URL-encoding of special characters, and
`Uint8List`/`ByteBuffer` binary payloads.

Closes SDK-1018

18 of 19 new or added lines in 1 file covered. (94.74%)

4121 of 4812 relevant lines covered (85.64%)

3.69 hits per line

Relevant lines Covered
Build:
Build:
4812 RELEVANT LINES 4121 COVERED LINES
3.69 HITS PER LINE
Source Files on main
  • Tree
  • List 80
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28254051980 main feat(realtime): update httpSend to per-event broadcast URL with binary support (#1467) ## What Brings `RealtimeChannel.httpSend()` to parity with supabase-js ([supabase/supabase-js#2400](https://github.com/supabase/supabase-js/pull/2400)). - Us... push 26 Jun 2026 05:23PM UTC web-flow github
85.64
28245099353 fix/realtime-reconnect-after-disconnect Merge 8b8480a13 into fe8a84d08 Pull #1477 26 Jun 2026 04:55PM UTC web-flow github
85.62
28245085940 main fix(gotrue): copy request header/query maps before mutating them (#1476) ## What `GotrueFetch.request()` now copies the request header and query maps before mutating them, so per-request values (`Authorization`, the API version header, `Content-... push 26 Jun 2026 02:40PM UTC web-flow github
85.62
28242892816 fix/realtime-reconnect-after-disconnect Merge cd6a112ff into cb7e7e62d Pull #1477 26 Jun 2026 02:40PM UTC web-flow github
80.3
28241867675 main fix(auth): recognize error query parameter in auth callback redirects (#1472) ## What OAuth error redirects can arrive as query parameters without an `error_description` (e.g. `?error=access_denied`), per [RFC 6749 §4.1.2.1](https://datatracker.... push 26 Jun 2026 01:43PM UTC web-flow github
85.62
28239501516 fix/gotrue-shared-header-mutation Merge e8e0cd627 into 2d7c9cf55 Pull #1476 26 Jun 2026 01:34PM UTC web-flow github
85.68
28234967354 feat/signed-out-reason Merge 967471c45 into 2d7c9cf55 Pull #1453 26 Jun 2026 11:25AM UTC web-flow github
85.55
28234722088 feat/signed-out-reason Merge 479456e32 into 2d7c9cf55 Pull #1453 26 Jun 2026 11:20AM UTC web-flow github
85.55
28231764812 main fix(postgrest): return structured error for non-JSON body on 2xx responses (#1474) ## What When a PostgREST request succeeds (2xx status) but the response body is not valid JSON (for example, an HTML `502 Bad Gateway` page from a proxy, or a tru... push 26 Jun 2026 10:16AM UTC web-flow github
85.59
28229033123 lukasklingsbo/sdk-1029-paritypostgrest-return-structured-error-for-non-json-body-on Merge 48ee913b3 into a154852f6 Pull #1474 26 Jun 2026 09:19AM UTC web-flow github
85.59
See All Builds (785)

Badge your Repo: supabase-flutter

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc