Kill Bill supports configuring the system by specifying external properties. This document explains how such properties can be configured.
Kill Bill Configuration
Overview
At a high level, Kill Bill configuration can be done in one of the following ways:
-
Per-tenant configuration - Used to define tenant-specific configuration properties (such as Catalog/Overdue XML files, Invoice, Payment properties, etc.).
-
Properties file - Used to define properties global to the system.
-
Java System Properties - Used to define certain "special" configuration properties.
-
Third Party Configuration Files - Can be used to specify third-party configuration (e.g. EhCache configuration file, logback configuration file, etc.
-
Environment variables - Can also be used to define configuration properties.
The subsequent sections elaborate each of these approaches.
Per Tenant Properties
Per tenant properties refers to properties that can be specified at a tenant level. Thus, each tenant can have different values for these properties.
Such properties are stored in the Kill Bill database and can be set by invoking the uploadPerTenantConfig endpoint.
For instance to set the invoice dry run notification schedule for the boblazar
tenant, you can invoke the endpoint as follows:
curl -v \
-X POST \
-u 'admin:password' \
-H "X-Killbill-ApiKey: bob" \
-H "X-Killbill-ApiSecret: lazar" \
-H "Content-Type: text/plain" \
-H "X-Killbill-CreatedBy: configurator" \
-d '{"org.killbill.invoice.dryRunNotificationSchedule":"48h"}' \
"http://127.0.0.1:8080/1.0/kb/tenants/uploadPerTenantConfig"
This sets org.killbill.invoice.dryRunNotificationSchedule=48h
for the boblazar
tenant.
Important Notes:
-
Each call overwrites previous properties, so it is necessary to specify the full list of properties for a given tenant.
-
These properties can also be specified in the killbill properties file in which case they become global properties applicable to all tenants.
-
If a property is specified in the properties file as well as at a per-tenant level, the per-tenant configuration takes precedence.
The "Configuration Properties Table" below lists all the per tenant properties.
Properties File
Kill Bill configuration properties can also be defined within an explicit .properties
file. Properties defined within this file are global and are applicable across all tenants. Typically, a default killbill.properties
exists as explained in the "Setup Specific Notes" section. You can add new properties/modify property values in this file as required.
The "Configuration Properties Table" below lists all the global properties.
Environment Variables
Kill Bill also allows setting configuration properties via environment variables. In such a case, the value specified via the environment variable overrides the value defined in the killbill.properties
file.
In order for environment variables to be enabled, you need to set the following property in the property file:
org.killbill.server.lookupEnvironmentVariables=true
Once enabled, you can define an environment variable corresponding to any property by prefixing the property name with KB_. For example, you can define an environment variable corresponding to the org.killbill.dao.url
property as follows:
KB_org_killbill_dao_url = <jdbc URL here>
The "Configuration Properties Table" below lists all the environment variables.
Java System Properties
Certain "special" configuration properties need to be specified as Java system properties and cannot be specified in the properties
file or as environment variables. Typically, you would not need to modify such properties.
The "Configuration Properties Table" below lists all the system properties.
Third Party Configuration Files
Third party configuration files can be used to specify configuration related to third party libraries like ehcache, logback, etc. The path of a third party configuration file in turn needs to be specified as a configuration property.
The following table lists the third party configuration files supported by Kill Bill and their corresponding configuration properties.
Third-Party Configuration | Configuration Property | Default Location |
---|---|---|
ehcache |
org.killbill.cache.config.location |
|
logback |
logback.configurationFile |
|
shiro |
org.killbill.security.shiroResourcePath |
Configuration Properties Table
The following table lists all the Kill Bill configuration properties.
Payment Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.payment.retry.days/ KB_org_killbill_payment_retry_days |
Specify the number of payment retries along with the interval in days between payment retries when payment failures occur |
8,8,8 |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.failure.retry.start.sec/ KB_org_killbill_payment_failure_retry_start_sec |
Specify the interval of time in seconds before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …) |
300 |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.failure.retry.multiplier/ KB_org_killbill_payment_failure_retry_multiplier |
Specify the multiplier to apply between in retry before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …) |
2 |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.janitor.unknown.retries/ KB_org_killbill_payment_janitor_unknown_retries |
Delay before which unresolved transactions should be retried |
5m,1h,1d,1d,1d,1d,1d |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.janitor.pending.retries/ KB_org_killbill_payment_janitor_pending_retries |
Delay before which unresolved transactions should be retried |
1h, 1d |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.failure.retry.max.attempts/ KB_org_killbill_payment_failure_retry_max_attempts |
Specify the max number of attempts before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …) |
8 |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.invoice.plugin/ KB_org_killbill_payment_invoice_plugin |
Default payment control plugin names |
- |
Per-Tenant/Config File/Environment Variable |
org.killbill.payment.janitor.rate/ KB_org_killbill_payment_janitor_rate |
Rate at which janitor tasks are scheduled |
1h |
Config File/Environment Variable |
org.killbill.payment.janitor.attempts.delay/ KB_org_killbill_payment_janitor_attempts_delay |
Delay before which unresolved attempt should be retried |
12h |
Config File/Environment Variable |
org.killbill.payment.provider.default/ KB_org_killbill_payment_provider_default |
Default payment provider to use |
__external_payment__ |
Config File/Environment Variable |
org.killbill.payment.plugin.timeout/ KB_org_killbill_payment_plugin_timeout |
Timeout for each payment attempt |
30s |
Config File/Environment Variable |
org.killbill.payment.plugin.threads.nb/ KB_org_killbill_payment_plugin_threads_nb |
Number of threads for plugin executor dispatcher |
10 |
Config File/Environment Variable |
org.killbill.payment.globalLock.retries/ KB_org_killbill_payment_globalLock_retries |
Maximum number of times the system will retry to grab global lock (with a 100ms wait each time) |
50 |
Config File/Environment Variable |
org.killbill.payment.method.overwrite/ KB_org_killbill_payment_method_overwrite |
Ability to overwrite an existing payment method from a control plugin |
false |
Config File/Environment Variable |
org.killbill.payment.allow.emptyInvoice/ KB_org_killbill_payment_allow_emptyinvoices |
Ability to allow payments for zero amount invoices |
false |
Config File/Environment Variable |
Invoice Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.invoice.maxNumberOfMonthsInFuture/ KB_org_killbill_invoice_maxNumberOfMonthsInFuture |
Maximum target date to consider when generating an invoice |
36 |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.sanitySafetyBoundEnabled/ KB_org_killbill_invoice_sanitySafetyBoundEnabled |
Whether internal sanity checks to prevent mis- and double-billing are enabled |
true |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.disable.usage.zero.amount/ KB_org_killbill_invoice_disable_usage_zero_amount |
Whether we disable writing $0 usage amounts |
false |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.usage.missing.lenient/ KB_org_killbill_invoice_usage_missing_lenient |
Whether we fail invoice when we discover missing past usage records |
false |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.maxDailyNumberOfItemsSafetyBound/ KB_org_killbill_invoice_maxDailyNumberOfItemsSafetyBound |
Maximum daily number of invoice items to generate for a subscription id |
15 |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.dryRunNotificationSchedule/ KB_org_killbill_invoice_dryRunNotificationSchedule |
DryRun invoice notification time before targetDate (ignored if set to 0s) |
0s |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.readMaxRawUsagePreviousPeriod/ KB_org_killbill_invoice_readMaxRawUsagePreviousPeriod |
Maximum number of past billing periods we use to fetch raw usage data (usage optimization) |
2 |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.globalLock.retries/ KB_org_killbill_invoice_globalLock_retries |
Maximum number of times the system will retry to grab global lock (with a 100ms wait each time) |
50 |
Config File/Environment Variable |
org.killbill.invoice.plugin/ KB_org_killbill_invoice_plugin |
Default invoice plugin names |
- |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.emailNotificationsEnabled/ KB_org_killbill_invoice_emailNotificationsEnabled |
Whether to send email notifications on invoice creation (for configured accounts) |
false |
Config File/Environment Variable |
org.killbill.invoice.enabled/ KB_org_killbill_invoice_enabled |
Whether the invoicing system is enabled |
true |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.parent.commit.local.utc.time/ KB_org_killbill_invoice_parent_commit_local_utc_time |
UTC Time when parent invoice gets committed |
23:59:59.999 |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.item.result.behavior.mode/ KB_org_killbill_invoice_item_result_behavior_mode |
How the result for an item will be reported (aggregate mode or detail mode). |
AGGREGATE |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.inArrear.mode/ KB_org_killbill_invoice_inArrear_mode |
Determine how the system should behave for in-arrear plans. |
DEFAULT |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.parkAccountsWithUnknownUsage/ KB_org_killbill_invoice_parkAccountsWithUnknownUsage |
Whether to park accounts when usage data is recorded but not defined in the catalog |
false |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.rescheduleIntervalOnLock/ KB_org_killbill_invoice_rescheduleIntervalOnLock |
Time delay to reschedule an invoice run when lock is held |
0s |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.maxInvoiceLimit/ KB_org_killbill_invoice_maxInvoiceLimit |
How far back in time should invoice generation look at |
P200Y |
Per-Tenant/Config File/Environment Variable |
org.killbill.rescheduleIntervalOnLock/ KB_org_killbill_rescheduleIntervalOnLock |
Tme delay to reschedule an invoice run when lock is held |
30s, 1m, 1m, 3m, 3m, 10m |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.usage.tz.mode/ KB_org_killbill_invoice_usage_tz_mode |
Behavior to include usage points with respect to day light saving |
FIXED |
Per-Tenant/Config File/Environment Variable |
org.killbill.invoice.proration.fixed.days/ KB_org_killbill_invoice_proration_fixed_days |
Fixed number of days in a month to avoid proration |
0 |
Per-Tenant/Config File/Environment Variable |
Database Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.dao.url/ KB_org_killbill_dao_url |
The jdbc url for the database |
jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL; DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE |
Config File/Environment Variable |
org.killbill.dao.user/ KB_org_killbill_dao_user |
The jdbc user name for the database |
killbill |
Config File/Environment Variable |
org.killbill.dao.password/ KB_org_killbill_dao_password |
The jdbc password for the database |
killbill |
Config File/Environment Variable |
org.killbill.dao.minIdle/ KB_org_killbill_dao_minIdle |
The minimum allowed number of idle connections to the database |
1 |
Config File/Environment Variable |
org.killbill.dao.maxActive/ KB_org_killbill_dao_maxActive |
The maximum allowed number of active connections to the database |
100 |
Config File/Environment Variable |
org.killbill.dao.leakDetectionThreshold/ KB_org_killbill_dao_leakDetectionThreshold |
Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak |
60s |
Config File/Environment Variable |
org.killbill.dao.connectionTimeout/ KB_org_killbill_dao_connectionTimeout |
How long to wait before a connection attempt to the database is considered timed out |
10s |
Config File/Environment Variable |
org.killbill.dao.idleMaxAge/ KB_org_killbill_dao_idleMaxAge |
The time for a connection to remain unused before it is closed off |
60m |
Config File/Environment Variable |
org.killbill.dao.maxConnectionAge/ KB_org_killbill_dao_maxConnectionAge |
Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool |
0m |
Config File/Environment Variable |
org.killbill.dao.idleConnectionTestPeriod/ KB_org_killbill_dao_idleConnectionTestPeriod |
Time for a connection to remain idle before sending a test query to the DB |
5m |
Config File/Environment Variable |
org.killbill.dao.connectionInitSql/ KB_org_killbill_dao_connectionInitSql |
Sets a SQL statement executed after every new connection creation before adding it to the pool |
null |
Config File/Environment Variable |
org.killbill.dao.prepStmtCacheSize/ KB_org_killbill_dao_prepStmtCacheSize |
Number of prepared statements that the driver will cache per connection |
500 |
Config File/Environment Variable |
org.killbill.dao.prepStmtCacheSqlLimit/ KB_org_killbill_dao_prepStmtCacheSqlLimit |
Maximum length of a prepared SQL statement that the driver will cache |
2048 |
Config File/Environment Variable |
org.killbill.dao.cachePrepStmts/ KB_org_killbill_dao_cachePrepStmts |
Enable prepared statements cache |
true |
Config File/Environment Variable |
org.killbill.dao.useServerPrepStmts/ KB_org_killbill_dao+useServerPrepStmts |
Enable server-side prepared statements |
true |
Config File/Environment Variable |
org.killbill.dao.dataSourceClassName/ KB_org_killbill_dao_dataSourceClassName |
DataSource class name provided by the JDBC driver, leave null for autodetection |
null |
Config File/Environment Variable |
org.killbill.dao.driverClassName/ KB_org_killbill_dao_driverClassName |
JDBC driver to use (when dataSourceClassName is null) |
null |
Config File/Environment Variable |
org.killbill.dao.mysqlServerVersion/ KB_org_killbill_dao_mysqlServerVersion |
MySQL server version |
5.1 |
Config File/Environment Variable |
org.killbill.dao.logLevel/ KB_org_killbill_dao_logLevel |
Log level for SQL queries |
DEBUG |
Config File/Environment Variable |
org.killbill.dao.poolingType/ KB_org_killbill_dao_poolingType |
Connection pooling type |
HIKARICP |
Config File/Environment Variable |
org.killbill.dao.healthCheckConnectionTimeout/ KB_org_killbill_dao_healthCheckConnectionTimeout |
How long to wait before a connection attempt to the database is considered timed out (healthcheck only) |
10s |
Config File/Environment Variable |
org.killbill.dao.healthCheckExpected99thPercentile/ KB_org_killbill_dao_healthCheckExpected99thPercentile |
Expected 99th percentile calculation to obtain a connection (healthcheck only) |
50ms |
Config File/Environment Variable |
org.killbill.dao.initializationFailFast/ KB_org_killbill_dao_initializationFailFast |
Whether or not initialization should fail on error immediately |
false |
Config File/Environment Variable |
org.killbill.dao.transactionIsolationLevel/ KB_org_killbill_dao_transactionIsolationLevel |
Set the default transaction isolation level |
TRANSACTION_READ_COMMITTED |
Config File/Environment Variable |
org.killbill.dao.readOnly/ KB_org_killbill_dao_readOnly |
Whether to put connections in read-only mode |
false |
Config File/Environment Variable |
Plugin Database Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.billing.osgi.dao.url/ KB_org_killbill_billing_osgi_dao_url |
The jdbc url for the database |
jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL; DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.user/ KB_org_killbill_billing_osgi_dao_user |
The jdbc user name for the database |
killbill |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.password/ KB_org_killbill_billing_osgi_dao_password |
The jdbc password for the database |
password |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.minIdle/ KB_org_killbill_billing_osgi_dao_minIdle |
The minimum allowed number of idle connections to the database |
1 |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.maxActive/ KB_org_killbill_billing_osgi_dao_maxActive |
The maximum allowed number of active connections to the database |
100 |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.leakDetectionThreshold/ KB_org_killbill_billing_osgi_dao_leakDetectionThreshold |
Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak |
60s |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.connectionTimeout/ KB_org_killbill_billing_osgi_dao_connectionTimeout |
How long to wait before a connection attempt to the database is considered timed out |
10s |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.idleMaxAge/ KB_org_killbill_billing_osgi_dao_idleMaxAge |
The time for a connection to remain unused before it is closed off |
60m |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.maxConnectionAge/ KB_org_killbill_billing_osgi_dao_maxConnectionAge |
Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool |
0m |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.idleConnectionTestPeriod/ KB_org_killbill_billing_osgi_dao_idleConnectionTestPeriod |
Time for a connection to remain idle before sending a test query to the DB |
5m |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.prepStmtCacheSize/ KB_org_killbill_billing_osgi_dao_prepStmtCacheSize |
Number of prepared statements that the driver will cache per connection |
500 |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.prepStmtCacheSqlLimit/ KB_org_killbill_billing_osgi_dao_prepStmtCacheSqlLimit |
Maximum length of a prepared SQL statement that the driver will cache |
2048 |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.cachePrepStmts/ KB_org_killbill_billing_osgi_dao_cachePrepStmts |
Enable prepared statements cache |
true |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.useServerPrepStmts/ KB_org_killbill_billing_osgi_dao_useServerPrepStmts |
Enable server-side prepared statements |
true |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.dataSourceClassName/ KB_org_killbill_billing_osgi_dao_dataSourceClassName |
DataSource class name provided by the JDBC driver, leave null for autodetection |
Null |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.driverClassName/ KB_org_killbill_billing_osgi_dao_driverClassName |
JDBC driver to use (when dataSourceClassName is null) |
Null |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.mysqlServerVersion/ KB_org_killbill_billing_osgi_dao_mysqlServerVersion |
MySQL server version |
5.1 |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.logLevel/ KB_org_killbill_billing_osgi_dao_logLevel |
Log level for SQL queries |
DEBUG |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.poolingType/ KB_org_killbill_billing_osgi_dao_poolingType |
Connection pooling type |
HIKARICP |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.initializationFailFast/ KB_org_killbill_billing_osgi_dao_initializationFailFast |
Whether or not initialization should fail on error immediately |
false |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.transactionIsolationLevel/ KB_org_killbill_billing_osgi_dao_transactionIsolationLevel |
Set the default transaction isolation level |
TRANSACTION_READ_COMMITTED |
Config File/Environment Variable |
org.killbill.billing.osgi.dao.readOnly/ KB_org_killbill_billing_osgi_dao_readOnly |
Whether to put connections in read-only mode |
false |
Config File/Environment Variable |
RO Database Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.billing.main.ro.dao.enabled/ KB_org_killbill_billing_main_ro_dao_enabled |
Whether the read-only datasource is enabled. If enabled, read-only database queries are redirected to a separate read-only datasource details of which are configured via the other |
false |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.url/ KB_org_killbill_billing_main_ro_dao_url |
The jdbc url for the database |
jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;ACCESS_MODE_DATA=r |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.user/ KB_org_killbill_billing_main_ro_dao_user |
The jdbc user name for the database |
killbill |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.password/ KB_org_killbill_billing_main_ro_dao_password |
The jdbc password for the database |
killbill |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.minIdle/ KB_org_killbill_billing_main_ro_dao_minIdle |
The minimum allowed number of idle connections to the database |
1 |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.maxActive/ KB_org_killbill_billing_main_ro_dao_maxActive |
The maximum allowed number of active connections to the database |
100 |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.leakDetectionThreshold/ KB_org_killbill_billing_main_ro_dao_leakDetectionThreshold |
Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak |
60s |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.connectionTimeout/ KB_org_killbill_billing_main_ro_dao_connectionTimeout |
How long to wait before a connection attempt to the database is considered timed out |
10s |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.idleMaxAge/ KB_org_killbill_billing_main_ro_dao_idleMaxAge |
The time for a connection to remain unused before it is closed off |
60m |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.maxConnectionAge/ KB_org_killbill_billing_main_ro_dao_maxConnectionAge |
Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool |
0m |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.idleConnectionTestPeriod/ KB_org_killbill_billing_main_ro_dao_idleConnectionTestPeriod |
Time for a connection to remain idle before sending a test query to the DB |
5m |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.prepStmtCacheSize/ KB_org_killbill_billing_main_ro_dao_prepStmtCacheSize |
Number of prepared statements that the driver will cache per connection |
500 |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.prepStmtCacheSqlLimit/ KB_org_killbill_billing_main_ro_dao_prepStmtCacheSqlLimit |
Maximum length of a prepared SQL statement that the driver will cache |
2048 |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.cachePrepStmts/ KB_org_killbill_billing_main_ro_dao_cachePrepStmts |
Enable prepared statements cache |
true |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.useServerPrepStmts/ KB_org_killbill_billing_main_ro_dao_useServerPrepStmts |
Enable server-side prepared statements |
true |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.dataSourceClassName/ KB_org_killbill_billing_main_ro_dao_dataSourceClassName |
DataSource class name provided by the JDBC driver, leave null for autodetection |
null |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.driverClassName/ KB_org_killbill_billing_main_ro_dao_driverClassName |
JDBC driver to use (when dataSourceClassName is null) |
null |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.mysqlServerVersion/ KB_org_killbill_billing_main_ro_dao_mysqlServerVersion |
MySQL server version |
5.1 |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.logLevel/ KB_org_killbill_billing_main_ro_dao_logLevel |
Log level for SQL queries |
DEBUG |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.poolingType/ KB_org_killbill_billing_main_ro_dao_poolingType |
Connection pooling type |
HIKARICP |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.initializationFailFast/ KB_org_killbill_billing_main_ro_dao_initializationFailFast |
Whether or not initialization should fail on error immediately |
false |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.transactionIsolationLevel/ KB_org_killbill_billing_main_ro_dao_transactionIsolationLevel |
Set the default transaction isolation level |
TRANSACTION_READ_COMMITTED |
Config File/Environment Variable |
org.killbill.billing.main.ro.dao.readOnly/ KB_org_killbill_billing_main_ro_dao_readOnly |
Whether to put connections in read-only mode |
true |
Config File/Environment Variable |
Push Notifications Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.billing.server.notifications.retries/ KB_org_killbill_billing_server_notifications_retries |
Delay before which unresolved push notifications should be retried |
15m,30m,2h,12h,1d |
Per-Tenant/Config File/Environment Variable |
Catalog Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.catalog.uri/ KB_org_killbill_catalog_uri |
Default Catalog location, either in the classpath or in the filesystem. For multi-tenancy, one should use APIs to load per-tenant catalog |
SpyCarAdvanced.xml |
Config File/Environment Variable |
org.killbill.catalog.loader.threads.pool.nb/ KB_org_killbill_catalog_loader_threads_pool_nb |
Number of threads for the XML loader |
1 |
Config File/Environment Variable |
Persistent Bus Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.persistent.bus.${instanceName}.inMemory/ KB_org_killbill_persistent_bus_${instanceName}_inMemory |
Whether the bus should be an in memory bus |
false |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.max.failure.retry/ KB_org_killbill_persistent_bus_${instanceName}_max.failure_retry |
Number of retries for a given event when an exception occurs |
3 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.inflight.min/ KB_org_killbill_persistent_bus_${instanceName}_inflight_min |
Min number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS') |
1 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.inflight.max/ KB_org_killbill_persistent_bus_${instanceName}_inflight_max |
Max number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS') |
100 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.claimed/ KB_org_killbill_persistent_bus_${instanceName}_claimed |
Number of bus events to fetch from the database at once (only valid in 'polling mode') |
10 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.queue.mode/ KB_org_killbill_persistent_bus_${instanceName}_queue_mode |
How entries are put in the queue |
STICKY_EVENTS |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.claim.time/ KB_org_killbill_persistent_bus_${instanceName}_claim_time |
Claim time |
5m |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.sleep/ KB_org_killbill_persistent_bus_${instanceName}_sleep |
Time in milliseconds to sleep between runs (only valid in STICKY_POLLING, POLLING) |
3000 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.off/ KB_org_killbill_persistent_bus_${instanceName}_off |
Whether to turn off the persistent bus |
false |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.nbThreads/ KB_org_killbill_persistent_bus_${instanceName}_nbThreads |
Max number of dispatch threads to use |
30 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.lifecycle.dispatch.nbThreads/ KB_org_killbill_persistent_bus_${instanceName}_lifecycle_dispatch_nbThreads |
Max number of lifecycle dispatch threads to use |
1 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.lifecycle.complete.nbThreads/ KB_org_killbill_persistent_bus_${instanceName}_lifecycle_complete_nbThreads |
Max number of lifecycle complete threads to use |
2 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.queue.capacity/ KB_org_killbill_persistent_bus_${instanceName}_queue_capacity |
Size of the inflight queue (only valid in STICKY_EVENTS mode) |
30000 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.tableName/ KB_org_killbill_persistent_bus_${instanceName}_tableName |
Bus events table name |
bus_events |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.historyTableName/ KB_org_killbill_persistent_bus_${instanceName}_historyTableName |
Bus events history table name |
bus_events_history |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.reapThreshold/ KB_org_killbill_persistent_bus_${instanceName}_reapThreshold |
Time span when the bus event must be re-dispatched |
10m |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.maxReDispatchCount/ KB_org_killbill_persistent_bus_${instanceName}_maxReDispatchCount |
Max number of bus events to be re-dispatched at a time |
10 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.reapSchedule/ KB_org_killbill_persistent_bus_${instanceName}_reapSchedule |
Reaper schedule period |
3m |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.shutdownTimeout/ KB_org_killbill_persistent_bus_${instanceName}_shutdownTimeout |
Shutdown sequence timeout |
15s |
Config File/Environment Variable |
Notification Queue Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.notificationq.${instanceName}.inMemory/ KB_org_killbill_notificationq_${instanceName}_inMemory |
Set to false, not available for NotificationQueue |
false |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.max.failure.retry/ KB_org_killbill_notificationq_${instanceName}_max_failure_retry |
Number retry for a given event when an exception occurs |
3 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.inflight.min/ KB_org_killbill_persistent_bus_${instanceName}_inflight_min |
Min number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS') |
-1 |
Config File/Environment Variable |
org.killbill.persistent.bus.${instanceName}.inflight.max/ KB_org_killbill_persistent_bus_${instanceName}_inflight_max |
Max number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS') |
-1 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.claimed/ KB_org_killbill_notificationq_${instanceName}_claimed |
Number of notifications to fetch at once |
10 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.queue.mode/ KB_org_killbill_notificationq_${instanceName}_queue_mode |
How entries are put in the queue |
STICKY_POLLING |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.claim.time/ KB_org_killbill_notificationq_${instanceName}_claim_time |
Claim time |
5m |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.sleep/ KB_org_killbill_notificationq_${instanceName}_sleep |
Time in milliseconds to sleep between runs |
3000 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.notification.off/ KB_org_killbill_notificationq_${instanceName}_notification_off |
Whether to turn off the notification queue |
false |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.notification.nbThreads/ KB_org_killbill_notificationq_${instanceName}_notification_nbThreads |
Number of threads to use |
10 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.lifecycle.dispatch.nbThreads/ KB_org_killbill_notificationq_${instanceName}_lifecycle_dispatch_nbThreads |
Max number of lifecycle dispatch threads to use |
1 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.lifecycle.complete.nbThreads/ KB_org_killbill_notificationq_${instanceName}_lifecycle_complete_nbThreads |
Max number of lifecycle complete threads to use |
2 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.queue.capacity/ KB_org_killbill_notificationq_${instanceName}_queue_capacity |
Capacity for the worker queue |
100 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.tableName/ KB_org_killbill_notificationq_${instanceName}_tableName |
Notifications table name |
notifications |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.historyTableName/ KB_org_killbill_notificationq_${instanceName}_historyTableName |
Notifications history table name |
notifications_history |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.reapThreshold/ KB_org_killbill_notificationq_${instanceName}_reapThreshold |
Time span when a notification must be re-dispatched |
10m |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.maxReDispatchCount/ KB_org_killbill_notificationq_${instanceName}_maxReDispatchCount |
Max number of notification to be re-dispatched at a time |
10 |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.reapSchedule/ KB_org_killbill_notificationq_${instanceName}_reapSchedule |
Reaper schedule period |
3m |
Config File/Environment Variable |
org.killbill.notificationq.${instanceName}.shutdownTimeout/ KB_org_killbill_notificationq_${instanceName}_shutdownTimeout |
Shutdown sequence timeout |
15s |
Config File/Environment Variable |
Events Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.billing.server.event.post.type.skip/ KB_org_killbill_billing_server_event_post_type_skip |
List of event types to be skipped (not posted) |
- |
Per-Tenant/Config File/Environment Variable |
org.killbill.billing.server.event.dispatch.type.skip/ KB_org_killbill_billing_server_event_dispatch_type_skip |
List of event types to be skipped (not dispatched internally) |
- |
Per-Tenant/Config File/Environment Variable |
org.killbill.billing.server.event.bulk.subscription.aggregate/ KB_org_killbill_billing_server_event_bulk_subscription_aggregate |
Aggregate the events for bulk subscription |
false |
Per-Tenant/Config File/Environment Variable |
Currency Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.currency.provider.default/ KB_org_killbill_currency_provider_default |
Default currency provider to use |
killbill-currency-plugin |
Config File/Environment Variable |
Broadcast Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.billing.util.broadcast.rate/ KB_org_killbill_billing_util_broadcast_rate |
Rate at which broadcast service task is scheduled |
5s |
Config File/Environment Variable |
Jax-rs Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.jaxrs.threads.pool.nb/ KB_org_killbill_jaxrs_threads_pool_nb |
Number of threads for jaxrs executor |
10 |
Config File/Environment Variable |
org.killbill.jaxrs.timeout/ KB_org_killbill_jaxrs_timeout |
Total timeout for all callables associated to a given api call (parallel mode) |
30s |
Config File/Environment Variable |
org.killbill.jaxrs.location.full.url/ KB_org_killbill_jaxrs_location_full_url |
Type of return for the jaxrs response location URL |
true |
Config File/Environment Variable |
org.killbill.jaxrs.location.useForwardHeaders/ KB_org_killbill_jaxrs_location_useForwardHeaders |
Whether to respect X-Forwarded headers for redirect URLs |
true |
Config File/Environment Variable |
org.killbill.jaxrs.location.host/ KB_org_killbill_jaxrs_location_host |
Base host address to use for redirect URLs |
null |
Config File/Environment Variable |
org.killbill.jaxrs.get.ro/ KB_org_killbill_jaxrs_get_ro |
Whether GET calls should leverage the read-only database connection |
true |
Config File/Environment Variable |
Tenant Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.tenant.broadcast.rate/ KB_org_killbill_tenant_broadcast_rate |
Rate at which tenant broadcast task is scheduled |
5s |
Config File/Environment Variable |
Kill Bill Server Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.server.multitenant/ KB_org_killbill_server_multitenant |
Whether multi-tenancy is enabled |
true |
Config File/Environment Variable |
org.killbill.server.test.mode/ KB_org_killbill_server_test_mode |
Whether to start in test mode |
false |
Config File/Environment Variable |
org.killbill.server.test.clock.redis/ KB_org_killbill_server_test_clock_redis |
Whether Redis integration for the clock is enabled |
false |
Config File/Environment Variable |
org.killbill.server.test.clock.redis.url/ KB_org_killbill_server_test_clock_redis_url |
Redis clock URL |
redis://127.0.0.1:6379 |
Config File/Environment Variable |
org.killbill.server.test.clock.redis.connectionMinimumIdleSize/ KB_org_killbill_server_test_clock_redis_connectionMinimumIdleSize |
Minimum number of connections for the Redis clock |
1 |
Config File/Environment Variable |
org.killbill.server.baseUrl/ KB_org_killbill_server_baseUrl |
Server base url |
Config File/Environment Variable |
|
org.killbill.server.region/ KB_org_killbill_server_region |
Region or data center where the server is deployed |
local |
Config File/Environment Variable |
org.killbill.server.http.gzip/ KB_org_killbill_server_http_gzip |
Allow Kill Bill to return gzip json when Content-Encoding is set with gzip |
false |
Config File/Environment Variable |
org.killbill.server.shutdownDelay/ KB_org_killbill_server_shutdownDelay |
Shutdown delay before starting shutdown sequence |
0s |
Config File/Environment Variable |
org.killbill.server.queue.healthcheck/ KB_org_killbill_server_queue_healthcheck |
Whether queue healthcheck is enabled |
true |
Config File/Environment Variable |
Lifecycle Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.server.exit.on.lifecycle.error/ KB_org_killbill_server_exit_on_lifecycle_error |
Whether to exit on lifecycle error |
false |
Config File/Environment Variable |
Metrics Graphite Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.metrics.graphite/ KB_org_killbill_metrics_graphite |
Whether metrics reporting to Graphite is enabled |
false |
Config File/Environment Variable |
org.killbill.metrics.graphite.host/ KB_org_killbill_metrics_graphite_host |
Graphite Hostname |
localhost |
Config File/Environment Variable |
org.killbill.metrics.graphite.port/ KB_org_killbill_metrics_graphite_port |
Graphite Port |
2003 |
Config File/Environment Variable |
org.killbill.metrics.graphite.prefix/ KB_org_killbill_metrics_graphite_prefix |
Prefix all metric names with the given string |
killbill |
Config File/Environment Variable |
org.killbill.metrics.graphite.interval/ KB_org_killbill_metrics_graphite_interval |
Reporter polling interval in seconds |
30 |
Config File/Environment Variable |
OSGi Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.osgi.bundle.property.name/ KB_org_killbill_osgi_bundle_property_name |
Name of the properties file for OSGI plugins |
killbill.properties |
Config File/Environment Variable |
org.killbill.osgi.root.dir/ KB_org_killbill_osgi_root_dir |
Bundles cache area for the OSGI framework |
/var/tmp/felix |
Config File/Environment Variable |
org.killbill.osgi.bundle.cache.name/ KB_org_killbill_osgi_bundle_cache_name |
Bundles cache name |
osgi-cache |
Config File/Environment Variable |
org.killbill.osgi.bundle.install.dir/ KB_org_killbill_osgi_bundle_install_dir |
Bundles install directory |
/var/tmp/bundles |
Config File/Environment Variable |
org.killbill.osgi.system.bundle.export.packages.api/ KB_org_killbill_osgi_system_bundle_export_packages_api |
Kill Bill API packages to export from the system bundle |
org.killbill.billing.account.api, org.killbill.billing.analytics.api.sanity, org.killbill.billing.analytics.api.user, org.killbill.billing.beatrix.bus.api, org.killbill.billing.catalog.api, org.killbill.billing.catalog.api.rules, org.killbill.billing.invoice.plugin.api, org.killbill.billing.invoice.api, org.killbill.billing.invoice.api.formatters, org.killbill.billing.entitlement.api, org.killbill.billing, org.killbill.clock, org.killbill.billing.notification.api, org.killbill.billing.notification.plugin.api, org.killbill.billing.notification.plugin, org.killbill.billing.osgi.api, org.killbill.billing.osgi.api.config, org.killbill.billing.overdue, org.killbill.billing.overdue.api, org.killbill.billing.payment.api, org.killbill.billing.payment.plugin.api, org.killbill.billing.control.plugin.api, org.killbill.billing.tenant.api, org.killbill.billing.usage.api, org.killbill.billing.util.api, org.killbill.billing.util.nodes, org.killbill.billing.util.audit, org.killbill.billing.util.callcontext, org.killbill.billing.util.customfield, org.killbill.billing.util.email, org.killbill.billing.util.entity, org.killbill.billing.util.tag, org.killbill.billing.util.template, org.killbill.billing.util.template.translation, org.killbill.billing.currency.plugin.api, org.killbill.billing.catalog.plugin.api, org.killbill.billing.entitlement.plugin.api, org.killbill.billing.currency.api, org.killbill.billing.usage.plugin.api, org.killbill.billing.security, org.killbill.billing.security.api, org.killbill.billing.osgi.libs.killbill, org.joda.time;org.joda.time.format;version=2.9, org.apache.shiro;org.apache.shiro.subject;org.apache.shiro.util;version=1.3, org.slf4j;version=1.7.2, org.slf4j.event;version=1.7.2, org.slf4j.helpers;version=1.7.2, org.slf4j.spi;version=1.7.2, org.osgi.service.log;version=1.3, org.osgi.service.http;version=1.2.0, org.osgi.service.deploymentadmin;version=1.1.0, org.osgi.service.event;version=1.2.0 |
Config File/Environment Variable |
org.killbill.osgi.system.bundle.export.packages.java/ KB_org_killbill_osgi_system_bundle_export_packages_java |
Java extension/platform Packages to export from the system bundle |
com.sun.xml.internal.ws, com.sun.xml.internal.ws.addressing, com.sun.xml.internal.ws.addressing.model, com.sun.xml.internal.ws.addressing.policy, com.sun.xml.internal.ws.addressing.v200408, com.sun.xml.internal.ws.api, com.sun.xml.internal.ws.api.addressing, com.sun.xml.internal.ws.api.client, com.sun.xml.internal.ws.api.config.management, com.sun.xml.internal.ws.api.config.management.policy, com.sun.xml.internal.ws.api.fastinfoset, com.sun.xml.internal.ws.api.ha, com.sun.xml.internal.ws.api.handler, com.sun.xml.internal.ws.api.message, com.sun.xml.internal.ws.api.message.stream, com.sun.xml.internal.ws.api.model, com.sun.xml.internal.ws.api.model.soap, com.sun.xml.internal.ws.api.model.wsdl, com.sun.xml.internal.ws.api.pipe, com.sun.xml.internal.ws.api.pipe.helper, com.sun.xml.internal.ws.api.policy, com.sun.xml.internal.ws.api.server, com.sun.xml.internal.ws.api.streaming, com.sun.xml.internal.ws.api.wsdl.parser, com.sun.xml.internal.ws.api.wsdl.writer, com.sun.xml.internal.ws.binding, com.sun.xml.internal.ws.client, com.sun.xml.internal.ws.client.dispatch, com.sun.xml.internal.ws.client.sei, com.sun.xml.internal.ws.config.management.policy, com.sun.xml.internal.ws.developer, com.sun.xml.internal.ws.encoding, com.sun.xml.internal.ws.encoding.fastinfoset, com.sun.xml.internal.ws.encoding.policy, com.sun.xml.internal.ws.encoding.soap, com.sun.xml.internal.ws.encoding.soap.streaming, com.sun.xml.internal.ws.encoding.xml, com.sun.xml.internal.ws.fault, com.sun.xml.internal.ws.handler, com.sun.xml.internal.ws.message, com.sun.xml.internal.ws.message.jaxb, com.sun.xml.internal.ws.message.saaj, com.sun.xml.internal.ws.message.source, com.sun.xml.internal.ws.message.stream, com.sun.xml.internal.ws.model, com.sun.xml.internal.ws.model.soap, com.sun.xml.internal.ws.model.wsdl, com.sun.xml.internal.ws.org.objectweb.asm, com.sun.xml.internal.ws.policy, com.sun.xml.internal.ws.policy.jaxws, com.sun.xml.internal.ws.policy.jaxws.spi, com.sun.xml.internal.ws.policy.privateutil, com.sun.xml.internal.ws.policy.sourcemodel, com.sun.xml.internal.ws.policy.sourcemodel.attach, com.sun.xml.internal.ws.policy.sourcemodel.wspolicy, com.sun.xml.internal.ws.policy.spi, com.sun.xml.internal.ws.policy.subject, com.sun.xml.internal.ws.protocol.soap, com.sun.xml.internal.ws.protocol.xml, com.sun.xml.internal.ws.resources, com.sun.xml.internal.ws.server, com.sun.xml.internal.ws.server.provider, com.sun.xml.internal.ws.server.sei, com.sun.xml.internal.ws.spi, com.sun.xml.internal.ws.streaming, com.sun.xml.internal.ws.transport, com.sun.xml.internal.ws.transport.http, com.sun.xml.internal.ws.transport.http.client, com.sun.xml.internal.ws.transport.http.server, com.sun.xml.internal.ws.util, com.sun.xml.internal.ws.util.exception, com.sun.xml.internal.ws.util.localization, com.sun.xml.internal.ws.util.pipe, com.sun.xml.internal.ws.util.xml, com.sun.xml.internal.ws.wsdl, com.sun.xml.internal.ws.wsdl.parser, com.sun.xml.internal.ws.wsdl.writer, com.sun.xml.internal.ws.wsdl.writer.document, com.sun.xml.internal.ws.wsdl.writer.document.http, com.sun.xml.internal.ws.wsdl.writer.document.soap, com.sun.xml.internal.ws.wsdl.writer.document.soap12, com.sun.xml.internal.ws.wsdl.writer.document.xsd, javax.annotation, javax.management, javax.naming, javax.naming.ldap, javax.net, javax.net.ssl, javax.crypto, javax.crypto.spec, javax.sql, javax.sql.rowset, javax.sql.rowset.serial, javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind, javax.xml.validation, javax.xml.namespace, javax.xml.parsers, javax.xml.validation, javax.xml.stream, javax.xml.stream.events, javax.xml.stream.util, javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax, javax.xml.transform.stream, javax.xml.xpath, javax.jws.soap, javax.security, javax.security.cert, com.sun.org, com.sun.org.apache, com.sun.org.apache.xml, com.sun.org.apache.xml.internal, com.sun.org.apache.xml.internal.utils, com.sun.org.apache.xpath, com.sun.org.apache.xpath.internal, com.sun.org.apache.xpath.internal.jaxp, com.sun.org.apache.xpath.internal.objects, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.events, org.w3c.dom.ls, org.w3c.dom.css, org.w3c.dom.html, org.w3c.dom.ranges, org.w3c.dom.stylesheets, org.w3c.dom.traversal, org.w3c.dom.views, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers, sun.misc, sun.misc.unsafe, sun.security, sun.security.util, javax.servlet;version=3.1, javax.servlet.http;version=3.1 |
Config File/Environment Variable |
org.killbill.osgi.system.bundle.export.packages.extra/ KB_org_killbill_osgi_system_bundle_export_packages_extra |
Extra packages to export from the system bundle |
- |
Config File/Environment Variable |
org.killbill.billing.plugin.mandatory.plugins/ KB_org_killbill_billing_plugin_mandatory_plugins |
Comma separated list of mandatory plugins |
- |
Config File/Environment Variable |
Rbac Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.rbac.globalSessionTimeout/ KB_org_killbill_rbac_globalSessionTimeout |
System-wide default time that any session may remain idle before expiring |
1h |
Config File/Environment Variable |
Security Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.security.shiroResourcePath/ KB_org_killbill_security_shiroResourcePath |
Path to the shiro.ini file (classpath, url or file resource) |
classpath:shiro.ini |
Config File/Environment Variable |
org.killbill.security.shiroNbHashIterations/ KB_org_killbill_security_shiroNbHashIterations |
Sets the number of times submitted credentials will be hashed before comparing to the credentials stored in the system |
200000 |
Config File/Environment Variable |
org.killbill.security.ldap.userDnTemplate/ KB_org_killbill_security_ldap_userDnTemplate |
LDAP server’s User DN format (e.g. uid={0},ou=users,dc=mycompany,dc=com) |
Null |
Config File/Environment Variable |
org.killbill.security.ldap.dnSearchTemplate/ KB_org_killbill_security_ldap_dnSearchTemplate |
LDAP server’s DN search template (e.g. sAMAccountName={0}) for search-then-bind authentication (in case a static DN format template isn’t enough) |
Null |
Config File/Environment Variable |
org.killbill.security.ldap.searchBase/ KB_org_killbill_security_ldap_searchBase |
LDAP search base to use |
Null |
Config File/Environment Variable |
org.killbill.security.ldap.groupSearchFilter/ KB_org_killbill_security_ldap_groupSearchFilter |
LDAP search filter to use to find groups (e.g. memberOf=uid={0},ou=users,dc=mycompany,dc=com) |
memberOf=uid={0} |
Config File/Environment Variable |
org.killbill.security.ldap.groupNameId/ KB_org_killbill_security_ldap_groupNameId |
Group name attribute ID in LDAP |
memberOf |
Config File/Environment Variable |
org.killbill.security.ldap.permissionsByGroup/ KB_org_killbill_security_ldap_permissionsByGroup |
LDAP permissions by LDAP group |
admin = :\n" |
Config File/Environment Variable |
org.killbill.security.ldap.url/ KB_org_killbill_security_ldap_url |
LDAP server url |
ldap://127.0.0.1:389 |
Config File/Environment Variable |
org.killbill.security.ldap.systemUsername/ KB_org_killbill_security_ldap_systemUsername |
LDAP username |
Null |
Config File/Environment Variable |
org.killbill.security.ldap.systemPassword/ KB_org_killbill_security_ldap_systemPassword |
LDAP password |
Null |
Config File/Environment Variable |
org.killbill.security.ldap.authenticationMechanism/ KB_org_killbill_security_ldap_authenticationMechanism |
LDAP authentication mechanism (e.g. DIGEST-MD5) |
simple |
Config File/Environment Variable |
org.killbill.security.ldap.disableSSLCheck/ KB_org_killbill_security_ldap_disableSSLCheck |
Whether to ignore SSL certificates checks |
false |
Config File/Environment Variable |
org.killbill.security.ldap.followReferrals/ KB_org_killbill_security_ldap_followReferrals |
Whether to follow referrals |
false |
Config File/Environment Variable |
org.killbill.security.okta.url/ KB_org_killbill_security_okta_url |
Okta org full url |
Null |
Config File/Environment Variable |
org.killbill.security.okta.apiToken/ KB_org_killbill_security_okta_apiToken |
Okta API token |
Null |
Config File/Environment Variable |
org.killbill.security.okta.permissionsByGroup/ KB_org_killbill_security_okta_permissionsByGroup |
Okta permissions by Okta group |
admin = :\n" |
Config File/Environment Variable |
org.killbill.security.auth0.url/ KB_org_killbill_security_auth0_url |
Auth0 tenant full url |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.clientId/ KB_org_killbill_security_auth0_clientId |
Auth0 application Client ID |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.clientSecret/ KB_org_killbill_security_auth0_clientSecret |
Auth0 application Client Secret |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.apiIdentifier/ KB_org_killbill_security_auth0_apiIdentifier |
Auth0 API identifier |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.issuer/ KB_org_killbill_security_auth0_issuer |
Auth0 JWT expected issuer |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.audience/ KB_org_killbill_security_auth0_audience |
Auth0 JWT expected audience |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.usernameClaim/ KB_org_killbill_security_auth0_usernameClaim |
JWT claim to use as the user name |
sub |
Config File/Environment Variable |
org.killbill.security.auth0.databaseConnectionName/ KB_org_killbill_security_auth0_databaseConnectionName |
Auth0 database connection name |
Null |
Config File/Environment Variable |
org.killbill.security.auth0.connectTimeout/ KB_org_killbill_security_auth0_connectTimeout |
Auth0 client connect timeout |
5s |
Config File/Environment Variable |
org.killbill.security.auth0.readTimeout/ KB_org_killbill_security_auth0_readTimeout |
Auth0 client read timeout |
60s |
Config File/Environment Variable |
org.killbill.security.auth0.requestTimeout/ KB_org_killbill_security_auth0_requestTimeout |
Auth0 client request timeout |
60s |
Config File/Environment Variable |
org.killbill.security.auth0.allowedClockSkew/ KB_org_killbill_security_auth0_allowedClockSkew |
Auth0 JWT allowed clock skew |
60s |
Config File/Environment Variable |
org.killbill.security.skipAuthForPlugins/ KB_org_killbill_security_skipAuthForPlugins |
Specifies whether authentication should be skipped for plugins |
false |
Config File/Environment Variable |
killbill.server.ldap/- |
Is LDAP enabled |
false |
System property |
killbill.server.okta/- |
Is OKTA enabled |
false |
System property |
killbill.server.auth0/- |
Is AUTH0 enabled |
false |
System Property |
killbill.server.rbac/- |
Is RBAC enabled |
true |
System Property |
Logging Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
killbill.server.log.obfuscate.keywords |
Keywords to obfuscate |
accountnumber,authenticationdata,bankaccountnumber,banknumber,bic,cardvalidationnum,cavv,ccFirstName,ccLastName,ccNumber,ccTrackData, ccVerificationValue,ccvv,cvNumber,cvc,cvv,email,iban,name,number,password, xid |
System Property |
killbill.server.log.obfuscate.patterns |
Key value patterns to use |
\s*=\s*'()',\s*=\s*"([^"])" |
System Property |
killbill.server.log.obfuscate.patterns.separator |
Key value pattern separator |
, |
System Property |
Cache Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.catalog.frequentValuesCacheSize |
Number of distinct price values to be held in cache |
1000 |
System property |
org.killbill.cache.disabled/ KB_org_killbill_cache_disabled |
Caches to be disabled |
null |
Config File/Environment Variable |
EHCache Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.cache.config.location/ KB_org_killbill_cache_config_location |
Path to Ehcache XML configuration |
ehcache.xml |
Config File/Environment Variable |
Redis Cache Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.cache.config.redis/ KB_org_killbill_cache_config_redis |
Whether Redis integration for caching is enabled |
false |
Config File/Environment Variable |
org.killbill.cache.config.redis.url/ KB_org_killbill_cache_config_redis_url |
Redis URL |
redis://127.0.0.1:6379 |
Config File/Environment Variable |
org.killbill.cache.config.redis.connectionMinimumIdleSize/ KB_org_killbill_cache_config_redis_connectionMinimumIdleSize |
Minimum number of connections |
1 |
Config File/Environment Variable |
org.killbill.cache.config.redis.password/ KB_org_killbill_cache_config_redis_password |
Redis Password |
Null |
Config File/Environment Variable |
Subscription Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.subscription.align.effectiveDateForExistingSubscriptions/ KB_org_killbill_subscription_align_effectiveDateForExistingSubscriptions |
Whether to align the per-plan effectiveDateForExistingSubscriptions with the next per-subscription BCD |
false |
Per-Tenant/Config File/Environment Variable |
Translation Properties
Note
|
The Per-tenant properties mentioned below can be set by invoking the corresponding endpoints in the translation and template sections in the API docs. |
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.default.locale/ KB_org_killbill_default_locale |
Default Killbill locale |
en_US |
Config File/Environment Variable |
org.killbill.catalog.bundlePath/ KB_org_killbill_catalog_bundlePath |
Path to the catalog translation bundle |
org/killbill/billing/util/template/translation/CatalogTranslation |
Per-tenant/Config File/Environment Variable |
org.killbill.template.bundlePath/ KB_org_killbill_template_bundlePath |
Path to the invoice template translation bundle |
org/killbill/billing/util/invoice/translation/InvoiceTranslation |
Per-tenant/Config File/Environment Variable |
org.killbill.template.name/ KB_org_killbill_template_name |
Path to the HTML invoice template |
org/killbill/billing/util/invoice/templates/HtmlInvoiceTemplate.mustache |
Per-tenant/Config File/Environment Variable |
org.killbill.manualPayTemplate.name/ KB_org_killbill_manualPayTemplate_name |
Path to the invoice template for accounts with MANUAL_PAY tag |
org/killbill/billing/util/email/templates/HtmlInvoiceTemplate.mustache |
Per-tenant/Config File/Environment Variable |
org.killbill.template.invoiceFormatterFactoryPluginName/ KB_org_killbill_template_invoiceFormatterFactoryPluginName |
Invoice formatter factory plugin name |
null |
Config File/Environment Variable |
Queue Properties
Property Name/Environment Variable Name | Description | Default Value | Configuration Method |
---|---|---|---|
org.killbill.queue.creator.name /KILLBILL_QUEUE_CREATOR_NAME |
Allow to override the default naming based on Hostname |
- |
System Property/Environment Variable |
org.killbill.queue.creator.autoGeneratedName /KILLBILL_QUEUE_CREATOR_AUTOGENERATE_NAME |
If set to true and |
true |
System Property/Environment Variable |
Note
|
In case of a Tomcat-based environment, the above properties can be configured as system properties. In case of Docker systems, they can be set via the environment variables mentioned above. |
Persistent Bus/Notification Queue Configuration Notes
Note that the Persistence Bus and Notification Queue configuration properties use a substitution parameter called instanceName
. This is because the properties defined here are built to be used across multiple instances. Kill Bill typically uses two persistent buses named main
and external
and one notification queue named main
. Thus, instanceName
needs to be replaced with appropriate values while specifying these properties. Some common examples of instanceName
are main
, external
, and analytics
Setup Specific Notes
As explained in the Getting Started guide, there are several ways to install Kill Bill. In addition, you may also be using Kill Bill for development/debugging using a standalone setup.
This section provides some setup specific instructions such as location of the default killbill.properties
and so forth.
AWS
In case of an AWS installation, the killbill.properties
is present at the /var/lib/killbill/config/killbill.properties
location.
Docker
In case of a Docker installation, the killbill.properties
file is present at the /var/lib/killbill/killbill.properties
path within the Docker container. You can modify the properties defined here.
Alternatively, you can bind mount your own file, by specifying -v /path/to/killbill.properties:/var/lib/killbill/killbill.properties
when starting your container.
You can also specify configuration properties using individual environment variables as specified in the "Configuration Properties Table" above.
Tomcat/Jetty
In case of a Tomcat Installation, the global configuration properties and system properties need to be specified within the TOMCAT_HOME/conf/catalina.properties
file.
In case of a Standalone Jetty Setup, configuration properties need to be specified within an explicit killbill.properties
file. Its path needs to be specified via the org.killbill.server.properties
Java system property while starting the application as follows:
mvn -Dorg.killbill.server.properties=file:///PROJECT_ROOT/profiles/killbill/src/main/resources/killbill-server.properties
Additional system properties can also be set at the commandline as follows:
mvn -Dorg.killbill.server.properties=file:///PROJECT_ROOT/profiles/killbill/src/main/resources/killbill-server.properties -Dkillbill.server.log.obfuscate.keywords=accountnumber,authenticationdata,bankaccountnumber,banknumber
Kaui Configuration
In addition to Kill Bill, Kaui can also be configured via some configuration properties. These can either be set as system properties or environment variables. Note that in case of a Tomcat installation, system properties can be specified in the catalina.properties
file.
The following table lists the Kaui Configuration properties.
Database Properties
Property Name/Environment Variable Name | Description | Default Value |
---|---|---|
kaui.db.adapter/ KAUI_DB_ADAPTER |
Specifies the Kaui Database Adapter |
mysql2 |
kaui.db.encoding/ KAUI_DB_ENCODING |
Specifies the Kaui Database Encoding |
utf8 |
kaui.db.database/ KAUI_DB_DATABASE |
Specifies the Kaui Database Encoding (only applicable if |
/var/tmp/kaui.sqlite3 |
kaui.db.url/ KAUI_DB_URL/ KAUI_CONFIG_DAO_URL |
Specifies the Kaui Database URL |
jdbc:mysql://localhost:3306/kaui?useUnicode=true&useJDBCCompliantTimezoneShift=true& useLegacyDatetimeCode=false&serverTimezone=UTC |
kaui.db.username/ KAUI_DB_USERNAME/ KAUI_CONFIG_DAO_USER |
Specifies the Kaui Database Username |
root |
kaui.db.password/ KAUI_DB_PASSWORD/ KAUI_CONFIG_DAO_PASSWORD |
Specifies the Kaui Database Password |
root |
kaui.db.host/ KAUI_DB_HOST |
Specifies the Kaui Database Host |
None |
kaui.db.port/ KAUI_DB_PORT |
Specifies the Kaui Database Port |
None |
kaui.db.pool/ KAUI_DB_POOL |
Specifies the Kaui Database thread pool |
50 |
kaui.db.timeout/ KAUI_DB_TIMEOUT |
Specifies the Kaui Database connection timeout |
5000 |
Kill Bill Client Properties
Property Name/Environment Variable Name | Description | Default Value |
---|---|---|
kaui.url/ KILLBILL_URL/KAUI_KILLBILL_URL |
Specifies the Kill Bill URL |
|
kaui.disable_ssl_verification/ KILLBILL_DISABLE_SSL_VERIFICATION/ KAUI_KILLBILL_DISABLE_SSL_VERIFICATION |
Whether to ignore SSL certificates checks |
false |
kaui.read_timeout/ KILLBILL_READ_TIMEOUT/ KAUI_KILLBILL_READ_TIMEOUT |
Specifies the time KAUI waits to receive response from Kill Bill server |
60000 |
kaui.connection_timeout/ KILLBILL_CONNECTION_TIMEOUT/ KAUI_KILLBILL_CONNECTION_TIMEOUT |
Specifies the time KAUI waits to establish connection with Kill Bill server |
60000 |
Kaui Properties
Property Name/Environment Variable Name | Description | Default Value |
---|---|---|
kaui.demo/ KAUI_DEMO_MODE |
Whether to run Kaui in demo mode |
false |
kaui.plugins_whitelist/ KAUI_PLUGINS_WHITELIST |
Kaui plugins to be shown in the installed plugins list |
None (shows all installed plugins) |
kaui.root_username/ KAUI_ROOT_USERNAME |
Specifies the root username |
admin |
kaui.disable_sign_up_link/ KAUI_DISABLE_SIGN_UP_LINK |
Whether to disable the sign up link |
false |
kaui.chargeback_reason_codes/ KAUI_CHARGEBACK_REASON_CODES |
Default reason codes for chargebacks |
None |
kaui.credit_reason_codes/ KAUI_CREDIT_REASON_CODES |
Default reason codes for credits |
None |
kaui.invoice_item_reason_codes/ KAUI_INVOICE_ITEM_REASON_CODES |
Default reason codes for item adjustments |
None |
kaui.invoice_payment_reason_codes/ KAUI_INVOICE_PAYMENT_REASON_CODES |
Default reason codes for invoice payments |
None |
kaui.payment_reason_codes/ KAUI_PAYMENT_REASON_CODES |
Default reason codes for payments |
None |
kaui.refund_reason_codes/ KAUI_REFUND_REASON_CODES |
Default reason codes for refunds |
None |
Encryption Properties
Property Name/Environment Variable Name | Description | Default Value |
---|---|---|
kaui.encryption.filename/ KAUI_ENCRYPTION_FILENAME |
File containing the encryption keys |
config/symmetric-encryption.yml |
kaui.secret_key_base/ KAUI_SECRET_KEY_BASE |
Secret key base used for securing session data and other sensitive information. |
Any string value (A long randomly generated string of characters is recommended to be set for Tomcat installation. In case of AWS/Docker, a default value is auto-generated.) |