Silent Install — JSON Parameters Reference
All silent-install parameters live under a root "thinfinity" node in the JSON configuration file, and the nodes below it mirror the Configuration Manager tabs. The values shown in the tables are illustrative — replace them with the values for your environment.
General Tab — Bindings
The binding node accepts a single object or an array of objects (one per binding).
| Key |
Value type |
Allowed/example value |
https |
boolean |
true/false |
ip |
string |
“127.0.0.1” |
port |
integer |
9443 |
hostName |
string |
“myhost.com” |
certificateStore |
string |
“MY” |
thumbprint |
string |
“c6667522eaeb9ee705176b70eead22b2cf0784d1” |
redirectUrl |
string |
“127.0.0.1/home” |
redirectCode |
integer |
302 |
General Tab — Network ID and Networks
| Key |
Value type |
Allowed/example value |
networkId |
string |
“MyNet”. Use * to auto-generate a GW-<id> value. |
networks[].id |
string |
“MyNet” |
networks[].subdomain |
string |
“*” |
General Tab — Gateway URLs
gatewayUrls registers the primary, public-facing gateway address(es). commGatewayUrls registers dedicated Communications Gateway address(es) — the address the Desktop Client uses for its direct connection instead of the primary one. Set commGatewayUrls when the Primary Gateway is behind a load balancer; see the Gateway concept and Registering Communications Gateway URLs for the settings.ini-based alternative to this JSON method.
General Tab — Options
| Key |
Value type |
Allowed/example value |
options.allowAnonymousAccess |
boolean |
true/false |
options.standardBrowserAuthenticationDialog |
boolean |
true/false |
Services Tab
The services.role key selects the installation role. If omitted, the server is configured in All-in-one mode.
| Key |
Value type |
Allowed value |
services.role |
integer |
0 = All-in-one, 1 = Gateway, 2 = Primary Broker, 3 = Secondary Broker, 4 = VirtualUI Agent, 5 = AD Cache (RemoteAD), 6 = Agent |
The following keys enable or disable individual services.
| Key |
Value type |
Allowed value |
services.broker |
boolean |
true/false |
services.gateway |
boolean |
true/false |
services.virtualization |
boolean |
true/false |
services.webServiceApi |
boolean |
true/false |
services.booking |
boolean |
true/false |
services.cloudManager |
boolean |
true/false |
services.zscope |
boolean |
true/false |
services.enterpriseLogger |
boolean |
true/false |
services.notifications |
boolean |
true/false |
services.identityProvider |
boolean |
true/false |
services.remoteAD |
boolean |
true/false |
services.acme |
boolean |
true/false |
services.openTelemetry |
boolean |
true/false |
services.screenCast |
boolean |
true/false |
Broker Tab
| Key |
Value type |
Allowed/example value |
broker.accessKey |
string |
“{InstanceID}-{ComputerName}” |
broker.poolName |
string |
“PoolName” |
broker.publicGatewayURL |
string |
“https://gateway.example.com” |
Agent
Applies when the node runs in Agent mode.
| Key |
Value type |
Allowed/example value |
agent.remoteId |
string |
“{InstanceID}-{ComputerName}” |
agent.password |
string |
“***********” |
Broker Pools
Secondary broker pools are defined as an array under pools.
| Key |
Value type |
Allowed/example value |
pools[].name |
string |
“Pool_1” |
pools[].usersLimit |
integer |
10000 |
pools[].default |
boolean |
true/false |
pools[].method |
string |
“breadthFirst” or “depthFirst” |
pools[].temporaryFolder |
object |
See the table below. |
pools[].sharedFolders |
array of objects |
See the table below. |
pools[].virtualui |
object |
See the table below. |
temporaryFolder
| Key |
Value type |
Allowed/example value |
rootPath |
string |
“C:\Temp\” |
username |
string |
“UserName” |
password |
string |
“***********” |
sharedFolders
| Key |
Value type |
Allowed/example value |
networkPath |
string |
“\\Server\Share\” |
shareName |
string |
“ShareName” |
username |
string |
“UserName” |
password |
string |
“***********” |
virtualui
| Key |
Value type |
Allowed/example value |
sessionMode |
string |
“rds”, “fus”, or “shared” |
authentication.onDemand.usernamePrefix |
string |
“vui_” |
authentication.onDemand.addToGroup |
string |
“Administrators” |
Telemetry
| Key |
Value type |
Allowed/example value |
telemetry.localGateway |
boolean |
true/false |
telemetry.httpOtlp |
string |
“http://127.0.0.1:4320” |
telemetry.grpcOtlp |
string |
“http://127.0.0.1:4319” |
telemetry.metrics |
boolean |
true/false |
telemetry.trace |
boolean |
true/false |
Metrics
| Key |
Value type |
Allowed/example value |
metrics.local |
boolean |
true/false |
metrics.url |
string |
“http://127.0.0.1:8428” |
Metrics Database
| Key |
Value type |
Allowed/example value |
database.connectionName |
string |
“MyConnection” |
database.driver |
string |
“MySQL” |
database.server |
string |
“db.example.com” |
database.database |
string |
“thinfinity” |
database.userName |
string |
“UserName” |
database.password |
string |
“***********” |
database.odbcAdvanced |
string |
“” |
Protection Tab
| Key |
Value type |
Allowed/example value |
protection.bruteForce.enabled |
boolean |
true/false |
protection.bruteForce.maxAttempts |
integer |
3 |
protection.bruteForce.minutesToReset |
integer |
10 |
protection.whiteList |
array of strings |
[“192.168.1.”] |
protection.blackList |
array of strings |
[“192.168.2.”] |
Authentication Tab — Methods
Authentication methods are defined as an array under methods. Every method shares the following base keys.
| Key |
Value type |
Allowed/example value |
class |
string |
The method class — see the sections below. |
uid |
string |
“{3D93958D-980B-4E90-8A47-F1C313E1F740}” |
name |
string |
“win logon” |
enabled |
boolean |
true/false |
readOnly |
boolean |
true/false |
secondFactor |
string |
The uid of a second-factor method to chain (for example, a TOTP or Duo method). |
icon |
string |
Base64 icon. Keep the default. |
Windows Logon
| Key |
Value type |
Allowed/example value |
class |
string |
“TWinLogonAuthMethod” |
No keys beyond the base set are required.
OAuth 2.0
API Access
| Key |
Value type |
Allowed/example value |
class |
string |
“TAPIAccessAuthMethod” |
clients[].clientID |
string |
“ed57c0f0-f209-4695-b891-aeb5afb3b575” |
clients[].secret |
string |
“***********” |
clients[].userAccount |
string |
“userJohn” |
clients[].validityTime |
integer |
3600 |
clients[].expiration |
string |
“2026-05-31T19:20:21Z” |
SAML
TOTP (Second Factor)
| Key |
Value type |
Allowed/example value |
class |
string |
“TTOTPAuthMethod” |
digits |
integer |
6 |
algorithm |
integer |
0 = SHA1, 1 = SHA256, 2 = SHA512 |
precision |
integer |
30 |
issuer |
string |
“Thinfinity Workspace” |
guid |
string |
“{instance-guid}” |
Duo (Second Factor)
| Key |
Value type |
Allowed/example value |
class |
string |
“TDUOAuthMethod” |
virtualPath |
string |
“DUOLogin” |
IntegrationKey |
string |
“DIxxxxxxxxxxxxxxxxxx” |
secretKey |
string |
“***********” |
APIHostname |
string |
“api-xxxxxxxx.duosecurity.com” |
RADIUS
The RADIUS methods (TRadiusAuthMethod and the second-factor TRadiusMFAAuthMethod) are available on builds that include RADIUS support.
| Key |
Value type |
Allowed/example value |
class |
string |
“TRadiusAuthMethod” or “TRadiusMFAAuthMethod” |
host |
string |
“radius.example.com” |
port |
integer |
1812 |
key |
string |
“***********” |
auth |
integer |
The authentication protocol. |
Additional Advanced Nodes
The JSON schema also supports advanced nodes that are configured the same way (key-value pairs under the "thinfinity" root). These are typically set through the Configuration Manager rather than at install time, and are not detailed here:
vnc — screen-sharing options, authentication, experience, and permissions.
userPermissions — per-user Web Manager, Configuration Manager, and Cloud Manager permissions.
analytics — Analytics database connection.
iamServer — Identity and Access Management server settings.
zscope — z/Scope service registration.
dirsvc — Directory Services definitions.