This document describes the On-Prem Connector toml config file which
lives on the client. When the On-Prem Connector starts up (either
the client or server), it will create a file with default values if one
does not already exist. The 'init' command for petit-client
will do
nothing but create this file.
This document is for advanced users only, who wish to edit their configuration directly, either because they are using the command-line tools, or because they want greater control over their Ground2Cloud installation. Normal users shouldn't have to edit this file directly. Instead, most options can be set in the "Config" section of the Ground2Cloud GUI.
All client commands, and the clientd daemon itself, accept a -c
{path}
command-line option to specify a config file. Otherwise, the
default {user_home}/.petit/config.toml
will be used. For example, most
Windows installers put Ground2Cloud in C:\Ground2Cloud
, so you can run
(for example) petit-client status -c C:\Ground2Cloud\config.toml
.
Server
As a user of the Ground2Cloud client, you shouldn't need to worry about
anything in any [server]
section of the configuration. If you'd like
to set up your own Ground2Cloud server installation, please contact
Cloud Elements support.
Client
The client section of the config file is used only by Ground2Cloud client applications and is indicated by the section headers
[client]
[client.vitae]
[client.local]
Section [client]
The [client]
header indicates general-purpose values for the client to
start up.
host
: The hostname of where the server is located.localhost
is a good default for testing, but this should be changed to a valid server host in most environments.port
: The active sshd port on the server. This should almost always be set to22
, the default value.backPort
: The active backchannel port on the server. This should match thebackPort
value on the server: default is3014
.username
: The ssh username to connect to. In most situations, this should match the username the petit server is running as.listenPort
: The client will listen to commands on this port (petit-client
will send commands to this port on localhost). This should be an open port on the server:3015
is usually a good default.logLevel
: The startup log level, which must be one of"warn"
,"info"
or"debug"
. This level takes effect immediately at startup. Runtime changes to the logging level (for example withpetit-client log [level]
) aren't permanent, since they don't save to the config file.bindAddr
: This specifies the client-specified Bind Address property of the reverse SSH tunnel, which determines what address connections are allowed to connect. The default is0.0.0.0
, which permits all IPv4 addresses. Other values could belocalhost
, which permits only local connections (useful if you want to secure access via the HTTP proxy only);::
to permit any IPv6 connection; or any specific IP to limit connections there.
Section [client.vitae]
The [client.vitae]
section contains information about the client's
environment which is sent to the server. It currently has two useful
properties:
brand
: This is the name of the brand for "branded" clients, and is usually set to the customer name who is using the G2C client (e.g."someclient"
). Evaluation or Cloud Elements-branded clients should use the value"ce"
.bundle
: Set to"quickbooks"
for client applications distributed in the QuickBooks-bundled installer. Do not include at all for the unbundled version.
Section [client.local]
The [client.local]
section has values that correspond to the local
service which a Cloud Elements instance connects to. There are only two
properties:
host
: The hostname where the local service lives.localhost
is a good default, since the On-Prem Connector is often installed on the same machine as the local service. However, any reachable hostname can be used, if for example, you want the On-Prem Connector to live in a different intranet zone.port
: The port where local service is reached. The default of8080
is appropriate for other Cloud Elements connection services (for example, the native QuickBooks connector runs on port 8080), but might be changed for other services.
These [client.local]
values may be overriden per-tenant in each
tenant's own config.toml
file, which contains its own [local]
section with a host
and port
value.
Additional Values
In addition to these properties, there are some values that are fixed: they don't show up in the config file, nor can they be altered:
./key
: The location of the client's private key. Theregister
command, if successful, may write the key to this path, and the key will be used both for the initial backchannel handshake and ssh login when petit starts../tenants
: The location of the tenant registration, which has a a list of directories, each of which has its own registration file../upgrades
: A directory where the client temporarily stores downloaded patches to run../client.lock
is the name of the file which is used to ensure that only one client daemon is running at a time. It is a zero-byte file whose mere existance indicates that a client is running../client.pid
is a JSON file whose contents contain the PID and listen port of the currently running client daemon, like this:{"pid":46510,"listen":3016}
Under normal circumstances, this file will exist if and only if its sibling ./client.lock
also exists.
./client.log
is the log file where logs are stored. This contains all logging and debugging info for particular client runs. While not strictly a JSON file, it is a winston-style JSON log output. For example:{"address":"::","family":"IPv6","port":3015,"level":"info","message":"Command listening on","timestamp":"2016-01-22T18:55:24.259Z"} {"level":"info","message":"Client listening.","timestamp":"2016-01-22T18:55:24.260Z"} {"level":"warn","message":"Unable to connect to server at \"localhost:3014\".","timestamp":"2016-01-22T18:55:24.266Z"} {"level":"info","message":"Client closed.","timestamp":"2016-01-22T18:55:24.266Z"} {"level":"info","message":"Backchannel closed.","timestamp":"2016-01-22T18:55:24.266Z"}
To minimize the installation footprint, if the log exceeds 50,000 bytes, then a new log file is started, and the previous one will be suffixed with a counter (e.g. ./client1.log
), and only the last three log files will be kept.