Read-only BigQuery cost-audit tool — single-user, gcloud ADC only, no GCS / no GitHub / no dbt installation.
Project description
governor-audit
Read-only BigQuery cost-audit tool for single-user production audits. v0.2.2.
Posture: Single-user. gcloud ADC only. No GCS, no GitHub, no service-account JSON, no dbt installation, no shadow validation. The only thing it talks to over the network is BigQuery — and only to query
INFORMATION_SCHEMA.JOBS_BY_PROJECT,INFORMATION_SCHEMA.COLUMNS,INFORMATION_SCHEMA.TABLE_STORAGE, andINFORMATION_SCHEMA.SCHEMATA_OPTIONS.
When to use this vs. the other governor packages
governor-audit(this package): you have read access to a prod BigQuery project. You want a fast cost audit + detection findings without touching the dbt source code, running dbt, or setting up cloud infrastructure.governor-cli: you have the dbt project source on your machine and want to run dbt + propose fixes locally.governor-web: you operate the platform; you want shared infrastructure (GCS-backed manifests, GitHub PRs, scheduled syncs) for a team.
What you get
- Dashboard — Total / Build / Consumption / Flagged spend KPI cards, top-20 spenders bar chart, paginated cost-drivers table with click-to-sort columns and a per-row issue count, and a Storage Optimization panel listing per-dataset physical-billing opportunities with copyable
ALTER SCHEMAactions. - Detection engine — every enabled rule from
governor_core.opportunities.rulesruns against each cached job. Results are split into two buckets:- Issues (real cost / performance problems):
slot_contention,join_explosion,partition_pruning,shuffle_spill,storage_billing_optimization. Listed standalone in/opportunities. - Suggestions (code-quality SQL rewrites):
dead_cte,dead_column,dead_window_expression,unused_aggregation_output,redundant_order_by,unused_join,select_star,cross_join_unaggregated,self_join_anti_pattern. Attached to the issue they could improve, never standing on their own. Suggestions without a deterministic rewrite template are filtered out so the UI only shows actionable diffs.
- Issues (real cost / performance problems):
- Opportunity detail — issue evidence (open by default) plus a stack of suggestion cards. Each suggestion card has a tabbed Diff / Original SQL view rendered from
governor_core.solutions.templates. When no suggestions fire, the original SQL is still shown so you can read what ran. - Settings — three pages:
- Issues (
/admin/settings/issues) — toggle the five issue rules. - Suggestions (
/admin/settings/suggestions) — toggle the nine suggestion rules. - Storage Billing (
/admin/settings/storage-billing) — pricing parameters for the storage billing rule. - Plus Account (gcloud principal + ADC probe), Appearance (light / dark / system), AI / LLM (Gemini API key, optional — reviewer code lands in a future release).
- Issues (
- Scan query preview — the configurations page shows the exact
INFORMATION_SCHEMASQL the next scan will run, with resolved timestamps, on a Jobs / Columns / Storage tabbed panel and a copy button. - Reset cache — wipe everything
INFORMATION_SCHEMAcollected without losing your config.
Quickstart
gcloud auth application-default login
uv tool install governor-audit
governor-audit init --project prod-warehouse-123 --region us
governor-audit scan --days 30
governor-audit start
# open http://localhost:8765
The web UI exposes the same actions as the CLI plus the dashboard / settings views. After the first init you can do everything from the browser, including the setup wizard for any later config changes.
See the spec quickstarts for the full first-audit walkthrough:
- spec 141 quickstart — original audit MVP
- spec 144 — query-only rule catalog and synthetic manifest
- spec 145 — TABLE_STORAGE ingestion + dashboard storage panel
Architecture
- Storage: SQLite at
~/.governor-audit/state.dbviagovernor_core.db.sqlite_compat. Four persisted shapes:BigQueryJob(raw INFORMATION_SCHEMA rows),TableColumnMetadata(column lists forSELECT *expansion),TableStorageMetric(per-table byte counts + per-dataset billing model — feeds the storage-billing rule),Opportunity(detection findings). - Auth: gcloud Application Default Credentials only —
google.auth.default(). No service-account JSON. No browser OAuth. - Workload classification: manifest-free heuristic — dbt-originated CTAS / MERGE / INSERT / UPDATE / DELETE →
build; non-dbt SELECT →consumption; ambiguous →other. Driven by the/* {"app": "dbt"comment-prefix the dbt-bigquery adapter prepends. - Synthetic manifest (spec 144): audit reuses every
governor_corerule unmodified by building a synthetic dbt-shaped manifest fromBigQueryJobrows. Each row becomes a model node keyed by destination table; CTAS / MERGE wrappers are stripped so manifest-driven analyzers see the innerSELECT. The same pattern feedsgovernor_core.solutions.templatesfor deterministic before/after SQL diffs. - Loopback only: the FastAPI app rejects any request whose
Host:header isn't a localhost variant. Not a public service.
Versioning
governor-audit ships on its own version track, decoupled from the cloud bundle (governor-core / governor-web / governor-cli / governor-bq). Audit v0.2.x and cloud v0.7.x coexist. See scripts/release-audit.sh for the release flow.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file governor_audit-0.2.2.tar.gz.
File metadata
- Download URL: governor_audit-0.2.2.tar.gz
- Upload date:
- Size: 145.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e242833fcd01a65a02dc79cc246ac07c942d29abe9fca96205b58fd8fc8d347c
|
|
| MD5 |
76c267eeca47b92b1b43da678aef7b42
|
|
| BLAKE2b-256 |
ac5479ab9a24189074e37cb17ba9589e61aed826b84cf0cb445aefbb6618548e
|
File details
Details for the file governor_audit-0.2.2-py3-none-any.whl.
File metadata
- Download URL: governor_audit-0.2.2-py3-none-any.whl
- Upload date:
- Size: 184.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4f59a9c1e589f1f2230042ce4a5083f7e8f8cf691a44b147dc34300c678495e
|
|
| MD5 |
461c8767c83ff4d8459389877d16582c
|
|
| BLAKE2b-256 |
cec1076cf82e44eada280c0282307588a6ef0601932c9bbfe2861c42e68862e8
|