Magda v0.0.58: Authentication Plugins and More

Jacky Jiang
3 min readNov 16, 2020
Photo by Robson Hatsukami Morgan on Unsplash

As an open-sourced data catalog system, many people build their own data catalog system on top of Magda. To help developers to build customised authentication process around Magda, we introduced the external authentication plugin concept in release v0.0.58. Together with the history API improvement and distribution version view, we will talk about the key enhancements that v0.0.58 release brought to you.

Authentication Plugin

Since v0.0.58, Magda allows you to build external authentication plugins to support different authorisation servers/identity providers. It also allows you to customise the user onboarding process (i.e. creating & mapping the user’s profile to a local user (e.g. assign specific roles depends on user profile).

An authentication plugin, technically, is a set of HTTP services that are integrated with Magda gateway and the frontend UI to facilitate a pre-defined authentication process. There is no limitation on which kind of authentication process you can implement, although, we do require implementing a handsful HTTP endpoints for integration purpose depends on the authentication plugin type. For more information, please refer to our authentication plugin spec document.

To deploy your authentication plugin with Magda, you need to build it as a docker image, pack it as Helm Chart and deploy it as a Helm chart dependency. For ease of development, we offer a Github Template repository to create a blank project from the template. The template includes sample CI scripts that can help you to release the required docker images & Helm chart automatically.

History API Improvement

Thanks to the event-driven architecture implemented, Magda comes with a history API that allows you to pull any historical versions of a metadata record, given an `event id` that is associated with the change made. However, as data operation APIs previously did not return the last event id that has been generated to fulfil the request, it is hard for users to pin down the key event accurately and pull the exact interested version out later.

In this release, we implemented the changes that make all data operation APIs return the last event id as `x-magda-event-id` response header if any changes are made to the relevant metadata record in order to complete the request operation. More information regarding `x-magda-event-id` can be found from our registry API document.

Distribution Version View

Data Distribution Version View

Since v0.0.57, Magda’s metadata creation tool allows you to modify your data distribution and supersede the existing version. However, we don’t have a UI that allows you to access the historical versions. In this release, we introduce a new “version view” to the data distribution page that allows you to switch between different versions. You will be not only able to access the data file of the distribution version but also be able to view the data distribution metadata as what it was. To try it out, please update a data distribution and visit the distribution page.

Helm Chart Documentation

As a cloud-based application, Magda is packed as Helm charts and deploy with Helm. We now have documentation that covers all component helm charts. Therefore, you don’t need to guess what configuration options are available when deploying Magda. You can find our Helm Chart documents here.

Other Improvements

For a list of other improvements, please refer to the release notes.

Try it out

To try it out v0.0.58, you can access our Helm chart repo: https://charts.magda.io and access magda chart with version 0.0.58.

You can also follow the instruction here to quickly set up a new site.

For developers, you can access npm for our latest SDK version 0.0.58.

--

--