Yearning
🐳 A most popular sql audit platform for mysql
A web-based SQL review and audit platform for MySQL teams that adds an approval workflow so database changes are checked and signed off before they run in production.
Yearning is a web-based SQL audit and review platform designed for teams that use MySQL databases. SQL is the language used to read from and write to databases, and on teams where multiple people can submit database changes, having a review process helps catch mistakes before they reach production. Yearning adds that review layer through a workflow system where SQL statements are submitted, checked, and approved before being run.
The platform includes a built-in SQL editor with autocomplete and syntax highlighting. When a developer submits a query or a change, the system checks it against a set of configurable rules and flags anything that violates those rules, such as missing index conditions or statements that could affect too many rows. It can also automatically generate rollback statements for certain changes, so that if something goes wrong after approval, there is a prepared way to undo it.
Access is managed through roles and fine-grained permissions, so different users can be granted rights to query specific databases without being able to submit structural changes. The platform supports LDAP login for organizations that use a central directory for authentication.
Notifications for pending reviews and completed approvals can be sent by email or through DingTalk webhooks. There is also an automated task runner for scheduled SQL jobs.
The README is written primarily in Chinese. An English-language guide is linked separately. The project is built with Go on the backend and is licensed under AGPL v3, which requires that any modified versions you deploy also be released as open source.
Where it fits
- Set up a review workflow so developers submit SQL queries for approval before they run against a production MySQL database.
- Automatically check submitted SQL against configurable rules and generate rollback statements for approved changes.
- Assign role-based permissions so developers can query specific databases without being able to submit structural changes.
- Send review notifications and approvals through email or DingTalk webhooks and schedule recurring SQL jobs.