• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 28254051980
86%

Build:
DEFAULT BRANCH: main
Ran 26 Jun 2026 05:23PM UTC
Jobs 8
Files 80
Run time 1min
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

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

Uncovered Changes

Lines Coverage ∆ File
1
90.17
0.11% packages/realtime_client/lib/src/realtime_channel.dart
Jobs
ID Job ID Ran Files Coverage
6 realtime_client - 28254051980.6 26 Jun 2026 05:25PM UTC 11
88.56
GitHub Action Run
7 supabase - 28254051980.7 26 Jun 2026 05:23PM UTC 15
81.99
GitHub Action Run
8 supabase_flutter - 28254051980.8 26 Jun 2026 05:24PM UTC 11
77.99
GitHub Action Run
6 postgrest - 28231764812.6 26 Jun 2026 10:17AM UTC 9
84.31
GitHub Action Run
8 gotrue - 28245085940.8 26 Jun 2026 02:42PM UTC 26
84.31
GitHub Action Run
7 yet_another_json_isolate - 27986095786.7 22 Jun 2026 09:45PM UTC 1
79.03
GitHub Action Run
4 functions_client - 27986095786.4 22 Jun 2026 09:45PM UTC 2
97.14
GitHub Action Run
5 storage_client - 28160249676.5 25 Jun 2026 09:26AM UTC 5
92.97
GitHub Action Run
Source Files on build 28254051980
  • Tree
  • List 80
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28254051980
  • 6f84df00 on github
  • Prev Build on main (#28245085940)
  • Delete
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