New feature / Improvement / Bug fix

Dataset schema locking

· week 29 · 2026

This week we shipped dataset schema locking, cut the console’s boot payload by 40%, made smart filters and natural-language queries work without hand-written boilerplate, and gave dashboards proper view and edit modes.

Dataset schema locking

One of the best things about Axiom is that datasets are schemaless: you send whatever your services produce and the fields appear automatically, with no schema to design, migrate, or maintain up front. Sometimes, though, you want the opposite — a dataset whose shape you can rely on, so a status field that has always been an integer stays that way, and the dashboards, monitors, and saved queries built on it keep behaving as expected.

Now you can pin a dataset to its schema. On any event dataset, open the fields panel overflow menu and choose Lock schema. While a dataset is locked, ingest keeps flowing — events still arrive and are counted — but fields that aren’t part of the declared schema are dropped instead of being written, and Axiom reports exactly what it set aside in the ingest response. The panel title reads Fields (Locked) so the state is always clear, and Unlock schema is one click away.

Schema locking isn’t offered for shared datasets or datasets fed by an app integration such as Cloudflare Logpush, Vercel, or Netlify, since those manage their own fields.

A faster console

We spent the week making the console lighter and quicker, measured against production builds with real data.

  • A lighter first load: The console now ships around 40% less JavaScript on initial load, so pages become interactive sooner. The win is biggest on the query page, where the query engine now loads on demand the moment you open the editor.

  • Smoother long sessions: Working in Axiom for hours at a time is now easier on your CPU and battery, with steadier live streaming and snappier interactions throughout the day.

Smarter query editing

  • Smart filters now work with APL and MPL: Previously, using a dashboard smart filter from the editor meant hand-writing a declare query_parameters (APL) or param (MPL) block. Now the variables are surfaced in autocomplete and the required declaration is added for you at query time, so a filter change just works.

  • A rebuilt natural-language-to-query experience: Generating a query from a prompt is now an agentic, streaming flow. Instead of one prompt-and-response, the assistant lists your datasets, inspects their schema, validates its draft, and streams its progress back to you — and it now generates MPL as well as APL.

Dashboards get view and edit modes

Dashboards now open in view mode by default: charts can’t be moved, edited, or deleted by accident, and changing the time range applies only to your current session without marking the dashboard as unsaved. Switch to edit mode for a dedicated toolbar with explicit Add element and Save dashboard actions, and an unsaved-changes prompt if you try to leave mid-edit. Sharing a link with a custom time range now seeds that range for the viewer instead of nudging them toward saving a change they didn’t make.

A more useful query timeline

The event timeline on the Query tab picked up two upgrades. Annotations from your dataset now render directly on the timeline for the query’s time range, so deploys and incidents line up with the events you’re reading. And the timeline is now linked to the results table: a violet band marks the time span of the rows currently in view and tracks your scrolling, a hatched region shows where the query match limit truncated results (with an explanation on hover), and you can drag the band to scrub the table.

More of our favorite changes

  • Weighted aggregations in APL: New sumw(expr, weight) and countw(weight) functions give you accurate weighted sums and counts over sampled data.

  • Complete inner-join results: Inner joins now match against the full right-hand side, so counts and matches reflect every matching row, with no 50,000-row cap.

  • The dataset overview page gained a Dataset information panel (name, kind, edge deployment URL, retention, and usage) and a Monitors panel listing the monitors watching that dataset.

  • Added a scatter chart, plus a clearer span duration heatmap.