#
## ---------------------------------------------------------------------------
## 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.
## ---------------------------------------------------------------------------
# spring boot configurations
server:
  port: 9092  # should be same with servicecomb.rest.address to use web container

# override common configurations in common module
servicecomb-config-order: 10

servicecomb:
  service:
    application: porter-application
    name: file-service
    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
  kie:
    serverUri: http://localhost:30110

  rest:
    address: 0.0.0.0:9092  # should be same with server.port to use web container

  uploads:
    directory: tmp_for_upload_file

  samples:
    logdir: D:\code\servicecomb-samples\porter_lightweight\file-service
    
  inspector:
    enabled: false

  executors:
   Provider:
     log: servicecomb.samples.executor.groupThreadPool
     inspector: servicecomb.samples.executor.groupThreadPool

# 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