Skip to main content

🌟 Sequel to New CI/CD Experience

  • Database CI (review) and CD (deployment) are 2 separated phases, aligning with industry standard CI/CD practices (GitHub, GitLab):
    • CI (review) - issue page displays plan changes directly, no more context switching between tabs.
    • CD (deployment) - rollout is now a standalone page, clearly separating review from execution.
    • Rollout UI now supports release-based tasks — showing per-file execution status, command duration, and release info in task items.
    • Rollout creation: introduce creation dependency between issue and rollout, with 2 rollout creation modes - 1) automatic creation, if issue is approved AND SQL review check pass; 2) manual creation, in other cases, e.g. issue approved BUT review not passed. After rollout is created, issue status will be automatically set to DONE.
    • Rollout permission: as a result of introducing manual creation, bb.rollouts.create permission is added to Project Releaser role . All custom roles for rollout initiation are advised to be assigned bb.rollouts.create permission (it only controls who can create a rollout, but it does not bypass approval requirements or task execution).
  • Remove auto_resolve_issue and allow_modify_statement from Project Settings.
  • For Terraform, remove allow_modify_statement and auto_resolve_issue from the project resource, remove auto_resolve_issue from the workspace_profile setting resource.

🔔 Other Notable Changes

  • Update Project Webhook events.
  • Improve permission guards and access control:
    • Stop hiding UI elements when users lack permissions and show a no permission alert instead.
    • Allow users with bb.issues.create permission to request Project roles directly from the UI.
    • Allow Project Owners to disable the self-service role request workflow in Project Settings.
  • Redesign the Database Changelog and Revision pages.
  • Remove Schema Drift Detection feature:
  • Update core APIs CreateSheet, CreatePlan, CreateRollout, and CreateRelease, please refer to the latest API documentation for updated request/response definitions.
  • Remove maximum_connections from Instance Settings and use Parallel tasks per rollout in Project Settings instead. For Terraform, remove maximum_connections from the instance resource.
  • Unify TRUNCATE_TABLE and TRUNCATE into a single TRUNCATE statement type for Custom Approval CEL expressions.
  • Releases are now identified by release_id (e.g., my-release-RC00) with automatic train/RC iteration numbering. The title, digest fields are removed from the Release API, and UpdateRelease returns UNIMPLEMENTED. For Terraform, update bytebase_release resource if using title or digest fields.

🚀 Features

  • Improve access and refresh token support. Add refresh tokens (previously only access tokens on the web were supported) and allow separate configuration of access token duration and refresh token duration (previously the sign-in frequency setting).
  • Allow setting No approval required in approval rules when configured conditions are met.
  • Support Workload Identity with GitLab.

🎄 Enhancements

  • Add list sorting for projects, instances, and databases.
  • Grant Exemption supports CEL expressions and includes a database selector.
  • PostgreSQL - Support ENUM value additions via ALTER TYPE ... ADD VALUE in schema sync.
  • MySQL - Prettify generated DDL statements.

🐞 Bug Fixes

  • Fix AI setting cache modification issues.
  • PostgreSQL – Fix cyclic foreign key dependency handling in schema diff.
  • TiDB – Fix DML dry run handling for BATCH syntax.
  • PostgreSQL – Fix using identifiers as SELECT target field aliases.
  • Oracle – Fix SQL Review incorrectly flagging GRANT / REVOKE as reserved keywords.

⚙️ Install and Upgrade

Warning 1): Bytebase does not support in-place downgrade. Make sure to back up your metadata before upgrading. 2) Never run multiple containers on the same data directory. Stop and remove the old one first to avoid corruption.