Skip to main content

Configuration Guide

Essential configuration settings for Billerang.

Environment Variables

Backend Configuration

VariableDescriptionDefault
PROVIDER_CONFIGPath to provider connections JSON/config/providers.json
REDIS_URLRedis connection URLredis://localhost:6379
KEYCLOAK_URLKeycloak server URLhttp://localhost:8080
KEYCLOAK_REALMKeycloak realm namebillerang

Database Configuration

VariableDescriptionDefault
DB_DRIVERJDBC driver classorg.postgresql.Driver
DB_URLDatabase connection URL-
DB_USERNAMEDatabase usernameopencell
DB_PASSWORDDatabase password-

Feature Flags

VariableDescriptionDefault
ENABLE_EINVOICINGEnable eInvoicing featurestrue
ENABLE_MULTI_TENANCYEnable multi-tenant modetrue
ENABLE_AUDIT_LOGEnable audit loggingtrue

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