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

Uploaded Python 3

File details

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

File metadata

  • Download URL: provsql_studio-1.0.0.tar.gz
  • Upload date:
  • Size: 1.2 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.0.0.tar.gz
Algorithm Hash digest
SHA256 e04dce2fbf21a61566cef33d79775cc5d511ac9aa71b134870c0a3bb5412bbb5
MD5 6326bb27db21c6577fff79348e7ec9eb
BLAKE2b-256 eee9575a105d5f462304ec7c8e0efaed12f69dcee45ca84142da8fe5047430fa

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: provsql_studio-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 1.2 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ae6e161d0d0f008658a65f755533840c9c32b63d5539aa52d772b52e32873cb
MD5 8a33d6b246e42209e0e706b727f2289f
BLAKE2b-256 928ab588b8a3b8d7b26f9fc82975fe694465215e17e9dcb7a39928026fd4e354

See more details on using hashes here.

Provenance

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