{
  "securityFilter": "\\s(user|pass|aws_)\\w*\\s+.+$",

  // your application config
  "application": {
    "config": {
      // shared config for both client and server (do not include secrets this is public!)
      // "jsMountPoint": "/js/", is defaulted to server:webpackMountPoint if missing
      "intlHideDebugMsg": false,
      "instrumentation": {
        //"filter": "^(statsd|warn|error|info|uncaught-exception)$",  list of types sent back to the server from the client if not set return all
        //"batchTimeout": 1000,   // batch all instrumentation calls in 1000ms groups
        "debug": "^(statsd|warn|error|info|uncaught-exception)$", // list of type that should be sent to console.debug if not set do not debug
        "cookie": "_sid",
        "lstorage": true, // use local storage and a cookie
        "url": "/__idat" // or //foobar.com/__idat
      }
      // "abnDashboardUrl": "/__abn"
      // "gaTimingFilterFn": "name of instrumentation filter fn", // if false do not send timeing to GA
      // "gaEventFilterFn": "name of instrumentation filter fn", // if false do not send events to GA
      // "gaExceptionTrackID": "options.googleAltTrackID key name i.e name1", // if false do not send exception to GA
      // "gaTimingTrackID": "options.googleAltTrackID key name i.e name2", // if false do not send statsd to GA
      // "gaEventTrackID": "options.googleAltTrackID key name i.e name3",
      // "gaSyntheticPageUrl": "_track",    // tracks non 2XX status code to /_track/StatusCode?url=&refer=
      // "gaTrackCanonical": true           // report all pageview using rel canonical instead of the window.location
      // "reactIgnoreRouteUnmount": true    // stop pellet from unmounting the page/layout on route changes
    },
    "options": {
      "locales": "en-US",
      "assetFileName": "assets.js",
      "componentFileName": "component.js",
      "polyfillPath": "/js/polyfills.js",
      "polyfillPathIO": "//polyfill.io",
      "includeUserAgentInfo": true,
      "cacheHashIgnoreArrayOrder": false,
      "cacheOnly200Response": true,
      "reactCDNUrl": "//cdnjs.cloudflare.com/ajax/libs/react/0.12.0/react-with-addons.js",
      "useReactRenderToStaticMarkup": false,
      "skeletonPage": "#PELLET_PROJECT_PATH#/src/page-skeleton.ejs",
      "missingPage": "#PELLET_PROJECT_PATH#/src/page-404.ejs",
      "errorPage": "#PELLET_PROJECT_PATH#/src/page-500.ejs",
      "missingPageStatus": 404,
      "errorPageStatus": 500,
      "googleTrackID": "UA-XXXXX-X",
      "googleDebug": false, // "trace" or true
      "googleAltTrackID": false //{"name1":"UA-XXXXX-X","name2":"UA-XXXXX-X"}
      //"googleExperiments": {
      //  "bootloaderPath": "/_ga_abn/"
      //}
    }
  },

  // pellet basic http server options
  "server": {
    "favicon": "#PELLET_PROJECT_PATH#/public/favicon.ico",
    "static": {
      "path": "#PELLET_PROJECT_PATH#/public",
      "options": {
        "dotfiles": "ignore",
        "etag": false,
        "extensions": [],
        "index": false,
        "maxAge": "2592000",
        "redirect": false,
        "setHeaders": "res.set({'Expires':new Date(Date.now()+2592000000).toUTCString()})" // args res, path, stat
      }
    },
    "webpackMountPoint": "/js/",
    "webpackMountPointHttpOptions": {
      "dotfiles": "ignore",
      "etag": false,
      "extensions": [],
      "index": false,
      "maxAge": "2592000",
      "redirect": false,
      "setHeaders": "res.set({'Expires':new Date(Date.now()+2592000000).toUTCString()})" // args res, path, stat
    },
    "polyfillRebuild": false,
    "alertOnLaunch": false,
    "accessLog": {
      "format": ":date[iso] :http-version :method :referrer :remote-addr :remote-user :req[header] :res[header] :response-time :status :url :user-agent",
      "transport": "winston",
      "mode": "object"
      // send to a log file with winston
      //"format": "common",
      //"logFile": "/tmp/pellet.access.log"
    },
    "compression": {
      "threshold": 512
      //"flush": 0,
      //"level": -1,
      //"chunkSize": 16384,
      //"memLevel": 8,
      //"strategy": 0
    },
    "pageCacheLayer": {
      // use orchestrate
      //"type": "orchestrate",
      //"host": "api.aws-us-east-1.orchestrate.io",
      //"token": "#####"

      // in memory LRU
      //"type": "memory",
      //"max": 500,

      //"type": "redis",
      //"host": "127.0.0.1",
      //"port": 6379,
      //"database": 3,
      //"prefix": "PC_",
      //"expire": 31536000, // one year or false to turn off
      //"options": {
      //}
    }
  },

  // pellet build/package options
  "pellet": {
    "output": "#PELLET_PROJECT_PATH#/build",
    "outputBrowser" : "browser",
    "outputServer" : "server",
    "intlLocaleData": false, // or path to data "#PELLET_PROJECT_PATH#/config/locale-data"
    "useInternalDependencies": true,
    "jadeTemplateSupport": true,
    "includeFallbackPaths": true,
    "runInstrumentationTrackServer": true,
    "skipIncludedInternalCoreManifest": false,
    "heapSnapshot": false // 1048576 * 5mb = 5242880
    // "uglifyOptions": {},
    //,"insterumentation": {
    //  "interval": 5000,
    //  "memwatch": true
    //}
  },

  // overwrite pellets webpack config
  "webpackConfig": {
    // "alias": ,
    // "externals": ,
    // "extensions": null,
    // "server": null,
    "noParse": ["\\.min\\.js$"],
    "module":{
      "loaders": [
        {"test": "\\.less$", "loader": "style!css!autoprefixer!less"},
        {"test": "\\.svg$", "loader": "url-loader?limit=100000&mimetype=image/svg+xml"},
        {"test": "\\.png$", "loader": "file-loader"},
        {"test": "\\.jpg$", "loader": "file-loader"},
        {"test": "\\.woff$", "loader": "file-loader"},
        {"test": "\\.ttf$", "loader": "file-loader"},
        {"test": "\\.eot$", "loader": "file-loader"},
        {"test": "\\.otf$", "loader": "file-loader"},
        {"test": "\\.json$", "loader": "json" },
        {"test": "\\.jsx$", "loader": "jsx" },
        {"test": "\\.cjsx$", "loader": "coffee!cjsx" },
        {"test": "\\.styl$", "loader": "style!css!stylus" },
        {"test": "\\.css$", "loader": "style!css!autoprefixer" },
        {"test": "\\.static-styl$", "loader": "css?minimize!stylus" },
        {"test": "\\.static-css$", "loader": "css?minimize!autoprefixer" },
        {"test": "\\.static-less$", "loader": "css?minimize!autoprefixer!less" },
        {"test": "\\.coffee$", "loader": "coffee" }
      ]
    }
    //"browser": {}
    //"server": {}
  },

  // config statsd client
  "statsd": {
    "serverConfig": "#PELLET_PROJECT_PATH#/config/statsd.config",
    "browserNamespace": "fromBrowser",
    "host": "localhost",
    "port": 8125,
    "prefix": "",
    "suffix": "",
    "globalize": false,
    "cacheDns": false,
    "mock": false
  },

  "polyfill": {
    "cache": "#PELLET_PROJECT_PATH#/public/js/polyfill",
    "include": ["domelements", "dom4", "es5", "intl"]
  },

  "cluster": {
    "repl": {
      "port": 3001,
      "address": "0.0.0.0"
    }
  },

  "stackTrace": {
    "includeSystemInfo": false
  },

  "winston" :{
    "containers": {
      "console": {
        "console": {
          "level": "info",
          "colorize": true,
          "label": "pellet",
          "timestamp": true
        }
      },
      "alert": {
        "console": {
          "level": "silly",
          "colorize": true,
          "label": "alert",
          "timestamp": true
        }
      },
      "httplogger": {
        "console": {
          "level": "info",
          "colorize": true,
          "label": "http",
          "timestamp": true
        }
      },
      "instrumentation": {
        "ignore": "^(statsd|routechange)$", // regex to ignore instrumentation types to exclude from the log
        "console": {
          "level": "info",
          "colorize": true,
          "label": "instrumentation",
          "timestamp": false
        }
      }
    }
  }
}
