Skip to content

Mathesar 0.11.0

Summary

Mathesar 0.11.0 introduces several improvements for administrators including a new setting to require SSO login for users, adding GitHub as an SSO provider, and narrower permissions for where we show user information. It also adds native UI support for interlinked tables in different schemas, plus an experimental option for auto-provisioning a separate role and database for each new user.

This release also includes a few other bug fixes and maintenance upgrades. We’ve also removed support for importing files from URIs.

This page provides a comprehensive list of all changes in the release.

Improvements

GitHub support for single sign-on

Mathesar can now use GitHub as an SSO provider alongside existing OIDC providers. Administrators can configure either a GitHub OAuth App or a GitHub App in sso.yml using the new version 2 SSO configuration schema. The equivalent environment variable is now SSO_CONFIG_DICT; the previous OIDC_CONFIG_DICT name continues to work as an alias for existing installations.

See the single sign-on documentation for configuration details.

Related work: #5270

SSO-only login mode

Administrators can now set REQUIRE_SSO_LOGIN=true to disable password-based login after SSO has been configured. When this setting is enabled, Mathesar’s login page shows SSO options only, and users cannot change their own passwords or email addresses. Administrators can still reset another user’s password and edit other users’ email addresses as a fallback.

This setting only takes effect when at least one SSO provider is configured. If it is enabled without an SSO provider, Mathesar keeps password login available to avoid locking administrators out.

Related work: #5271

Experimental per-user database provisioning

Mathesar now includes an experimental PER_USER_DATABASES_ENABLED setting. When enabled, each newly created Mathesar user receives a PostgreSQL role and database on Mathesar’s internal database server, both named after that user’s username.

In this mode, non-admin users no longer see database permissions and database settings controls. This feature is experimental, and its behavior may change in future versions.

Related work: #5266

User data type columns now only list database collaborators

User columns now show and allow selecting only users who are collaborators on the current database. Existing user-column cells that reference users who are not database collaborators will show a warning until those users are added as collaborators or the cell values are changed.

In addition, we’ve updated the APIs so that non-admin users can no longer list all Mathesar users through the users.list and users.get RPC methods.

Related work: #5267

Better support for cross-schema relationships

Mathesar now handles existing foreign key relationships where the linked tables are in different schemas within the same database. This improves navigation and display for linked records, relationship cards, foreign key constraint details, and related-table widgets.

Related work: #5265

Bug fixes

  • Fix issue where exporting a saved Data Explorer exploration could fail when resolving the exploration within the selected database #5264
  • Fix nondeterministic column ordering in table metadata returned by Mathesar’s database functions #5283

Maintenance and groundwork

  • Merge the 0.10.0 release branch into develop #5255
  • Started work on supporting Azure Blob Storage for imported data files #5275

Features removed

URL-based file imports

Mathesar no longer supports creating imported data files by passing a URL to the data-file API. Uploading a file and pasting tabular data remain supported.

Related work: #5268

Upgrading to 0.11.0

PostgreSQL 13 and Python 3.9 no longer supported

Mathesar 0.8.0 ended official support for PostgreSQL 13 and Python 3.9. Please upgrade to PostgreSQL 14+ and Python 3.10+ before upgrading to Mathesar 0.11.0.

Usernames are now limited to 63 characters

Mathesar 0.11.0 stores usernames with a 63-character limit. Before upgrading, ensure no existing Mathesar users have usernames longer than 63 characters.

For installations using Docker Compose

If you have a Docker compose installation, run the command below:

docker compose -f /etc/mathesar/docker-compose.yml up --pull always -d

Your installation directory may be different

You may need to change /etc/mathesar/ in the command above if you chose to install Mathesar to a different directory.

For direct installations of Mathesar on Linux, macOS, or WSL

Mathesar provides an install script that automates both fresh installs and upgrades for standalone (non-Docker) installations.

Follow the steps below to upgrade Mathesar:

  1. Enter your installation directory into the box below and press Enter to personalize this guide:

    • Do not include a trailing slash.
    • Do not use any variables like $HOME.
  2. Go to your Mathesar installation directory.

    cd xMATHESAR_INSTALL_DIRx
    

    Note

    Your installation directory may be different from above if you used a different directory when installing Mathesar.

  3. Download and run the install script for 0.11.0

    curl -sSfL https://github.com/mathesar-foundation/mathesar/releases/download/0.11.0/install.sh -o install.sh
    chmod +x install.sh
    
    ./install.sh .
    

  4. Replace your gunicorn systemd service with a Mathesar systemd service

    1. Disable and stop the existing gunicorn service

      systemctl disable gunicorn.service
      systemctl stop gunicorn.service
      

    2. Follow the steps in Run Mathesar as a systemd service from the installation guide

    3. Remove the gunicorn service file

      sudo rm /lib/systemd/system/gunicorn.service
      

  5. Update your Caddyfile

    1. Use the configuration shown in Install and configure Caddy in the installation guide, and update your Caddyfile accordingly

    2. Ensure that your domains are specified directly in the first line of the Caddyfile

    3. Restart your Caddy service

      systemctl restart caddy.service
      

Tip

If you’re running Mathesar only on localhost and do not want it to run as a service, you could:

  1. Remove the gunicorn and caddy services
  2. Start Mathesar manually with:
    mathesar run