зеркало из https://github.com/mozilla/esFrontLine.git
987f924750
Support Async connection |
||
---|---|---|
esFrontLine | ||
resources | ||
tests | ||
vendor | ||
.gitignore | ||
CLIENTS.md | ||
Dockerfile | ||
MANIFEST.in | ||
README.md | ||
requirements.txt | ||
setup.py |
README.md
esFrontLine
Limit restful requests to backend ElasticSearch cluster: Queries for the public,
Requirements
- Python 2.7 or 3.6.2+
- 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)
- whitelist - list of indexes that are allowed
- users - list of allowed HAWK users, with their linked resources
- users.resources - list of indexes the user is allowed
- users.hawk - object of Hawk credentials
- users.hawk.id - any human readable name to identify the user or application
- users.hawk.key - the secret value held by both endpoints and not shared with anyone
- users.hawk.algorithm: always "sha256" for now
- debug - for debugging
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>