|Manuals

Silent Install — Configuration Examples

These examples show complete JSON configuration files for common deployment scenarios. Each one pairs the JSON with the batch invocation that applies it. For the full set of keys, see the JSON Parameters Reference; for the method itself, see Passing Parameters as a JSON Structure.

Note

The values below are illustrative. Replace IP addresses, host names, thumbprints, and credentials with the values for your environment. Each JSON file is referenced from a batch file that runs msiexec and passes the file with CMDLINE="/SetInstance ""<file>""".

All-in-One with OAuth 2.0 and Brute-Force Protection

A single-server deployment. The services.role key is omitted, so the server is configured in All-in-one mode. It enables OAuth 2.0 authentication and brute-force protection.

{
  "thinfinity": {
    "binding": [{
      "https": true,
      "port": 9443,
      "certificateStore": "MY",
      "thumbprint": "c6667522eaeb9ee705176b70eead22b2cf0784d1"
    }],
    "networkId": "MyNet",
    "options": {
      "allowAnonymousAccess": false
    },
    "protection": {
      "bruteForce": { "enabled": true, "maxAttempts": 3, "minutesToReset": 10 },
      "whiteList": ["192.168.1."]
    },
    "methods": [{
      "class": "TOAuthAuthMethod",
      "name": "Microsoft Entra ID",
      "enabled": true,
      "readOnly": false,
      "virtualPath": "/oauth",
      "clientID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "secretKey": "xxxxx~xxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxx",
      "URL": "https://login.microsoftonline.com/<tenant>/oauth2/authorize",
      "TokenURL": "https://login.microsoftonline.com/<tenant>/oauth2/token",
      "ProfileURL": "tokenSection:2",
      "ProfileUserName": "UserName"
    }]
  }
}

Gateway Node

A Gateway-only node (services.role = 1) that receives external traffic. The simplest way to set a single role is with command-line arguments:

msiexec /i [installer_file.msi] /q /log Gateway.log CMDLINE="/SetInstance services.role:1 networkId:MyNet"

The equivalent JSON file:

{
  "thinfinity": {
    "services": { "role": 1 },
    "networkId": "MyNet",
    "binding": [{ "https": true, "port": 9443 }]
  }
}

Primary Broker with a Pool and Local Telemetry

A Primary Broker (services.role = 2) that hosts a broker pool and stores telemetry metrics locally. With metrics.local set to true, the metrics database runs on this host and metrics.url points to the local instance.

{
  "thinfinity": {
    "services": { "role": 2 },
    "networkId": "MyNet",
    "pools": [{
      "name": "Pool_1",
      "usersLimit": 10000,
      "default": true,
      "method": "breadthFirst"
    }],
    "telemetry": { "localGateway": true, "metrics": true },
    "metrics": { "local": true, "url": "http://127.0.0.1:8428" }
  }
}

Secondary Broker Forwarding Metrics

A Secondary Broker (services.role = 3) that registers with the gateways and forwards its metrics to the Primary Broker. With metrics.local set to false, metrics.url points to the Primary Broker’s address.

This example also sets commGatewayUrls: gatewayUrls points at a load-balanced (NLB) address used for portal/browser traffic, while commGatewayUrls lists the individual gateway nodes behind it — the addresses the Desktop Client connects to directly. See Registering Communications Gateway URLs.

{
  "thinfinity": {
    "services": { "role": 3 },
    "networkId": "MyNet",
    "gatewayUrls": ["https://gateway-nlb.example.com"],
    "commGatewayUrls": ["https://gateway-node1.example.com", "https://gateway-node2.example.com"],
    "telemetry": { "localGateway": true, "metrics": true },
    "metrics": { "local": false, "url": "http://10.0.2.201:8428" }
  }
}

Running an Example

Save the JSON as Automation_workspace.json, place it next to the installer and a batch file, and run the batch file (see Passing Parameters as a JSON Structure for the batch file structure). After installation, validate the result in the Configuration Manager.