live wire
▸Snowflake’s Cortex Agent quickstart routes metrics and transcripts with prompt rules—but documents no authorization boundarySnowflake▸Oracle Select AI generates SQL/PGQ for property graphs—but errors if one AI profile mixes graphs with tables or viewsOracle▸Domo’s data team standardizes MCP builds with shared scaffolding; beta toolkits inherit user permissionsDomo▸Databricks proposes five outcome signals for agentic BI—and says dashboard counts and license usage miss decision qualityDatabricks▸One vibe-coded database app needed 56+ human test hours and three repair rounds despite AI Studio’s verification claimsMancas & Mancas / arXiv▸BigQuery AI.IF’s default cost mode trains a local model for most rows—and drops row-error thresholdsGoogle Cloud▸AWS’s multi-tenant data-agent pattern gives the broker Lambda no data permissions; Cognito roles carry Lake Formation scopeAWS Big Data Blog▸Amazon OpenSearch’s optimized engine adds nested agent traces, but AWS reserves it for log analytics—not vector searchAWS▸Two interpretation-based provenance semantics cannot express SQL bag difference, new theorem showsKolaitis / arXiv▸Databricks Feature Views reuse one definition for training and live scoring, but online lookup still returns latest available stateDatabricks▸Databricks Genie’s Slack and Teams previews default channel answers to public, even when viewers lack source-data accessDatabricks▸Snowflake’s two-tool GraphRAG agent beat a seven-tool graph setup 70% to 60% on 22 ontology questionsSnowflake Engineering▸Semantix opens an Apache-2.0 semantic-first data-agent stack, but labels the project WIP and has no release or adoption yetGitHub / icosmos-space▸Confluent defines Streamhouse as shared current state for agents and apps, but says broader semantics and governance are still to comeConfluent▸Snowflake’s Cortex Agent quickstart routes metrics and transcripts with prompt rules—but documents no authorization boundarySnowflake▸Oracle Select AI generates SQL/PGQ for property graphs—but errors if one AI profile mixes graphs with tables or viewsOracle▸Domo’s data team standardizes MCP builds with shared scaffolding; beta toolkits inherit user permissionsDomo▸Databricks proposes five outcome signals for agentic BI—and says dashboard counts and license usage miss decision qualityDatabricks▸One vibe-coded database app needed 56+ human test hours and three repair rounds despite AI Studio’s verification claimsMancas & Mancas / arXiv▸BigQuery AI.IF’s default cost mode trains a local model for most rows—and drops row-error thresholdsGoogle Cloud▸AWS’s multi-tenant data-agent pattern gives the broker Lambda no data permissions; Cognito roles carry Lake Formation scopeAWS Big Data Blog▸Amazon OpenSearch’s optimized engine adds nested agent traces, but AWS reserves it for log analytics—not vector searchAWS▸Two interpretation-based provenance semantics cannot express SQL bag difference, new theorem showsKolaitis / arXiv▸Databricks Feature Views reuse one definition for training and live scoring, but online lookup still returns latest available stateDatabricks▸Databricks Genie’s Slack and Teams previews default channel answers to public, even when viewers lack source-data accessDatabricks▸Snowflake’s two-tool GraphRAG agent beat a seven-tool graph setup 70% to 60% on 22 ontology questionsSnowflake Engineering▸Semantix opens an Apache-2.0 semantic-first data-agent stack, but labels the project WIP and has no release or adoption yetGitHub / icosmos-space▸Confluent defines Streamhouse as shared current state for agents and apps, but says broader semantics and governance are still to comeConfluent
nl2sql.ai
analysisCode review

This tax-support prototype treats generated SQL as hostile until three controls agree

Overseas Tax Agent’s new implementation separates AST policy, tenant binding and database enforcement—and its own timeout failure explains why each layer matters.

By The Tools Desk· Oct 27, 2026the quick take — two AI hosts go live when you do

A small Korean tax-support prototype just made a useful architectural point: text-to-SQL safety is not one filter. It is a chain of independent controls, and each control should still matter if the previous one fails.

On Oct. 27, Overseas Tax Agent added a guarded SQL path for querying brokerage-trade data. The implementation commit reports 19 dedicated SQL-guard tests and 149 tests across the repository. This is still an early, zero-star prototype with no declared license—not production evidence—but the controls are inspectable.

Layer one: constrain the query’s shape

The first layer parses model output with sqlglot. It accepts one SELECT, restricts access to five named tables, rejects writes, DDL, multiple statements and dangerous functions, and caps results at 500 rows. A rejected query gets one regeneration attempt with the failure reason before the agent returns an error. Those checks narrow the generated program before it reaches a database.

Layer two: add identity outside the model

The more important design choice is customer scoping. Rather than asking the model to remember a tenant predicate, the guard rejects literal customer IDs and rewrites customer-bearing tables as subqueries bound to the session’s customer_id. The project documentation says tests cover an attempted cross-customer query and expect only the session customer’s rows.

That is the transferable lesson: authorization context should be injected by trusted code, not generated by the language model whose output is being authorized.

Layer three: make the database refuse anyway

The execution layer opens SQLite in read-only mode, enables query_only, interrupts queries after five seconds and enforces the same 500-row ceiling. The PostgreSQL path uses a dedicated read-only role with a five-second statement timeout. Parser checks can be incomplete; database permissions provide a separate failure boundary.

The same day’s follow-up commits show why operational limits belong in the design. One commit says an Opus-generated query expanded to roughly 1,100 characters with UNION and CASE, contributing to 19 timeouts in a 30-case text-to-SQL run. The maintainer then separated SQL generation onto a smaller model, added simpler-query instructions and full SQL logging; a later commit added phase-level latency records and prompt caching.

The project has not published an independent security review, a tagged release or adoption evidence. Its value here is narrower: it exposes the boundaries that a production NL2SQL system should test separately—syntax policy, identity binding, database privilege and resource limits—instead of calling one prompt or parser a guardrail.

Filed by The Tools Desk. Corrections: desk@nl2sql.ai · Our standards →

comments · 0

    Comments are moderated before they appear. Your email is used once to confirm it is you — never shown, never sold. Corrections and questions get an answer from the desk when we have one.