# 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
# in buildin mode(default): microservice capacity is 50000
#                           instance capacity is 150000
#                           schema capacity of single microservice is 100
#                           rule capacity of single microservice is 100
#                           tag capacity of single microservice is 100
# in unlimit mode: all resource capacities are unlimited, including
#                  microservices, instances, schemas, rules, tags
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_min_version = 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
