Skip to content
← Open source

Apache Superset

Bug fixes and improvements to the open source BI platform I use every day at work: dashboards, database engines, SQL parsing, the MCP server and the Italian translation.

Role
Contributor
When
March 2026 to present
Stack
Python, TypeScript, React, SQLAlchemy, Flask

Context

Apache Superset is an open source data exploration and dashboard platform maintained by the Apache Software Foundation. I use it at work to build reporting for hospitals, which is why most of my contributions are about dashboards, database connections, permissions and SQL handling: fixing them upstream means every deployment benefits, not just mine.

Every pull request goes through review by the project committers and has to pass Superset's CI (Python and frontend unit tests, linting, type checks) before it can be merged. The full list, with the current status of each one, is at the bottom of this page.

What I contributed

Database and permission fixes. Datasets created from CSV, Excel or columnar uploads were saved without a catalog on databases that support catalogs (PostgreSQL, Databricks, Trino). Their permission string ended up in the wrong format, so non admin users could not see datasets they were entitled to. The fix sets the default catalog at upload time (#43586). In a similar spirit, the dashboard filter state API returned 401 Unauthorized to regular users because of a decorator that checked a permission nobody could be granted. Access is already enforced at the command level, so the decorator was removed (#43564).

Databricks boolean filters. Native filters on boolean columns failed on Databricks with a type mismatch, because the dialect rendered False as 0 inside an IN clause. The fix makes boolean filters use equality operators that Databricks accepts (#44355).

SQL formatting. When a statement ended with a semicolon followed by a -- comment, the comment could be moved inside an optimizer hint and corrupt it. I changed the comment relocation logic so it targets the right node of the syntax tree (#43565).

MCP server. Superset ships an MCP server that lets AI agents create charts and dashboards. I added a sort_by option to XY chart configs, which previously always sorted categories alphabetically (#44464), and fixed chart creation and dashboard copies on installations that extend the default user model (#45036).

Smaller fixes. Prophet forecasting options now only accept time grains Prophet can actually handle (#43585); interactive icons were moved out of <label> elements in the Explore control headers for valid HTML (#43584); and several database engine specs gained the metadata blocks the documentation is generated from (#43566).

Italian translation. Three pull requests brought the Italian message catalog to zero untranslated and zero fuzzy entries, with a script check that every format placeholder survived translation unchanged (#43274).

How the work is done

Superset is a large codebase with a Python backend and a React frontend, and the review bar is high. Each of the bug fixes above ships with unit tests that reproduce the original problem, which makes it easier for reviewers to see the bug before they look at the change. Not every proposal lands: some of my pull requests were closed in favour of a different approach or are still waiting for review, and they are listed below as they are.

Pull requests

12 merged, 9 open, 8 closed. Status synced from GitHub.

← All projects