Skip to content

Releases: mathesar-foundation/mathesar

Version 0.2.0 (beta release)

28 Jan 18:18
a5328e9
Compare
Choose a tag to compare

Summary

Version 0.2.0 is Mathesar’s first beta release and features a brand new access control system, massive performance improvements, and an important security fix.

Release notes

Feedback

Please share feedback on the 0.2.0 GitHub discussion, via the project's Matrix chat, or by emailing hello@mathesar.org. Thank you!

Version 0.2.0-testing.1 (alpha release)

15 Oct 15:32
85a57f4
Compare
Choose a tag to compare
Pre-release

🧪 Mathesar 0.2.0-testing.1

Caution

Not a stable release

This is a testing build released with the goal of gathering feedback from our community. It has many known issues and is not recommended for production use.

Summary

Mathesar 0.2.0-testing.1 provides an early preview of improvements we plan to release in our beta version. We have a brand new access control system based entirely on PostgreSQL database permissions, and we've also made major improvements to the responsiveness of the Mathesar UI. We've also built out a new RPC API, and we're deprecating our REST API in favor of it.

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

Installing 0.2.0-testing.1

You will need to create a new installation of Mathesar to use this version, which you can do via Docker Compose or from source.

We do not support upgrading from previous versions to 0.2.0-testing.1.

Improvements

Access control based on PostgreSQL roles and privileges

We have a brand new access control system based entirely on PostgreSQL database roles and privileges. Mathesar users must now be assigned a database role, and any operations performed by the user through the Mathesar UI will connect to the database using that role.

db-settings-collaborators

This gives Mathesar several new capabilities. Database administrators can set up access control directly on the database and use those roles in Mathesar. Mathesar also supports setting up PostgreSQL roles and privileges via the UI, including granular access control at the individual table level.

This replaces our previous access control system (which was enforced at the API layer, and only supported permissions at the database and schema levels). It also eliminates the need for Mathesar to use a database superuser for day-to-day operations.

More detailed documentation can be found in our User Guide under Permissions and Users.


  • Initial permissions remodel #3626
  • Implement RPC method for listing roles in server #3663
  • Initial database_setup RPC methods #3665
  • Cast OID values to bigint in msar.get_roles #3667
  • RPC methods for servers, collaborators #3684
  • RPC methods for configured roles #3685
  • Remove existing permissions logic on the frontend #3689
  • Homepage changes for database connections #3710
  • Homepage UI #3711
  • Implement database_privileges.list_direct RPC method. #3750
  • Implement database_privileges.get_owner_oid_and_curr_role_db_priv RPC method #3760
  • Database page role configuration, collaborators, roles #3762
  • Implement roles.add RPC endpoint #3769
  • Add database_privileges.replace_for_roles RPC method. #3781
  • Add schema_privileges.replace_for_roles RPC method #3786
  • Move DB page contexts to the route level #3789
  • Add privilege information fields #3795
  • Database permissions modal - 'Share' tab #3810
  • Implement transfer_ownership for schemas and tables #3833
  • Implement permissions modal for schemas and tables #3836, #3838
  • Allow setting owner at creation #3840
  • Implement roles.delete, databases.drop & databases.configured.disconnect RPC methods #3858
  • Implement 'Transfer ownership' tabs #3859
  • Permission checks in all pages, disconnect database option #3861
  • Bugfix get_current_role when only one role exists #3869
  • Grant appropriate permissions for msar, __msar and mathesar_types to PUBLIC #3881
  • Filter databases for admin and standard users #3895
  • Fix logic in get_current_role #3922
  • Fix quoting for role grant/revoke expressions #3931
  • Bugfix msar.set_members #3958

Performance improvements and RPC API

We've made major improvements to the responsiveness of the Mathesar UI. Loading data and data entry should be much more snappy, and importing data into Mathesar is around 50 times faster. We've also eliminated the need to manually sync database schema changes to Mathesar, any DDL changes will be reflected in the UI automatically.

To achieve these performance benefits, we needed to overhaul our backend architecture and API. We have built out a new RPC API and our frontend UI now primarily uses that API. The RPC API has some documentation here, but should not be considered stable yet.

Most of our REST API endpoints are now deprecated and will be removed soon. The /users/ and /data-files/ endpoints remain in use.

  • Connections RPC front end #3543
  • Exception handler tests #3547
  • Fix SQL syntax highlighting in VS code for SQL tests #3588
  • Remove dead front end API client code to GET one schema #3589
  • Refactor list of RPC methods to test #3597
  • Implement tables.list rpc endpoint #3599
  • Implement tables.delete RPC method #3608
  • Implement schemas.list RPC method #3598
  • Implement schemas.delete RPC method #3610
  • Implement tables.get RPC method #3612
  • Implement tables.add RPC method #3614
  • Col delete func #3586
  • Add `...
Read more

Version 0.1.7 (alpha release)

30 Apr 12:14
0762414
Compare
Choose a tag to compare

Version 0.1.6 (alpha release)

28 Mar 12:04
b99e82c
Compare
Choose a tag to compare

Version 0.1.5 (alpha release)

28 Feb 20:34
2f4a15f
Compare
Choose a tag to compare

Version 0.1.4 (alpha release)

30 Jan 17:20
ba11230
Compare
Choose a tag to compare

Version 0.1.3 (alpha release)

29 Aug 14:37
7f4a4df
Compare
Choose a tag to compare

Version 0.1.2 (alpha release)

13 Jun 17:32
c9197b9
Compare
Choose a tag to compare

Version 0.1.1 (alpha release)

23 Mar 12:52
a813767
Compare
Choose a tag to compare

Version 0.1.0 (alpha release)

02 Mar 14:49
99e4d90
Compare
Choose a tag to compare