key: data-format-property

description: Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations.


key: endpoint-property

description: Allows to configure as many additional properties for the rest endpoint in use.

type: array


key: host

description: The hostname to use for exposing the REST service.

type: string


key: host-name-resolver

description: If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.

default: allLocalIp

enum: allLocalIp localHostName localIp


key: inline-routes

description: Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false.

type: boolean


key: json-data-format

description: Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.


key: port

description: The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses.


key: producer-api-doc

description: Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url.


key: producer-component

description: Sets the name of the Camel component to use as the REST producer

enum: vertx-http http undertow netty-http


key: scheme

description: The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http


key: skip-binding-on-error-code

description: Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do.


key: use-x-forward-headers

description: Whether to use X-Forward headers for Host and related setting. The default value is true.


key: xml-data-format

description: Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.


description: Defines a rest service using the rest-dsl

type: object

default: off

enum: off auto json xml json_xml


key: api-docs

description: Whether to include or exclude this rest operation in API documentation. This option will override what may be configured on a parent level. The default value is true.


key: binding-mode

description: Sets the binding mode to use. This option will override what may be configured on a parent level The default value is auto


key: client-request-validation

description: Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error.


key: consumes

description: To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.


key: id

description: Sets the id of this node


key: path

description: Path of the rest service, such as /foo


key: produces

description: To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level


key: security-definitions

description: Sets the security definitions such as Basic, OAuth2 etc.


key: security-requirements

description: Sets the security requirement(s) for all endpoints.


description: Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level


key: tag

description: To configure a special tag for the operations within this rest definition.


description: A key value pair

required: key value


key: key

description: Property key


key: value

description: Property value


description: To configure rest security definitions.


description: A series of rest services defined using the rest-dsl


description: Rest security definition


description: Key used to refer to this security definition


key: scopes

description: The scopes to allow (separate multiple scopes by comma)


description: To configure transformers.


description: To configure validators.


description: A tag's for a Minecraft data pack config schema


key: values

description: Values


description: An identifier for the current data pack


key: required

description: Whether it's required for the current data pack


key: tool

description: The name of the tool to run.


key: input

description: The input varies by tool. For example, the required version number, the package-id, the input source file or source directory.


key: additionalOptions

description: Additional Options to be appended to the tool's command line.


key: comments

description: Comments for this tool item. For documentation only; ignored by the tool.


key: run

description: 'devinit.exe init' runs this list of tools sequentially. See also 'devinit.exe run'.


description: Comments for this file. For documentation only; ignored by the tool.


description: Configuration file defining a template pool for a data pack for Minecraft.

type: integer

type: string object


key: name

description: The namespaced ID of the pool.


key: fallback

description: Can set to another template pool, which generates when the original pool cannot generate at the end of all layers.


key: elements

description: A list of structures to choose from.


key: weight

description: How likely this element is to be chosen when using this pool.


key: element

description: The properties of this element.


key: feature

description: The namespaced id of the feature.


key: location

description: The namespaced id of the structure to place.


key: processors

description: The namespaced ID of a processor if this is a string.


description: A list of processors to use.


description: The namespaced id of the processor to use.


description: A list of structures to choose from.


key: possiblySecretString

description: This value will be used directly (regular string)


description: This value will be treated as a string even though it is a number

type: number


key: secure

description: This should have been encrypted by the same user account to which the project belongs


key: message

description: Regex for matching commit message

format: regex


key: author

description: Commit author's username, name, email or regexp matching one of these.


key: files

description: Only specific files (glob patterns)


key: command

description: Run a batch command


key: ps

description: Run a PowerShell command


key: pwsh

description: Run a PowerShell Core command


description: Run a batch command


description: Run a Bash command


key: image

description: Build worker image (VM template) -DEV_VERSION


key: platform

description: Build platform, i.e. x86, x64, Any CPU. This setting is optional


key: configuration

description: Build Configuration, i.e. Debug, Release, etc.


key: version

description: Version format


key: branches

description: Branches to build


key: only

description: Whitelist


key: except

description: Blacklist


description: Do not build on tags (GitHub and BitBucket)


description: Start builds on tags only (GitHub and BitBucket)


Skipping commits with particular message or from specific user


Including commits with particular message or from specific user


description: Do not build feature branch with open Pull Requests


description: Maximum number of concurrent jobs for the project


key: init

description: Scripts that are called at very beginning, before repo cloning


description: Clone directory


description: Fetch repository as zip archive


description: Set git clone depth


key: hosts

description: Setting up etc\hosts file


key: environment

description: Environment variables


key: global

description: variables defined here are no different than those defined at top level of 'environment' node


key: matrix

description: an array of environment variables, each member of which is one dimension in the build matrix calculation


description: Set this flag to immediately finish build once one of the jobs fails


description: This is how to allow failing jobs in the matrix


key: exclude

description: Exclude configuration from the matrix. Works similarly to 'allow_failures' but build not even being started for excluded combination.


key: cache

description: Build cache to preserve files/folders between builds


key: services

description: Enable service required for build/tests


key: install

description: Scripts that run after cloning repository


description: Enable patching of AssemblyInfo.* files


key: nuget

description: Automatically register private account and/or project AppVeyor NuGet feeds


description: Disable publishing of .nupkg artifacts to account/project feeds for pull request builds


description: Build platform, i.e. x86, x64, Any CPU. This setting is optional


description: Build Configuration, i.e. Debug, Release, etc.


key: parallel

description: Enable MSBuild parallel builds


key: project

description: Path to Visual Studio solution or project


description: Package Web Application Projects (WAP) for Web Deploy


description: Package Web Application Projects (WAP) for XCopy deployment


description: Package Web Applications for AWS Elastic Beanstalk deployment


description: Package Web Applications for Octopus deployment


description: Package Azure WebJobs for Zip Push deployment


description: Package Azure Cloud Service projects and push to artifacts


description: Package ASP.NET Core projects


description: Package .NET Core console projects


description: Package projects with .nuspec files and push to artifacts


description: Generate and publish NuGet symbol packages


description: Add -IncludeReferencedProjects option while packaging NuGet artifacts


key: verbosity

description: MSBuild verbosity level

enum: quiet minimal normal detailed


description: Scripts to run before build


description: Scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services)


description: Scripts to run after build


description: To run your custom scripts instead of automatic MSBuild


description: Scripts to run before tests


key: test

description: To disable automatic tests


description: To run tests again only selected assemblies and/or categories


key: categories

description: To run tests from different categories as separate jobs in parallel


key: items

description: A category common for all jobs


description: To run your custom scripts instead of automatic tests


description: Scripts to run after tests


description: Scripts to run before deployment


description: To run your custom scripts instead of provider deployments


description: Scripts to run after deployment


description: On successful build


description: On build failure


description: After build failure or success


description: Configuration file defining a dimension for a data pack for Minecraft.


key: firstOctave

description: The lower the value, the smoother the changes in altitude will be, making biome edges smoother.


key: amplitudes

description: A list of floats. Using more values allows for greater precision. Higher absolute values seem to make the altitude reach greater absolute values.


key: dimensionType

description: Configuration file defining a dimension type for a data pack for Minecraft.


key: name

description: The resource location used for the dimension type.


key: ultrawarm

description: Whether the dimensions behaves like the nether (water evaporates and sponges dry) or not. Also lets stalactites drip lava and causes lava to spread faster and thinner.


key: natural

description: When true, nether portals can spawn zombified piglins. When false, compasses spin randomly, and using a bed to set the respawn point or sleep, is disabled.


description: The multiplier applied to coordinates when traveling to the dimension.


description: Whether the dimension has skylight access or not.


description: Whether the dimension has a bedrock ceiling or not.


description: How much light the dimension has.


description: If this is set to a number, the time of the day is the specified value.


description: Whether piglins shake and transform to zombified piglins.


description: When false, the bed blows up when trying to sleep.


description: Whether players can charge and use respawn anchors.


description: Whether players with the Bad Omen effect can cause a raid.


description: The maximum height to which chorus fruits and nether portals can bring players within this dimension. This excludes portals that were already built above the limit as they still connect normally.


description: The minimum height in which blocks can exist within this dimension.


key: height

description: The total height in which blocks can exist within this dimension.


key: infiniburn

description: A resource location defining what block tag to use for infiniburn.


key: effects

description: Determines the dimension effect used for this dimension.


key: type

description: The namespaced ID of the dimension type.


key: generator

description: Generation settings used for that dimension.


description: The ID of the generator.


key: settings

description: Superflat settings.


key: layers

description: Layer settings.


description: A superflat layer. The first entry is the bottom layer, the last entry is the top layer.


description: The number of blocks in the layer.


key: block

description: The block the layer is made of.


key: biome

description: The single biome of the world.


