Basic Configuration

A guide covering commonly adjusted parameters when setting up a new cluster.

This section covers the parameters that are commonly adjusted when setting up a new cluster. We recommend that you also review the detailed Configuration Reference section before moving a cluster into production.

The bondy.conf file

A Bondy node has a bondy.conf configuration file that is used to set a wide variety of static configuration options for Bondy and its location depends on the type of install you are using shown in the following table.

Install Type

bondy.conf location

Source install

/etc

Docker Image

/bondy/etc

The bondy.conf file is used to set a wide variety of configuration options for Bondy. The file uses a sysctl-like syntax that looks like this:

bondy.conf
nodename = bondy@127.0.0.1
distributed_cookie = bondy

Notice that:

  • A node must be restarted for any changes in the bondy.conf file to take effect.

  • For every option not provided by your configuration file Bondy will define a default value (also specified in the following sections).

  • You should apply the same bondy.conf file for every node in a cluster.

Getting your environment ready

Bondy can accumulate a large number of open file handles during operation. The creation of numerous data files is normal, and the storage backend performs periodic merges of data file collections to avoid accumulating file handles.

To accommodate this you should increase the open files limit on your system. We recommend you to read the Configuring Open File Limits section.

Security Settings

To get started we need to define at least one WAMP Realm.

A Realm is an administrative domain in WAMP, it acts as a namespace for all resources (users, groups, permissions, procedures and topics). WAMP is a session-based protocol and all messages are routed only through the session's Realm.

To get started we recommend you disable security until you get to know how to configure the security subsystem. For that you need to create a Realm you will connect to, and disable security using the security_enabled parameter which accepts the values on or offwhich, as you might suspect, map to the boolean values true and false respectively.

You can achieve this by creating a security configuration file and letting Bondy know its location via the bondy.conf file. Alternatively you can use the Admin REST API or the WAMP API to create the realm.

Configuration Files
Admin REST API
WAMP API

The security configuration file can be named anything you like. The important thing is that we use the same name on the bondy.conf file as shown in the following snippets.

[
{
"uri": "com.myapp.test",
"description": "A test realm",
"security_enabled" : false
}
]
nodename = bondy@127.0.0.1
distributed_cookie = bondy
security.config_file = /bondy/etc/security_conf.json

Notice that in the case of the REST API the security_enabled parameter takes a JSONboolean value.

curl -X "POST" "http://localhost:18081/realms/" \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'Accept: application/json; charset=utf-8' \
-d $'{
"uri": "com.leapsight.test",
"description": "Test",
"security_enabled" : false
}'

To be defined.

The Security Settings section provides the details of the Realm resource and the security configuration file format and the supported parameters, but for now the above snippet will suffice to get you going.

Static vs Dynamic Configuration

There is a difference between creating a Realm using configuration files (static configuration) or the REST or WAMP APIs (dynamic configuration).

The effect of both methods is that a Realm resource is persisted in Bondy's replicated storage, and if part of the cluster, replicated to all nodes. However, the configuration files are re-applied every time a node is restarted, and as a result, you might be replacing any changes that you might have done using the APIs before restart.

We recommend using static configuration for things that might not change during the lifetime of your system e.g. realms, groups and permissions, administrative or infrastructure users, OAuth2 clients.

General Settings

Starting with version 0.8.7 Bondy supports a coordinated startup process but we will disable most of it for now, add the following 3 lines to your configuration file.

bondy.conf
nodename = bondy@127.0.0.1
distributed_cookie = bondy
security.config_file = /bondy/etc/security_conf.json
startup.wait_for_partitions = on
startup.wait_for_hashtrees = off
startup.wait_for_aae_exchange = off

Storage Settings