{"id":6989,"library":"apache-superset","title":"Apache Superset","description":"Apache Superset is a modern, enterprise-ready business intelligence web application for data exploration and visualization. It supports a wide array of databases via SQLAlchemy, offering a no-code chart builder, a powerful SQL editor, and dynamic dashboards. The library is actively maintained, with major releases following a time-based schedule to provide predictable updates and supporting the latest minor versions of the last two major releases.","status":"active","version":"6.0.0","language":"en","source_language":"en","source_url":"https://github.com/apache/superset","tags":["BI","dashboard","data visualization","SQL editor","analytics","web application","flask","apache"],"install":[{"cmd":"pip install apache-superset","lang":"bash","label":"Install core library"},{"cmd":"pip install 'apache-superset[postgresql,mysql]' # Install with common database drivers","lang":"bash","label":"Install with optional database drivers"}],"dependencies":[{"reason":"Core dependency for connecting to SQL databases.","package":"SQLAlchemy","optional":false},{"reason":"Required for connecting to specific database types; installed as extras (e.g., `apache-superset[postgresql]`).","package":"Database-specific drivers (e.g., psycopg2, mysqlclient)","optional":true}],"imports":[],"quickstart":{"code":"# Create and activate a Python virtual environment\npython3 -m venv venv\nsource venv/bin/activate\n\n# Install Apache Superset and a database driver (e.g., SQLite for quickstart)\npip install apache-superset\n\n# Generate a SECRET_KEY and initialize Superset\nSECRET_KEY=$(python -c 'import os; print(os.urandom(64).decode(\"latin-1\"))')\necho \"SECRET_KEY = '$SECRET_KEY'\" > superset_config.py\nexport SUPERSET_CONFIG_PATH=./superset_config.py\nexport FLASK_APP=superset\nsuperset db upgrade\nsuperset fab create-admin --username admin --password admin --firstname admin --lastname admin --email admin@example.com\nsuperset init\n\n# Run the Superset web server\nsuperset run -p 8088 --with-threads --reload --debugger --debug\n\n# Access Superset at http://localhost:8088 with admin/admin","lang":"bash","description":"This quickstart outlines the steps to install and run Apache Superset locally using pip and its CLI commands. Note that for a full-featured sandbox environment, especially for development, the official documentation often recommends using Docker Compose."},"warnings":[{"fix":"Migrate your authentication configuration from OpenID to OAuth, LDAP, or database authentication methods.","message":"Apache Superset 6.0.0 upgrades to Flask-AppBuilder 5.0.0, which removes the deprecated `AUTH_OID` authentication type. Users relying on OpenID must migrate to OAuth, LDAP, or database authentication before upgrading.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Always generate and configure a strong, random `SECRET_KEY` in `superset_config.py`. Superset versions 2.1.0 and later prevent startup with the default key.","message":"Older versions of Apache Superset (up to 2.0.1) had a critical vulnerability (CVE-2023-27524) due to a predictable default Flask `SECRET_KEY`. Installations that have not modified this key are at risk of authentication bypass and remote code execution.","severity":"breaking","affected_versions":"<2.1.0 (and installations not updated since)"},{"fix":"Apply security updates and patches once the Apache Superset team releases a fix addressing this RLS bypass vulnerability.","message":"A critical access control flaw (CVE-2026-XXXX) found in versions up to 4.1.3 allows low-privileged users to infer and enumerate data from restricted datasets by crafting specific Row Level Security (RLS) filter clauses containing subqueries.","severity":"gotcha","affected_versions":"<=4.1.3"},{"fix":"Optimize SQL queries (select only needed columns, simplify joins), implement an efficient caching layer (e.g., Redis), and evaluate database performance for analytical workloads.","message":"Users frequently report slow performance, SQL execution hang-ups, and difficulties with complex queries involving multiple joins in Superset. This can stem from inefficient database queries, large datasets, or lack of proper caching.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Install PostgreSQL development libraries on your system (e.g., `sudo apt-get install libpq-dev` on Debian/Ubuntu, `sudo yum install postgresql-devel` on CentOS/RHEL, or ensure PostgreSQL is installed and its `bin` directory is in `PATH` on macOS).","cause":"When installing `psycopg2` (the PostgreSQL driver) as part of `apache-superset[postgresql]`, the system is missing PostgreSQL development headers, which `psycopg2` needs to compile.","error":"Error: pg_config executable not found."},{"fix":"Before running Superset CLI commands, set environment variables: `export FLASK_APP=superset` and `export SUPERSET_CONFIG_PATH=/path/to/your/superset_config.py`.","cause":"This error typically occurs when running Superset CLI commands (like `superset db upgrade` or `superset init`) without properly setting the `FLASK_APP` environment variable to `superset` and `SUPERSET_CONFIG_PATH` to your configuration file.","error":"RuntimeError: Working outside of application context."},{"fix":"Update your Docker Compose to a recent version. If using `docker-compose` command, consider migrating to `docker compose` (without the hyphen) as it's the newer CLI for Docker Compose V2.","cause":"This error indicates that your Docker Compose version is outdated. The `env_file` syntax in `docker-compose.yml` has changed in newer Docker Compose versions.","error":"validating superset\\docker-compose-image-tag.yml: services.superset-worker-beat.env_file.0 must be a string"},{"fix":"Check the official Superset documentation for specific database connection requirements and known limitations. You may need to create a custom SQLAlchemy dialect or view to abstract away unsupported features for that specific database.","cause":"Certain database dialects (like Presto) do not support all SQLAlchemy features or metadata columns used by Superset's internal ORM definitions. This can happen when connecting a database with unsupported column properties.","error":"Table 'columns' has an 'extra' column, which is unsupported by the 'Presto' dialect."}]}