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 provsql.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.4.0.tar.gz (1.3 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.4.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: provsql_studio-1.4.0.tar.gz
  • Upload date:
  • Size: 1.3 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.4.0.tar.gz
Algorithm Hash digest
SHA256 efef13f7d5575aea828ee1b73edb60641508897d8622b2a03221ab8a643aed19
MD5 910822cb6e6720ba5b0006a7356da83c
BLAKE2b-256 5015d65f78907f4dd788484b01d0dc7b88af8647021dba2136c602fd53839dc6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: provsql_studio-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17c875ce07dbeabc11310d16b548babc98994ff31d21c51c8a947b58caa97236
MD5 69050c392c703516e8ae665b291bd8d5
BLAKE2b-256 cc66ec8d60ff4c7a9f1f130a5dfb9a590062d9c72598bd8e083fd13da219399c

See more details on using hashes here.

Provenance

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