Files
UnrealEngine/Engine/Source/Programs/Horde/Docs/Config/Schema/Projects.md
2025-05-18 13:04:45 +08:00

12 KiB

Horde > Configuration > *.project.json

*.project.json

Stores configuration for a project

Name Description
id string
The project id
name string
Name for the new project
path string
Direct include path for the project config. For backwards compatibility with old config files when including from a GlobalConfig object.
include ConfigInclude[]
Includes for other configuration files
macros ConfigMacro[]
Macros within the global scope
order integer
Order of this project on the dashboard
logo string
Path to the project logo
logoDarkTheme string
Optional path to the project logo for the dark theme
pools PoolConfig[]
List of pools for this project
categories ProjectCategoryConfig[]
Categories to include in this project
jobOptions JobOptions
Default settings for executing jobs
workspaceTypes string -> WorkspaceConfig
Default workspace types for streams These are added to the list of each stream's workspace types.
telemetryStoreId string
Telemetry store for Horde data for this project
streams StreamConfig[]
List of streams
artifactTypes ArtifactTypeConfig[]
Permissions for artifact types
acl AclConfig
Acl entries

ConfigInclude

Directive to merge config data from another source

Name Description
path string
Path to the config data to be included. May be relative to the including file's location.

ConfigMacro

Declares a config macro

Name Description
name string
Name of the macro property
value string
Value for the macro property

PoolConfig

Mutable configuration for a pool

Name Description
id string
Unique id for this pool
base string
Base pool config to copy settings from
name string
Name of the pool
condition string
Condition for agents to automatically be included in this pool
properties string -> string
Arbitrary properties related to this pool
color PoolColor
Color to use for this pool on the dashboard
enableAutoscaling boolean
Whether to enable autoscaling for this pool
minAgents integer
The minimum number of agents to keep in the pool
numReserveAgents integer
The minimum number of idle agents to hold in reserve
conformInterval string
Interval between conforms. If zero, the pool will not conform on a schedule.
scaleOutCooldown string
Cooldown time between scale-out events
scaleInCooldown string
Cooldown time between scale-in events
shutdownIfDisabledGracePeriod string
Time 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 string
Condition if this strategy should be enabled (right now, using date/time as a distinguishing factor)
config object
Configuration for the strategy, serialized as JSON
extraAgentCount integer
Integer 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 string
Condition if this strategy should be enabled (right now, using date/time as a distinguishing factor)
config object
Configuration 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 integer
Time period for each sample
numSamples integer
Number of samples to collect for calculating lease utilization
numSamplesForResult integer
Min number of samples for a valid result
minAgents integer
The minimum number of agents to keep in the pool
numReserveAgents integer
The minimum number of idle agents to hold in reserve

JobQueueSettings

Job queue sizing settings for a pool

Name Description
scaleOutFactor number
Factor 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 number
Factor 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 integer
How far back in time to look for job batches (that potentially are in the queue)
readyTimeThresholdSec integer
Time 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 string
Compute cluster ID to observe
namespace string
AWS CloudWatch namespace to write metrics in

ProjectCategoryConfig

Information about a category to display for a stream

Name Description
name string
Name of this category
row integer
Index of the row to display this category on
showOnNavMenu boolean
Whether to show this category on the nav menu
includePatterns string[]
Patterns for stream names to include
excludePatterns string[]
Patterns for stream names to exclude

JobOptions

Options for executing a job

Name Description
executor string
Name of the executor to use
useWine boolean
Whether to execute using Wine emulation on Linux
runInSeparateProcess boolean
Executes the job lease in a separate process
workspaceMaterializer string
What workspace materializer to use in WorkspaceExecutor. Will override any value from workspace config.
container JobContainerOptions
Options for executing a job inside a container
expireAfterDays integer
Number of days after which to expire jobs
driver string
Name of the driver to use

JobContainerOptions

Options for executing a job inside a container

Name Description
enabled boolean
Whether to execute job inside a container
imageUrl string
Image URL to container, such as "quay.io/podman/hello"
containerEngineExecutable string
Container engine executable (docker or with full path like /usr/bin/podman)
extraArguments string
Additional arguments to pass to container engine

WorkspaceConfig

Information about a workspace type

Name Description
base string
cluster string
Name of the Perforce server cluster to use
serverAndPort string
The Perforce server and port (eg. perforce:1666)
userName string
User to log into Perforce with (defaults to buildmachine)
password string
Password to use to log into the workspace
identifier string
Identifier to distinguish this workspace from other workspaces. Defaults to the workspace type name.
stream string
Override for the stream to sync
view string[]
Custom view for the workspace
incremental boolean
Whether to use an incrementally synced workspace
useAutoSdk boolean
Whether to use the AutoSDK
autoSdkView string[]
View for the AutoSDK paths to sync. If null, the whole thing will be synced.
method string
Method to use when syncing/materializing data from Perforce
minScratchSpace integer
Minimum disk space that must be available after syncing this workspace (in megabytes) If not available, the job will be aborted.
conformDiskFreeSpace integer
Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk. Set to null or 0 to disable.

ArtifactTypeConfig

Configuration for an artifact

Name Description
name string
Legacy 'Name' property
type string
Name of the artifact type
acl AclConfig
Acl for the artifact type
keepCount integer
Number of artifacts to retain
keepDays integer
Number of days to retain artifacts of this type
namespaceId string
Storage 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 boolean
Whether 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 string
The claim type
value string
The 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 string
Identifier for this profile
actions string[]
Actions to include
excludeActions string[]
Actions to exclude from the inherited actions
extends string[]
Other profiles to extend from