Skip to main content

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

Project description

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.

Project details


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.6.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.6.0-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: provsql_studio-1.6.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.6.0.tar.gz
Algorithm Hash digest
SHA256 3569bedee433b8075f208a958e34258e12364fbacd0421a71d5a059f1959bd5f
MD5 8b57f91b3793765a10a865ea6144b52f
BLAKE2b-256 5339e132a401aace14efbc3d0ace9ad7c0a969a13ccee184fc97cc93de8a04c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for provsql_studio-1.6.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.6.0-py3-none-any.whl.

File metadata

  • Download URL: provsql_studio-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 1.5 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ff0e17fffb4720690449d130548fe54ae197e54901cc7279fff9513878210c2
MD5 ace8c41e0a7ea9ff6d23098f1c9531a8
BLAKE2b-256 1886fe26edfe2bdbcceff0222dc1d18a157fc8fb037fe3eddd2643994af613da

See more details on using hashes here.

Provenance

The following attestation bundles were made for provsql_studio-1.6.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