Skip to main content

ProvSQL Studio

CI PyPI License: MIT

Web UI for ProvSQL: provenance inspection, circuit visualisation, and on-the-fly semiring evaluation.

ProvSQL is a PostgreSQL extension that adds (m-)semiring provenance and uncertainty management to PostgreSQL, transparently rewriting queries to track provenance as circuit tokens. ProvSQL Studio is a small Flask app that lets you point a browser at a ProvSQL-enabled database and inspect that provenance interactively, without writing the query-wrapping boilerplate by hand.

Website: https://provsql.org/ – Documentation: https://provsql.org/docs/user/studio.html

Inspection modes

Two complementary modes share the same UI (query box, result table, sidebar):

  • Where mode highlights the source cells that contributed to each output value. Hover a result cell and the contributing cells of the underlying provenance-tracked relations light up in the sidebar. The query is wrapped automatically with where_provenance(), so no explicit where_provenance(...) call is needed.

  • Circuit mode renders the provenance DAG behind a result's UUID or aggregate token. Click a UUID cell to load its DAG, hover to highlight a subtree, click to pin a node and open the inspector. Frontiers expand on demand so deep circuits stay readable. An evaluation strip targets the pinned node (or the root) and runs provenance evaluation in various semirings, probability computation through various methods, or PROV-XML export, with the result rendered inline.

A schema panel and a configuration panel round out the UI; see the documentation for the full feature reference.

Install

pip install provsql-studio

Requires Python 3.10+ and a PostgreSQL database with the ProvSQL extension installed (see the extension installation guide). Studio 1.0.x targets ProvSQL extension 1.4.0 or newer; the startup check refuses to launch against an older extension unless --ignore-version is passed.

Connecting

Launch Studio with a DSN:

provsql-studio --dsn postgresql://user@localhost:5432/mydb

Without --dsn, libpq's standard environment variables (PGDATABASE, PGSERVICE, DATABASE_URL…) are honoured. If neither is set, Studio connects to the postgres maintenance database and offers an in-page database picker.

The browser reaches the UI at http://127.0.0.1:8000/. Override the bind address and port with --host and --port. Per-request size caps, statement timeout, and search path are tunable on the CLI (--max-circuit-nodes, --max-sidebar-rows, --max-result-rows, --statement-timeout, --search-path) and through the Config panel; the panel persists its settings to ~/.config/provsql-studio/config.json.

Documentation

The full Studio user guide, including screenshots, the configuration reference, the compatibility matrix, and worked examples, lives at:

https://provsql.org/docs/user/studio.html

For the underlying ProvSQL SQL API (add_provenance, create_provenance_mapping, view_circuit, provenance_evaluate, and the rest), see https://provsql.org/docs/.

License

MIT: see LICENSE.

Contact

https://github.com/PierreSenellart/provsql

Pierre Senellart pierre@senellart.com

Bug reports and feature requests are preferably sent through the Issues feature of GitHub.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

provsql_studio-1.7.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

provsql_studio-1.7.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file provsql_studio-1.7.0.tar.gz.

File metadata

  • Download URL: provsql_studio-1.7.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for provsql_studio-1.7.0.tar.gz
Algorithm Hash digest
SHA256 aa2f20425fe64972926e353d8c55f86eee68a087fcbcab3a99b46f4e1c5e1f1a
MD5 cf0b595824ebf399b02bea01f2d03016
BLAKE2b-256 5c3c48fa56817fd036a2bb8254372cad17a5c6e86828c194776b85cdeb43709f

See more details on using hashes here.

Provenance

The following attestation bundles were made for provsql_studio-1.7.0.tar.gz:

Publisher: studio-release.yml on PierreSenellart/provsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file provsql_studio-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: provsql_studio-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for provsql_studio-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53fd458aa0ab74898051b16fedca2f929557c7d37761e4a8d49dcf8d16de94e4
MD5 61b0908af7e6392e2be04f3364405cf6
BLAKE2b-256 f74c475c8d1e22c8d76ef43e09e640d2c9b491dabf2e27c277b18ab3839d0bcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for provsql_studio-1.7.0-py3-none-any.whl:

Publisher: studio-release.yml on PierreSenellart/provsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page