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

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

APPLICATION_ID: porter-application
service_description:
  version: 0.0.1
  name: gateway-service

servicecomb:
  service:
    registry:
      address: http://localhost:30100
      instance:
        watch: false

  rest:
    address: 0.0.0.0:9090?sslEnabled=false

  handler:
    chain:
      Consumer:
        default: internalAccess,auth,qps-flowcontrol-consumer,loadbalance

  uploads:
    directory: tmp_for_upload_gateway

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

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

  http:
    dispatcher:
      edge:
        default:
          enabled: false
      rest:
        pattern: '[/v1/log/|/inspector](.*)'

# This is web root for windows server, change this path according to where you put your source code
gateway:
  webroot: /code/servicecomb-samples/porter_lightweight/gateway-service/src/main/resources
