Configuration Guide
Essential configuration settings for Billerang.
Environment Variables
Backend Configuration
| Variable | Description | Default |
|---|---|---|
PROVIDER_CONFIG | Path to provider connections JSON | /config/providers.json |
REDIS_URL | Redis connection URL | redis://localhost:6379 |
KEYCLOAK_URL | Keycloak server URL | http://localhost:8080 |
KEYCLOAK_REALM | Keycloak realm name | billerang |
Database Configuration
| Variable | Description | Default |
|---|---|---|
DB_DRIVER | JDBC driver class | org.postgresql.Driver |
DB_URL | Database connection URL | - |
DB_USERNAME | Database username | opencell |
DB_PASSWORD | Database password | - |
Feature Flags
| Variable | Description | Default |
|---|---|---|
ENABLE_EINVOICING | Enable eInvoicing features | true |
ENABLE_MULTI_TENANCY | Enable multi-tenant mode | true |
ENABLE_AUDIT_LOG | Enable audit logging | true |
Provider Configuration
providers.json
{
"providers": [
{
"code": "PLUXEE_FR",
"organization": "pluxee-group",
"environment": "prod",
"database": {
"rwService": "pg-pluxee-fr-rw.billerang-db",
"roService": "pg-pluxee-fr-ro.billerang-db",
"name": "opencell",
"poolSize": {
"min": 10,
"max": 100
}
},
"settings": {
"currency": "EUR",
"country": "FR",
"language": "FRA",
"timezone": "Europe/Paris"
}
}
]
}
Keycloak Configuration
Realm Settings
{
"realm": "billerang",
"enabled": true,
"sslRequired": "external",
"registrationAllowed": false,
"organizations": {
"enabled": true
},
"accessTokenLifespan": 300,
"ssoSessionIdleTimeout": 1800,
"ssoSessionMaxLifespan": 36000
}
Client Configuration
{
"clientId": "billerang-api",
"enabled": true,
"bearerOnly": true,
"publicClient": false,
"serviceAccountsEnabled": true,
"authorizationServicesEnabled": true,
"defaultClientScopes": [
"openid",
"profile",
"organization"
]
}
Billing Configuration
Billing Cycle Templates
{
"billingCycles": [
{
"code": "MONTHLY",
"description": "Monthly billing on 1st",
"calendar": {
"calendarType": "MONTHLY",
"dayOfMonth": 1
},
"invoiceDateDelayEL": "#{0}",
"dueDateDelayEL": "#{30}"
},
{
"code": "QUARTERLY",
"description": "Quarterly billing",
"calendar": {
"calendarType": "QUARTERLY"
}
}
]
}
Tax Configuration
{
"taxMappings": [
{
"code": "FR_VAT_20",
"description": "French VAT 20%",
"taxClass": "STANDARD",
"sellerCountry": "FR",
"buyerCountry": "FR",
"taxPercent": 20.0
}
]
}
Logging Configuration
Log Levels
# WildFly logging
org.meveo=INFO
org.hibernate=WARN
org.jboss=WARN
Audit Logging
{
"audit": {
"enabled": true,
"entities": [
"Invoice",
"Subscription",
"Payment"
],
"retention": "90d"
}
}
Performance Tuning
Connection Pools
datasource:
hikari:
minimum-idle: 10
maximum-pool-size: 100
idle-timeout: 600000
max-lifetime: 1800000
connection-timeout: 30000
Cache Configuration
cache:
infinispan:
enabled: true
cluster-name: billerang-cache
transport: tcp
Security Configuration
CORS Settings
cors:
allowed-origins:
- https://app.billerang.com
allowed-methods:
- GET
- POST
- PUT
- DELETE
allowed-headers:
- Authorization
- Content-Type
Rate Limiting
rate-limit:
enabled: true
requests-per-minute: 1000
burst-size: 100