DEPRECATED - Limit restful requests to backend ElasticSearch cluster: Queries only.
Перейти к файлу
Bastien Abadie 1166f06aa8 Docker test environment 2018-05-24 18:51:48 +02:00
docker Docker test environment 2018-05-24 18:51:48 +02:00
esFrontLine fix the slow server test 2018-05-24 10:33:14 -04:00
resources attempt to fix the "by_bug" tests, remove not-needed test, use unittest, add debug.trace, whitspace, 2018-05-24 11:11:52 -04:00
tests More test fixes 2018-05-24 11:19:45 -04:00
vendor More test fixes 2018-05-24 11:19:45 -04:00
.gitignore some little details about logging errors 2018-05-23 22:56:38 -04:00
Dockerfile Docker test environment 2018-05-24 18:51:48 +02:00
MANIFEST.in Bug 943465 - esFrontLine does not filter paths strict enough 2013-11-26 20:47:31 -05:00
README.md Add hawk authentication 2018-05-21 14:09:42 +02:00
README.txt upgrade test library 2014-08-18 17:40:47 -04:00
requirements.txt Merge branch 'activedata' of https://github.com/klahnakoski/esFrontLine into activedata 2018-05-23 23:28:19 -04:00
setup.py Add hawk authentication 2018-05-21 14:09:42 +02:00

README.md

esFrontLine

Limit restful requests to backend ElasticSearch cluster: Queries only.

Requirements

  • Python 2.7
  • An ElasticSearch cluster to forward queries to

Install

I will assume you have Python installed (if not, here are Windows7 instructions)

pip install esFrontLine

Setup

You must write your own setting.json file with the following properties set:

  • elasticsearch - (Array of) ElasticSearch nodes

  • elasticsearch.host - URL of the ElasticSearch node that will accept query requests

  • elasticsearch.port - port for ES (default = 9200)

  • flask - flask.run() parameters (default port = 5000)

  • debug - turn on debugging

  • whitelist - list of indexes that are allowed

  • users - list of allowed HAWK users, with their linked resources

Here is an example of my settings.json file

{
    "elasticsearch":[{
        "host":"http://elasticsearch4.metrics.scl3.mozilla.com",
        "port":9200
    },{
        "host":"http://elasticsearch5.metrics.scl3.mozilla.com",
        "port":9200
    },{
        "host":"http://elasticsearch7.metrics.scl3.mozilla.com",
        "port":9200
    },{
        "host":"http://elasticsearch8.metrics.scl3.mozilla.com",
        "port":9200
    }],
    "flask":{
        "host":"0.0.0.0",
        "port":9292,
        "debug":false,
        "threaded":true,
        "processes":1
    },
    "users": [
      {
        "hawk": {
          "id": "kyle@example.com",
          "key": "secret",
          "algorithm": "sha256"
        },
        "resources": [
          "testing"
        ]
      }
    ],
    "whitelist":["bugs", "org_chart", "bug_summary", "reviews"],
    "debug":{
        "log":[{
            "filename": "./tests/results/logs/app.log",
            "maxBytes": 10000000,
            "backupCount": 200,
            "encoding": "utf8"
        },{
            "stream":"sys.stdout"
        }]
    }

}

Execution

python app.py --settings-file <path_to_file_with_JSON_settings>

Code Source

https://github.com/klahnakoski/esFrontLine