Skip to content

chore: split result data JSON blob into dedicated columns#2802

Open
svenvg93 wants to merge 6 commits into
alexjustesen:2.xfrom
svenvg93:chore/split-data
Open

chore: split result data JSON blob into dedicated columns#2802
svenvg93 wants to merge 6 commits into
alexjustesen:2.xfrom
svenvg93:chore/split-data

Conversation

@svenvg93

@svenvg93 svenvg93 commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

📃 Description

Replaces the generic data JSON blob on the results table with dedicated, typed columns for each Ookla metric. This makes individual fields queryable and indexable without having to dig into JSON, and aligns the database schema with the OoklaResult DTO introduced alongside it.

Existing rows are backfilled from their stored JSON during the migration.

🪵 Changelog

➕ Added

  • OoklaResult DTO (app/Data/OoklaResult.php) to map Ookla JSON payloads to typed properties and back to model attributes
  • Dedicated columns on the results table for ping (ping_jitter, ping_low, ping_high), download (download_jitter, download_latency_iqm, download_latency_low, download_latency_high, download_elapsed), upload (upload_jitter, upload_latency_iqm, upload_latency_low, upload_latency_high, upload_elapsed), packet_loss, isp, ip_address, server info (server_id, server_name, server_host, server_ip, server_country, server_location), result_url, and error_message
  • Add DB indexes for created_at, status, download, upload, ping, scheduled, healthy, server_id, server_name, ip_address, dispatched_by

@svenvg93 svenvg93 requested a review from alexjustesen as a code owner June 2, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant