Dataverse Explorer
Python CLI for querying the Dataverse API and exploring datasets. Give Cursor or your AI IDE the abiltity to run read/list queries via terminal rather than browsing the data via the slow web interface.
Features
✅ Auto-Discovery: Automatically detects tenant ID and Dataverse URL from Azure/PAC CLI ✅ SQL Queries: Write familiar SQL syntax - automatically translated to OData ✅ OAuth Device Code Flow: Secure authentication with automatic token caching ✅ Multiple Output Formats: Table, JSON, or CSV output ✅ CloudFlare WARP Compatible: SSL verification disabled by default ✅ Interactive Graph Visualization: Cytoscape.js-powered HTML reports
Prerequisites
- Python 3.11+
- Power Platform CLI.
- It's easier if you install .NET via the installer here.
- Then you can run
dotnet tool install --global Microsoft.PowerApps.CLI.Toolto install the Power Platform CLI.
- Azure CLI (
azcommand - you can install withbrew install azure-clion MacOS) - Login to Azure CLI with
az login
Cheat sheet
Setup:
make setup-env
source venv/bin/activate
./main.py --help
# This will open up a web browser for authentication and save your configuration in .env
./main.py configure
Listing Tables
# This will list the tables you have access to.
./main.py list-tables
# filter by tables matching 'account'
./main.py list-tables --filter account
Querying Data
- Run a SQL query against a specific table:
# Clean output (smart filtering of columns to reduce noise)
./main.py query "SELECT * FROM connectionreferences LIMIT 10"
# Further reduce noise by specifying the exact column
./main.py query "SELECT name FROM account" --quiet
# Show all columns including metadata
./main.py query "SELECT * FROM connectionreferences LIMIT 10" --all-columns
# Output as JSON
./main.py query "SELECT * FROM account" --format json | jq
# Output as JSON and pipe into jq
./main.py query "SELECT * FROM account LIMIT 5" --json | jq '.value[].name'
# CSV for spreadsheets
./main.py query "SELECT name FROM account" --format csv > output.csv
Dumping and Visualizing Data
# This will dump all data from the dataverse for offline analysis and graph visualization
./main.py dump-dataverse
# This will visualize the dumped dataverse data as a graph, explorable via Cytoscape.
./main.py visualize-graph --input dumped_dataverse.json --output graph.html
Metadata
Release files for dataverse-explorer 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dataverse_explorer-1.0.1.tar.gz | 35.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dataverse_explorer-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.5 kB
Release files / dataverse_explorer-1.0.1.tar.gz
| Download URL | dataverse_explorer-1.0.1.tar.gz |
|---|---|
| Size | 35.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f8a9b5a540921fbd6cfdd7897e77682dae118d93d756ee745088fc27fc8ce5b
|
|
BLAKE2b-256 checksum How to use checksums |
5db232ae3998cd277607f4ddd782207ea4b27168bff33aa601839c3eb6468e81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / dataverse_explorer-1.0.1-py3-none-any.whl
| Download URL | dataverse_explorer-1.0.1-py3-none-any.whl |
|---|---|
| Size | 39.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75eeac5547c90a3fdad9024a5b5642f0cc2365a7462559cbab621712b0671485
|
|
BLAKE2b-256 checksum How to use checksums |
ff77868c8f9089c7be062bb4b29cb5de42d1c348e82379ebb07730d4377f2d8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Security for dataverse-explorer 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.