dbtrail

Servers

Register, list, update, and decommission MySQL servers

Manage the MySQL servers tracked by dbtrail. All endpoints require authentication and the servers:read, servers:write, or servers:delete permission.

Endpoints

MethodEndpointPermissionDescription
GET/serversservers:readList all registered servers
GET/servers/{server_id}servers:readGet server details
POST/serversservers:writeRegister a new server
PATCH/servers/{server_id}servers:writeUpdate server configuration
DELETE/servers/{server_id}servers:deleteDecommission a server (soft-delete)
GET/servers/{server_id}/onboarding-statusservers:readGet onboarding step progress
POST/servers/{server_id}/confirm-firewallservers:writeConfirm firewall whitelist (SSH tunnel servers)

GET /servers/{server_id}/onboarding-status

Returns step-level progress for a server's onboarding flow. Poll this endpoint while the server is in a non-terminal status.

Response fields:

FieldTypeDescription
server_idstringServer UUID
current_stepstring | nullThe step currently being executed
stepsarrayOrdered list of onboarding steps with status and timing
errorstring | nullError message from the first failed step, if any
agent_outbound_ipstring | nullThe IP to whitelist — only present when current_step is awaiting_firewall

Onboarding steps (in order):

StepDescription
provisioningAssigning compute resources
awaiting_firewallWaiting for customer to whitelist our outbound IP (SSH tunnel only; auto-completed for direct/VPN)
waiting_for_agentAgent is starting up
initializingCreating index tables
snapshottingCapturing current schema structure
streamingStarting binlog stream

POST /servers/{server_id}/confirm-firewall

Confirms that the customer has whitelisted dbtrail's outbound IP on their SSH jumphost security group. This completes the awaiting_firewall onboarding step and resumes the remaining onboarding steps in the background.

Preconditions (returns 400 if not met):

  • Server must use connection_method: "ssh_tunnel"
  • Server must be at onboarding_step: "awaiting_firewall"

Response:

{ "status": "confirmed" }

On this page