# Zeebe standalone gateway configuration file.

# ! ! ! ! ! ! ! ! ! !
# In order to activate the settings in this file, rename this file to application.yaml
# ! ! ! ! ! ! ! ! ! !

# For the configuration of the embedded gateway that is deployed alongside a broker see the gateway section of broker.yaml.template

# Overview -------------------------------------------

# This file contains a complete list of available configuration options.

# Conventions:
#
# Byte sizes
# For buffers and others must be specified as strings and follow the following
# format: "10U" where U (unit) must be replaced with KB = Kilobytes, MB = Megabytes or GB = Gigabytes.
# If unit is omitted then the default unit is simply bytes.
# Example:
# sendBufferSize = "16MB" (creates a buffer of 16 Megabytes)
#
# Time units
# Timeouts, intervals, and the likes, must be specified either in the standard ISO-8601 format used
# by java.time.Duration, or as strings with the following format: "VU", where:
#   - V is a numerical value (e.g. 1, 5, 10, etc.)
#   - U is the unit, one of: ms = Millis, s = Seconds, m = Minutes, or h = Hours
#
# Paths:
# Relative paths are resolved relative to the installation directory of the gateway.

# ----------------------------------------------------

# zeebe:
  # gateway:
    # network:
      # Sets the host the gateway binds to
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_NETWORK_HOST.
      # host: 0.0.0.0
      #
      # Sets the port the gateway binds to
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_NETWORK_PORT.
      # port: 26500
      #
      # Sets the minimum keep alive interval
      # This setting specifies the minimum accepted interval between keep alive pings. This value must
      # be specified as a positive integer followed by 's' for seconds, 'm' for minutes or 'h' for hours.
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_NETWORK_MINKEEPALIVEINTERVAL.
      # minKeepAliveInterval: 30s

    # cluster:
      # Sets the broker the gateway should initial contact
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_CONTACTPOINT.
      # contactPoint: 127.0.0.1:26502

      # Sets the timeout of requests send to the broker cluster
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_REQUESTTIMEOUT.
      # requestTimeout: 15s

      # Sets name of the Zeebe cluster to connect to
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_CLUSTERNAME.
      # clusterName: zeebe-cluster

      # Sets the member id of the gateway in the cluster
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_MEMBERID.
      # memberId: gateway

      # Sets the host the gateway node binds to for internal cluster communication
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_HOST.
      # host: 0.0.0.0

      # Sets the port the gateway node binds to for internal cluster communication
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_PORT.
      # port: 26502

      # Configure parameters for SWIM protocol which is used to propagate cluster membership
      # information among brokers and gateways
      # membership:

        # Configure whether to broadcast member updates to all members.
        # If set to false updates will be gossiped among the members.
        # If set to true the network traffic may increase but it reduce the time to detect membership changes.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_BROADCASTUPDATES
        # broadcastUpdates: false

        # Configure whether to broadcast disputes to all members.
        # If set to true the network traffic may increase but it reduce the time to detect membership changes.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_BROADCASTDISPUTES
        # broadcastDisputes: true

        # Configure whether to notify a suspect node on state changes.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_NOTIFYSUSPECT
        # notifySuspect: false

        # Sets the interval at which the membership updates are sent to a random member.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_GOSSIPINTERVAL
        # gossipInterval: 250ms

        # Sets the number of members to which membership updates are sent at each gossip interval.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_GOSSIPFANOUT
        # gossipFanout: 2

        # Sets the interval at which to probe a random member.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_PROBEINTERVAL
        # probeInterval: 1s

        # Sets the timeout for a probe response
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_PROBETIMEOUT
        # probeTimeout: 100ms

        # Sets the number of probes failed before declaring a member is suspect
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_SUSPECTPROBES
        # suspectProbes: 3

        # Sets the timeout for a suspect member is declared dead.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_FAILURETIMEOUT
        # failureTimeout: 10s

        # Sets the interval at which this member synchronizes its membership information with a random member.
        # This setting can also be overridden using the environment variable ZEEBE_BROKER_CLUSTER_MEMBERSHIP_SYNCINTERVAL
        # syncInterval: 10s

      # security:
        # Enables TLS authentication between this gateway and other nodes in the cluster
        # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_SECURITY_ENABLED.
        # enabled: false

        # Sets the path to the certificate chain file.
        # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_SECURITY_CERTIFICATECHAINPATH.
        # certificateChainPath:

        # Sets the path to the private key file location
        # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_SECURITY_PRIVATEKEYPATH.
        # privateKeyPath:

      # Configure compression algorithm for all message sent between the brokers and between the broker and
      # the gateway. Available options are NONE, GZIP and SNAPPY.
      # This feature is useful when the network latency between the brokers is very high (for example when the brokers are deployed in different data centers).
      # When latency is high, the network bandwidth is severely reduced. Hence enabling compression helps to improve the throughput.
      # Note: When there is no latency enabling this may have a performance impact.
      # Note: When this flag is enables, you must also enable compression in standalone broker configuration.
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_CLUSTER_MESSAGECOMPRESSION
      # messageCompression: NONE

    # threads:
      # Sets the number of threads the gateway will use to communicate with the broker cluster
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_THREADS_MANAGEMENTTHREADS.
      # managementThreads: 1

    # security:
      # Enables TLS authentication between clients and the gateway
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_SECURITY_ENABLED.
      # enabled: false

      # Sets the path to the certificate chain file
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_SECURITY_CERTIFICATECHAINPATH.
      # certificateChainPath:

      # Sets the path to the private key file location
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_SECURITY_PRIVATEKEYPATH.
      # privateKeyPath:

    # longPolling:
      # Enables long polling for available jobs
      # This setting can also be overridden using the environment variable ZEEBE_GATEWAY_LONGPOLLING_ENABLED.
      # enabled: true

    # interceptors:
      # Configure interceptors below.
      # Please consider reading our documentation on interceptors first.
      #
      # Each interceptors should be configured following this template:
      #
      # id:
      #   identifier for this interceptor.
      #   This setting can also be overridden using the environment variable ZEEBE_GATEWAY_INTERCEPTORS_0_ID.
      # jarPath:
      #   path (relative or absolute) to the JAR file containing the interceptor class and its dependencies.
      #   all classes must be compiled for the same language version as Zeebe or lower.
      #   This setting can also be overridden using the environment variable ZEEBE_GATEWAY_INTERCEPTORS_0_JARPATH.
      # className:
      #   entry point of the interceptor, a class which must:
      #     - implement io.grpc.ServerInterceptor (see: https://grpc.github.io/grpc-java/javadoc/io/grpc/ServerInterceptor.html)
      #     - have public visibility
      #     - have a public default constructor (i.e. no-arg constructor)
      #   This setting can also be overridden using the environment variable ZEEBE_GATEWAY_INTERCEPTORS_0_CLASSNAME.
      #
      # Example configuration for a single interceptor
      # - id: example-interceptor
      #   className: com.acme.ExampleInterceptor
      #   jarPath: /path/to/interceptor/example-interceptor.jar
