What is Gaur?
Gaur is a governed semantic layer that turns analytical data into stable, permissioned contracts.
Gaur is a governed semantic layer for analytical data. It sits between your raw data and the applications, dashboards, and AI agents that read it.
Instead of letting every caller write its own SQL against raw tables, you publish contracts: named definitions of what can be queried and how each value is calculated. Every caller queries the contract, so every caller gets the same answer for the same question.
What a contract looks like
A contract is a JSON document. Here's a trimmed slice of the
product_performance contract from the sample Jaffle Shop dataset used
throughout these docs:
{
"name": "product_performance",
"sources": [
{ "source_type": "table", "name": "raw_items", "alias": "i" },
{ "source_type": "model", "name": "orders_clean", "alias": "o",
"join_type": "inner", "cardinality": "many_to_one",
"on": "i.order_id = o.order_id" },
{ "source_type": "model", "name": "sku_costs", "alias": "sc",
"join_type": "left", "cardinality": "many_to_one",
"on": "i.sku = sc.sku" }
],
"measures": {
"revenue_usd": { "sql": "sum(p.price_usd)", "additivity": "additive" },
"total_cogs_usd": { "sql": "sum(sc.total_cogs_usd)", "additivity": "additive" },
"cogs_ratio": { "behavior": "derived",
"numerator": "total_cogs_usd",
"denominator": "revenue_usd" }
}
}That single document defines what callers can ask, joins the sources
correctly, computes each measure in exactly one place, and rejects queries
that would produce wrong numbers. A web dashboard, a customer-facing chart,
and an AI agent answering a Slack question all read the same revenue_usd
and get the same value.
Three ways to call a contract
Every contract is automatically reachable through three protocols:
- REST query API for structured queries from apps and dashboards.
- OpenAI-compatible chat completions for natural-language questions.
- Model Context Protocol (MCP) server for AI agents.
You author the contract once; all three doors open onto it.
Who Gaur is for
- Builders connect data sources, write any reshaping or cleanup as models, and publish contracts. They own the semantic layer.
- Integrators call published contracts from their software. They don't need to know the schema of the underlying tables or write SQL.
The Build track is for the first group, the Integrate track for the second.
What makes Gaur different
- Contracts are validated. Cardinality, fan-out, chasm, and additivity rules are checked when the contract is created. Unsafe contracts are rejected; you never serve a silently-wrong number.
- Context is first-class. Every table, model, contract, and collection carries author-written prose that gets embedded and surfaced to AI surfaces. Better context, better agent answers. See Context.
- Governance covers AI. Row-level security applies through chat and MCP exactly as it does through REST. An agent can't widen its own scope.