Manage database credentials and developer access for CI/CD pipelines
Use these endpoints in your CI/CD pipelines:
POST /api/credentials/{project}
{
"environment": "stage",
"db_type": "mariadb"
}
CI Example:
curl -X POST -H "Content-Type: application/json" \
-d '{"environment":"stage","db_type":"mariadb"}' \
http://db-api:3000/api/credentials/$CI_PROJECT_NAME
GET /api/credentials/{project}?environment=stage&db_type=mariadb
GET /api/credentials
Replace your database setup stages with:
setup_database:
stage: database
script:
- |
RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" \
-d '{"environment":"stage","db_type":"mariadb"}' \
http://db-api:3000/api/credentials/$CI_PROJECT_NAME)
echo "DB_HOST=$(echo $RESPONSE | jq -r '.db_host')" > database_credentials.env
echo "DB_PORT=$(echo $RESPONSE | jq -r '.db_port')" >> database_credentials.env
echo "DB_NAME=$(echo $RESPONSE | jq -r '.db_name')" >> database_credentials.env
echo "DB_USER=$(echo $RESPONSE | jq -r '.db_user')" >> database_credentials.env
echo "DB_PASS=$(echo $RESPONSE | jq -r '.db_password')" >> database_credentials.env
artifacts:
reports:
dotenv: database_credentials.env