key: lakes

description: Whether or not to generate lakes. If set to true, then water and lava lakes generate often even in biomes where lakes don't normally generate. Lava lakes generate surrounded by different types of stone and ores from the overworld.


key: features

description: Whether or not to generate biome-specific decorations like trees, grass, flowers, cacti, etc.


key: structures

description: Structure settings.


key: stronghold

description: Settings for how strongholds should be spawned.


key: distance

description: Controls how far apart the strongholds are.


key: count

description: How many strongholds to generate.


description: Map of structures to use in this dimension.


key: spacing

description: Average distance between two structure placement attempts of this type in chunks.


key: seperation

description: Minimum distance between two structures of this type in chunks; must be less than spacing.


key: salt

description: A number that assists in randomization.


key: seed

description: The seed used to generate the dimension. In most cases, this is exactly the same as the world seed, but can be different and the dimension generated is based upon this seed and not the world seed.


description: The noise settings used in the terrain generator. Can be set to a string to use a preset defined in the worldgen/noise_settings folder with a list of customized options.


description: Settings dictating which biomes and biome shapes.


description: The seed used for biome generation.


key: biomes

description: A list of biome IDs to generate.


key: type

description: The type of biome generation.


key: then

description: Default and large biome generation used in the overworld.


description: Whether the biomes are large.


description: Whether the world was default_1_1.


description: A single biome.


description: The single biome to generate.


description: A biome generation in which biomes are square (or close to square) and repeat along the diagonals.


description: A list of biomes that repeat along the diagonals.


key: scale

description: Determines the size of the squares on an exponential scale.


description: 3D biome generation used in the nether.


How the altitude parameter is spread in the world.


Similar to altitude_noise for the weirdness parameter.


Similar to altitude_noise for the temperature parameter.


Similar to altitude_noise for the humidity parameter.


key: preset

description: A preset of the set of biomes to be used.


description: A list of biomes, including their likelihood.


key: items

description: A biome and its properties.


key: biome

description: The biome.


key: parameters

description: Represent optimal conditions for where the biome should be placed. These values do not affect the generation of terrain within biomes; they affect where the game chooses to place biomes.


key: altitude

description: Used to place similar biomes near each other.


key: weirdness

description: Defines how weird the biome is going to appear next to other biomes.


key: offset

description: Similar to the other parameters but offset is 0 everywhere, thus setting this parameter nearer to 0 gives the biome a greater edge over others, all else being equal.


key: temperature

description: Used to place similar biomes near each other. This is NOT the same as the temperature value listed on Biome, it does NOT affect rain/snow or the color of leaves and grass.


key: humidity


description: Biome generation used in the end with biome minecraft:the_end in the center and other end biomes around.


key: files

description: One or more files to watch.


key: tasks

description: One or more tasks to run.


key: events

description: Specify the type watch event that trigger the specified task.


key: eventType

default: all

enum: all changed added deleted


key: options

description: One or more files to watch.

type: boolean number


key: spawn

description: Whether to spawn task runs in a child process.


key: interrupt

description: As files are modified this watch task will spawn tasks in child processes.


key: debounceDelay

description: How long to wait before emitting events in succession for the same filepath and status. For example if your Gruntfile.js file was changed, a 'changed' event will only fire again after the given milliseconds.


key: interval

description: The interval is passed to 'fs.watchFile'. Since 'interval' is only used by 'fs.watchFile' and this watcher also uses 'fs.watch'; it is recommended to ignore this option.


key: reload

description: By default, if Gruntfile.js is being watched, then changes to it will trigger the watch task to restart, and reload the Gruntfile.js changes. When reload is set to true, changes to any of the watched files will trigger the watch task to restart. This is especially useful if your Gruntfile.js is dependent on other files.


key: forever

description: This is only a task level option and cannot be configured per target. By default the watch task will duck punch grunt.fatal and grunt.warn to try and prevent them from exiting the watch process. If you don't want grunt.fatal and grunt.warn to be overridden set the forever option to false.


key: atBegin

description: This option will trigger the run of each specified task at startup of the watcher.


key: livereload

description: If enabled a live reload server will be started with the watch task per target. Then after the indicated tasks have run, the live reload server will be triggered with the modified files.


key: cwd

description: Ability to set the current working directory.


key: livereloadOnError

description: Option to prevent the livereload if the executed tasks encountered an error. If set to  false , the livereload will only be triggered if all tasks completed successfully.


description: Traefik v2 Dynamic Configuration File Provider

required: rule service

default: traefik


key: httpRouter

description: A router is in charge of connecting incoming requests to the services that can handle them. In the process, routers may use pieces of middleware to update the request, or act before forwarding the request to the service.


key: entryPoints

description: If not specified, HTTP routers will accept requests from all defined entry points. If you want to limit the router scope to a set of entry points, set the entryPoints option.


key: rule

description: Rules are a set of matchers configured with values, that determine if a particular request matches specific criteria. If the rule is verified, the router becomes active, calls middlewares, and then forwards the request to the service.


key: priority

description: To avoid path overlap, routes are sorted, by default, in descending order using rules length. The priority is directly equal to the length of the rule, and so the longest length has the highest priority. A value of 0 for the priority is ignored: priority = 0 means that the default rules length sorting is used.


key: middlewares

description: You can attach a list of middlewares to each HTTP router. The middlewares will take effect only if the rule matches, and before forwarding the request to the service. Middlewares are applied in the same order as their declaration in router.


key: service

description: Each request must eventually be handled by a service, which is why each router definition should include a service target, which is basically where the request will be passed along to. HTTP routers can only target HTTP services (not TCP services).


key: tls

description: When a TLS section is specified, it instructs Traefik that the current router is dedicated to HTTPS requests only (and that the router should ignore HTTP (non TLS) requests). Traefik will terminate the SSL connections (meaning that it will send decrypted data to the services). If you need to define the same route for both HTTP and HTTPS requests, you will need to define two different routers: one with the tls section, one without.


key: options

description: The options field enables fine-grained control of the TLS parameters. It refers to a TLS Options and will be applied only if a Host rule is defined.


key: certResolver

description: If certResolver is defined, Traefik will try to generate certificates based on routers Host & HostSNI rules.


key: domains

description: You can set SANs (alternative domains) for each main domain. Every domain must have A/AAAA records pointing to Traefik. Each domain & SAN will lead to a certificate request.


key: main

description: Main defines the main domain name.


key: sans

description: SANs defines the subject alternative domain names.


key: httpLoadBalancerService

description:
The load balancers are able to load balance the requests between multiple instances of your programs.

Each service has a load-balancer, even if there is only one server to forward traffic to.


key: servers

description: Servers declare a single instance of your program.


key: url

description: The url option point to a specific instance. Paths in the servers' url have no effect. If you want the requests to be sent to a specific path on your servers, configure your routers to use a corresponding middleware (e.g. the AddPrefix or ReplacePath) middlewares.


key: sticky

description: When sticky sessions are enabled, a cookie is set on the initial request and response to let the client know which server handles the first response. On subsequent requests, to keep the session alive with the same server, the client should resend the same cookie.


key: name

description: The default cookie name is an abbreviation of a sha1 (ex: _1d52e).


key: sameSite

description: Can be none, lax, strict or empty.


key: healthCheck

description: Configure health check to remove unhealthy servers from the load balancing rotation. Traefik will consider your servers healthy as long as they return status codes between 2XX and 3XX to the health check requests (carried out every interval). Traefik keeps monitoring the health of unhealthy servers. If a server has recovered (returning 2xx -> 3xx responses again), it will be added back to the load balancer rotation pool.


key: method

description: If defined, will apply this Method for the health check request.


key: path

description: path is appended to the server URL to set the health check endpoint.


key: scheme

description: If defined, will replace the server URL scheme for the health check endpoint


key: hostname

description: If defined, will apply Host header hostname to the health check request.


key: port

description: If defined, will replace the server URL port for the health check endpoint.


key: interval

description: Defines the frequency of the health check calls. Interval is to be given in a format understood by `time.ParseDuration`. The interval must be greater than the timeout. If configuration doesn't reflect this, the interval will be set to timeout + 1 second.


key: timeout

description: Defines the maximum duration Traefik will wait for a health check request before considering the server failed (unhealthy). Timeout is to be given in a format understood by `time.ParseDuration`.


key: headers

description: Defines custom headers to be sent to the health check endpoint.


key: followRedirects

description: Defines whether redirects should be followed during the health check calls (default: true).


key: passHostHeader

description: The passHostHeader allows to forward client Host header to server. By default, passHostHeader is true.


key: responseForwarding

description: Defines how Traefik forwards the response from the backend server to the client.


key: flushInterval

