#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

### --- Web Socket proxy settings --- ###

# Configuration Store connection string
configurationStoreServers=

# Zookeeper session timeout in milliseconds
zooKeeperSessionTimeoutMillis=30000

# Pulsar cluster url to connect to broker (optional if configurationStoreServers present)
serviceUrl=
serviceUrlTls=
brokerServiceUrl=
brokerServiceUrlTls=

# Port to use to server HTTP request
webServicePort=8080
# Port to use to server HTTPS request
webServicePortTls=

# Path for the file used to determine the rotation status for the proxy-instance when responding
# to service discovery health checks
statusFilePath=

# Hostname or IP address the service binds on, default is 0.0.0.0.
bindAddress=0.0.0.0

# Name of the pulsar cluster to connect to
clusterName=

# Number of IO threads in Pulsar Client used in WebSocket proxy
webSocketNumIoThreads=8

# Number of threads to use in HTTP server. Default is Runtime.getRuntime().availableProcessors()
numHttpServerThreads=

# Number of connections per Broker in Pulsar Client used in WebSocket proxy
webSocketConnectionsPerBroker=8

# Time in milliseconds that idle WebSocket session times out
webSocketSessionIdleTimeoutMillis=300000

### --- Authentication --- ###

# Enable authentication
authenticationEnabled=false

# Autentication provider name list, which is comma separated list of class names
authenticationProviders=

# Enforce authorization
authorizationEnabled=false

# Authorization provider fully qualified class-name
authorizationProvider=org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider

# Allow wildcard matching in authorization
# (wildcard matching only applicable if wildcard-char:
# * presents at first or last position eg: *.pulsar.service, pulsar.service.*)
authorizationAllowWildcardsMatching=false

# Role names that are treated as "super-user", meaning they will be able to do all admin
# operations and publish/consume from all topics
superUserRoles=

# Authentication settings of the proxy itself. Used to connect to brokers
brokerClientTlsEnabled=false
brokerClientAuthenticationPlugin=
brokerClientAuthenticationParameters=
brokerClientTrustCertsFilePath=

# When this parameter is not empty, unauthenticated users perform as anonymousUserRole
anonymousUserRole=

### --- TLS --- ###

# Deprecated - use webServicePortTls and brokerClientTlsEnabled instead
tlsEnabled=false

# Accept untrusted TLS certificate from client
tlsAllowInsecureConnection=false

# Path for the TLS certificate file
tlsCertificateFilePath=

# Path for the TLS private key file
tlsKeyFilePath=

# Path for the trusted TLS certificate file
tlsTrustCertsFilePath=

# Specify whether Client certificates are required for TLS
# Reject the Connection if the Client Certificate is not trusted.
tlsRequireTrustedClientCertOnConnect=false

# Tls cert refresh duration in seconds (set 0 to check on every new connection) 
tlsCertRefreshCheckDurationSec=300

### --- Deprecated config variables --- ###

# Deprecated. Use configurationStoreServers
globalZookeeperServers=
