Skip to main content

A Python SDK for interacting with Sisense API

Project description

📊 Sisense SDK (pysisense)

pysisense is a Python SDK designed for seamless and structured interaction with the Sisense API.
It simplifies complex API operations and allows you to automate and manage users, groups, dashboards, data models, and more.

✅ Built for automation, debugging, and extensibility.


📦 Installation

You can install pysisense from PyPI:

pip install pysisense

For local development, install in editable mode:

pip install -e .

🚀 Quick Start

1️⃣ Create your YAML config files

Create one or more YAML files (use the templates in examples/ as reference only):

  • config.yaml – for single-environment operations
  • source.yaml and target.yaml – for migration scenarios

Each file should follow this structure:

domain: "your-domain.com"
is_ssl: true
token: "<your_api_token>"

For non-SSL connections (is_ssl: false), HTTP requests use port 30845 by default. You can override it with an optional port field (ignored when is_ssl is true):

domain: "192.168.1.100"
is_ssl: false
port: 30845   # optional, omit to use the default 30845
token: "<your_api_token>"

See config.yaml.example for the template.

⚠️ Do not commit your tokens. The provided YAMLs contain placeholder structure only.

⚠️ Important: Use a Dedicated Admin Token

Some methods in this SDK require full administrative privileges to interact with Sisense resources (such as ownership changes, user migrations, or folder/dashboard access).

To avoid permission-related issues or incomplete operations:

It is recommended to use a new dedicated Sisense admin user's token when authenticating via your config.yaml.

Using restricted or scoped users may result in failures or inconsistent behavior, especially for:

  • Folder and dashboard ownership changes
  • Granting permissions across environments
  • System-wide migrations

2. Explore Example Guides

The examples/ folder contains Markdown guides. Each guide explains common workflows and includes copy-pasteable code snippets you can adapt in your own project:

  • access_management_example.md
    Identity & Governance — manage users, groups, folder access, and governance tasks (e.g., unused assets).

  • datamodel_example.md
    Data Modeling — work with datasets, tables, columns, and schema within Sisense data models.

  • dashboard_example.md
    Dashboard Lifecycle — retrieve, update, reassign ownership, and manage shares of dashboards.

  • folder_example.md
    Folder Management — create, list, update, and delete Sisense dashboard folders.

  • migration_example.md
    Environment Migration — migrate users, dashboards, and data models across environments (e.g., dev → prod).

  • wellcheck_example.md
    Data Health & Complexity — run structural checks on dashboards and data models (widget counts, pivot fields, island tables, RLS datatypes, import queries, many-to-many relationships, unused columns, and unused columns).

Note: These guides are not meant to be executed end-to-end. Copy the relevant snippets into your own Python files or notebooks, update configuration (YAML paths, IDs, etc.), and run them in your environment.


3️⃣ Logs

All logs are saved automatically to a local folder:

logs/pysisense.log

You don’t need to create this folder manually — it will be created at runtime in the same directory where you run your scripts.


✅ Features

  • 👥 User & Group Management – Create, update, delete, and fetch users or groups
  • 📊 Dashboard Management – Export, share, and migrate dashboards
  • 📦 Data Models – Explore, describe, and update schemas and security
  • 🔐 Permissions – Resolve and apply share rules (users & groups)
  • 🔄 Cross-Environment Migrations – Move dashboards, models, and users
  • WellCheck – Analyze dashboard and data model health (structure complexity, widget density, pivot fields, island tables, RLS datatypes, import queries, many-to-many relationships, and unused columns)
  • 🧠 Smart Logging & Data Helpers – Auto log capture, CSV export, and DataFrame conversion
  • And many more – Refer to the documentation for full details

🔧 Design Philosophy

  • Pythonic SDK with class-based structure (Dashboard, DataModel, AccessManagement, Migration)
  • Additional analysis module: WellCheck – Run dashboard and data model health checks (structure, complexity, and best-practice validations)
  • Modular YAML-based authentication
  • Built-in logging and exception handling
  • Designed for end-to-end automation and real-world use

📚 Documentation

Comprehensive module-level documentation is available in the docs/ folder:

  • Index – Overview of the SDK structure and modules
  • Sisense Client – Base API wrapper for all HTTP operations
  • Access Management – Manage users, groups, roles, and permissions
  • Data Model – Handle datasets, tables, schemas, security, and deployment
  • Dashboard – Retrieve, modify, and share Sisense dashboards
  • Migration – Migrate users, dashboards, and models between environments
  • Utils – Helper functions for export, formatting, and data operations
  • WellCheck – Run health checks on dashboards and data models (structure, complexity, and best-practice validations)

You can also explore:

  • Inline method docstrings using help() in Python or directly within your IDE.

📄 License

This project is licensed under the Sisense End User License Agreement (EULA). See the LICENSE file for the full text.

© 2025 Sisense Ltd. “Sisense” and related marks are trademarks of Sisense Ltd.

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

pysisense-1.0.1.tar.gz (113.3 kB view details)

Uploaded Source

Built Distribution

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

pysisense-1.0.1-py3-none-any.whl (143.6 kB view details)

Uploaded Python 3

File details

Details for the file pysisense-1.0.1.tar.gz.

File metadata

  • Download URL: pysisense-1.0.1.tar.gz
  • Upload date:
  • Size: 113.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pysisense-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ab44c249d958be716d353df205d7d403ceaf1afddcaccec106ab57bc86bbd7dd
MD5 f09e13ff7d1e3e823dbb2f6fdfc67de5
BLAKE2b-256 675a8e5598c17f29bb5d6fea2c3155cf7d6ca94f47e6fd3b33b61cd9fa20e011

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysisense-1.0.1.tar.gz:

Publisher: release.yml on sisense/pysisense

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

File details

Details for the file pysisense-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pysisense-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 143.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pysisense-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b0d0de11e95f7a4d5e5bdc5657abef4cae72106a4ef59fb6d148a4a1ff0363e0
MD5 d3497d47f61fa127424eea7fab144e3a
BLAKE2b-256 395d4889e6e155696b6e0ff2fec96083fa0465c58da5faa74704c26fbd189c1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysisense-1.0.1-py3-none-any.whl:

Publisher: release.yml on sisense/pysisense

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