description: Specifies the interval in between flushes to the client while copying the response body. It is a duration in milliseconds, defaulting to 100. A negative value means to flush immediately after each write to the client. The flushInterval is ignored when ReverseProxy recognizes a response as a streaming response; for such responses, writes are flushed to the client immediately.


key: httpWeightedService

description:
The WRR is able to load balance the requests between multiple services based on weights.

This strategy is only available to load balance between services and not between servers.


key: sticky


key: name


key: sameSite

description: Can be none, lax, strict or empty.


key: httpMirroringService

description: The mirroring is able to mirror requests sent to a service to other services. Please note that by default the whole request is buffered in memory while it is being mirrored. See the maxBodySize option for how to modify this behaviour.


key: maxBodySize

description: maxBodySize is the maximum size allowed for the body of the request. If the body is larger, the request is not mirrored. Default value is -1, which means unlimited size.


key: httpService

description: The Services are responsible for configuring how to reach the actual services that will eventually handle the incoming requests.


key: addPrefixMiddleware

description: The AddPrefix middleware updates the URL Path of the request before forwarding it.


key: prefix

description: prefix is the string to add before the current path in the requested URL. It should include the leading slash (/).


key: basicAuthMiddleware

description: The BasicAuth middleware is a quick way to restrict access to your services to known users. If both users and usersFile are provided, the two are merged. The contents of usersFile have precedence over the values in users.


key: users

description: The users option is an array of authorized users. Each user will be declared using the `name:hashed-password` format.


key: usersFile

description:
The usersFile option is the path to an external file that contains the authorized users for the middleware.

The file content is a list of `name:hashed-password`.


key: realm

description: You can customize the realm for the authentication with the realm option. The default value is traefik.


key: headerField

description: You can define a header field to store the authenticated user using the headerField option.


key: removeHeader

description: Set the removeHeader option to true to remove the authorization header before forwarding the request to your service. (Default value is false.)


key: bufferingMiddleware

description:
The Buffering middleware gives you control on how you want to read the requests before sending them to services.

With Buffering, Traefik reads the entire request into memory (possibly buffering large requests into disk), and rejects requests that are over a specified limit.

This can help services deal with large data (multipart/form-data for example), and can minimize time spent sending data to a service.


key: maxRequestBodyBytes

description:
With the maxRequestBodyBytes option, you can configure the maximum allowed body size for the request (in Bytes).

If the request exceeds the allowed size, it is not forwarded to the service and the client gets a 413 (Request Entity Too Large) response.


key: memRequestBodyBytes

description: You can configure a threshold (in Bytes) from which the request will be buffered on disk instead of in memory with the memRequestBodyBytes option.


key: maxResponseBodyBytes

description:
With the maxResponseBodyBytes option, you can configure the maximum allowed response size from the service (in Bytes).

If the response exceeds the allowed size, it is not forwarded to the client. The client gets a 413 (Request Entity Too Large) response instead.


key: memResponseBodyBytes

description: You can configure a threshold (in Bytes) from which the response will be buffered on disk instead of in memory with the memResponseBodyBytes option.


key: retryExpression

description: You can have the Buffering middleware replay the request with the help of the retryExpression option.


key: chainMiddleware

description: The Chain middleware enables you to define reusable combinations of other pieces of middleware. It makes reusing the same groups easier.


key: circuitBreakerMiddleware

description:
The circuit breaker protects your system from stacking requests to unhealthy services (resulting in cascading failures).

When your system is healthy, the circuit is closed (normal operations). When your system becomes unhealthy, the circuit becomes open and the requests are no longer forwarded (but handled by a fallback mechanism).

To assess if your system is healthy, the circuit breaker constantly monitors the services.


key: expression

description: You can specify an expression that, once matched, will trigger the circuit breaker (and apply the fallback mechanism instead of calling your services).


key: checkPeriod

description: The interval between successive checks of the circuit breaker condition (when in standby state)


key: fallbackDuration

description: The duration for which the circuit breaker will wait before trying to recover (from a tripped state).


key: recoveryDuration

description: The duration for which the circuit breaker will try to recover (as soon as it is in recovering state).


key: compressMiddleware

description: The Compress middleware enables the gzip compression.


key: excludedContentTypes

description:
excludedContentTypes specifies a list of content types to compare the Content-Type header of the incoming requests to before compressing.

The requests with content types defined in excludedContentTypes are not compressed.

Content types are compared in a case-insensitive, whitespace-ignored manner.


key: minResponseBodyBytes

description: specifies the minimum amount of bytes a response body must have to be compressed.


key: contentTypeMiddleware

description:
The Content-Type middleware - or rather its unique autoDetect option - specifies whether to let the Content-Type header, if it has not been set by the backend, be automatically set to a value derived from the contents of the response.

As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it. However, the historic default was to always auto-detect and set the header if it was nil, and it is going to be kept that way in order to support users currently relying on it. This middleware exists to enable the correct behavior until at least the default one can be changed in a future version.


key: autoDetect

description: autoDetect specifies whether to let the Content-Type header, if it has not been set by the backend, be automatically set to a value derived from the contents of the response.


key: digestAuthMiddleware

description: The DigestAuth middleware is a quick way to restrict access to your services to known users. If both users and usersFile are provided, the two are merged. The contents of usersFile have precedence over the values in users.


key: users

description: The users option is an array of authorized users. Each user will be declared using the `name:realm:encoded-password` format.


key: usersFile

description:
The usersFile option is the path to an external file that contains the authorized users for the middleware.

The file content is a list of `name:realm:encoded-password`.


key: realm

description: You can customize the realm for the authentication with the realm option. The default value is traefik.


key: headerField

description: You can customize the header field for the authenticated user using the headerField option.


key: removeHeader

description: Set the removeHeader option to true to remove the authorization header before forwarding the request to your service. (Default value is false.)


key: errorsMiddleware

description: The ErrorPage middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. The error page itself is not hosted by Traefik.


key: status

description:
The status that will trigger the error page.

The status code ranges are inclusive (500-599 will trigger with every code between 500 and 599, 500 and 599 included). You can define either a status code like 500 or ranges with a syntax like 500-599.


key: service

description: The service that will serve the new requested error page.


key: query

description: The URL for the error page (hosted by service). You can use {status} in the query, that will be replaced by the received status code.


key: forwardAuthMiddleware

description: The ForwardAuth middleware delegate the authentication to an external service. If the service response code is 2XX, access is granted and the original request is performed. Otherwise, the response from the authentication server is returned.


key: address

description: The address option defines the authentication server address.


key: tls

description: The tls option is the TLS configuration from Traefik to the authentication server.


key: ca

description: Certificate Authority used for the secured connection to the authentication server.


key: caOptional

description: Policy used for the secured connection with TLS Client Authentication to the authentication server. Requires tls.ca to be defined.


key: cert

description: Public certificate used for the secured connection to the authentication server.


key: key

description: Private certificate used for the secure connection to the authentication server.


key: insecureSkipVerify

description: If insecureSkipVerify is true, TLS for the connection to authentication server accepts any certificate presented by the server and any host name in that certificate.


key: trustForwardHeader

description: Set the trustForwardHeader option to true to trust all the existing X-Forwarded-* headers.


key: authResponseHeaders

description: The authResponseHeaders option is the list of the headers to copy from the authentication server to the request.


key: authResponseHeadersRegex

description: The authResponseHeadersRegex option is the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex.


key: authRequestHeaders

description: The authRequestHeaders option is the list of the headers to copy from the request to the authentication server.


key: headersMiddleware

description: The Headers middleware can manage the requests/responses headers.


key: customRequestHeaders

description: The customRequestHeaders option lists the Header names and values to apply to the request.


key: customResponseHeaders

description: The customResponseHeaders option lists the Header names and values to apply to the response.


key: accessControlAllowCredentials

description: The accessControlAllowCredentials indicates whether the request can include user credentials.


key: accessControlAllowHeaders

description: The accessControlAllowHeaders indicates which header field names can be used as part of the request.


key: accessControlAllowMethods

description: The accessControlAllowMethods indicates which methods can be used during requests.


key: accessControlAllowOriginList

description:
The accessControlAllowOriginList indicates whether a resource can be shared by returning different values.

A wildcard origin * can also be configured, and will match all requests. If this value is set by a backend server, it will be overwritten by Traefik

This value can contain a list of allowed origins.


key: accessControlAllowOriginListRegex

description: The accessControlAllowOriginListRegex option is the counterpart of the accessControlAllowOriginList option with regular expressions instead of origin values.


key: accessControlExposeHeaders

description: The accessControlExposeHeaders indicates which headers are safe to expose to the api of a CORS API specification.


key: accessControlMaxAge

description: The accessControlMaxAge indicates how long (in seconds) a preflight request can be cached.


