# Configuration file: trapi-connection.properties

This page describes configuration properties that can be set in a RET adapter’s  `trapi-connection.properties` file, which configures the adapter’s connection to RET.

For descriptions of a RET adapter’s Caplin DataSource options, see [Configuration file: datasource.conf](ret-datasource-conf.md).

For descriptions of a RET adapter’s application options, see [Configuration file: adapter.properties](ret-adapter-properties.md).

## File location and format

When a RET adapter is deployed to a Caplin Deployment Framework, the adapter’s TrAPI connection configuration file is available for editing at `global_config/overrides/__adapter__/etc/trapi-connection.properties`.

The configuration file is in [INI](https://en.wikipedia.org/wiki/INI_file) format.

**Example trapi-connection.properties file for a RET LBN adapter**

```ini
[common]
host=192.168.1.50
port=8912
reconnection_exponential_initial_interval=5
reconnection_exponential_max_interval=600

[LBNConnection]
username=lbn_proxy
password=letmein
order_type=LBN

[AdminConnection]
username=lbn_admin
password=letmein
order_type=admin
```

## Common connection properties

Configuration properties common to all connections.

* **admin_log_wrapped**

  **Default:** `false`

  Enables wrapping of Admin API log output with the Adapter logging framework
* **add_userset_users**

  **Default:** `false`

  Loads the users from a user’s userset assignments
* **add_user_to_own_userset**

  **Default:** `true`
* **available_locations**

  **Default:** _null_

  A comma separated list of locations and their time zones in the following format:

  ```
  &lt;location>:&lt;timezone>,...
  ```

  where `<timezone>` is a valid tzdata timezone.
* **cache_order_histories**

  **Default:** `true`

  When true order history is cached as part of order caching.
* **can_trade_on_settlement_ccy_holidays**

  **Default:** _null_

  Whether or not settlement currency holidays should be valid to trade on
* **connection_type**

  **Default:** `direct_scs`

  The connection type.
* **conf_directory**

  **Default:** `etc`

  Folder holding all configuration files.
* **connection_pool_key**

  **Default:** `default_connection_pool_key`

  Connection pool key
* **currency_pairs_to_load**

  **Default:** _null_

  If only certain currency pairs should be loaded, list them here. By default all currency pairs are loaded.
* **default_transaction_timeout**

  **Default:** `15000`

  The default timeout for keeping a connection locked in each of the engine locking transactions.
* **host**

  **Default:** _null_

  A comma-separated list of hosts on which the SCS Relay runs. Each host can be a hostname or IP address.
* **instruments**

  **Default:** _null_

  The instruments configured in the RET system. Required if there are more instruments than FX.CROSS.
* **label**

  **Default:** `no label`

  Reserved property name that is populated from the section header, e.g `[connection 1]`
* **lbn-heartbeat**

  **Default:** `10`
* **lbn_log_append**

  **Default:** `true`
* **lbn_log_location**

  **Default:** `var`

  Location of the LBN ret log files
* **lbn_log_name**

  **Default:** `LBN_@.log`
* **lbn_resource**

  **Default:** `GID.orders`
* **lbn_paging_enabled**

  **Default:** _null_

  Enable query records with paging.
* **lbn_paging_records_per_page**

  **Default:** `500`

  Number of records per page.
* **load_inverse_currency_pairs**

  **Default:** `false`

  Whether the admin connection should automatically create inverse currency pairs.
* **modify_strategy_timeout**

  **Default:** `120000`

  The time to keeping a strategy locked measured from the last action in a strategy modify transaction.
* **non_negotiated**

  **Default:** `true`

  When set to `true`, ESP trades cannot be negotiated by a dealer.
* **obfuscated_password_method**

  **Default:** `aes256`

  The cypher used to encrypt passwords.
* **obfuscated_password_data**

  **Default:** _null_

  Base 64 encoded key
* **obfuscated_password**

  **Default:** _null_

  Base 64 encoded password to the key in [obfuscated_password_data](#obfuscated_password_data).
* **order_register_delay**

  **Default:** `1500`

  The delay in milliseconds to wait between receiving an `onOrderRegister` callback from TrAPI and processing it. This is a workaround allowing TrAPI time to put itself in a consistent state.
* **order_cancel_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for cancel order engine transactions
* **order_delete_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for delete order engine transactions
* **order_modify_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for modify order engine transactions
* **port**

  **Default:** _null_

  A comma-separate list of ports, corresponding the comma-separated list of option `host`, at which the SCS Relay can be contacted.
* **rate_subscription_thread_pool_size**

  **Default:** `12`

  Pool size of rate subscription threads.
* **restrict_inverse_currency_pairs**

  **Default:** `true`

  Determines whether the inverse of a restricted currency pair should also be restricted.
* **reconnection_interval**

  **Default:** `5`

  The interval, in seconds, between connection and re-connection attempts.
* **reconnection_attempts**

  **Default:** `-1`

  The number of re-connection attempts to be made. Set to `-1` for no limit.
* **reconnection_exponential_initial_interval**

  **Default:** _null_

  The initial reconnection interval interval value which will be increased exponentially
* **reconnection_exponential_max_interval**

  **Default:** _null_

  The maximum reconnection interval value which can be set exponentially
* **re_request_new_notifications**

  **Default:** `false`

  If true we re-request the deal from Refinitiv. On Default false we just process the incoming deal as it is.
* **ret_log_name**

  **Default:** `ret.log`

  The desired name of the TrAPI log
* **ret_log_location**

  **Default:** `var`

  The desired location of the TrAPI/LBN/AdminAPI logs. Bypassed on Admin API if [admin_log_wrapped](#admin_log_wrapped) is true.
* **ret_log_append**

  **Default:** `true`

  True if you want the logs to be appended or false if you want individual logs
* **ret_log_enabled**

  **Default:** `false`

  Enable TrAPI/LBN/AdminAPI logging. Bypassed on Admin API if [admin_log_wrapped](#admin_log_wrapped) is true.
* **strategy_unlock_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for unlock order engine transactions
* **strategy_lock_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for lock order engine transactions
* **strategy_activate_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for activate order engine transactions
* **strategy_deactivate_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for deactivate order engine transactions
* **strategy_submit_and_activate_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for submit and activate order engine transactions
* **strategy_submit_only_transaction_timeout**

  **Default:** _null_

  The default timeout for keeping a connection locked for submit order engine transactions
* **timeout_multiplier**

  **Default:** `0.990`

  Optional property to multiply calculate how many seconds per time unit used in timeouts
* **trading_connection_staging_interval**

  **Default:** `5000`

  The time in milliseconds between which trading connections are connected to RET.
* **trapi_properties**

  **Default:** _null_

  A pipe separated list of TrAPIProperties
* **trapi_response_warning_timeout**

  **Default:** 60000 | **Since:** RET Adapter Toolkit 4.15.0

  The timeout (in milliseconds) after which the FxTradingAdapter and LimitOrderAdapter log a warning if they have not received a response from TrAPI.
* **trapi_system_properties**

  **Default:** _null_

  A set of TrAPI system properties, written as a pipe-separated list of key-value pairs. For a list of system properties you can set, refer to the TrAPI documentation.

  **Format**

  ```
  <key>=<value>[|...]
  ```

  **Example: setting a single system property**

  ```
  trapi_system_properties=com.m_systems.trapi.request_timeout=20000
  ```

  **Example: setting multiple system properties**

  ```
  trapi_system_properties=com.m_systems.trapi.request_timeout=20000|com.m_systems.trapi.callback_threads=5
  ```
* **use_encrypted_passwords**

  **Default:** _null_
* **user_groups_to_load**

  **Default:** _null_

  If only certain user groups should be loaded, list them here. By default all user groups are loaded.
* **userset_users**

  **Default:** _null_

  A comma-separated list of users from which to load user sets.
* **use_legacy_modification_handling**

  **Default:** `false`

  When received `onOrderModify` update the order with modified event data instead of retrieving it from RET.
* **use_check_price_tolerance**

  **Default:** `false`

  Set this flag for order submit if LOMSServer setting `CheckPriceTolerance=1` is set to wait for `onTolerancePass` and/or `onToleranceFail` callbacks
* **use_client_decimal_places**

  **Default:** `true`

  If true then sets 'Use Client Decimal Places' to true on a trade before submitting it. This must be true if 'Edit Extra Spot DPS' is enabled in your RET Admin Applet, else you may see inconsistent SPOT and All In Rates.
* **url_encode_taker_order_custom**

  **Default:** `false`

  Defines whether the taker order custom field for orders and trades is URL Encoded.
* **wait_for_activate_success**

  **Default:** `false`

  Determines whether Order Activation should be regarded as successful on a `onOrderModify` state change to `ACCEPTING` (e.g. if Trader approval is required), or if it should wait for `onTolerancePass` and/or (depending on `USE_CHECK_PRICE_TOLERANCE`) `onOrderActivate` callbacks.

## Specific connection properties

Configuration properties specific to a single connection.

* **client**

  **Default:** _null_

  Optional parameter for rates connections, if specified then the rate connection will explicitly select this proxy client
* **las_resource**

  **Connection:** LBN connection\
  **Default:** `GID.logs`

  Log access server (LAS) resource name.
* **order_type**

  **Default:** `market`

  Specifies which type of RET Connection to make: `market`, `limit_monitor`, `limit_trading`, `LBN`, or `admin`.
* **password**

  **Default:** _null_

  Password of the RET user for this connection
* **use_for_trading**

  **Default:** `false`

  Set to true if this is a trading connection, which means it is not necessary to specify a client (unlike rates connections).
* **username**

  **Default:** _null_

  Username of the RET user for this connection (all connections in a suite of RET adapters must have unique user names)
