[Horde](../../../README.md) > [Configuration](../../Config.md) > *.stream.json
# *.stream.json
Config for a stream
Name | Description
---- | -----------
`id` | `string`
Identifier for the stream
`path` | `string`
Direct include path for the stream config. For backwards compatibility with old config files when including from a ProjectConfig object.
`include` | [ConfigInclude](#configinclude)`[]`
Includes for other configuration files
`macros` | [ConfigMacro](#configmacro)`[]`
Macros within this stream
`name` | `string`
Name of the stream
`enginePath` | `string`
Path to the engine directory within the workspace. Used for launching UAT.
`clusterName` | `string`
The perforce cluster containing the stream
`order` | `integer`
Order for this stream
`initialAgentType` | `string`
Default initial agent type for templates
`notificationChannel` | `string`
Notification channel for all jobs in this stream
`notificationChannelFilter` | `string`
Notification channel filter for this template. Can be Success, Failure, or Warnings.
`triageChannel` | `string`
Channel to post issue triage notifications
`jobOptions` | [JobOptions](#joboptions)
Default settings for executing jobs
`telemetryStoreId` | `string`
Telemetry store for Horde data for this stream
`autoSdkView` | `string[]`
View for the AutoSDK paths to sync. If null, the whole thing will be synced.
`defaultPreflightTemplate` | `string`
Legacy name for the default preflight template
`defaultPreflight` | [DefaultPreflightConfig](#defaultpreflightconfig)
Default template for running preflights
`commitTags` | [CommitTagConfig](#committagconfig)`[]`
List of tags to apply to commits. Allows fast searching and classification of different commit types (eg. code vs content).
`tabs` | [TabConfig](#tabconfig)`[]`
List of tabs to show for the new stream
`environment` | `string` `->` `string`
Global environment variables for all agents in this stream
`agentTypes` | `string` `->` [AgentConfig](#agentconfig)
Map of agent name to type
`workspaceTypes` | `string` `->` [WorkspaceConfig](#workspaceconfig)
Map of workspace name to type
`templates` | [TemplateRefConfig](#templaterefconfig)`[]`
List of templates to create
`acl` | [AclConfig](#aclconfig)
Custom permissions for this object
`pausedUntil` | `string`
Pause stream builds until specified date
`pauseComment` | `string`
Reason for pausing builds of the stream
`replicators` | [ReplicatorConfig](#replicatorconfig)`[]`
Configuration for workers to replicate commit data into Horde Storage.
`workflows` | [WorkflowConfig](#workflowconfig)`[]`
Workflows for dealing with new issues
`tokens` | [TokenConfig](#tokenconfig)`[]`
Tokens to create for each job step
`artifactTypes` | [ArtifactTypeConfig](#artifacttypeconfig)`[]`
Permissions for artifact types
## 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
## 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](#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
## DefaultPreflightConfig
Specifies defaults for running a preflight
Name | Description
---- | -----------
`templateId` | `string`
The template id to query
`change` | [ChangeQueryConfig](#changequeryconfig)
Query for the change to use
## ChangeQueryConfig
Query selecting the base changelist to use
Name | Description
---- | -----------
`name` | `string`
Name of this query, for display on the dashboard.
`condition` | `string`
Condition to evaluate before deciding to use this query. May query tags in a preflight.
`templateId` | `string`
The template id to query
`target` | `string`
The target to query
`outcomes` | [JobStepOutcome](#jobstepoutcome-enum)`[]`
Whether to match a job that produced warnings
`commitTag` | `string`
Finds the last commit with this tag
## JobStepOutcome (Enum)
Outcome for a jobstep
Name | Description
---- | -----------
`Unspecified` | Outcome is not known
`Failure` | Step failed
`Warnings` | Step completed with warnings
`Success` | Step succeeded
## CommitTagConfig
Configuration for custom commit filters
Name | Description
---- | -----------
`name` | `string`
Name of the tag
`base` | `string`
Base tag to copy settings from
`filter` | `string[]`
List of files to be included in this filter
## TabConfig
Information about a page to display in the dashboard for a stream
Name | Description
---- | -----------
`title` | `string`
Title of this page
`type` | `string`
Type of this tab
`style` | [TabStyle](#tabstyle-enum)
Presentation style for this page
`showNames` | `boolean`
Whether to show job names on this page
`showPreflights` | `boolean`
Whether to show all user preflights
`jobNames` | `string[]`
Names of jobs to include on this page. If there is only one name specified, the name column does not need to be displayed.
`templates` | `string[]`
List of job template names to show on this page.
`columns` | [TabColumnConfig](#tabcolumnconfig)`[]`
Columns to display for different types of aggregates
## TabStyle (Enum)
Style for rendering a tab
Name | Description
---- | -----------
`Normal` | Regular job list
`Compact` | Omit job names, show condensed view
## TabColumnConfig
Describes a column to display on the jobs page
Name | Description
---- | -----------
`type` | [TabColumnType](#tabcolumntype-enum)
The type of column
`heading` | `string`
Heading for this column
`category` | `string`
Category of aggregates to display in this column. If null, includes any aggregate not matched by another column.
`parameter` | `string`
Parameter to show in this column
`relativeWidth` | `integer`
Relative width of this column.
## TabColumnType (Enum)
Type of a column in a jobs tab
Name | Description
---- | -----------
`Labels` | Contains labels
`Parameter` | Contains parameters
## AgentConfig
Mapping from a BuildGraph agent type to a set of machines on the farm
Name | Description
---- | -----------
`base` | `string`
Base agent config to inherit settings from
`pool` | `string`
Pool of agents to use for this agent type
`workspace` | `string`
Name of the workspace to sync
`tempStorageDir` | `string`
Path to the temporary storage dir
`environment` | `string` `->` `string`
Environment variables to be set when executing the job
`tokens` | [TokenConfig](#tokenconfig)`[]`
Tokens to allocate for this agent type
## TokenConfig
Configuration for allocating access tokens for each job
Name | Description
---- | -----------
`url` | `string`
URL to request tokens from
`clientId` | `string`
Client id to use to request a new token
`clientSecret` | `string`
Client secret to request a new access token
`envVar` | `string`
Environment variable to set with the access token
## 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.
## TemplateRefConfig
Parameters to create a template within a stream
Name | Description
---- | -----------
`id` | `string`
Optional identifier for this ref. If not specified, an id will be generated from the name.
`base` | `string`
Base template id to copy from
`showUgsBadges` | `boolean`
Whether to show badges in UGS for these jobs
`showUgsAlerts` | `boolean`
Whether to show alerts in UGS for these jobs
`notificationChannel` | `string`
Notification channel for this template. Overrides the stream channel if set.
`notificationChannelFilter` | `string`
Notification channel filter for this template. Can be a combination of "Success", "Failure" and "Warnings" separated by pipe characters.
`triageChannel` | `string`
Triage channel for this template. Overrides the stream channel if set.
`workflowId` | `string`
Workflow to user for this stream
`annotations` | `string` `->` `string`
Default annotations to apply to nodes in this template
`schedule` | [ScheduleConfig](#scheduleconfig)
Schedule to execute this template
`chainedJobs` | [ChainedJobTemplateConfig](#chainedjobtemplateconfig)`[]`
List of chained job triggers
`acl` | [AclConfig](#aclconfig)
The ACL for this template
`name` | `string`
Name for the new template
`description` | `string`
Description for the template
`priority` | [Priority](#priority-enum)
Default priority for this job
`allowPreflights` | `boolean`
Whether to allow preflights of this template
`updateIssues` | `boolean`
Whether issues should be updated for all jobs using this template
`promoteIssuesByDefault` | `boolean`
Whether issues should be promoted by default for this template, promoted issues will generate user notifications
`initialAgentType` | `string`
Initial agent type to parse the buildgraph script on
`submitNewChange` | `string`
Path to a file within the stream to submit to generate a new changelist for jobs
`submitDescription` | `string`
Description for new changelists
`defaultChange` | [ChangeQueryConfig](#changequeryconfig)`[]`
Default change to build at. Each object has a condition parameter which can evaluated by the server to determine which change to use.
`arguments` | `string[]`
Fixed arguments for the new job
`parameters` | [TemplateTextParameterConfig](#templatetextparameterconfig)/[TemplateListParameterConfig](#templatelistparameterconfig)/[TemplateBoolParameterConfig](#templateboolparameterconfig)`[]`
Parameters for this template
`jobOptions` | [JobOptions](#joboptions)
Default settings for jobs
## ScheduleConfig
Parameters to create a new schedule
Name | Description
---- | -----------
`enabled` | `boolean`
Whether the schedule should be enabled
`maxActive` | `integer`
Maximum number of builds that can be active at once
`maxChanges` | `integer`
Maximum number of changes the schedule can fall behind head revision. If greater than zero, builds will be triggered for every submitted changelist until the backlog is this size.
`requireSubmittedChange` | `boolean`
Whether the build requires a change to be submitted
`gate` | [ScheduleGateConfig](#schedulegateconfig)
Gate allowing the schedule to trigger
`commits` | `string[]`
Commit tags for this schedule
`claims` | [ScheduleClaimConfig](#scheduleclaimconfig)`[]`
Roles to impersonate for this schedule
`filter` | [ChangeContentFlags](#changecontentflags-enum)`[]`
The types of changes to run for
`files` | `string[]`
Files that should cause the job to trigger
`templateParameters` | `string` `->` `string`
Parameters for the template
`patterns` | [SchedulePatternConfig](#schedulepatternconfig)`[]`
New patterns for the schedule
## ScheduleGateConfig
Gate allowing a schedule to trigger.
Name | Description
---- | -----------
`templateId` | `string`
The template containing the dependency
`target` | `string`
Target to wait for
## ScheduleClaimConfig
Claim to grant to leases running a scheduled job
Name | Description
---- | -----------
`type` | `string`
The claim type
`value` | `string`
The claim value
## ChangeContentFlags (Enum)
Flags identifying content of a changelist
Name | Description
---- | -----------
`ContainsCode` | The change contains code
`ContainsContent` | The change contains content
## SchedulePatternConfig
Parameters to create a new schedule
Name | Description
---- | -----------
`daysOfWeek` | [DayOfWeek](#dayofweek-enum)`[]`
Days of the week to run this schedule on. If null, the schedule will run every day.
`minTime` | `string`
Time during the day for the first schedule to trigger. Measured in minutes from midnight.
`maxTime` | `string`
Time during the day for the last schedule to trigger. Measured in minutes from midnight.
`interval` | `string`
Interval between each schedule triggering
## DayOfWeek (Enum)
Name | Description
---- | -----------
`Sunday` |
`Monday` |
`Tuesday` |
`Wednesday` |
`Thursday` |
`Friday` |
`Saturday` |
## ChainedJobTemplateConfig
Trigger for another template
Name | Description
---- | -----------
`trigger` | `string`
Name of the target that needs to complete before starting the other template
`templateId` | `string`
Id of the template to trigger
`useDefaultChangeForTemplate` | `boolean`
Whether to use the default change for the template rather than the change for the parent job.
## AclConfig
Parameters to update an ACL
Name | Description
---- | -----------
`entries` | [AclEntryConfig](#aclentryconfig)`[]`
Entries to replace the existing ACL
`profiles` | [AclProfileConfig](#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](#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
## Priority (Enum)
Priority of a job or step
Name | Description
---- | -----------
`Unspecified` | Not specified
`Lowest` | Lowest priority
`BelowNormal` | Below normal priority
`Normal` | Normal priority
`AboveNormal` | Above normal priority
`High` | High priority
`Highest` | Highest priority
## TemplateTextParameterConfig
Free-form text entry parameter
Name | Description
---- | -----------
`type` | Text
Type discriminator
`id` | `string`
Identifier for this parameter
`label` | `string`
Name of the parameter associated with this parameter.
`argument` | `string`
Argument to pass to the executor
`default` | `string`
Default value for this argument
`scheduleOverride` | `string`
Override for the default value for this parameter when running a scheduled build
`hint` | `string`
Hint text for this parameter
`validation` | `string`
Regex used to validate this parameter
`validationError` | `string`
Message displayed if validation fails, informing user of valid values.
`toolTip` | `string`
Tool-tip text to display
## TemplateListParameterConfig
Allows the user to select a value from a constrained list of choices
Name | Description
---- | -----------
`type` | List
Type discriminator
`label` | `string`
Label to display next to this parameter. Defaults to the parameter name.
`style` | [TemplateListParameterStyle](#templatelistparameterstyle-enum)
The type of list parameter
`items` | [TemplateListParameterItemConfig](#templatelistparameteritemconfig)`[]`
List of values to display in the list
`toolTip` | `string`
Tool tip text to display
## TemplateListParameterStyle (Enum)
Style of list parameter
Name | Description
---- | -----------
`List` | Regular drop-down list. One item is always selected.
`MultiList` | Drop-down list with checkboxes
`TagPicker` | Tag picker from list of options
## TemplateListParameterItemConfig
Possible option for a list parameter
Name | Description
---- | -----------
`id` | `string`
Identifier for this parameter
`group` | `string`
Optional group heading to display this entry under, if the picker style supports it.
`text` | `string`
Name of the parameter associated with this list.
`argumentIfEnabled` | `string`
Argument to pass with this parameter.
`argumentsIfEnabled` | `string[]`
Arguments to pass with this parameter.
`argumentIfDisabled` | `string`
Argument to pass with this parameter.
`argumentsIfDisabled` | `string[]`
Arguments to pass if this parameter is disabled.
`default` | `boolean`
Whether this item is selected by default
`scheduleOverride` | `boolean`
Overridden value for this property in schedule builds
## TemplateBoolParameterConfig
Allows the user to toggle an option on or off
Name | Description
---- | -----------
`type` | Bool
Type discriminator
`id` | `string`
Identifier for this parameter
`label` | `string`
Name of the parameter associated with this parameter.
`argumentIfEnabled` | `string`
Argument to add if this parameter is enabled
`argumentsIfEnabled` | `string[]`
Argument to add if this parameter is enabled
`argumentIfDisabled` | `string`
Argument to add if this parameter is enabled
`argumentsIfDisabled` | `string[]`
Arguments to add if this parameter is disabled
`default` | `boolean`
Whether this argument is enabled by default
`scheduleOverride` | `boolean`
Override for this parameter in scheduled builds
`toolTip` | `string`
Tool tip text to display
## ReplicatorConfig
Configuration for a stream replicator
Name | Description
---- | -----------
`id` | `string`
Identifier for the replicator within the current stream
`enabled` | `boolean`
Whether the replicator is enabled
`minChange` | `integer`
Minimum change number to replicate
`maxChange` | `integer`
Maximum change number to replicate
`includeContent` | `boolean`
Whether to include content in the replication, or just metadata
`namespaceId` | `string`
Namespace to replicate data to
## WorkflowConfig
Configuration for an issue workflow
Name | Description
---- | -----------
`id` | `string`
Identifier for this workflow
`reportTimes` | `string[]`
Times of day at which to send a report
`summaryTab` | `string`
Name of the tab to post summary data to
`reportChannel` | `string`
Channel to post summary information for these templates.
`reportWarnings` | `boolean`
Whether to include issues with a warning status in the summary
`groupIssuesByTemplate` | `boolean`
Whether to group issues by template in the report
`triageChannel` | `string`
Channel to post threads for triaging new issues
`triagePrefix` | `string`
Prefix for all triage messages
`triageSuffix` | `string`
Suffix for all triage messages
`triageInstructions` | `string`
Instructions posted to triage threads
`triageAlias` | `string`
User id of a Slack user/alias to ping if there is nobody assigned to an issue by default.
`triageErrors` | `boolean`
Whether to include issues with an error status in the triage
`triageWarnings` | `boolean`
Whether to include issues with a warning status in the triage
`triageTypeAliases` | `string` `->` `string`
Slack user/alias to ping for specific issue types (such as Systemic), if there is nobody assigned to an issue by default.
`escalateAlias` | `string`
Alias to ping if an issue has not been resolved for a certain amount of time
`escalateTimes` | `integer[]`
Times after an issue has been opened to escalate to the alias above, in minutes. Continues to notify on the last interval once reaching the end of the list.
`maxMentions` | `integer`
Maximum number of people to mention on a triage thread
`allowMentions` | `boolean`
Whether to mention people on this thread. Useful to disable for testing.
`inviteRestrictedUsers` | `boolean`
Uses the admin.conversations.invite API to invite users to the channel
`skipWhenEmpty` | `boolean`
Skips sending reports when there are no active issues.
`showMergeWarnings` | `boolean`
Whether to show warnings about merging changes into the origin stream.
`annotations` | `string` `->` `string`
Additional node annotations implicit in this workflow
`externalIssues` | [WorkflowExternalIssuesConfig](#workflowexternalissuesconfig)
External issue tracking configuration for this workflow
`issueHandlers` | `string[]`
Additional issue handlers enabled for this workflow
## WorkflowExternalIssuesConfig
External issue tracking configuration for a workflow
Name | Description
---- | -----------
`projectKey` | `string`
Project key in external issue tracker
`defaultComponentId` | `string`
Default component id for issues using workflow
`defaultIssueTypeId` | `string`
Default issue type id for issues using workflow
## ArtifactTypeConfig
Configuration for an artifact
Name | Description
---- | -----------
`name` | `string`
Legacy 'Name' property
`type` | `string`
Name of the artifact type
`acl` | [AclConfig](#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