key: addVaryHeader

description: The addVaryHeader is used in conjunction with accessControlAllowOriginList to determine whether the vary header should be added or modified to demonstrate that server responses can differ based on the value of the origin header.


key: allowedHosts

description: The allowedHosts option lists fully qualified domain names that are allowed.


key: hostsProxyHeaders

description: The hostsProxyHeaders option is a set of header keys that may hold a proxied hostname value for the request.


key: sslRedirect

description: The sslRedirect is set to true, then only allow https requests.


key: sslTemporaryRedirect

description: Set the sslTemporaryRedirect to true to force an SSL redirection using a 302 (instead of a 301).


key: sslHost

description: The sslHost option is the host name that is used to redirect http requests to https.


key: sslProxyHeaders

description: The sslProxyHeaders option is set of header keys with associated values that would indicate a valid https request. Useful when using other proxies with header like: "X-Forwarded-Proto": "https".


key: sslForceHost

description: Set sslForceHost to true and set SSLHost to forced requests to use SSLHost even the ones that are already using SSL.


key: stsSeconds

description: The stsSeconds is the max-age of the Strict-Transport-Security header. If set to 0, would NOT include the header.


key: stsIncludeSubdomains

description: The stsIncludeSubdomains is set to true, the includeSubDomains directive will be appended to the Strict-Transport-Security header.


key: stsPreload

description: Set stsPreload to true to have the preload flag appended to the Strict-Transport-Security header.


key: forceSTSHeader

description: Set forceSTSHeader to true, to add the STS header even when the connection is HTTP.


key: frameDeny

description: Set frameDeny to true to add the X-Frame-Options header with the value of DENY.


key: customFrameOptionsValue

description: The customFrameOptionsValue allows the X-Frame-Options header value to be set with a custom value. This overrides the FrameDeny option.


key: contentTypeNosniff

description: Set contentTypeNosniff to true to add the X-Content-Type-Options header with the value nosniff.


key: browserXssFilter

description: Set browserXssFilter to true to add the X-XSS-Protection header with the value 1; mode=block.


key: customBrowserXSSValue

description: The customBrowserXssValue option allows the X-XSS-Protection header value to be set with a custom value. This overrides the BrowserXssFilter option.


key: contentSecurityPolicy

description: The contentSecurityPolicy option allows the Content-Security-Policy header value to be set with a custom value.


key: publicKey

description: The publicKey implements HPKP to prevent MITM attacks with forged certificates.


key: referrerPolicy

description: The referrerPolicy allows sites to control when browsers will pass the Referer header to other sites.


key: featurePolicy

description: The featurePolicy allows sites to control browser features.


key: permissionsPolicy

description: The permissionsPolicy allows sites to control browser features.


key: isDevelopment

description:
Set isDevelopment to true when developing. The AllowedHosts, SSL, and STS options can cause some unwanted effects. Usually testing happens on http, not https, and on localhost, not your production domain.
If you would like your development environment to mimic production with complete Host blocking, SSL redirects, and STS headers, leave this as false.


key: ipStrategy

description: The ipStrategy option defines parameters that set how Traefik will determine the client IP.


key: depth

description: The depth option tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). If depth is greater than the total number of IPs in X-Forwarded-For, then the client IP will be empty. depth is ignored if its value is lesser than or equal to 0.


key: excludedIPs

description: excludedIPs tells Traefik to scan the X-Forwarded-For header and pick the first IP not in the list. If depth is specified, excludedIPs is ignored.


key: ipWhiteListMiddleware

description: IPWhitelist accepts / refuses requests based on the client IP.


key: sourceRange

description: The sourceRange option sets the allowed IPs (or ranges of allowed IPs by using CIDR notation).


key: sourceCriterion

description: SourceCriterion defines what criterion is used to group requests as originating from a common source. The precedence order is ipStrategy, then requestHeaderName, then requestHost. If none are set, the default is to use the requestHost.


key: requestHeaderName

description: Requests having the same value for the given header are grouped as coming from the same source.


key: requestHost

description: Whether to consider the request host as the source.


key: inFlightReqMiddleware

description: To proactively prevent services from being overwhelmed with high load, a limit on the number of simultaneous in-flight requests can be applied.


key: amount

description: The amount option defines the maximum amount of allowed simultaneous in-flight request. The middleware will return an HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy).


key: passTLSClientCertMiddleware

description: PassTLSClientCert adds in header the selected data from the passed client tls certificate.


key: pem

description: The pem option sets the X-Forwarded-Tls-Client-Cert header with the escape certificate.


key: info

description: The info option select the specific client certificate details you want to add to the X-Forwarded-Tls-Client-Cert-Info header. The value of the header will be an escaped concatenation of all the selected certificate details.


key: notAfter

description: Set the notAfter option to true to add the Not After information from the Validity part.


key: notBefore

description: Set the notBefore option to true to add the Not Before information from the Validity part.


key: sans

description: Set the sans option to true to add the Subject Alternative Name information from the Subject Alternative Name part.


key: subject

description: The subject select the specific client certificate subject details you want to add to the X-Forwarded-Tls-Client-Cert-Info header.


key: country

description: Set the country option to true to add the country information into the subject.


key: province

description: Set the province option to true to add the province information into the subject.


key: locality

description: Set the locality option to true to add the locality information into the subject.


key: organization

description: Set the organization option to true to add the organization information into the subject.


key: commonName

description: Set the commonName option to true to add the commonName information into the subject.


key: serialNumber

description: Set the serialNumber option to true to add the serialNumber information into the subject.


key: domainComponent

description: Set the domainComponent option to true to add the domainComponent information into the subject.


key: issuer

description: The issuer select the specific client certificate issuer details you want to add to the X-Forwarded-Tls-Client-Cert-Info header.


description: Set the country option to true to add the country information into the issuer.


description: Set the province option to true to add the province information into the issuer.


description: Set the locality option to true to add the locality information into the issuer.


description: Set the organization option to true to add the organization information into the issuer.


description: Set the commonName option to true to add the commonName information into the issuer.


description: Set the serialNumber option to true to add the serialNumber information into the issuer.


description: Set the domainComponent option to true to add the domainComponent information into the issuer.


key: pluginMiddleware

description: Some plugins will need to be configured by adding a dynamic configuration.


key: rateLimitMiddleware

description: The RateLimit middleware ensures that services will receive a fair number of requests, and allows one to define what fair is.


key: average

description:
average is the maximum rate, by default in requests by second, allowed for the given source.

It defaults to 0, which means no rate limiting.

The rate is actually defined by dividing average by period. So for a rate below 1 req/s, one needs to define a period larger than a second.


key: period

description:
period, in combination with average, defines the actual maximum rate.

It defaults to 1 second.


key: burst

description:
burst is the maximum number of requests allowed to go through in the same arbitrarily small period of time.

It defaults to 1.


key: redirectRegexMiddleware

description: RegexRedirect redirect a request from an url to another with regex matching and replacement.


key: permanent

description: Set the permanent option to true to apply a permanent redirection.


key: regex

description: The regex option is the regular expression to match and capture elements from the request URL.


key: replacement

description: The replacement option defines how to modify the URL to have the new target URL. Care should be taken when defining replacement expand variables: $1x is equivalent to ${1x}, not ${1}x (see Regexp.Expand), so use ${1} syntax.


key: redirectSchemeMiddleware

description: RedirectScheme redirect request from a scheme to another.


key: scheme

description: The scheme option defines the scheme of the new url.


key: port

description: The port option defines the port of the new url. Port in this configuration is a string, not a numeric value.


key: replacePathMiddleware

description: Replace the path of the request url. It will replace the actual path by the specified one and will store the original path in a X-Replaced-Path header.


key: path

description: The path option defines the path to use as replacement in the request url.


key: replacePathRegexMiddleware

description: The ReplaceRegex replace a path from an url to another with regex matching and replacement. It will replace the actual path by the specified one and store the original path in a X-Replaced-Path header.


description: The regex option is the regular expression to match and capture the path from the request URL.


description: The replacement option defines how to modify the path to have the new target path. Care should be taken when defining replacement expand variables: $1x is equivalent to ${1x}, not ${1}x (see Regexp.Expand), so use ${1} syntax.


key: retryMiddleware

description: The Retry middleware is in charge of reissuing a request a given number of times to a backend server if that server does not reply. To be clear, as soon as the server answers, the middleware stops retrying, regardless of the response status.


key: attempts

description: The attempts option defines how many times the request should be retried.


key: initialInterval

description: The initialInterval option defines the first wait time in the exponential backoff series.


key: stripPrefixMiddleware

description: Remove the specified prefixes from the URL path. It will strip the matching path prefix and will store the matching path prefix in a X-Forwarded-Prefix header.


key: prefixes

description: The prefixes option defines the prefixes to strip from the request URL


key: forceSlash

description:
The forceSlash option makes sure that the resulting stripped path is not the empty string, by replacing it with / when necessary.

This option was added to keep the initial (non-intuitive) behavior of this middleware, in order to avoid introducing a breaking change.

It's recommended to explicitly set forceSlash to false.


key: stripPrefixRegexMiddleware

description: Remove the matching prefixes from the URL path. It will strip the matching path prefix and will store the matching path prefix in a X-Forwarded-Prefix header.


description: The regex option is the regular expression to match the path prefix from the request URL.


key: tcpRouter

description: If both HTTP routers and TCP routers listen to the same entry points, the TCP routers will apply before the HTTP routers. If no matching route is found for the TCP routers, then the HTTP routers will take over.


key: entryPoints

description: If not specified, TCP routers will accept requests from all defined entry points. If you want to limit the router scope to a set of entry points, set the entry points option.


key: rule

description: It is important to note that the Server Name Indication is an extension of the TLS protocol. Hence, only TLS routers will be able to specify a domain name with that rule. However, non-TLS routers will have to explicitly use that rule with * (every domain) to state that every non-TLS request will be handled by the router.


key: service

description: You must attach a TCP service per TCP router. Services are the target for the router. TCP routers can only target TCP services (not HTTP services).


key: priority

description: To avoid path overlap, routes are sorted, by default, in descending order using rules length. The priority is directly equal to the length of the rule, and so the longest length has the highest priority. A value of 0 for the priority is ignored: priority = 0 means that the default rules length sorting is used.


key: tls

description:
When a TLS section is specified, it instructs Traefik that the current router is dedicated to TLS requests only (and that the router should ignore non-TLS requests).

By default, a router with a TLS section will terminate the TLS connections, meaning that it will send decrypted data to the services.


key: passthrough

description: A TLS router will terminate the TLS connection by default. However, the passthrough option can be specified to set whether the requests should be forwarded "as is", keeping all data encrypted.


key: options

description: The options field enables fine-grained control of the TLS parameters. It refers to a TLS Options and will be applied only if a Host rule is defined.


key: certResolver

description: If certResolver is defined, Traefik will try to generate certificates based on routers Host & HostSNI rules.


key: domains

description: You can set SANs (alternative domains) for each main domain. Every domain must have A/AAAA records pointing to Traefik. Each domain & SAN will lead to a certificate request.


key: main

description: Main defines the main domain name.


key: sans

description: SANs defines the subject alternative domain names.


key: servers

description: Servers declare a single instance of your program.


key: address

description: The address option (IP:Port) point to a specific instance.


key: terminationDelay

description:
As a proxy between a client and a server, it can happen that either side (e.g. client side) decides to terminate its writing capability on the connection (i.e. issuance of a FIN packet). The proxy needs to propagate that intent to the other side, and so when that happens, it also does the same on its connection with the other side (e.g. backend side).

However, if for some reason (bad implementation, or malicious intent) the other side does not eventually do the same as well, the connection would stay half-open, which would lock resources for however long.

To that end, as soon as the proxy enters this termination sequence, it sets a deadline on fully terminating the connections on both sides.

The termination delay controls that deadline. It is a duration in milliseconds, defaulting to 100. A negative value means an infinite deadline (i.e. the connection is never fully terminated by the proxy itself).


description: If not specified, UDP routers will accept packets from all defined (UDP) entry points. If one wants to limit the router scope to a set of entry points, one should set the entry points option.


description: There must be one (and only one) UDP service referenced per UDP router. Services are the target for the router.


key: udpLoadBalancerService

description: The servers load balancer is in charge of balancing the requests between the servers of the same service.


description: The servers field defines all the servers that are part of this load-balancing group, i.e. each address (IP:Port) on which an instance of the service's program is deployed.


key: middlewares

description:
Attached to the routers, pieces of middleware are a means of tweaking the requests before they are sent to your service (or before the answer from the services are sent to the clients).

There are several available middleware in Traefik, some can modify the request, the headers, some are in charge of redirections, some add authentication, and so on.

Pieces of middleware can be combined in chains to fit every scenario.


key: services

description: Each of the fields of the service section represents a kind of service. Which means, that for each specified service, one of the fields, and only one, has to be enabled to define what kind of service is created. Currently, the two available kinds are LoadBalancer, and Weighted.


key: routers

description: Similarly to TCP, as UDP is the transport layer, there is no concept of a request, so there is no notion of an URL path prefix to match an incoming UDP packet with. Furthermore, as there is no good TLS support at the moment for multiple hosts, there is no Host SNI notion to match against either. Therefore, there is no criterion that could be used as a rule to match incoming packets in order to route them. So UDP "routers" at this time are pretty much only load-balancers in one form or another.


description: Configures the TLS connection, TLS options, and certificate stores.


key: stores

description: A list of stores can be specified here to indicate where the certificates should be stored. Although the stores list will actually be ignored and automatically set to ["default"].


description: The TLS options allow one to configure some parameters of the TLS connection.


key: minVersion

description: Minimum TLS Version


key: maxVersion

description: Maximum TLS Version. It is discouraged to use of this setting to disable TLS1.3. The recommended approach is to update the clients to support TLS1.3.


key: cipherSuites

description: Cipher suites defined for TLS 1.2 and below cannot be used in TLS 1.3, and vice versa. With TLS 1.3, the cipher suites are not configurable (all supported cipher suites are safe in this case).


key: curvePreferences

description:
This option allows to set the preferred elliptic curves in a specific order.

The names of the curves defined by crypto (e.g. CurveP521) and the RFC defined names (e.g. secp521r1) can be used.


key: sniStrict

description: With strict SNI checking enabled, Traefik won't allow connections from clients that do not specify a server_name extension or don't match any certificate configured on the tlsOption.


key: preferServerCipherSuites

description: This option allows the server to choose its most preferred cipher suite instead of the client's. Please note that this is enabled automatically when minVersion or maxVersion are set.


key: clientAuth

description: Traefik supports mutual authentication, through the clientAuth section.


key: caFiles

description: For authentication policies that require verification of the client certificate, the certificate authority for the certificate should be set here.


description: Any store definition other than the default one (named default) will be ignored, and there is therefore only one globally available TLS store.


key: defaultCertificate

description: Traefik can use a default certificate for connections without a SNI, or without a matching domain. If no default certificate is provided, Traefik generates and uses a self-signed certificate.


key: defaultGeneratedCert

description: GeneratedCert defines the default generated certificate configuration.


key: resolver

description: Resolver is the name of the resolver that will be used to issue the DefaultCertificate.


key: domain

description: Domain is the domain definition for the DefaultCertificate.


key: main

description: Main defines the main domain name.


key: sans

description: SANs defines the subject alternative domain names.


description: goreleaser configuration definition file

enum: tar tgz tar.gz zip gz tar.xz txz binary

enum: symlink ghost config config|noreplace dir tree

enum: all manifests images checksum source package archive binary sbom


key: rlcp

description: you can now remove this


key: tap

description: use repository instead


key: plist

description: use service instead


key: index

description: use repository instead


key: scoop

description: use scoops instead


key: build

description: use builds instead


key: bucket

description: use repository instead


key: datatype

description: Indicates limitations on the valid values a symbol may be assigned. When specified, the symbol value is attempted to be converted to this type. The datatype "choice" is supported only for parameter symbols and requires providing symbols.choices configuration for the symbol.

enum: choice bool float int hex text

pattern: ^(integer|string)$


key: value

description: The constant value to be assigned to the symbol.


key: format

description: This property is not maintained and may be removed in the future. Use defaultFormat instead, or use 'guids' section.


key: defaultFormat

description: The format of guid to be generated. Accepts a single value from ('n', 'd', 'b', 'p', 'x') for lowercase output or ('N', 'D', 'B', 'P', 'X') for uppercase output. The formats are defined in Guid.ToString() method documentation.


description: The format string to use when converting the date-time to a string representation.


key: utc

description: If true, use UTC time. If false, use local time.


key: low

description: An integer value indicating the low-end of the range to generate the random number in.


key: high

description: An integer value indicating the high-end of the range to generate the random number in. If not explicitly provided, defaults to int.MaxValue.


key: source

description: The name of a different parameter in the template configuration. A copy of its value will be used by this generator's regex to generate the value for this parameter. The value of the source parameter is not modified.


key: steps

description: An ordered list of key-value pairs indicating the regex replacement actions. Each element of the list must contain exactly the keys 'regex' and 'replacement' - along with their values. These replacements will be applied to the result of the previous replacement (except the first, which acts on the original value from the source).

required: regex replacement


key: regex

description: The regular expression to use to locate the sequence to replace.


key: replacement

description: The replacement for any sequences matched by the supplied regular expression.


description: The symbol to search for a match. Its value will be used by this generator's regex to evaluate if there is a match. The value of the source parameter is not modified.


key: pattern

description: The regular expression to use to match.


key: sourceVariableName

description: The name of the symbol whose value will be inspected - if the value is effectively equal to the default value, the value of the symbol referred to by fallbackVariableName is used, otherwise the value of this symbol.


key: defaultValue

description: The value to consider as being the default - if the value of the symbol referred to by sourceVariableName is equal to this, the value of the symbol referred to in fallbackVariableName is used instead.


key: fallbackVariableName

description: The name of the symbol to return the value of if the symbol referred to by sourceVariableName has a value equal to the value of defaultValue.


description: The name of the symbol whose value should have its case changed.


key: toLower

description: Whether the case changed to should be lower case, if false, the value is made to be uppercase instead.


description: The lower bound of acceptable port numbers.


description: The upper bound of acceptable port numbers.


key: fallback

description: The port number to use if no free ports could be found.


key: evaluator

description: The style of evaluator to use.

enum: C++ C++2 MSBUILD VB


key: cases

description: The set of cases to test for. The first one, in document order, to return true's value is used, if none return true, empty string is returned.

required: condition value


key: condition

description: An expression to be interpreted by the specified evaluator type.


key: value

description: The value to return if the condition evaluates to true.


key: separator

description: The value used as the separator between the values to be concatenated, notice that you can use "/" as folder separator also on Windows since File API will convert it into "\".


key: removeEmptyValues

description: Indication whether null and empty strings should be removed from joining to prevent repetitive separators.

default: false


key: symbols

description: All values to concatenate.

enum: ref const


key: type

description: "ref" to reference value from another symbol or "const" for string constant, defaults to "const".


description: Either name of another symbol or string constant.


key: guid

description: A guid string to be replaced in source files. Format and casing is not significant in the config as format and casing is preserved based on the particular guid in processed file(s).


description: Boolean condition to indicate if the sources configuration should be included or ignored. If the condition evaluates to true or is not provided, the sources config will be used for creating the template. If it evaluates to false, the sources config will be ignored.


key: exclude

description: The set of globbing patterns indicating the content that was included by sources.include that should not be processed.


key: include

description: The set of globbing patterns indicating the content to process in the path referred to by the source.


key: copyOnly

description: The set of globbing patterns indicating the content that was included by sources.include, that hasn't been excluded by sources.exclude that should be placed in the user's directory without modification.


key: rename

description: The set of explicit renames to perform. Each key is a path to a file in the source, each value is a path to the target location.


key: modifiers

description: A list of additional source information which gets added to the top-level source information, based on evaluation the corresponding source.modifiers.condition.


key: source

description: The path in the template content (relative to the directory containing the .template.config folder) that should be processed.


key: target

description: The path (relative to the directory the user has specified) that content should be written to.


key: author

description: The author of the template.


key: classifications

description: Zero or more characteristics of the template that a user might search for it by.


key: defaultName

description: The name to use during creation if no name has been specified by the user or provided from the host.


key: generatorVersions

description: The semantic version range of the Microsoft.TemplateEngine.Orchestrator.RunnableProjects package that this template is usable with. In older versions of the engine, the four octet version string is used but is matched against a constant which was never changed from 1.0.0.0 - either syntax is now accepted, however the four octet string will not be changed from 1.0.0.0.


key: groupIdentity

description: The ID of the group this template belongs to. When combined with the "tags" section, this allows multiple templates to be displayed as one, with the the decision for which one to use being presented as a choice in each one of the pivot categories (keys).


key: guids

description: A list of guids which appear in the template source and should be replaced in the template output. For each guid listed, a replacement guid is generated, and replaces all occurrences of the source guid in the output.


key: identity

description: A unique name for this template.


key: name

description: The name for the template that users should see.


key: placeholderFilename

description: A filename that will be completely ignored except to indicate that its containing directory should be copied. This allows creation of an empty directory in the created template, by having a corresponding source directory containing just the placeholder file. Completely empty directories are ignored.


key: postActions

description: Defines an ordered list of actions to perform after template generation. The post action information is provided to the creation broker, to act on as appropriate.

required: actionId manualInstructions

required: referenceType reference

enum: project package framework


key: actionId

description: A guid uniquely defining the action. The value must correspond to a post-action known by the broker.


key: args

description: A list of key-value pairs to use when performing the action. The specific parameters required / allowed are defined by the action itself.


key: condition

description: A C++ style expression that, if it evaluates to 'false' causes the post-action to be skipped. This expression may refer to any symbols that have been defined.


key: continueOnError

description: If this action fails, the value of continueOnError indicates whether to attempt the next action, or stop processing the post actions. Should be set to true when subsequent actions rely on the success of the current action.


key: description

description: A human-readable description of the action.


key: id

description: Defines identifier to be used when localizing the post action artifacts.


key: applyFileRenamesToArgs

description: A list of arguments names from 'args' to which the file renames configured in symbols should be applied.


key: applyFileRenamesToManualInstructions

description: If set to true, the file renames configured in symbols should be applied to manual instructions.


key: manualInstructions

description: An ordered list of possible instructions to display if the action cannot be performed. Each element in the list must contain a key named "text", whose value contains the instructions. Each element may also optionally provide a key named "condition" - a Boolean evaluate-able string. The first instruction whose condition is false or blank will be considered valid, all others are ignored.


description: Defines identifier to be used when localizing the manual instructions.


key: items

description: Instruction display - shows a message given by description and manualInstructions as well as an optional command line to ask the user to execute.


key: executable

description: The executable to instruct the user to run.


description: The arguments to instruct the user to run the executable with - if executable is not specified, this value is unused.


description: Process start - starts a process.


key: redirectStandardOutput

description: Whether or not to redirect stdout for the process (prevents output from being displayed if true).


key: redirectStandardError

description: Defines whether or not the stderr should be redirected. If the output is redirected, it prevents it from being displayed.


description: The executable to run.


description: The arguments to supply to the executable.


description: Add reference - adds a reference to a project, package or framework assembly.


key: referenceType

description: The type of reference to add. project = A project to project reference. package = A NuGet package reference. framework - A framework assembly reference.


key: projectFileExtensions

description: Must be a literal extension for the project file(s) of interest, may be a semicolon delimited list. If unspecified, any project file (*.*proj) is allowed.


key: reference

description: The reference to be added (if referenceType=package, this is the package ID; if referenceType=framework, this is the path or assembly name; if referenceType=project, this is the path to the project reference to add).


key: version

description: The version of the package reference to add, applicable only if referenceType=package.


key: targetFiles

description: An array of files that should be processed. If not specified, the project file in output directory or its closest parent directory will be used.


description: A semicolon delimited list of files that should be processed. If not specified, the project file in output directory or its closest parent directory will be used.


description: chmod - runs chmod on a particular file.


key: args

description: The permissions to set: the key-value pairs, where the key is a permission, and the value is a file or array of files to apply the permission to.


key: additionalProperties

description: The set of files (or patterns) to apply the permission specified in the property name to.


description: The file (or pattern) to apply the permission specified in the property name to.


description: NuGet package restore - restores NuGet packages for all primary outputs with file extensions *.proj or *.sln.


key: files

description: An array of files that should be restored. If not specified, all primary outputs are restored.


description: A semicolon delimited list of files that should be restored. If not specified, all primary outputs are restored.


description: Add to solution - Adds one or more of the primary outputs to the first sln file found (searches up the directory tree from the output folder).


key: primaryOutputIndexes

description: A semicolon delimited list of indexes of the primary outputs that should be added to the solution, if not specified, all primary outputs are used.


key: solutionFolder

description: The destination solution folder path to add the projects to. Can't be used with 'inRoot'. Optional.


key: inRoot

description: Places the projects in the root of the solution, rather than creating a solution folder. Cannot be used with 'solutionFolder'. Optional. Available since .NET SDK 7.0.200.


key: projectFiles

description: An array of project files that should be added to solution. If not specified, primary outputs will be used instead.


description: A semicolon delimited list of files that should be added to solution. If not specified, primary outputs will be used instead.


description: Open in editor - Adds one or more of the primary outputs to the first sln file found (searches up the directory tree from the output folder).


description: A semicolon delimited list of indexes of the primary outputs that should be opened in the editor.


key: precedence

description: A value used to determine how preferred this template is among the other templates with the same groupIdentity (higher values are more preferred).

type: integer string


key: preferDefaultName

description: Indicated which behaviour to use when no `--name` is specified during template creation. If `true` it will use the template's `defaultName`. If no `defaultName` is found, or `preferDefaultName` is `false` it uses the fallback (output folder).


key: preferNameDirectory

description: Indicates whether to create a directory for the template if name is specified but an output directory is not set (instead of creating the content directly in the current directory).


key: primaryOutputs

description: A list of important output paths created during template generation. These paths need to be added to the newly created project at the end of template creation.

default: true


key: path

description: The path to the file in the template content whose corresponding output file should be included as a primary output.


key: condition

description: The condition for including the specified path in the primary outputs set.


key: shortName

description: A shorthand name for selecting the template in CLI environment. The template short name should be unique across all the installed templates.


description: A shorthand name for selecting the template in CLI environment. The first element is a primary choice, and will be used in scenarios which allow only single value for the short name. The template short name should be unique across all the installed templates.


key: sourceName

description: The text in the source content to replace with the name the user specifies. The value of the 'sourceName' is available in built-in 'name' symbol that can be used as the source for creating other symbols and condition expressions. See important information about how to select correct 'sourceName' in https://github.com/dotnet/templating/wiki/Naming-and-default-value-forms.


key: sources

description: The set of mappings in the template content to user directories.


key: forms

description: Custom value forms used by the template.

enum: lowerCaseInvariant xmlEncode safe_name lower_safe_name upperCaseInvariant replace safe_namespace lower_safe_namespace chain lowerCase identity upperCase jsonEncode firstLowerCase firstLowerCaseInvariant firstUpperCase firstUpperCaseInvariant titleCase kebabCase

required: pattern replacement


key: identifier

description: The identifier for the value form component that will be used to transform the value.


key: additionalProperties

description: Lowercases the source value in a culture invariant way.


description: XML encodes the source value.


description: Converts the source value to a string suitable for a C# identifier.


description: Converts the source value to a lowercase string suitable for a C# identifier.


description: Performs a regular expression replacement on the source value.


key: pattern

description: A regular expression whose matches will be replaced with the literal value specified in replacement.


key: replacement

description: The value to replace the matches of the specified pattern in the source value with.


description: Converts the source value to a string suitable for a C# namespace.


description: Converts the source value to a lowercase string suitable for a C# namespace.


description: Performs a series of transforms.


key: items

description: The name of the form to apply to the previous step (or source value if this is the first step).


description: Changes the case of source value to lower-case.


description: Returns the source value.


description: Converts the source value to upper-case using the casing rules of the current culture.


description: Converts the source value to upper-case using the casing rules of the invariant culture.


description: JSON encodes the source value.


description: Converts the first letter of the value to lowercase using the casing rules of the current culture.


description: Converts the first letter of the value to lowercase using the casing rules of the invariant culture.


description: Converts the first letter of the value to uppercase using the casing rules of the current culture.


description: Converts the first letter of the value to uppercase using the casing rules of the invariant culture.


description: Converts the value to title case using the casing rules of the current culture.


description: Converts the value to kebab case using the casing rules of the invariant culture.


key: symbols

description: The symbols section defines variables and their values, the values may be the defined in terms of other symbols. When a defined symbol name is encountered anywhere in the template definition, it is replaced by the value defined in this configuration. The symbols configuration is a collection of key-value pairs. The keys are the symbol names, and the value contains key-value-pair configuration information on how to assign the symbol a value.

enum: bind derived generated parameter computed

required: valueSource valueTransform


key: type

description: The symbol binds value from external sources.


key: binding

description: The source and the name of parameter to take the value from. The syntax is: <external source>:<parameter name>. Well known external sources are: host - a value that is defined by the template engine host; env - environment variable.


key: defaultValue

description: The value assigned to the symbol if no value was provided from external source(s).


key: replaces

description: The text to replace with the value of this symbol.


key: fileRename

description: Defines the portion of file names which will be replaced by symbol value.


key: after

description: The replacement string occurs after this value.


key: before

description: The replacement string occurs before this value.


description: The value of this symbol is derived from the value of another symbol by the application of value forms.


key: valueSource

description: The name of the symbol that the value should be derived from.


key: valueTransform

description: The name of the value form that should be applied to the source value to use as the value of this symbol.


description: The value assigned to the symbol if no value was provided.


description: Defines the high level configuration of symbol.


key: isRequired

description: Flag indicating whether the parameter has to be specified on the input.


description: Condition indicating whether the parameter has to be specified on the input.


key: isEnabled

description: Flag indicating parameter visibility.


description: Condition indicating parameter visibility.


key: choices

description: An array listing the valid choices for a symbol whose datatype = choice. If not provided, there are no valid choices for the symbol, so it can never be assigned a value.


key: choice

description: A valid value for the symbol.


key: description

description: Help text describing the meaning of the corresponding value.


key: displayName

description: The friendly name of the choice to be displayed to the user. This property can be localized.


description: The value assigned to the symbol if no value for it is provided by the user or host.


description: The description of the parameter.


description: The element defines the portion of file names which will be replaced by symbol value.


key: allowMultipleValues

description: Indication whether multiple values can be specified for a parameter. Valid only for datatype = choice.


key: enableQuotelessLiterals

description: Indication whether implicit symbols for each choice value should be added to parameter collection. This allows condition syntax without using quotes for choice literals. Valid only for datatype = choice.


description: The friendly name of the symbol to be displayed to the user. This property can be localized.


key: global

description: An array of the forms applied to the parameter symbol. Note that the forms should produce the different result on the value of 'replaces' and 'fileRename' properties. Use the form in the template content to apply corresponding transformation to the value given by the user as the parameter.


description: The form applied to the parameter symbol. Note that the forms should produce the different result on the value of 'replaces' and 'fileRename' properties. Use the form in the template content to apply corresponding transformation to the value given by the user as the parameter.


key: type


key: value

description: An evaluate-able condition whose result defines the value of the symbol.


key: baselines

description: Alternate sets of defaults for symbols.


key: additionalProperties

description: A named set of alternate defaults.


description: A string to use to indicate the intent of the baseline.


key: defaultOverrides

description: A lookup of symbol names to new defaults.


description: An updated default value for the specified symbol.


key: tags

description: Common information about templates, these are effectively interchangeable with choice type parameter symbols.

enum: project item solution


key: language

description: The programming language the template primarily contains or is intended for use with.


description: The type of template: project or item.


key: thirdPartyNotices

description: An URL for a document indicating any libraries used by the template that are not owned/provided by the template author.


description: A description of the template's purpose or contents for use in help.


key: constraints

description: The constraints section defines the restrictions when the template can be run. Available since .NET SDK 7.0.100.

enum: os host workload sdk-version project-capability

type: array object string

enum: Windows Linux OSX

enum: dotnetcli vs vs-mac ide


description: Constraint type.


key: args

description: Constraints arguments.


description: Operating system constraint. Allows to restrict the template to be run only on specific operating systems.


description: Host constraint. Allows to restrict the template to be run only on specific applications using template engine.


key: hostname

description: The identifier of supported host. Commonly used identifiers are: 'dotnetcli'' - .NET SDK, 'vs' - Visual Studio, 'vs-mac' - Visual Studio for Mac, 'ide' - Visual Studio (any platform).


key: version

description: The supported version of the host. May be an exact version, float version or version range. Refer to https://docs.microsoft.com/en-us/nuget/concepts/package-versioning for more info.


description: Installed workload constraint. Allows to restrict the template to be run only on host with specific workloads installed.


description: supported workload (running host need to have at least one of the requested workloads installed).


key: items


description: SDK version constraint. Allows to restrict the template to be run only on specific .NET SDK version(s).


description: The supported version of the SDK. May be an exact version, float version or version range. Refer to https://docs.microsoft.com/en-us/nuget/concepts/package-versioning for more info.


description: The project context constraint. Allows to restrict the item template to be run only on inside .NET project with certain capabilities.


description: Project capability expression that should be satisfied by the project. Refer to https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.vsprojectcapabilityexpressionmatcher for more info.


description: Use this to include a stylesheet in your popup that will make it look consistent with the browser's UI and with other add-ons that use the browser_style property. Although this key defaults to false, it's recommended that you include it and set it to true.


description: The popup appears when the user clicks the icon.


description: Tooltip for the main toolbar icon.


description: This introduces some fairly strict policies that will make extensions more secure by default, and provides you with the ability to create and enforce rules governing the types of content that can be loaded and executed by your extensions and applications.

default: script-src 'self'; object-src 'self'


key: applications

description: The applications key contains keys that are specific to a particular host application.

format: uri


key: id

description: id is the extension ID


description: Minimum version of Gecko to support. Defaults to '42a1'. (Requires Gecko 45)


description: Maximum version of Gecko to support. Defaults to '*'. (Requires Gecko 45)


description: Link to an add-on update manifest. (Requires Gecko 45)


