# 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.

component_name = service_center
#run mode could be many options to specify the env like prod,dev
runmode = dev

###################################################################
# Frontend Configurations
###################################################################
frontend_host_ip = 127.0.0.1
frontend_host_port = 30103

###################################################################
# sever options
###################################################################
# if you want to listen at ipv6 address, then set the httpaddr value like:
# httpaddr = 2400:A480:AAAA:200::159        (global scope)
# httpaddr = fe80::f816:3eff:fe17:c38b%eth0 (link-local scope)
httpaddr = 127.0.0.1
httpport = 30100

read_header_timeout = 60s
read_timeout = 60s
idle_timeout = 60s
write_timeout = 60s
# 32K
max_header_bytes = 32768
# 2M
max_body_bytes = 2097152

enable_pprof = 0

###################################################################
# plugin options
###################################################################
plugins_dir = ./plugins

# pluggable discovery service
discovery_plugin = etcd
# the discovery plugins are part of aggregator
aggregate_mode = ""

# enable to register service center to backend registry
self_register = 1

# pluggable registry service
# 'etcd' means app running as an etcd agent
# 'embeded_etcd' means app running as an etcd server
registry_plugin = etcd

# registry address
# 1. if registry_plugin equals to 'embeded_etcd'
# manager_name = "sc-0"
# manager_addr = "http://127.0.0.1:2380"
# manager_cluster = "sc-0=http://127.0.0.1:2380"
# 2. if registry_plugin equals to 'etcd'
# manager_cluster = "127.0.0.1:2379"
manager_cluster = "127.0.0.1:2379"

# heartbeat that sync synchronizes client's endpoints with the known endpoints from
# the etcd membership, unit is second and value must greater then 1s, it is set
# default 30s if value less then 0
auto_sync_interval = 30s

# the timeout for failing to establish a connection
connect_timeout = 10s
# the timeout for failing to read response of registry
registry_timeout = 30s

# indicate how many revision you want to keep in etcd
compact_index_delta = 100
compact_interval = 12h

# registry cache, if this option value set 0, service center can run
# in lower memory but no longer push the events to client.
enable_cache = 1

# pluggable cipher
cipher_plugin = ""

# suppot buildin, unlimit
quota_plugin = ""

#access control plugin
auth_plugin = ""

#support om, manage
auditlog_plugin = ""

#tracing: buildin(zipkin)
#  buildin(zipkin): Can export TRACING_COLLECTOR env variable to select
#                   collector type, 'server' means report trace data
#                   to zipkin server address specified by TRACING_SERVER_ADDRESS
#                   env variable; 'file' means just output a file stored
#                   in path specified by TRACING_FILE_PATH env variable
trace_plugin = ""

#customize the uuid format
uuid_plugin = "context"

###################################################################
# rate limit options
###################################################################
#ttl=m, s, ms
limit_ttl = "s"
#set 0 to disable rate limit
limit_conns = 0
#list of places to look for IP address
limit_iplookups = "RemoteAddr,X-Forwarded-For,X-Real-IP"

###################################################################
# ssl/tls options
###################################################################
ssl_plugin = ""
# 0=Non-SSL mode, 1==SSL mode
ssl_mode = 0
ssl_verify_client = 1
# minimal tls protocol, [TLSv1.0, TLSv1.1, TLSv1.2]
ssl_protocols = TLSv1.2
ssl_ciphers = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256

###################################################################
# log options
###################################################################
# MaxSize of a log file before rotate. By M Bytes.
log_rotate_size = 20
# Max counts to keep of a log's backup files.
log_backup_count = 50
# log format(text or json type)
log_format = text
# whether enable record syslog
log_sys = false

###################################################################
# above is the global configurations
# you can overide above configuration in specific env
###################################################################
[prod]
# DEBUG, INFO, WARN, ERROR, FATAL
loglevel = INFO
logfile = ./service-center.log
## dev env, if you are a operator,ignore this env
[dev]
loglevel = DEBUG
logfile = ""
enable_pprof = 1
