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

servicecomb:
  service:
    application: springmvc-sample
    name: springmvc
    version: 0.0.1

    registry:
      # Default using local service center
      address: http://localhost:30100
      # address: https://cse.cn-south-1.myhuaweicloud.com
      instance:
        watch: false
  config:
    client:
      # Default using local config center
      # serverUri: https://cse.cn-south-1.myhuaweicloud.com
      serverUri: http://localhost:30113
      refreshMode: 1

  rest:
    address: 0.0.0.0:8080
  handler:
    chain:
      Provider:
        default: bizkeeper-provider

# Using Huawei Cloud Service Engine Professional Edition, AK/SK is required
#  credentials:
#    akskEnabled: true
#    accessKey: add your ak/sk from huaweicloud
#    secretKey: add your ak/sk from huaweicloud
#    akskCustomCipher: default
#    project: cn-south-1