Metadata-Version: 1.1
Name: esFrontLine
Version: 2.11.18154
Summary: Limit restful requests to backend ElasticSearch cluster:  Queries only.
Home-page: https://github.com/klahnakoski/esFrontLine
Author: Kyle Lahnakoski
Author-email: kyle@lahnakoski.com
License: MPL 2.0
Description-Content-Type: UNKNOWN
Description: # 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](https://github.com/klahnakoski/pyLibrary#windows-7-install-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](https://github.com/hueniverse/hawk/blob/master/README.md)
          * **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>
        
        ## Code Source
        
        [https://github.com/klahnakoski/esFrontLine](https://github.com/klahnakoski/esFrontLine)
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Internet :: Proxy Servers
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 2.7
