Bytebase is a database DevSecOps platform designed for developers, security, DBA, and platform engineering teams. While it offers an intuitive GUI for managing database schema changes and access control, some teams may want to integrate Bytebase into their existing DevOps platforms using the Bytebase API.Documentation Index
Fetch the complete documentation index at: https://docs.bytebase.com/llms.txt
Use this file to discover all available pages before exploring further.

Repository
https://github.com/bytebase/example-api/tree/main/audit-logPrerequisites
- Docker installed
- Node.js >= v18
Start Bytebase
Make sure your Docker daemon is running. Copy and paste the commands to start Bytebase.localhost:8080. Register the first admin account which will be granted Workspace Admin.
Create Service Account
-
Log in as
Workspace Admin, and go to IAM & Admin > Users & Groups. Click + Add User, fill in withapi-sample, choose theWorkspace DBArole sufficient for this tutorial and click Confirm.
-
Find the newly created service account and Copy Service Key. We will use this token to authenticate the API calls.

Run Demo
- Go to Bytebase API Example repo and clone it.
-
Copy
env-template.localto.env.local.Update the variables.NEXT_PUBLIC_BB_URL:http://localhost:8080NEXT_PUBLIC_BB_SERVICE_ACCOUNT:api-exampleNEXT_PUBLIC_BB_SERVICE_KEY: service key copied in previous step
-
Go to subfolder
audit-log, and run the following commands to start the demo application. -
Open the demo in your browser, you’ll see the following page.

-
To enhance the demo’s realism, go to Bytebase:
- Go to SQL Editor to query the database
- Go to a specific project and do some database changes, e.g. create a database, create a table, add some data.
Fetch and Filter Audit Log
Let’s dig into the code:-
In
page.tsx, we fetch all projects by calling the /v1/projects API before any project selection. -
Bytebase has two levels of audit log: Workspace and Project. When the user first visit the demo, We fetch Workspace-level audit log via /v1/auditLogs:search API. The default time range is 7 days back till now. You may also adjust the time range by passing
startTimeandendTimein the request body viafilter. -
In
db-fetch-user-permission.tsx, if the user select a speicifc project, we fetch the project-level audit log via /v1/projects/PROJECT_ID/auditLogs:search API. The time range filter is the same as the workspace-level audit log.

