Airlock documentation
Evaluate the opportunity. Understand the boundary. Build against the contract.
Airlock governs records, evidence, authority, and workflow inside Snowflake. The installed Native App and its stored procedures are authoritative.
Start with your question
Inspect the verified demonstration: missing evidence rejected, self-approval denied, and a separate authorized decision recorded.
Three roles. Three procedure families.
| Application role | Primary family | Job |
|---|---|---|
app_admin |
airlock.admin.* |
May call all families. Uses admin.* to change specs, roles, assignments, references, licensing, retention, and setup. |
app_agent |
airlock.agent.* |
Discover allowed specs, validate and submit work, attach evidence, and participate in workflow. |
app_observer |
airlock.observe.* |
Inspect assigned governance metadata without changing governed state or consuming a named seat. Account-wide audit requires the reserved, read-only global_observer role. |
Snowflake application roles are the coarse gate. Airlock assignments and per-spec policies determine scope. Agent and Streamlit work is seat-gated; observe-only procedure calls are not. Consult the exact contract for administration and billing behavior.
Every mutating human or automated agent remains an attributable Snowflake principal. Workspace roles and chat approval are collaboration context, not Airlock authority; explicit Airlock delegation represents work for another principal.
The governed loop
-
Discover before acting
Use
AGENT.LIST_MY_ROLES,AGENT.LIST_MY_SPECS, andAGENT.DESCRIBE_SPEC. Build only the business payload the spec allows. -
Validate, then submit
Use
AGENT.VALIDATE_DATAbeforeAGENT.LOAD_DATA. Keep path, delegation, evidence, and workflow actions explicit. -
Observe the result
Use
OBSERVE.EXPLAIN_ACCESS,OBSERVE.WORK,OBSERVE.ACTIVITY, andOBSERVE.HEALTHto inspect the boundary without changing it.
Implementation references
The authority boundary
The Native App owns governance state and the installed contract. Airlock MCP is a local workbench, not a live Snowflake connector. External systems remain responsible for their own actions.
Before live work, confirm the installed app object name and retrieve its bundled contract. Public examples use airlock as a placeholder. Do not write around Airlock-owned tables, stages, workflow state, or audit history.
CALL <APP_NAME>.AGENT.DOCUMENTATION(CONTENT_MODE => 'PROCEDURES');