key: author

description: "The extension's author, intended for display in the browser's user interface. If the developer key is supplied and it contains the "name" property, it will override the author key. There's no way to specify multiple authors."


key: background

description: The background page is an HTML page that runs in the extension process. It exists for the lifetime of your extension, and only one instance of it at a time is active.


key: persistent

description: When false, makes the background page an event page (loaded only when needed).


key: page

description: Specify the HTML of the background page.


key: scripts

description: A background page will be generated by the extension system that includes each of the files listed in the scripts property.


description: browser action is a button that your extension adds to the browser's toolbar. The button has an icon, and may optionally have a popup whose content is specified using HTML, CSS, and JavaScript.

enum: navbar menupanel tabstrip personaltoolbar

default: navbar


description: Defines the part of the browser in which the button is initially placed.


description: Use the chrome_settings_overrides key to override certain browser settings


key: homepage

description: Defines the page to be used as the browser's homepage.


description: Use the chrome_url_overrides key to provide a custom replacement for the documents loaded into various special pages usually provided by the browser itself.


key: bookmarks

description: Provide a replacement for the page that shows the bookmarks.


key: history

description: Provide a replacement for the page that shows the browsing history.


key: newtab

description: Provide a replacement for the document that's shown in the "new tab" page


key: commands

description: Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the extension.


description: Content scripts are JavaScript files that run in the context of web pages.


key: matches

description: Specifies which pages this content script will be injected into.


description: Excludes pages that this content script would otherwise be injected into.


key: css

description: The list of CSS files to be injected into matching pages. These are injected in the order they appear in this array, before any DOM is constructed or displayed for the page.


key: js

description: The list of JavaScript files to be injected into matching pages. These are injected in the order they appear in this array.


description: Controls when the files in js are injected.


description: Controls whether the content script runs in all frames of the matching page, or only the top frame.


description: Applied after matches to include only those URLs that also match this glob. Intended to emulate the @include Greasemonkey keyword.


description: Applied after matches to exclude URLs that match this glob. Intended to emulate the @exclude Greasemonkey keyword.


description: Whether to insert the content script on about:blank and about:srcdoc.


description: Specifies the subdirectory of _locales that contains the default strings for this extension.

default: en


key: description

description: A plain text description of the extension


key: developer

description: The name of the extension's developer and their homepage URL, intended for display in the browser's user interface.


description: A DevTools extension adds functionality to the Chrome DevTools. It can add new UI panels and sidebars, interact with the inspected page, get information about network requests, and more.


description: The URL of the homepage for this add-on. The add-on management page will contain a link to this URL.


key: icons

description: One or more icons that represent the extension, app, or theme. Recommended format: PNG; also BMP, GIF, ICO, JPEG.


key: incognito

description: Specify how this extension will behave if allowed to run in incognito mode.

enum: spanning split not_allowed

default: spanning


description: One integer specifying the version of the manifest file format your package requires.


key: name

description: The name of the extension


key: omnibox

description: The omnibox API allows you to register a keyword with Google Chrome's address bar, which is also known as the omnibox.


key: keyword

description: The keyword that will trigger your extension.


description: Use the optional_permissions key to list permissions which you want to ask for at runtime, after your add-on has been installed.

enum: activeTab background bookmarks clipboardRead clipboardWrite contentSettings contextMenus cookies debugger geolocation history idle management notifications pageCapture tabs topSites webNavigation webRequest webRequestBlocking


description: Use the options_ui key to define an options page for your add-on.


key: page

description: The path to an HTML file containing the specification of your options page.


description: Use this to include a stylesheet in your page that will make it look consistent with the browser's UI and with other add-ons that use the browser_style property.


description: If true, the options page will open in a normal browser tab, rather than being integrated into the browser's add-ons manager.


description: Use the chrome.pageAction API to put icons inside the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages.


description: Use this to include a stylesheet in your popup that will make it look consistent with the browser's UI and with other add-ons that use the browser_style property. Although this key defaults to false, it's recommended that you include it and set it to true.


description: The popup appears when the user clicks the icon.


description: Tooltip for the main toolbar icon.


key: permissions

description: Permissions help to limit damage if your extension or app is compromised by malware. Some permissions are also displayed to users before installation, as detailed in Permission Warnings.


description: Use this key to register one of more web-based protocol handlers.

enum: bitcoin geo im irc ircs magnet mailto mms news nntp sip sms smsto ssh tel urn webcal wtai xmpp

pattern: %s


key: items

description: Use this object to register a single web-based protocol handler


key: protocol

description: A string defining the protocol.


description: A pre-existing protocol allowed for use with WebExtensions. See https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers for more information.


description: A custom-named protocol. These MUST be prefixed with 'web+' or 'ext+', followed by a string consisting of only lower-case ASCII characters.


description: A string representing the name of the protocol handler. This will be displayed to the user when they are being asked if they want this handler to open the link.


key: uriTemplate

description: A string representing the URL of the handler. This string must include "%s" as a placeholder: this will be replaced with the escaped URL of the document to be handled. This URL might be a true URL, or it could be a phone number, email address, or so forth.


description: The short name is typically used where there is insufficient space to display the full name.


description: A sidebar is a pane that is displayed at the left-hand side of the browser window, next to the web page. The browser provides a UI that enables the user to see the currently available sidebars and to select a sidebar to display.


description: The path to an HTML file that specifies the sidebar's contents.


description: Title for the sidebar. This is used in the browser UI for listing and opening sidebars, and is displayed at the top of the sidebar when it is open.


key: version

description: One to four dot-separated integers identifying the version of this extension.


description: An array of strings specifying the paths (relative to the package root) of packaged resources that are expected to be usable in the context of a web page.


description: Output from the GitVersion tool, describing the current version of the repo it was executed from

required: Major Minor Patch PreReleaseTag PreReleaseTagWithDash PreReleaseLabel PreReleaseNumber WeightedPreReleaseNumber BuildMetaData BuildMetaDataPadded FullBuildMetaData MajorMinorPatch SemVer LegacySemVer LegacySemVerPadded AssemblySemVer AssemblySemFileVer FullSemVer InformationalVersion BranchName EscapedBranchName Sha ShortSha NuGetVersionV2 NuGetVersion NuGetPreReleaseTagV2 NuGetPreReleaseTag VersionSourceSha CommitsSinceVersionSource CommitsSinceVersionSourcePadded CommitDate


key: WeightedPreReleaseNumber

description: A summation of branch specific pre-release-weight and the PreReleaseNumber. It can be used to obtain a monotonically increasing version number across the branches


key: FullBuildMetaData

description: Includes branch and commit hash


key: LegacySemVer

description: For pre v2.0 compatibility


key: AssemblySemVer

description: Semantic version for windows/.NET assembly use. If configured as Major.Minor, gives you the ability to roll out hot fixes to your assembly without breaking existing applications that may be referencing it.


key: InformationalVersion

description: Combined version and build metadata


key: BranchName

description: Repository branch name


key: EscapedBranchName

description: Repository branch name, containing only alphanumeric characters and -


key: Sha

description: The commit hash that was used for the build


key: ShortSha

description: A shorter representation of the build commit hash


description: NuGet package version string, using semantic version v2.0


key: NuGetVersion

description: NuGet package version string, without semantic version v2.0 format


description: NuGet package pre-release tag for semantic version v2.0


key: NuGetPreReleaseTag

description: NuGet package pre-release tag, without semantic version v2.0 format


key: VersionSourceSha

description: The hash of the commit used as version source


key: CommitsSinceVersionSource

description: The number of commits made since the version source commit


key: CommitsSinceVersionSourcePadded

description: The number of commits made since the version source commit (zero-padded)


description: The Container Structure Tests provide a powerful framework to validate the structure of a container image. These tests can be used to check the output of commands in an image, as well as verify metadata and contents of the filesystem

required: name command

required: name path shouldExist

enum: owner group any other

required: name path


key: key

description: The name of the environment variables


key: value

description: The value of the environment variable


description: The name of the label


description: The value of the label


key: isRegex

description: Interpreted the value as regex


key: schemaVersion

description: The schema version of Structure Tests.


key: commandTests

description: A list of command tests


key: name

description: The name of the test


key: setup

description: A list of commands (each with optional flags) to run before the actual command under test.


key: teardown

description: A list of commands (each with optional flags) to run after the actual command under test.


key: command

description: The command to run in the test.


key: args

description: The arguments to pass to the command.


key: expectedOutput

description: List of regexes that should match the stdout from running the command.


key: excludedOutput

description: List of regexes that should not match the stdout from running the command..


key: expectedError

description: List of regexes that should match the stderr from running the command.


key: excludedError

description: List of regexes that should not match the stderr from running the command.