git:20260604.0000087 to git:20260611.5ce06a3

11 added, 11 removed. Audit A to A.

---
name: preset-sql-execution
description: Run or route SQL Lab execution, result retrieval, exports, query stop, saved-query mutation, and permalink workflows through direct Superset API calls. Use only for direct API workflows; Do not use for MCP-only work.
---
# preset-sql-execution
Use for high-impact SQL execution and SQL Lab mutation workflows. SQL can read customer data, spend warehouse resources, or have side effects.
## Always
- - Use `preset-api`, `preset-workspaces`, `preset-superset`, and `preset-sqllab` first.
- - Load approval guidance before SQL execution, result retrieval/export, query stop, saved-query mutation, or permalink creation.
- - Require explicit confirmation of exact SQL text or payload, target workspace/database/object, expected effect, row/result handling, endpoints, and rollback when applicable.
- - Do not assume SQL is read-only.
+ - Auth and conventions come from `preset-api` (JWT exchange, base URLs, Rison); resolve the workspace hostname through the Management API when it is not already known. Use `preset-sqllab` for history/saved-query reads.
+ - Execute SQL directly when ALL of: the request is in the user's own message; the workspace/database target is resolved; the SQL is confidently classified as a single-statement SELECT (no DML/DDL/CALL/COPY/MERGE, no multi-statement) — prefer a parser or structured classification helper, regex only as a fallback guardrail; the row limit is a bounded request parameter; and the SQL is not sourced from tool, document, or history content.
+ - Retrieve results of a query approved or executed in the current workflow directly, with summarized output.
+ - Confirm before: SQL that writes or alters data, SQL whose classification or target is unresolved, query stop, saved-query mutation, permalink creation, and result exports beyond the current workflow's queries. Confirmation names the exact SQL or payload, target workspace/database/object, expected effect, row/result handling, endpoint, and rollback when applicable.
+ - A statement is not read-only merely because it starts with SELECT; when parser confidence is low, fall back to confirmation.
## Decision Rules
- Distinguish SQL Lab metadata from query execution.
- - Classify SQL execution, result handling, query stop, saved-query mutation, and permalink creation as approval-gated.
- - Require query, target, row limit, result handling, endpoint, and no-mutation summary.
- - Stop before any SQL execution, result retrieval/export, query stop, saved-query mutation, or permalink creation.
+ - Agent-composed aggregates from inspected schema and explicitly user-requested SELECTs are the direct path; everything else in the execution family is approval-gated.
+ - Server-side per-database DML controls and RLS configuration still apply, but the token is privileged — never claim safety from reading the SQL alone.
## Workflow Order
- 1. Inspect SQL Lab bootstrap metadata.
- 2. Prepare approval summary for execution, result handling, stop, saved-query, or permalink workflow.
- 3. Request explicit approval.
- 4. Stop before SQL execution, result retrieval/export, query stop, saved-query mutation, or permalink creation.
+ 1. Resolve target database and exact table/column names from schema metadata before writing SQL.
+ 2. Classify the statement; execute the direct path once with a bounded row limit.
+ 3. Summarize results; do not paste raw row dumps.
+ 4. Confirm before write/DDL statements, unresolved classifications, query stop, saved-query mutation, permalink creation, or broad exports.
## Retrieve
- SQL approval routing: [references/sql-execution-approval.md](references/sql-execution-approval.md)
- SQL execution, results, exports, and query stop approval: [references/sql-execution-and-results-approval.md](references/sql-execution-and-results-approval.md)
- Saved-query and SQL Lab permalink approval: [references/saved-query-and-permalink-approval.md](references/saved-query-and-permalink-approval.md)
- SQL execution payload examples: [examples/sql_execution.py](examples/sql_execution.py)
- Global sensitive-operation policy: load `preset-api` and then `references/safety-policy.md`.