Mathesar 0.4.0¶
Help us refine forms and files!
For our next release, we’re actively working on:
- better support for working with files in Mathesar
- the ability to create forms (like Google Forms).
If you’re interested in either, we’d love your input! We want to make sure we’re prioritizing the right problems to solve. Talk to us for 20 min, we’ll give you a $25 gift card as a thank you.
Summary¶
Mathesar 0.4.0 introduces support for single sign-on (SSO) using OIDC, DigitalOcean and Railway one-click deployments, and the ability to paste new records directly into Mathesar. The release also includes many smaller enhancements and fixes, such as the ability to view and edit JSON from the UI.
This page provides a comprehensive list of all changes in the release.
Improvements¶
Single Sign-on (SSO)¶
A glimpse of Mathesar’s login page with Okta single sign-on enabled.
Mathesar administrators can now set up single sign-on (SSO) as an authentication mechanism for their users, allowing them to log in without needing separate credentials. Administrators can also restrict access to specific email domains and assign a default database role for new users.
We support any OpenID Connect (OIDC) identity provider, including Keycloak, Okta, Auth0, Google Workspace, and dozens of others. See our SSO documentation for more information.
Bulk creation of new records via paste¶
Add 20 new customers by pasting a CSV into your table.
You can now bulk-create records within Mathesar’s UI by pasting data into the table page. This feature also allows you to import data into existing Mathesar tables from other sources such as spreadsheets.
Previously, Mathesar’s support for pasting needed existing rows to hold the data. Now, you can paste new data into the placeholder row at the bottom of a table, and Mathesar will create as many new rows as needed. If your pasted content also overlaps existing records, those will be updated as well.
Related work: #4601
New one-click installation methods¶
We’ve set up official templates to deploy Mathesar to DigitalOcean and Railway. These options allow you to set up a Mathesar installation without needing to manage server infrastructure or use the command-line.
Initial support for JSON in UI¶
JSON is viewable and editable in Mathesar’s table views.
We have added support for viewing and editing JSON
and JSONB
data in tables, plus displaying the data correctly in the Data Explorer. Previously, JSON data was displayed as [object Object]
in cells.
Related work: #4641
Record pages use table column order¶
Record pages reflect custom column order from table pages.
Previously, pages for individual records listed columns in the order that the database stored them in. Table pages allow columns to be reordered for display, and we’ve updated record pages to use that same order.
Special thanks to community member @vishaljoshi789 for the fix.
Related work: #4584
Groundwork¶
Forms¶
This release includes partial work for allowing users to create public-facing forms to collect data directly in Mathesar. We’ve done initial work on defining core data models, CRUD API endpoints, and listing created forms. This functionality is not exposed in the UI yet.
This functionality is hidden in 0.4.0 but will be published in an upcoming Mathesar release.
Related work:
#4565 #4536 #4576 #4554 #4577 #4525 #4642 #4585 #4568
Experimental “read only” Mathesar role¶
Use at your own risk
This management command may cause unintended behavior and is not fully tested.
We’re experimenting with a way to run Mathesar with a read-only Postgres role.
Instructions for use (Use at your own risk.)
- Create a PostgreSQL database role with read-only access to your user data.
- Create a Mathesar user and assign it to that role.
- Log in as that user to complete the first-time password setup.
- Run the management command to restrict Django state:
- Update your
docker-compose.yml
(or Django settings) to make Mathesar use the read-onlymathesar_ro_django
role for Django. - Restart the service to apply the changes.
The result is an instance that allows login and viewing but blocks any permanent changes to user or app state.
Related work: #4571
Documentation¶
Dataset instructions for developers¶
We’ve clarified our instructions for loading and using sample datasets to make it easier for contributors to test features and explore the app with realistic data.
Related work: #4581
Maintenance¶
- Add an application name to all database connections and limit the connection pool size to 2. #4566
- Rename Column & Constraint TS types to make way for models #4562
- Map function calls and their return values with a unique ID to better conform to the JSON-RPC 2.0 spec #4583
- Allow static props for RPC requests in AsyncRpcApiStore #4574
- 0.4.0 Release notes #4658
- Work related to our internal workflows: #4586 #4630 #4631 #4611 #4614
Upgrading to 0.4.0¶
For installations using Docker Compose¶
If you have a Docker compose installation, run the command below:
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.
Previously referred to as “Installation from scratch”
In versions earlier than 0.3.0, this setup was referred to as “Installation from scratch”.
Follow the steps below to upgrade Mathesar:
-
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
.
-
Go to your Mathesar installation directory.
Note
Your installation directory may be different from above if you used a different directory when installing Mathesar.
-
Download and run the install script for 0.4.0
-
Replace your gunicorn systemd service with a Mathesar systemd service
-
Disable and stop the existing gunicorn service
-
Follow the steps in Run Mathesar as a systemd service from the installation guide
-
Remove the gunicorn service file
-
-
Update your Caddyfile
-
Use the configuration shown in Install and configure Caddy in the installation guide, and update your Caddyfile accordingly
-
Ensure that your domains are specified directly in the first line of the Caddyfile
-
Restart your Caddy service
-