Developers frequently use Cloudfloe to verify schema evolution or partition layouts. Currently that means typing `SELECT * FROM iceberg_metadata(...)` or digging into metadata JSON by hand.
Scope
Add a Schema tab next to Results / Query Stats. After a successful probe (see #26), the tab auto-populates with:
- Schema — columns, types, field IDs, nullability. Source: parse `schemas` from the metadata JSON we already read during the probe (zero extra round trips).
- Partition spec — partition keys and transforms. Source: same metadata JSON.
- Manifests — tabular `iceberg_metadata(...)` output (record_count, file_format, file_path, manifest_content). Useful for spotting file skew.
- Snapshot history — `iceberg_snapshots(...)` output (sequence_number, snapshot_id, timestamp_ms, parent_snapshot_id).
Implementation
- Backend: new `GET /api/connect/schema` endpoint (reuses `_probe_iceberg_table` + two extra queries). Or extend `/api/connect/test` to include the detail when requested (`?detail=full`).
- Frontend: tab switcher already exists for Results/Stats. Add "Schema" tab with four collapsible sections.
Why
Removes the friction of hand-writing metadata queries just to check column types or Iceberg field IDs. Compounds #26 — the probe is already fetching most of this; just surface it.
Developers frequently use Cloudfloe to verify schema evolution or partition layouts. Currently that means typing `SELECT * FROM iceberg_metadata(...)` or digging into metadata JSON by hand.
Scope
Add a Schema tab next to Results / Query Stats. After a successful probe (see #26), the tab auto-populates with:
Implementation
Why
Removes the friction of hand-writing metadata queries just to check column types or Iceberg field IDs. Compounds #26 — the probe is already fetching most of this; just surface it.