Makoto
Menu
Integration field note

Snowflake: sign a stable export, not a mutable query result.

A table or view can change after a query completes. The clean handoff boundary is a reproducible export, immutable stage object, or snapshot manifest whose exact bytes the producer and receiver can hash.

Implementation boundary. Makoto does not ship a Snowflake Native App, SQL signing function, or automatic LOAD_HISTORY integration.

The attachment point

Unload or exportAfter COPY INTO finishes, enumerate the exact stage objects, hash them outside the warehouse or through a reviewed signing service, and append a transformation statement.
Dynamic table or taskCapture query, task, warehouse, role, and snapshot context as operation metadata. Bind the exported bytes, not just a query ID.
Secure shareCreate a signed handoff that names the exported artifact set, recipient, required profiles, and final heads.
ReceiverDownload or read the handed-off bytes, hash them independently, and apply its own key policy and schema catalog.

Control flow

-- Produce a stable handoff artifact first.
COPY INTO @handoff/orders/
FROM (SELECT * FROM curated.orders)
FILE_FORMAT = (TYPE = PARQUET)
OVERWRITE = TRUE;

# Outside Snowflake, resolve and hash the exact exported objects.
uv run makoto attest transform --help
uv run makoto handoff create --help

A warehouse procedure may orchestrate this flow, but signing-key custody, exact-byte hashing, and receiver authorization remain explicit design choices. Calling hypothetical SQL “pure Makoto signing” would hide those boundaries.

What the evidence can say

It can bind a stable export and relevant Snowflake context to its predecessors. It cannot prove a query was semantically correct, that a share remained unchanged after the attested export, or that the data meets a compliance regime.

Bring one export another team can verify.

A useful contribution includes exact stage objects, signing custody, receiver expectations, and a denial when one object changes.