Bunny Configuration Reference
Bunny is configured entirely via environment variables. This page lists the variables required to connect Bunny to the Cohort Discovery Service.
Full Bunny docs
This page covers the configuration required for Cohort Discovery integration. For full Bunny configuration documentation, see hutch.health/bunny/config.
Cohort Discovery connection variables
| Variable | Required | Description |
|---|---|---|
TASK_API_BASE_URL |
✓ | Base URL for the Cohort Discovery Task API |
TASK_API_USERNAME |
✓ | Client ID from your Host in Cohort Discovery |
TASK_API_PASSWORD |
✓ | Client Secret from your Host in Cohort Discovery |
COLLECTION_ID |
✓ | Collection ID from your Collection in Cohort Discovery |
TASK_API_TYPE |
✓ | a for availability queries; b for distribution jobs |
Production API URL
Database connection variables
| Variable | Required | Description |
|---|---|---|
DATASOURCE_DB_HOST |
✓ | Hostname or IP of your OMOP database |
DATASOURCE_DB_DATABASE |
✓ | Database name |
DATASOURCE_DB_SCHEMA |
✓ | Schema name containing OMOP tables |
DATASOURCE_DB_USERNAME |
✓ | Database username |
DATASOURCE_DB_PASSWORD |
✓ | Database password |
DATASOURCE_DB_PORT |
✓ | Database port |
DATASOURCE_DB_DRIVERNAME |
✓ | SQLAlchemy driver name (see table below) |
Supported database drivers
| Database | DATASOURCE_DB_DRIVERNAME |
Default port |
|---|---|---|
| PostgreSQL | postgresql |
5432 |
| SQL Server | mssql+pyodbc |
1433 |
| DuckDB | duckdb |
— |
| Snowflake | snowflake |
443 |
Additional variables for some drivers
SQL Server and Snowflake may require additional configuration variables. See hutch.health/bunny/config for driver-specific settings.
Example configurations
docker-compose.yml
environment:
- TASK_API_TYPE=a
- TASK_API_BASE_URL=https://api.cohort-discovery.healthdatagateway.org/api/v1
- TASK_API_USERNAME=<your_client_id>
- TASK_API_PASSWORD=<your_client_secret>
- COLLECTION_ID=<your_collection_id>
- DATASOURCE_DB_HOST=<your_db_host>
- DATASOURCE_DB_DATABASE=<your_db_name>
- DATASOURCE_DB_SCHEMA=<your_schema>
- DATASOURCE_DB_USERNAME=<your_db_user>
- DATASOURCE_DB_PASSWORD=<your_db_password>
- DATASOURCE_DB_PORT=5432
- DATASOURCE_DB_DRIVERNAME=postgresql
docker-compose.yml
environment:
- TASK_API_TYPE=a
- TASK_API_BASE_URL=https://api.cohort-discovery.healthdatagateway.org/api/v1
- TASK_API_USERNAME=<your_client_id>
- TASK_API_PASSWORD=<your_client_secret>
- COLLECTION_ID=<your_collection_id>
- DATASOURCE_DB_HOST=<your_db_host>
- DATASOURCE_DB_DATABASE=<your_db_name>
- DATASOURCE_DB_SCHEMA=<your_schema>
- DATASOURCE_DB_USERNAME=<your_db_user>
- DATASOURCE_DB_PASSWORD=<your_db_password>
- DATASOURCE_DB_PORT=1433
- DATASOURCE_DB_DRIVERNAME=mssql+pyodbc
docker-compose.yml
environment:
- TASK_API_TYPE=a
- TASK_API_BASE_URL=https://api.cohort-discovery.healthdatagateway.org/api/v1
- TASK_API_USERNAME=<your_client_id>
- TASK_API_PASSWORD=<your_client_secret>
- COLLECTION_ID=<your_collection_id>
- DATASOURCE_DB_DRIVERNAME=snowflake
# See hutch.health/bunny/config for full Snowflake variables
Obfuscation settings
Data Custodians should configure obfuscation on their Bunny instance to meet disclosure control requirements:
| Setting | Recommended value | Description |
|---|---|---|
| Low count suppression | < 10 → return 0 |
Counts below this threshold are suppressed |
| Rounding | Round to nearest 10 | Counts above suppression threshold are rounded |
See hutch.health/bunny/config for the environment variables that control obfuscation.