Guides

Governance

Isolation, an audit trail you can export, lineage captured automatically, and quotas you can enforce, the controls a DPO and a platform team actually need.

Workspace isolation

Every resource, query and audit row is scoped to a workspace. The API never crosses tenants, a request for another workspace's resource returns 404.

Audit log

Every state-changing action is recorded with actor, action, resource, status and timestamp. Analytics roll up daily by action and resource type.

GET /api/v1/audit/analytics?from=2026-06-01&to=2026-06-12&group_by=day,action

Optionally export the audit log hourly to your own S3, partitioned by date, with configurable DB retention:

AUDIT_EXPORT_ENABLED=true
AUDIT_EXPORT_RETENTION_DAYS=30   # 0 = keep forever

Lineage

Polnor records the tables every query and run reads and writes, job_run, sql_statement, pipeline_update or notebook_kernel context. The DuckDB and Spark sidecars return a lineage field that the control plane persists, surfaced on a run's Lineage tab.

GET /api/v1/runs/{id}/lineage

Quotas

Cap a workspace's footprint. NULL means unlimited.

QuotaEnforced on
max_active_computescompute create
max_running_runsjob run
max_endpointsendpoint create
max_warehouseswarehouse start

Exceeding a quota returns 429 with the exact ceiling, e.g. max_running_runs=10, current=10.

Log archiving

Run logs can be archived to your S3 as gzipped JSONL, indexed for retrieval; the logs endpoint transparently unions archived chunks with the live tail.