- 
                Notifications
    
You must be signed in to change notification settings  - Fork 44
 
GatewayConfig
        Thiago da Rosa de Bustamante edited this page Feb 6, 2018 
        ·
        30 revisions
      
    This is the Gateway config descriptor. It can be configured inside tree-gateway Config File or passed directly to the SDK.gateway.updateConfig() method.
It support the following properties:
| Property | Type | Description | Required | 
|---|---|---|---|
| protocol | ProtocolConfig | The gateway protocol configuration. | true | 
| underProxy | boolean | If we are behind a reverse proxy (Heroku, Bluemix, AWS if you use an ELB, custom Nginx setup, etc). | false | 
| disableCompression | boolean | By default, all responses are compressed by the gateway. If you want to disable it set this property to true. | false | 
| logger | LoggerConfig | Configurations for gateway logger. | false | 
| accessLogger | AccessLoggerConfig | Configurations for gateway access logger. | false | 
| statsConfig | StatsConfig | Configurations for gateway stats. | false | 
| monitor | MonitorConfig[] | Create monitors to actively collect some stats. | false | 
| admin | AdminConfig | If provided, Configure the admin service for the gateway. | false | 
| cors | CorsConfig | Configure default cors support for API requests. It can be configured also in the API configuration. | false | 
| timeout | string or number | Configure a timeout for the gateway http.Server. You can inform the amount of milisencods, or use a human-interval string. Defaults to 'one minute'. | false | 
| filter | MiddlewareConfig[] | An array of installed Filter middlewares to be executed, in order, by the request pipeline. | false | 
| serviceDiscovery | ServiceDiscoveryConfig[] | Configure Service Discovery Providers. | false | 
| errorHandler | MiddlewareConfig[] | An ErrorHandler middleware to be called to handle any error during any request pipeline processing. | false | 
Example:
{
    "gateway": {
        "protocol": {
            "http": {
                "listenPort": 8000
            }
        },
        "admin": {
            "protocol": {
                "http": {
                    "listenPort": 8001
                }
            },
            "accessLogger": {
                "msg": "HTTP {{req.method}} - {{res.statusCode}} - {{req.url}} ({{res.responseTime}}ms) ",
                "console": {
                    "timestamp": true,
                    "colorize": true
                }
            },
            "userService": {
                "jwtSecret": "secret"
            }
        },
        "logger": {
            "level": "info",
            "console": {
                "colorize": true
            },
            "file": {
                "timestamp": true,
                "outputDir": "./logs",
                "json": false, 
                "prettyPrint": true 
            }
        },
        "monitor": [
            {
                "name": "cpu",
                "statsConfig": {
                    "granularity": {
                        "duration": "1 minute",
                        "ttl": "2 days"
                    }
                }            
            }
        ],
        "filter": [{
            "name": "ipFilter",
            "options": {
                "blacklist": ["10.100.*.*"]
            }
        }]        
    }
} or
gateway:
  protocol:
    http:
      listenPort: 8000
  admin:
    protocol:
      http:
        listenPort: 8001
    accessLogger:
      msg: 'HTTP {{req.method}} - {{res.statusCode}} - {{req.url}} ({{res.responseTime}}ms)'
      console:
        timestamp: true
        colorize: true
    userService:
      jwtSecret: secret
  logger:
    level: info
    console:
      colorize: true
    file:
      timestamp: true
      outputDir: "./logs"
      json: false
      prettyPrint: true
  monitor:
  - name: cpu
    statsConfig:
      granularity:
        duration: 1 minute
        ttl: 2 days
  filter:
    - name: ipFilter 
      options: 
        blacklist: 
          - "10.100.*.*"