Drill4J Backend
Drill4J Backend is responsible for receiving, processing and authorizing data.
Installation#
There are two ways to install Drill4J Backend:
- Using Docker
 - Using JAR file
 
Using Docker#
To install Drill4J Backend using Docker, follow the steps described in local-deployment.
Additionally, you can also set up the environment variables (see below).
Ensure that Drill4J Backend is running successfully by checking the
http://localhost:8090endpoint. You should receive a response similar to:
Using JAR file#
To install Drill4J Backend using a JAR file, follow these steps:
Install PostgreSQL 17.
Create a database and a user for Drill4J Backend.
Download the latest Drill4J Backend release (
admin-shadow-<version>.zipfile) from the releases page.Unzip the
admin-shadow-<version>.zipfile.Find the
admin-app-<version>-all.jarfile in the unzipped directory and move it to the root directory of the installation.Set up the environment variables (see below).
Run the Drill4J Backend using the following command:
Ensure that Drill4J Backend is running successfully by checking the
http://localhost:8090endpoint. You should receive a response similar to:
Configuration#
Drill4J Backend is configured using environment variables. You can set them in a .env file in the root directory of the project.
Environment Variables#
The following environment variables are used to configure Drill4J Backend with their default values:
Server Configuration#
| Environment Variable | Description | Default Value | 
|---|---|---|
| PORT | Server port | 8090 | 
| SSL_KEY_STORE | Path to the SSL key store | |
| SSL_KEY_ALIAS | Alias for the SSL key | |
| SSL_KEY_STORE_PASSWORD | Password for the SSL key store | |
| SSL_PRIVATE_KEY_PASSWORD | Password for the private key | 
Database Configuration#
| Environment Variable | Description | Default Value | 
|---|---|---|
| DRILL_DB_HOST | Database host | localhost | 
| DRILL_DB_PORT | Database port | 5432 | 
| DRILL_DB_NAME | Database name | drill | 
| DRILL_DB_USER_NAME | Database username | postgres | 
| DRILL_DB_PASSWORD | Database password | postgres | 
| DRILL_DB_MAX_POOL_SIZE | Maximum pool size for the database | 20 | 
Authentication Configuration#
| Environment Variable | Description | Default Value | 
|---|---|---|
| DRILL_JWT_SECRET | Secret for JWT authentication | |
| DRILL_JWT_LIFETIME | Lifetime for JWT tokens | 60 minutes | 
| DRILL_OAUTH2_ENABLED | Enable OAuth2 authentication | false | 
| DRILL_OAUTH2_AUTHORIZE_URL | OAuth2 authorization URL | |
| DRILL_OAUTH2_ACCESS_TOKEN_URL | OAuth2 access token URL | |
| DRILL_OAUTH2_USERINFO_URL | OAuth2 user info URL | |
| DRILL_OAUTH2_CLIENT_ID | OAuth2 client ID | |
| DRILL_OAUTH2_CLIENT_SECRET | OAuth2 client secret | |
| DRILL_OAUTH2_SCOPES | OAuth2 scopes | |
| DRILL_OAUTH2_REDIRECT_URL | OAuth2 redirect URL | |
| DRILL_OAUTH2_AUTOMATIC_SIGN_IN | Enable automatic sign-in for OAuth2 | false | 
| DRILL_AUTH_SIMPLE_ENABLED | Enable simple authentication | true | 
| DRILL_AUTH_SIMPLE_SIGN_UP_ENABLED | Enable sign-up for simple authentication | true | 
Metrics Configuration#
| Environment Variable | Description | Default Value | 
|---|---|---|
| DRILL_METRICS_UI_BASE_URL | Base URL for the metrics UI | |
| DRILL_METRICS_UI_BUILD_TESTING_REPORT_PATH | Path for the build testing report in the metrics UI | /dashboard/2 | 
Scheduler Configuration#
| Environment Variable | Description | Default Value | 
|---|---|---|
| DRILL_SCHEDULER_REFRESH_VIEWS_JOB_CRON | Cron expression for refreshing views | 0 0 * * * ? | 
| DRILL_SCHEDULER_DATA_RETENTION_JOB_CRON | Cron expression for the data retention job | 0 0 1 * * ? | 
Swagger UI#
Drill4J Backend provides Swagger API documentation for easy exploration of available endpoints. To access the Swagger UI, open your browser and navigate to:
This will display the interactive API documentation where you can view and test the available API endpoints:
Swagger UI
Authentication and Authorization#
🚧 UNDER CONSTRUCTION. TO BE COMPLETED SOON 🚧
Troubleshooting#
- Problem: backend application fails to start due to database migration error.
 
Symptom:
Solution: