View Source Wayfarer.Dsl (wayfarer v0.6.0)

The Wayfarer DSL for defining static proxy configurations.

DSL options

wayfarer

  • config
    • health_checks
      • check
    • host_patterns
      • pattern
    • listeners
      • http
      • https
    • targets
      • http
        • health_checks
          • check
      • https
        • health_checks
          • check
      • plug
      • ws
        • health_checks
          • check
      • wss
        • health_checks
          • check

config

* health_checks
  * check
* host_patterns
  * pattern
* listeners
  * http
  * https
* targets
  * http
    * health_checks
      * check
  * https
    * health_checks
      * check
  * plug
  * ws
    * health_checks
      * check
  * wss
    * health_checks
      * check
health_checks
 * check
check
  • :name - A unique name for the health check.

  • :method - The HTTP method to use for the request. Valid values are :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch The default value is :get.

  • :connect_timeout (pos_integer/0) - Connection timeout in milliseconds The default value is 5000.

  • :response_timeout (pos_integer/0) - Response timeout in milliseconds The default value is 500.

  • :hostname - The HTTP hostname to use when sending the request. Defaults to the IP address.

  • :interval (pos_integer/0) - Interval in milliseconds The default value is 30000.

  • :threshold (pos_integer/0) - Success threshold The default value is 3.

  • :path (String.t/0) - Path The default value is "/".

  • :success_codes - HTTP status codes which are considered successful. The default value is [200..299].

host_patterns
 * pattern
pattern
  • :pattern (String.t/0) - Required. A hostname matching pattern.
listeners
 * http
 * https
http
  • :scheme - Required. The listening protocol. Valid values are :http, :https

  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the listener (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :http_1_options (keyword/0) - Options to configure the HTTP/1 stack in Bandit. The default value is [].

  • :http_2_options (keyword/0) - Options to configure the HTTP/2 stack in Bandit. The default value is [].

  • :thousand_island_options (keyword/0) - Possible options to configure a ThousandIsland server. The default value is [].

  • :websocket_options (keyword/0) - Options to configure the WebSocket stack in Bandit. The default value is [].

https
  • :scheme - Required. The listening protocol. Valid values are :http, :https

  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the listener (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :http_1_options (keyword/0) - Options to configure the HTTP/1 stack in Bandit. The default value is [].

  • :http_2_options (keyword/0) - Options to configure the HTTP/2 stack in Bandit. The default value is [].

  • :thousand_island_options (keyword/0) - Possible options to configure a ThousandIsland server. The default value is [].

  • :websocket_options (keyword/0) - Options to configure the WebSocket stack in Bandit. The default value is [].

  • :certfile (String.t/0) - The path to a file containing the SSL certificate to use for this listener.

  • :keyfile (String.t/0) - The path to a file containing the SSL key to use for this listener.

  • :cipher_suite - Used to define a pre-selected set of ciphers, as described by Plug.SSL.configure/1. Valid values are nil, :strong, :compatible

targets
 * http
   * health_checks
     * check
 * https
   * health_checks
     * check
 * plug
 * ws
   * health_checks
     * check
 * wss
   * health_checks
     * check
  • :algorithm - The target selection algorithm. Valid values are :round_robin, :sticky The default value is :round_robin.
http
  * health_checks
    * check
  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the target (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :transport - Which HTTP protocol to use. Valid values are :http1, :http2, :auto The default value is :auto.

####### health_checks

   * check

######## check

  • :name - A unique name for the health check.

  • :method - The HTTP method to use for the request. Valid values are :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch The default value is :get.

  • :connect_timeout (pos_integer/0) - Connection timeout in milliseconds The default value is 5000.

  • :response_timeout (pos_integer/0) - Response timeout in milliseconds The default value is 500.

  • :hostname - The HTTP hostname to use when sending the request. Defaults to the IP address.

  • :interval (pos_integer/0) - Interval in milliseconds The default value is 30000.

  • :threshold (pos_integer/0) - Success threshold The default value is 3.

  • :path (String.t/0) - Path The default value is "/".

  • :success_codes - HTTP status codes which are considered successful. The default value is [200..299].

https
  * health_checks
    * check
  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the target (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :transport - Which HTTP protocol to use. Valid values are :http1, :http2, :auto The default value is :auto.

####### health_checks

   * check

######## check

  • :name - A unique name for the health check.

  • :method - The HTTP method to use for the request. Valid values are :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch The default value is :get.

  • :connect_timeout (pos_integer/0) - Connection timeout in milliseconds The default value is 5000.

  • :response_timeout (pos_integer/0) - Response timeout in milliseconds The default value is 500.

  • :hostname - The HTTP hostname to use when sending the request. Defaults to the IP address.

  • :interval (pos_integer/0) - Interval in milliseconds The default value is 30000.

  • :threshold (pos_integer/0) - Success threshold The default value is 3.

  • :path (String.t/0) - Path The default value is "/".

  • :success_codes - HTTP status codes which are considered successful. The default value is [200..299].

plug
  • :module (module that adopts Plug or a module and options) - Required. A plug which can handle requests.
ws
  * health_checks
    * check
  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the target (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :transport - Which HTTP protocol to use. Valid values are :http1, :http2, :auto The default value is :auto.

####### health_checks

   * check

######## check

  • :name - A unique name for the health check.

  • :method - The HTTP method to use for the request. Valid values are :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch The default value is :get.

  • :connect_timeout (pos_integer/0) - Connection timeout in milliseconds The default value is 5000.

  • :response_timeout (pos_integer/0) - Response timeout in milliseconds The default value is 500.

  • :hostname - The HTTP hostname to use when sending the request. Defaults to the IP address.

  • :interval (pos_integer/0) - Interval in milliseconds The default value is 30000.

  • :threshold (pos_integer/0) - Success threshold The default value is 3.

  • :path (String.t/0) - Path The default value is "/".

  • :success_codes - HTTP status codes which are considered successful. The default value is [200..299].

wss
  * health_checks
    * check
  • :address - Required. The address of the interface to listen on.

  • :name - A unique name for the target (defaults to the URI).

  • :port (pos_integer/0) - Required. The TCP port on which to listen for incoming connections.

  • :transport - Which HTTP protocol to use. Valid values are :http1, :http2, :auto The default value is :auto.

####### health_checks

   * check

######## check

  • :name - A unique name for the health check.

  • :method - The HTTP method to use for the request. Valid values are :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch The default value is :get.

  • :connect_timeout (pos_integer/0) - Connection timeout in milliseconds The default value is 5000.

  • :response_timeout (pos_integer/0) - Response timeout in milliseconds The default value is 500.

  • :hostname - The HTTP hostname to use when sending the request. Defaults to the IP address.

  • :interval (pos_integer/0) - Interval in milliseconds The default value is 30000.

  • :threshold (pos_integer/0) - Success threshold The default value is 3.

  • :path (String.t/0) - Path The default value is "/".

  • :success_codes - HTTP status codes which are considered successful. The default value is [200..299].