25 KiB
Horde > Configuration > Globals.json
Globals.json
Global configuration
| Name | Description |
|---|---|
version |
integerVersion number for the server. Values are indicated by the . |
include |
ConfigInclude[]Other paths to include |
macros |
ConfigMacro[]Macros within the global scope |
dashboard |
DashboardConfig Settings for the dashboard |
downtime |
ScheduledDowntime[]List of scheduled downtime |
plugins |
GlobalPluginsConfig Plugin config objects |
parameters |
objectGeneral parameters for other tools. Can be queried through the api/v1/parameters endpoint. |
acl |
AclConfig Access control list |
ConfigInclude
Directive to merge config data from another source
| Name | Description |
|---|---|
path |
stringPath to the config data to be included. May be relative to the including file's location. |
ConfigMacro
Declares a config macro
| Name | Description |
|---|---|
name |
stringName of the macro property |
value |
stringValue for the macro property |
ScheduledDowntime
Settings for the maintenance window
| Name | Description |
|---|---|
startTime |
stringStart time |
finishTime |
stringFinish time |
duration |
stringDuration of the maintenance window. An alternative to FinishTime. |
timeZone |
stringThe name of time zone to set the Coordinated Universal Time (UTC) offset for StartTime and FinishTime. |
frequency |
ScheduledDowntimeFrequency Frequency that the window repeats |
ScheduledDowntimeFrequency (Enum)
How frequently the maintenance window repeats
| Name | Description |
|---|---|
Once |
Once |
Daily |
Every day |
Weekly |
Every week |
GlobalPluginsConfig
| Name | Description |
|---|---|
analytics |
AnalyticsConfig Configuration for the analytics plugin |
build |
BuildConfig Configuration for the build plugin |
compute |
ComputeConfig Configuration for the compute plugin |
ddc |
EmptyPluginConfig Configuration for the ddc plugin |
experimental |
ExperimentalConfig Configuration for the experimental plugin |
secrets |
SecretsConfig Configuration for the secrets plugin |
storage |
StorageConfig Configuration for the storage plugin |
symbols |
SymbolsConfig Configuration for the symbols plugin |
tools |
ToolsConfig Configuration for the tools plugin |
AnalyticsConfig
Config settings for analytics
| Name | Description |
|---|---|
stores |
TelemetryStoreConfig[]Metrics to aggregate on the Horde server |
BuildConfig
Configuration for the build plugin
| Name | Description |
|---|---|
perforceClusters |
PerforceCluster[]List of Perforce clusters |
devices |
DeviceConfig Device configuration |
maxConformCount |
integerMaximum number of conforms to run at once |
agentShutdownIfDisabledGracePeriod |
stringTime to wait before shutting down an agent that has been disabled Used if no value is set on the actual pool. |
artifactTypes |
ArtifactTypeConfig[]Configuration for different artifact types |
projects |
ProjectConfig[]List of projects |
enableConformTasks |
booleanWhether to allow conform tasks to run |
issueFixedTag |
stringCommit tag to use for marking issues as fixed |
PerforceCluster
Information about a cluster of Perforce servers.
| Name | Description |
|---|---|
name |
stringName of the cluster |
serviceAccount |
stringUsername for Horde to log in to this server. Will use the first account specified below if not overridden. |
canImpersonate |
booleanWhether the service account can impersonate other users |
supportsPartitionedWorkspaces |
booleanWhether to use partitioned workspaces on this server |
servers |
PerforceServer[]List of servers |
credentials |
PerforceCredentials[]List of server credentials |
autoSdk |
AutoSdkWorkspace[]List of autosdk streams |
PerforceServer
Information about an individual Perforce server
| Name | Description |
|---|---|
serverAndPort |
stringThe server and port. The server may be a DNS entry with multiple records, in which case it will be actively load balanced. If "ssl:" prefix is used, ensure P4 server's fingerprint/certificate is trusted. See Horde's documentation on connecting to SSL-enabled Perforce servers. |
healthCheck |
booleanWhether to query the healthcheck address under each server |
resolveDns |
booleanWhether to resolve the DNS entries and load balance between different hosts |
maxConformCount |
integerMaximum number of simultaneous conforms on this server |
condition |
stringOptional condition for a machine to be eligible to use this server |
properties |
string[]List of properties for an agent to be eligible to use this server |
PerforceCredentials
Credentials for a Perforce user
| Name | Description |
|---|---|
userName |
stringThe username |
password |
stringPassword for the user |
ticket |
stringLogin ticket for the user (will be used instead of password if set) |
AutoSdkWorkspace
Path to a platform and stream to use for syncing AutoSDK
| Name | Description |
|---|---|
name |
stringName of this workspace |
properties |
string[]The agent properties to check (eg. "OSFamily=Windows") |
userName |
stringUsername for logging in to the server |
stream |
stringStream to use |
DeviceConfig
Configuration for devices
| Name | Description |
|---|---|
platforms |
DevicePlatformConfig[]List of device platforms |
pools |
DevicePoolConfig[]List of device pools |
DevicePlatformConfig
Configuration for a device platform
| Name | Description |
|---|---|
id |
stringThe id for this platform |
name |
stringName of the platform |
models |
string[]A list of platform models |
legacyNames |
string[]Legacy names which older versions of Gauntlet may be using |
legacyPerfSpecHighModel |
stringModel name for the high perf spec, which may be requested by Gauntlet |
DevicePoolConfig
Configuration for a device pool
| Name | Description |
|---|---|
id |
stringThe id for this platform |
name |
stringThe name of the pool |
poolType |
DevicePoolType The type of the pool |
projectIds |
string[]List of project ids associated with pool |
DevicePoolType (Enum)
The type of device pool
| Name | Description |
|---|---|
Automation |
Available to CIS jobs |
Shared |
Shared by users with remote checking and checkouts |
ArtifactTypeConfig
Configuration for an artifact
| Name | Description |
|---|---|
name |
stringLegacy 'Name' property |
type |
stringName of the artifact type |
acl |
AclConfig Acl for the artifact type |
keepCount |
integerNumber of artifacts to retain |
keepDays |
integerNumber of days to retain artifacts of this type |
namespaceId |
stringStorage namespace to use for this artifact types |
AclConfig
Parameters to update an ACL
| Name | Description |
|---|---|
entries |
AclEntryConfig[]Entries to replace the existing ACL |
profiles |
AclProfileConfig[]Defines profiles which allow grouping sets of actions into named collections |
inherit |
booleanWhether to inherit permissions from the parent ACL |
exceptions |
string[]List of exceptions to the inherited setting |
AclEntryConfig
Individual entry in an ACL
| Name | Description |
|---|---|
claim |
AclClaimConfig Name of the user or group |
actions |
string[]Array of actions to allow |
profiles |
string[]List of profiles to grant |
AclClaimConfig
New claim to create
| Name | Description |
|---|---|
type |
stringThe claim type |
value |
stringThe claim value |
AclProfileConfig
Configuration for an ACL profile. This defines a preset group of actions which can be given to a user via an ACL entry.
| Name | Description |
|---|---|
id |
stringIdentifier for this profile |
actions |
string[]Actions to include |
excludeActions |
string[]Actions to exclude from the inherited actions |
extends |
string[]Other profiles to extend from |
ComputeConfig
Configuration for the compute system
| Name | Description |
|---|---|
acl |
AclConfig Inherited root acl |
versionEnum |
ConfigVersion Config version number |
rates |
AgentRateConfig[]List of costs of a particular agent type |
clusters |
ComputeClusterConfig[]List of compute profiles |
pools |
PoolConfig[]List of pools |
software |
AgentSoftwareConfig[]List of costs of a particular agent type |
networks |
NetworkConfig[]List of networks |
ConfigVersion (Enum)
Global version number for running the server. As new features are introduced that require data migrations, this version number indicates the backwards compatibility functionality that must be enabled. When adding a new version here, also add a message to ConfigService.CreateSnapshotAsync describing the steps that need to be taken to upgrade the deployment.
| Name | Description |
|---|---|
None |
Not specified |
Initial |
Initial version number |
PoolsInConfigFiles |
Ability to add/remove pools via the REST API is removed. Pools should be configured through globals.json instead. |
Latest |
Latest version number |
LatestPlusOne |
One after the l`ast defined version number |
AgentRateConfig
Describes the monetary cost of agents matching a particular criteria
| Name | Description |
|---|---|
condition |
stringCondition string |
rate |
numberRate for this agent |
ComputeClusterConfig
Profile for executing compute requests
| Name | Description |
|---|---|
id |
stringName of the partition |
namespaceId |
stringName of the namespace to use |
requestBucketId |
stringName of the input bucket |
responseBucketId |
stringName of the output bucket |
condition |
stringFilter for agents to include |
acl |
AclConfig Access control list |
PoolConfig
Mutable configuration for a pool
| Name | Description |
|---|---|
id |
stringUnique id for this pool |
base |
stringBase pool config to copy settings from |
name |
stringName of the pool |
condition |
stringCondition for agents to automatically be included in this pool |
properties |
string -> stringArbitrary properties related to this pool |
color |
PoolColor Color to use for this pool on the dashboard |
enableAutoscaling |
booleanWhether to enable autoscaling for this pool |
minAgents |
integerThe minimum number of agents to keep in the pool |
numReserveAgents |
integerThe minimum number of idle agents to hold in reserve |
conformInterval |
stringInterval between conforms. If zero, the pool will not conform on a schedule. |
scaleOutCooldown |
stringCooldown time between scale-out events |
scaleInCooldown |
stringCooldown time between scale-in events |
shutdownIfDisabledGracePeriod |
stringTime to wait before shutting down an agent that has been disabled |
sizeStrategy |
PoolSizeStrategy |
sizeStrategies |
PoolSizeStrategyInfo[]List of pool sizing strategies for this pool. The first strategy with a matching condition will be picked. |
fleetManagers |
FleetManagerInfo[]List of fleet managers for this pool. The first strategy with a matching condition will be picked. If empty or no conditions match, a default fleet manager will be used. |
leaseUtilizationSettings |
LeaseUtilizationSettings Settings for lease utilization pool sizing strategy (if used) |
jobQueueSettings |
JobQueueSettings Settings for job queue pool sizing strategy (if used) |
computeQueueAwsMetricSettings |
ComputeQueueAwsMetricSettings Settings for job queue pool sizing strategy (if used) |
PoolColor (Enum)
Color to use for labels of this pool
| Name | Description |
|---|---|
Default |
|
Blue |
|
Orange |
|
Green |
|
Gray |
PoolSizeStrategy (Enum)
Available pool sizing strategies
| Name | Description |
|---|---|
LeaseUtilization |
Strategy based on lease utilization |
JobQueue |
Strategy based on size of job build queue |
NoOp |
No-op strategy used as fallback/default behavior |
ComputeQueueAwsMetric |
A no-op strategy that reports metrics to let an external AWS auto-scaling policy scale the fleet |
LeaseUtilizationAwsMetric |
A no-op strategy that reports metrics to let an external AWS auto-scaling policy scale the fleet |
PoolSizeStrategyInfo
Metadata for configuring and picking a pool sizing strategy
| Name | Description |
|---|---|
type |
PoolSizeStrategy Strategy implementation to use |
condition |
stringCondition if this strategy should be enabled (right now, using date/time as a distinguishing factor) |
config |
objectConfiguration for the strategy, serialized as JSON |
extraAgentCount |
integerInteger to add after pool size has been calculated. Can also be negative. |
FleetManagerInfo
Metadata for configuring and picking a fleet manager
| Name | Description |
|---|---|
type |
FleetManagerType Fleet manager type implementation to use |
condition |
stringCondition if this strategy should be enabled (right now, using date/time as a distinguishing factor) |
config |
objectConfiguration for the strategy, serialized as JSON |
FleetManagerType (Enum)
Available fleet managers
| Name | Description |
|---|---|
Default |
Default fleet manager |
NoOp |
No-op fleet manager. |
Aws |
Fleet manager for handling AWS EC2 instances. Will create and/or terminate instances from scratch. |
AwsReuse |
Fleet manager for handling AWS EC2 instances. Will start already existing but stopped instances to reuse existing EBS disks. |
AwsRecycle |
Fleet manager for handling AWS EC2 instances. Will start already existing but stopped instances to reuse existing EBS disks. |
AwsAsg |
Fleet manager for handling AWS EC2 instances. Uses an EC2 auto-scaling group for controlling the number of running instances. |
LeaseUtilizationSettings
Lease utilization sizing settings for a pool
| Name | Description |
|---|---|
sampleTimeSec |
integerTime period for each sample |
numSamples |
integerNumber of samples to collect for calculating lease utilization |
numSamplesForResult |
integerMin number of samples for a valid result |
minAgents |
integerThe minimum number of agents to keep in the pool |
numReserveAgents |
integerThe minimum number of idle agents to hold in reserve |
JobQueueSettings
Job queue sizing settings for a pool
| Name | Description |
|---|---|
scaleOutFactor |
numberFactor translating queue size to additional agents to grow the pool with The result is always rounded up to nearest integer. Example: if there are 20 jobs in queue, a factor 0.25 will result in 5 new agents being added (20 * 0.25) |
scaleInFactor |
numberFactor by which to shrink the pool size with when queue is empty The result is always rounded up to nearest integer. Example: when the queue size is zero, a default value of 0.9 will shrink the pool by 10% (current agent count * 0.9) |
samplePeriodMin |
integerHow far back in time to look for job batches (that potentially are in the queue) |
readyTimeThresholdSec |
integerTime spent in ready state before considered truly waiting for an agent A job batch can be in ready state before getting picked up and executed. This threshold will help ensure only batches that have been waiting longer than this value will be considered. |
ComputeQueueAwsMetricSettings
Settings for
| Name | Description |
|---|---|
computeClusterId |
stringCompute cluster ID to observe |
namespace |
stringAWS CloudWatch namespace to write metrics in |
AgentSoftwareConfig
Selects different agent software versions by evaluating a condition
| Name | Description |
|---|---|
toolId |
stringTool identifier |
condition |
stringCondition for using this channel |
NetworkConfig
Describes a network The ID describes any logical grouping, such as region, availability zone, rack or office location.
| Name | Description |
|---|---|
id |
stringID for this network |
cidrBlock |
stringCIDR block |
description |
stringHuman-readable description |
computeId |
stringCompute ID for this network (used when allocating compute resources) |
EmptyPluginConfig
Empty implementation of
ExperimentalConfig
Configuration for the experimental plugin
| Name | Description |
|---|---|
notifications |
NotificationConfig[]Notifications to be sent on the Horde server |
SecretsConfig
Configuration for the secrets system
| Name | Description |
|---|---|
secrets |
SecretConfig[]List of secrets |
providerConfigs |
SecretProviderConfig[]List of configurations for secret providers |
SecretConfig
Configuration for a secret value
| Name | Description |
|---|---|
id |
stringIdentifier for this secret |
data |
string -> stringKey/value pairs associated with this secret |
sources |
ExternalSecretConfig[]Providers to source key/value pairs from |
acl |
AclConfig Defines access to this particular secret |
ExternalSecretConfig
Configuration for an external secret provider
| Name | Description |
|---|---|
providerConfig |
stringThe name to look up a secret provider config. A config is mutually exclusive to and to be used when a secret requires additional options than just the name of the provider |
provider |
stringName of the provider to use |
format |
ExternalSecretFormat Format of the secret |
key |
stringOptional key indicating the parameter to set in the resulting data array. Required if is . |
path |
stringOptional value indicating what to fetch from the provider |
ExternalSecretFormat (Enum)
Format describing how to parse external secret values
| Name | Description |
|---|---|
Text |
Secret is a plain text value which will be stored using the external secret key |
Json |
Secret is a JSON formatted string containing key/value pairs |
SecretProviderConfig
Common settings object for different secret providers
| Name | Description |
|---|---|
name |
stringName of the secret provider config |
provider |
stringName of the provider |
hcpVault |
HcpVaultConfig Configuration for HCP Vault |
HcpVaultConfig
Configuration for HCP Vault secrets.
| Name | Description |
|---|---|
preSharedKey |
stringThe Vault authentication token to use when the type of credentials is . More information on this token can be found in the API documentation for X-Vault-Token |
endPoint |
stringThe address of the Vault server. |
awsArnRole |
stringThe optional AWS ARN to assume a role when logging into Vault. To be used when the type of credentials is . When not set the AWS SDK default credential search will be used. |
awsIamServerId |
stringThe value for the X-Vault-AWS-IAM-Server-ID header when the Vault server is configured with iam_server_id_header_value. Most likely to be the Vault server's DNS name. To be used when the type of credentials is . |
role |
stringThe name of the role in the Vault configuration for the login. This role name can be different to the name of the AWS IAM principal. To be used when the type of credentials is . When not set the name of IAM principal will be used. |
credentials |
HcpVaultCredentialsType Type of credentials to use. |
HcpVaultCredentialsType (Enum)
Credentials to use to log into HCP Vault.
| Name | Description |
|---|---|
PreSharedKey |
Use a pre-shared token provided by Vault for authentication. |
AwsAuth |
Use AWS IAM credentials to authenticate against the Vault server. |
StorageConfig
Configuration for storage
| Name | Description |
|---|---|
enableGc |
booleanWhether to enable garbage collection |
enableGcVerification |
booleanWhether to enable garbage collection in verification mode (nothing deleted, just logging on access to deleted blobs) |
backends |
BackendConfig[]List of storage backends |
namespaces |
NamespaceConfig[]List of namespaces for storage |
BackendConfig
Common settings object for different providers
| Name | Description |
|---|---|
id |
stringThe storage backend ID |
base |
stringBase backend to copy default settings from |
secondary |
stringSpecifies another backend to read from if an object is not found in this one. Can be used when migrating data from one backend to another. |
type |
StorageBackendType |
baseDir |
string |
awsBucketName |
stringName of the bucket to use |
awsBucketPath |
stringBase path within the bucket |
awsCredentials |
AwsCredentialsType Type of credentials to use |
awsRole |
stringARN of a role to assume |
awsProfile |
stringThe AWS profile to read credentials form |
awsRegion |
stringRegion to connect to |
azureConnectionString |
stringConnection string for Azure |
azureContainerName |
stringName of the container |
relayServer |
string |
relayToken |
string |
gcsBucketName |
stringName of the GCS bucket to use |
gcsBucketPath |
stringBase path within the bucket |
StorageBackendType (Enum)
Types of storage backend to use
| Name | Description |
|---|---|
FileSystem |
Local filesystem |
Aws |
AWS S3 |
Azure |
Azure blob store |
Gcs |
Google Cloud Storage |
Memory |
In-memory only (for testing) |
AwsCredentialsType (Enum)
Credentials to use for AWS
| Name | Description |
|---|---|
Default |
Use default credentials from the AWS SDK |
Profile |
Read credentials from the profile in the AWS config file |
AssumeRole |
Assume a particular role. Should specify ARN in |
AssumeRoleWebIdentity |
Assume a particular role using the current environment variables. |
NamespaceConfig
Configuration of a particular namespace
| Name | Description |
|---|---|
id |
stringIdentifier for this namespace |
backend |
stringBackend to use for this namespace |
prefix |
stringPrefix for items within this namespace |
gcFrequencyHrs |
numberHow frequently to run garbage collection, in hours. |
gcDelayHrs |
numberHow long to keep newly uploaded orphanned objects before allowing them to be deleted, in hours. |
enableAliases |
booleanSupport querying exports by their aliases |
acl |
AclConfig Access list for this namespace |
SymbolsConfig
Configuration for the tools system
| Name | Description |
|---|---|
stores |
SymbolStoreConfig[]List of symbol stores |
SymbolStoreConfig
Configuration for a symbol store
| Name | Description |
|---|---|
id |
stringIdentifier for this store |
namespaceId |
stringConfiguration for the symbol store backend |
public |
booleanWhether to make this store available without auth |
acl |
AclConfig Access to the symbol store |
ToolsConfig
Configuration for the tools system
| Name | Description |
|---|---|
tools |
ToolConfig[]Tool configurations |
ToolConfig
Options for configuring a tool
| Name | Description |
|---|---|
id |
stringUnique identifier for the tool |
name |
stringName of the tool |
description |
stringDescription for the tool |
category |
stringCategory for the tool. Will cause the tool to be shown in a different tab in the dashboard. |
group |
stringGrouping key for different variations of the same tool. The dashboard will show these together. |
platforms |
string[]Platforms for this tool. Takes the form of a NET RID (https://learn.microsoft.com/en-us/dotnet/core/rid-catalog). |
public |
booleanWhether this tool should be exposed for download on a public endpoint without authentication |
showInUgs |
booleanWhether to show this tool for download in the UGS tools menu |
showInDashboard |
booleanWhether to show this tool for download in the dashboard |
showInToolbox |
booleanWhether to show this tool for download in Unreal Toolbox |
metadata |
string -> stringMetadata for this tool |
namespaceId |
stringDefault namespace for new deployments of this tool |
acl |
AclConfig Permissions for the tool |