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

supabase / supabase-flutter / 32034091672
89%

Build:
DEFAULT BRANCH: main
Ran 17 Aug 2026 01:16PM UTC
Jobs 10
Files 106
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

17 Aug 2026 01:15PM UTC coverage: 88.247%. Remained the same
32034091672

push

github

web-flow
refactor(storage)!: move the Iceberg catalog into its own package (#1711)

## What

Extracts the Apache Iceberg REST Catalog client out of `storage_client`
and into a new `iceberg` package, mirroring the split between
[`storage-js`](https://github.com/supabase/supabase-js/tree/master/packages/core/storage-js)
and [`iceberg-js`](https://github.com/supabase/iceberg-js), where
`storage-js` takes `iceberg-js` as a plain dependency.

| Was | Now |
| --- | --- |
| `storage_client/lib/src/iceberg/*.dart` | `iceberg/lib/src/*.dart` |
| `storage_client/test/iceberg_test.dart` |
`iceberg/test/iceberg_test.dart` |

The moved surface is `IcebergRestCatalog`, the sealed `IcebergException`
hierarchy, and the table and namespace types. Everything is a pure move,
no behaviour changed.

## Why

The catalog is a generic Iceberg REST Catalog client: it only needs a
`baseUrl` and headers, and nothing in it reaches into Storage. As its
own package it can be depended on without the rest of Storage, and it
gets its own version line and changelog rather than having Iceberg spec
churn interleaved with file and vector bucket releases.

## Compatibility

The public API is unchanged. `storage_client` depends on `iceberg` and
re-exports the whole library, so
`package:storage_client/storage_client.dart`,
`package:supabase/supabase.dart` and
`package:supabase_flutter/supabase_flutter.dart` still resolve every
Iceberg symbol, and `storage.analyticsCatalog()` still returns an
`IcebergRestCatalog`. Only imports of the private
`package:storage_client/src/iceberg/...` paths break, hence the `!`.

Depending on `iceberg` directly now works for any Iceberg REST Catalog:

```dart
final catalog = IcebergRestCatalog(
  baseUrl: 'https://example.com/iceberg',
  headers: {'Authorization': 'Bearer $token'},
  warehouse: 'my-warehouse',
);
```

## Also in this PR

- Root workspace list, `test.yml` (`DART_PACKAGES` and the coveralls
carryforward; no backend needed since the Iceberg tests are all
m... (continued)

5759 of 6526 relevant lines covered (88.25%)

4.13 hits per line

Jobs
ID Job ID Ran Files Coverage
1 supabase_flutter - 32034091672.1 17 Aug 2026 01:17PM UTC 10
81.87
GitHub Action Run
2 yet_another_json_isolate - 32034091672.2 17 Aug 2026 01:16PM UTC 1
94.44
GitHub Action Run
3 supabase_functions - 32034091672.3 17 Aug 2026 01:16PM UTC 3
97.75
GitHub Action Run
4 supabase_common - 32034091672.4 17 Aug 2026 01:16PM UTC 16
99.48
GitHub Action Run
5 iceberg - 32034091672.5 17 Aug 2026 01:16PM UTC 5
68.62
GitHub Action Run
6 supabase_storage - 32034091672.6 17 Aug 2026 01:18PM UTC 8
97.18
GitHub Action Run
7 supabase - 32034091672.7 17 Aug 2026 01:20PM UTC 13
87.19
GitHub Action Run
8 supabase_realtime - 32034091672.8 17 Aug 2026 01:19PM UTC 12
90.59
GitHub Action Run
9 supabase_auth - 32034091672.9 17 Aug 2026 01:20PM UTC 28
89.75
GitHub Action Run
10 postgrest - 32034091672.10 17 Aug 2026 01:19PM UTC 10
85.46
GitHub Action Run
Source Files on build 32034091672
  • Tree
  • List 106
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32034091672
  • 26fc503d on github
  • Prev Build on main (#32033193174)
  • Next Build on main (#32036696049)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc