Automate setting up a database client using https://querydesk.com so your team has instant access for debugging and testing.
This action can be called multiple times with the same id, which will update the connection.
jobs:
create_db:
steps:
# ...
- name: Setup Database Client
uses: QueryDesk/setup-db-client@v1
with:
api-key: ${{ secrets.QUERYDESK_API_KEY}}
id: pr-${{ github.event.pull_request.number }} # your workflow trigger must be `pull_request` for this to work
hostname: localhost
database: database_name
adapter: postgres
username: my_user
password: my_password
# ...
-
api-key
: (Required) You will need to create an API key on https://app.querydesk.com/api-keys and save it as a secret in GitHub Actions settings.Example API key:
SFMyNTY.g2gDbQAAAB5rZXlfMDFHSDRHWkFFVkVIOThCWlhXRzZFMjNOUlduBgDh2w9JhAFiAAFRgA.SeeINPdFn2cz6kqnkPb7IE7B9OLnc840R--hWiRoTYg
-
id
: (Required) A unique id used to interact with this resource through the API. -
name
: (Required) The name for users to use to identity the database. -
hostname
: (Required) The hostname for connecting to the database, either an ip or url. -
database
: (Required) The name of the database to connect on. -
adapter
: (Required) The adapter to use to establish the connection. Currently onlypostgres
is supported, but mysql and sql server are on the roadmap. -
username
: (Required) The username to authenticate with. -
password
: (Required) The password to authenticate with. This is encrypted with field level encryption and is never exposed to users of the database client. -
agent-id
: (Optional) If your database is in a private network inaccessible to the public internet you will need to setup an agent. You can find instructions for setting up an agent here: https://github.com/QueryDesk/agent.Example agent id:
agt_01GH0HABH34YWYV1E66YXXM6HG
-
ssl
: (Optional) Set toenabled
to turn on ssl connections for this database. -
ssl_ca_cert
: (Optional) The server ca cert to use with ssl connections,ssl
must be set toenabled
. This is encrypted with field level encryption and is never exposed to users of the database client. Must be base64 encoded. -
ssl_key
: (Optional) The client key to use with ssl connections,ssl
must be set toenabled
. This is encrypted with field level encryption and is never exposed to users of the database client. Must be base64 encoded. -
ssl_cert
: (Optional) The client cert to use with ssl connections,ssl
must be set toenabled
. This is encrypted with field level encryption and is never exposed to users of the database client. Must be base64 encoded. -
host
: (Optional) The host to make the api call to, defaults to api.querydesk.com.
This example demonstrates setting up a database with ssl connections. Make sure ssl certs/key are base64 encoded.
jobs:
create_db:
# ...
steps:
# ...
- id: create-db
name: Create Database
uses: some-action
- name: Setup Database Client
uses: QueryDesk/setup-db-client@v1
with:
api-key: ${{ secrets.QUERYDESK_API_KEY}}
id: ...
hostname: ...
database: ...
adapter: ...
username: ...
password: ...
ssl: enabled
ssl_ca_cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVCakNDQXU2Z0F3SUJBZ0lKQU1jMFp6...
ssl_key: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVCakNDQXU2Z0F3SUJBZ0lKQU1jMFp6...
ssl_cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVCakNDQXU2Z0F3SUJBZ0lKQU1jMFp6...
This example demonstrates setting up a database that is setup from a previous step. The output names may differ depending on how your database is created.
jobs:
create_db:
# ...
steps:
# ...
- id: create-db
name: Create Database
uses: some-action
- name: Setup Database Client
uses: QueryDesk/setup-db-client@v1
with:
api-key: ${{ secrets.QUERYDESK_API_KEY}}
id: pr-${{ github.event.pull_request.number }} # your workflow trigger must be `pull_request` for this to work
hostname: ${{ steps.create-db.outputs.hostname }}
database: ${{ steps.create-db.outputs.database }}
adapter: postgres
username: ${{ steps.create-db.outputs.username }}
password: ${{ steps.create-db.outputs.password }}