Skip to main content

A Django app to integrate Apache Superset dashboards into a Django application

Project description

django-superset-integration

django-superset-integration is a Django app to integration Apache Superset dashboards into a Django application.

Quick start

  1. Add django_superset_integration to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
    ...,
    "django_superset_integration",
    ...,
]
  1. Include the superset-integration URLconf in your project urls.py like this:
path("superset_integration/", include("django_superset_integration.urls")),
  1. You will need a cryptography Fernet key, so you need to install cryptography:
pip install cryptography
  1. Generate a Fernet key in a python terminal:
from cryptography.fernet import Fernet
FERNET_KEY = Fernet.generate_key()
  1. The result is a bytestring like b'jozEHFGLKJHEFUIHEZ4'. Copy ONLY the content of the string, not the b nor the quotation marks

  2. In your env variables, create a variable FERNET_KEY with the copied content as value

  3. By default, all dashboard data will be displayed. You can override this by creating your own filtering function and adding it in your settings.py:

RLS_FUNCTION = "my_app.my_module.create_rls_clause"

Your function must take a parameter user and return a SQL rls clause like this : [{"clause": "1=1"}] (where you replace 1=1 by the clause you want).

See Superset documentation for more information

  1. Make sure that your Superset instance parameter GUEST_TOKEN_JWT_EXP_SECONDS is more than 300 (5 minutes). Otherwise it will expire before it can be refreshed. For example, set it to 600 (10 minutes).

  2. In the template where you want to integrate the dashboard, add the following in your <head>:

<link href="{% static 'css/ponctual-rejects.css' %}" rel="stylesheet"/>
  1. Then add the following at the emplacement where you want the dashboard:
{% include "django_superset_integration/superset-integration.html" %}
  1. In your view's get_context_data, add the following:
dashboard_name = my_dashboard
dashboard = SupersetDashboard.objects.get(name__iexact=dashboard_name)
context["dashboard_integration_id"] = dashboard.integration_id
context["dashboard_id"] = dashboard.id
context["superset_domain"] = dashboard.domain.address
  1. Run python manage.py migrate to create the models.

  2. Start the development server and visit the admin site to create a SupersetInstance object.

  3. After you have created a SupersetInstance object, create a SupersetDashboard object.

  4. That should be it!

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

django_superset_integration-0.1.3.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

django_superset_integration-0.1.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file django_superset_integration-0.1.3.tar.gz.

File metadata

File hashes

Hashes for django_superset_integration-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a1807738c4ae76504e6afb195343c0d49e519929b79e7346450525c50bdb81c1
MD5 aea8f64cd803c995aba1c2850248fbc2
BLAKE2b-256 54b70ca0d887c62d6fd26bd38672fbcb513e30b97469c61ff0856301054a1271

See more details on using hashes here.

File details

Details for the file django_superset_integration-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_superset_integration-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b10291c8c77e3775f6df25620a377cce61a78a360a7d2d15b480432309a11e9a
MD5 51b28607e932d98dc815c6d8657575ee
BLAKE2b-256 5c03dee6e34aa9a2d4ac8cb887e9ee46e9f3c4507ec5133cb22cfce6dc6c6c71

See more details on using hashes here.

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