Explanation

Bytebase 1.9.1 Deep Dive

Tianzhou
Tianzhou4 min read
Bytebase 1.9.1 Deep Dive

The penultimate release of 2022 brings Bytebase from 1.9.0 to 1.9.1. Although it’s only a PATCH version, the 237 commits still bring us tons of new features. Let’s take a closer look at what's released during this World Cup cycle ⚽️.

Schema Editor

First up is the Schema editor.

For most developers, handwriting SQL is troublesome and error-prone. So, we made a visual Schema Editor that can generate SQL statements with just a few clicks.

_

We included the support for MySQL and TiDB first, and PostgreSQL will be available soon.

Need Attention

Next ups is a small yet sweet feature.

The issue creator might want to remind the reviewer during the review process. We added the Need Attention feature, which adds a reminder bell to the Review interface. The corresponding issue title will become bold in the reviewer interface when you click it.

_

_

The overall interaction took inspiration from Google’s internal Code Review tool. I remember clearly the day I first saw a bold entry in my review list. I’ve used it ever since, and I think it can improve the process’s efficiency.

Regarding how to nudge people, some collaborative tools choose to ping others, others choose to use bolded font. Direct or restrained, the design philosophy is just included in these interaction details.

Data Access Control

Now, let’s chat about Bytebase’s security capabilities.

We introduced Data Access Control with this release, leveraging Access Control Policy and Environment Tier.

Some users suggested that they don’t want developers to access all databases in the production environment by default. This can be achieved by the DBA setting the Environment Tier to Protected. But at the same time, the user wants to open access to some databases in this environment, which is possible by whitelisting those databases.

_

_

The overall Bytebase design follows the same security practice of default blacklisting. This is yet another feature focusing on data security after Data Masking.

Data Masking

In the last release, we introduced data masking for MySQL.

In this cycle, we have enhanced its capabilities, and it now tops the mainstream goInception-based solutions in the market.

Query TypeBytebasegoInception
Simple query statements✔️✔️
Subquery✔️
NATURE JOIN✔️
JOIN ... USING(...)✔️
Common Table Expression(CTE)✔️

goInception claims to be able to mask data. Still, it’s a bit too easy to bypass😓. Companies, if you use goInception, I am sweating for your data security.

And unlike goInception, which only supports MySQL, we will soon bring full data masking capabilities to PostgreSQL.

Summary

Well, that’s it for this release. The next one in two weeks will also be the last of 2022.

Our 2021 goal was to cover the basic capabilities needed in database development. From my recent communication with users, I can tell that this piece is pretty much achieved: when they ask if we have a particular feature, most of the time, we can answer YES.

Next year, our task will move from satisfying users’ pain points to gradually bringing them delights. Frankly speaking, compared with the coding tools, the database tools are still relatively primitive. Although existing database tools inherit DBA’s expertise, they lack an understanding of DevTools and the overall developer workflow.

At AWS re:Invent 2022, Amazon released its one-stop developer platform, CodeCatalyst, joining GitHub, GitLab, and JetBrains. All of these claim to be one-stop, but let’s be honest, none of them really is, because they haven’t scratched the surface of database development. The developer workflow is not self-contained without including the database development activity.

After all, databases are indispensable to most applications.

_

_

_

_

Jointhe community

At Bytebase, we believe in the power of collaboration and open communication, and we have a number of communities that you can join to connect with other like-minded.

Subscribe to Newsletter

By subscribing, you agree with Bytebase's Terms of Service and Privacy Policy.