anchor.diff: -= Kill Bill Configuration Guide
  += Kill Bill and Kaui Configuration Guide
   
   Kill Bill supports configuring the system by specifying external properties. This document explains how such properties can be configured.
   
  -== Overview
  +== 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* - Can be used in rare cases to define configuration properties. 
  +* *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. 
   
  
positive.code: |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/EventConfig.java[EventConfig]  |Includes event related configuration properties   
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java[InvoiceConfig]   |Includes invoice related configuration properties   
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/JaxrsConfig.java[JaxrsConfig.java]   |Includes Jaxrs related configuration properties      
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/MultiTenantEventConfig.java[MultiTenantEventConfig] |   
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/NotificationConfig.java[NotificationConfig]|Includes push notifications related configuration properties
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/PaymentConfig.java[PaymentConfig]|Includes payment related configuration properties
  |https://github.com/killbill/killbill/blob/2b80b0445c7baf1f613425bb236a8cb36f1f377a/util/src/main/java/org/killbill/billing/util/config/definition/RbacConfig.java[RbacConfig]| Includes Rbac related configuration properties
  
negative.code: mvn -Dorg.killbill.server.properties=file:///PROJECT_ROOT/profiles/killbill/src/main/resources/killbill-server.properties
  ----
  
  == 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. 
  
  [options="header",cols="1,1,1,1,1"]
  |===
  |Category   |Property Name   |Environment Variable   |Description   |Default Value   
  //----------------------------------------
  |Database   |kaui.db.adapter   |KAUI_DB_ADAPTER   |Specifies the Kaui Database Adapter   |mysql2   
  |Database   |kaui.db.encoding   |KAUI_DB_ENCODING   |Specifies the Kaui Database Encoding   |utf8   
  |Database   |kaui.db.database   |KAUI_DB_DATABASE   |Specifies the Kaui Database Encoding (only applicable if `kaui.db.adapter=sqlite3`   |/var/tmp/kaui.sqlite3   
  |Database   |kaui.db.url   |KAUI_DB_URL   |Specifies the Kaui Database URL   |jdbc:mysql://localhost:3306/kaui?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC   
  |Database   |kaui.db.username   |KAUI_DB_USERNAME   |Specifies the Kaui Database Username   |root   
  |Database   | kaui.db.password  |KAUI_DB_PASSWORD   |Specifies the Kaui Database Password   |root   
  |Database   |kaui.db.host   |KAUI_DB_HOST   |Specifies the Kaui Database Host   |None   
  |Database   |kaui.db.port   |KAUI_DB_PORT   |Specifies the Kaui Database Port   |None   
  |Database   |kaui.db.pool   |KAUI_DB_POOL   |Coming Soon   |50   
  |Database   |kaui.db.timeout   |KAUI_DB_TIMEOUT   |Coming Soon   |5000   
  |Kill Bill Client   |kaui.url   |KILLBILL_URL/KAUI_KILLBILL_URL   |Specifies the Kill Bill URL   |http://127.0.0.1:8080   
  |Kill Bill Client|kaui.disable_ssl_verification   |KILLBILL_DISABLE_SSL_VERIFICATION/KAUI_KILLBILL_DISABLE_SSL_VERIFICATION   |Coming Soon   |Coming Soon   
  |Kill Bill Client   |kaui.read_timeout   |KILLBILL_READ_TIMEOUT/KAUI_KILLBILL_READ_TIMEOUT   |Coming Soon   |60000   
  |Kill Bill Client   |kaui.connection_timeout   |KILLBILL_CONNECTION_TIMEOUT/KAUI_KILLBILL_CONNECTION_TIMEOUT   |Coming Soon   |60000   
  |Kaui   |kaui.demo   |KAUI_DEMO_MODE   |Coming Soon   |Coming Soon   
  |Kaui   |kaui.plugins_whitelist   |KAUI_PLUGINS_WHITELIST   |Coming Soon   |None   
  |Kaui   |kaui.root_username   |KAUI_ROOT_USERNAME   |Coming Soon   |admin   
  |Kaui   |kaui.disable_sign_up_link   |KAUI_DISABLE_SIGN_UP_LINK   |Coming Soon   |Coming Soon   
  |Kaui   |kaui.chargeback_reason_codes   |KAUI_CHARGEBACK_REASON_CODES   |Coming Soon   |None   
  |Kaui   |kaui.credit_reason_codes   |KAUI_CREDIT_REASON_CODES   |Coming Soon   |None   
  |Kaui   |kaui.invoice_item_reason_codes   |KAUI_INVOICE_ITEM_REASON_CODES   |Coming Soon   |None 
  |Kaui   |kaui.invoice_payment_reason_codes   |KAUI_INVOICE_PAYMENT_REASON_CODES   |Coming Soon   |None 
  |Kaui   |kaui.payment_reason_codes | KAUI_PAYMENT_REASON_CODES  |Coming Soon   |None   
  |Kaui   |kaui.refund_reason_codes   |KAUI_REFUND_REASON_CODES   |Coming Soon   |None 
  |Encryption   |kaui.encryption.filename   |KAUI_ENCRYPTION_FILENAME   |Coming Soon   |config/symmetric-encryption.yml 
  |===