Skip to content

This release adds 3 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

semantic-layer

Summary

AI summary

Datasources appear as separate Postgres schemas and dbt MetricFlow import now fails loudly with full support for advanced metrics.

Full changelog

SLayer 0.9.2

A more capable Postgres facade

If you connect a BI tool (Metabase, Superset, Tableau, and friends) to SLayer over the Postgres wire protocol, your datasources now show up as separate Postgres schemas instead of everything being flattened into public. A datasource keeps landing in public by default, or you can give it an explicit schema name via its postgres_schema config. This makes multi-datasource setups navigable in tools that group tables by schema.

The facade also understands more of what clients send it. Common psql introspection commands (\l, \d, \du) work, and SELECT * FROM <table> is accepted in browse mode so you can eyeball a table without naming every column.

For people embedding SLayer, pg-serve gains a storage_provider seam: you can resolve a per-connection, tenant-scoped storage from the authenticated principal, so one server can serve many isolated tenants.

Improved dbt MetricFlow import

The dbt/MetricFlow importer now aims to represent every supported construct exactly or fail it into a clear, structured report - no silent drops and no lossy approximations. It handles percentile, ratio, boolean-sum, and offset-window metrics, and pushes metric and per-input filters down correctly across joins. A new count_distinct_approx aggregation is available (native per dialect, with an exact COUNT(DISTINCT) fallback where there is no native function). A runnable demo notebook walks through converting a MetricFlow project into SLayer models.

Recommend a query root

New recommend_root_model tool: give it a set of columns and metrics you want in one query, and it tells you which model to use as the query root and the join-qualified path to each item. When no single root can reach everything, you get back the best partial roots ranked by how much they cover. Available from MCP, the REST API (POST /recommend-root-model), the CLI (slayer recommend-root-model), and SlayerClient.

Fixes

inspect now lazily back-fills a column's sample values on read, matching inspect_model and search. Previously an unsampled column (for example a JSON leaf dimension) could show no sample values until the next ingest.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track SLayer, a semantic layer maintained by your agent

Get notified when new releases ship.

Sign up free

About SLayer, a semantic layer maintained by your agent

All releases →

Related context

Earlier breaking changes

  • v0.7.1 Changes `search()` response to a single flat `results` list capped by `max_results`, removing separate `memories`, `example_queries`, and `entities` buckets.
  • v0.7.1 Changes `search()` to return a single flat `results` list, removing per‑bucket caps.
  • v0.6.3 Datasource names now reject dots, slashes, nulls, empty/whitespace; existing names containing '.' will fail validation on upgrade.
  • v0.6.0 recall_memories surface entirely removed with no deprecation shim.
  • v0.5.1 Two-mode reference semantics enforced: SQL mode accepts arbitrary SQL; DSL mode strictly resolves identifiers.

Beta — feedback welcome: [email protected]