Files
oam/knowledge base/dblab.md
2025-05-27 23:38:26 +02:00

3.9 KiB

dblab

Database Lab Engine client CLI.

  1. TL;DR
  2. Further readings
    1. Sources

TL;DR

Setup
# Install.
curl -sSL 'dblab.sh' | bash

# Initialize CLI configuration.
# Assumes that 'localhost:2345' forwards to the Database Lab Engine machine's at port 2345'.
dblab init --environment-id 'tutorial' --url 'http://localhost:2345' --token 'secret_token' --insecure
Usage
# Fetch the status of the Engine's instance.
dblab instance status

# Create clones.
dblab clone create --username 'dblab_user_1' --password 'secret_password' --id 'my_first_clone'
curl -X 'POST' 'https://dblab.instance.fqdn/api/clone' -H 'Verification-Token: verification-token-here' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "protected": true, "db": { "username": "user", "password": "password", "db_name": "db" }, "id": "clone-id" }'

# Get clones' information.
curl -X 'GET' 'https://dblab.instance.fqdn/api/clone/clone-id' -H 'Verification-Token: verification-token-here'

# Reset clones.
curl -X 'POST' 'https://dblab.instance.fqdn/api/clone/clone-id/reset' -H 'Verification-Token: verification-token-here' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "latest": true }'
curl -X 'POST' 'https://dblab.instance.fqdn/api/clone/clone-id/reset' -H 'Verification-Token: verification-token-here' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "latest": false, "snapshotID": "2024-09-09T12:12:13Z" }'

# Change clones' properties.
curl -X 'PATCH' 'https://dblab.instance.fqdn/api/clone/clone-id' -H 'Verification-Token: verification-token-here' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "protected": false }'

# Delete clones.
curl -X 'DELETE' 'https://dblab.instance.fqdn/api/clone/clone-id/reset' -H 'Verification-Token: verification-token-here'
Real world use cases
curl -X 'POST' 'https://dblab.company.com:1234/api/clone' \
  -H 'Verification-Token: something-something-dark-side' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{
    "id": "smth",
    "protected": true,
    "db": {
      "username": "master",
      "password": "ofPuppets",
      "db_name": "puppet"
    }
  }'
curl 'https://dblab.company.com:1234/api/clone/smth' \
  -H 'Verification-Token: something-something-dark-side'
curl -X 'POST' 'https://dblab.company.com:1234/api/clone/smth/reset' \
  -H 'Verification-Token: something-something-dark-side' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "latest": true }'
curl -X 'PATCH' 'https://dblab.company.com:1234/api/clone/smth' \
  -H 'Verification-Token: something-something-dark-side' \
  -H 'accept: application/json' -H 'content-type: application/json' \
  -d '{ "protected": false }'
curl -X 'DELETE' 'https://dblab.company.com:1234/api/clone/smth' \
  -H 'Verification-Token: something-something-dark-side'

Further readings

Sources