[Horde](../../README.md) > [Deployment](../Deployment.md) > [Agent](Agent.md) > Agent.json (Agent)
# Agent.json (Agent)
All Horde-specific settings are stored in a root object called `Horde`. Other .NET functionality may be configured using properties in the root of this file.
Name | Description
---- | -----------
`serverProfiles` | `string` `->` [ServerProfile](#serverprofile)
Known servers to connect to
`server` | `string`
The default server, unless overridden from the command line
`name` | `string`
Name of agent to report as when connecting to server. By default, the computer's hostname will be used.
`mode` | [AgentMode](#agentmode-enum)
Mode of operation for the agent - For trusted agents in controlled environments (e.g., build farms). These agents handle all lease types and run exclusively Horde workloads.
- For low-trust workstations, uses interactive authentication (human logs in). These agents yield to non-Horde workloads and only support compute leases for remote execution.
`installed` | `boolean`
Whether the server is running in 'installed' mode. In this mode, on Windows, the default data directory will use the common application data folder (C:\ProgramData\Epic\Horde), and configuration data will be read from here and the registry. This setting is overridden to false for local builds from appsettings.Local.json.
`ephemeral` | `boolean`
Whether agent should register as being ephemeral. Doing so will not persist any long-lived data on the server and once disconnected it's assumed to have been deleted permanently. Ideal for short-lived agents, such as spot instances on AWS EC2.
`workingDir` | [DirectoryReference](#directoryreference)
Working directory for leases and jobs (i.e where files from Perforce will be checked out)
`logsDir` | [DirectoryReference](#directoryreference)
Directory where agent and lease logs are written
`shareMountingEnabled` | `boolean`
Whether to mount the specified list of network shares
`shares` | [MountNetworkShare](#mountnetworkshare)`[]`
List of network shares to mount
`wineExecutablePath` | `string`
Path to Wine executable. If null, execution under Wine is disabled
`containerEngineExecutablePath` | `string`
Path to container engine executable, such as /usr/bin/podman. If null, execution of compute workloads inside a container is disabled
`writeStepOutputToLogger` | `boolean`
Whether to write step output to the logging device
`enableAwsEc2Support` | `boolean`
Queries information about the current agent through the AWS EC2 interface
`useLocalStorageClient` | `boolean`
Option to use a local storage client rather than connecting through the server. Primarily for convenience when debugging / iterating locally.
`computeIp` | `string`
Incoming IP for listening for compute work. If not set, it will be automatically resolved.
`computePort` | `integer`
Incoming port for listening for compute work. Needs to be tied with a lease. Set port to 0 to disable incoming compute requests.
`openTelemetry` | [OpenTelemetrySettings](#opentelemetrysettings)
Options for OpenTelemetry
`enableTelemetry` | `boolean`
Whether to send telemetry back to Horde server
`telemetryReportInterval` | `integer`
How often to report telemetry events to server in milliseconds
`bundleCacheSize` | `integer`
Maximum size of the bundle cache, in megabytes.
`cpuCount` | `integer`
Maximum number of logical CPU cores workloads should use Currently this is only provided as a hint and requires leases to respect this value as it's set via an env variable (UE_HORDE_CPU_COUNT).
`cpuMultiplier` | `number`
CPU core multiplier applied to CPU core count setting For example, 32 CPU cores and a multiplier of 0.5 results in max 16 CPU usage.
`properties` | `string` `->` `string`
Key/value properties in addition to those set internally by the agent
`adminEndpoints` | `string[]`
Listen addresses for the built-in HTTP admin/management server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: localhost:7008 to listen on localhost, port 7008
`healthCheckEndpoints` | `string[]`
Listen addresses for the built-in HTTP health check server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: *:7009 to listen on all interfaces/IPs, port 7009 If all interfaces are bound with *, make sure to run process as administrator.
## ServerProfile
Information about a server to use
Name | Description
---- | -----------
`name` | `string`
Name of this server profile
`environment` | `string`
Name of the environment (currently just used for tracing)
`url` | `string`
Url of the server
`token` | `string`
Bearer token to use to initiate the connection
`useInteractiveAuth` | `boolean`
Whether to authenticate interactively in a desktop environment (for example, when agent is running on a user's workstation)
`thumbprint` | `string`
Thumbprint of a certificate to trust. Allows using self-signed certs for the server.
`thumbprints` | `string[]`
Thumbprints of certificates to trust. Allows using self-signed certs for the server.
## AgentMode (Enum)
Defines the operation mode of the agent Duplicated to prevent depending on Protobuf structures (weak name reference when deserializing JSON)
Name | Description
---- | -----------
`Dedicated` |
`Workstation` |
## DirectoryReference
Representation of an absolute directory path. Allows fast hashing and comparisons.
Name | Description
---- | -----------
`parentDirectory` | [DirectoryReference](#directoryreference)
Gets the directory containing this object
`fullName` | `string`
The path to this object. Stored as an absolute path, with O/S preferred separator characters, and no trailing slash for directories.
## MountNetworkShare
Describes a network share to mount
Name | Description
---- | -----------
`mountPoint` | `string`
Where the share should be mounted on the local machine. Must be a drive letter for Windows.
`remotePath` | `string`
Path to the remote resource
## OpenTelemetrySettings
OpenTelemetry configuration for collection and sending of traces and metrics.
Name | Description
---- | -----------
`enabled` | `boolean`
Whether OpenTelemetry exporting is enabled
`serviceName` | `string`
Service name
`serviceNamespace` | `string`
Service namespace
`serviceVersion` | `string`
Service version
`enableDatadogCompatibility` | `boolean`
Whether to enrich and format telemetry to fit presentation in Datadog
`attributes` | `string` `->` `string`
Extra attributes to set
`enableConsoleExporter` | `boolean`
Whether to enable the console exporter (for debugging purposes)
`protocolExporters` | `string` `->` [OpenTelemetryProtocolExporterSettings](#opentelemetryprotocolexportersettings)
Protocol exporters (key is a unique and arbitrary name)
## OpenTelemetryProtocolExporterSettings
Configuration for an OpenTelemetry exporter
Name | Description
---- | -----------
`endpoint` | `string`
Endpoint URL. Usually differs depending on protocol used.
`protocol` | `string`
Protocol for the exporter ('grpc' or 'httpprotobuf')