Add CORS support (#478)

* Add optional CORS

* make CORS an extra dependency

* add documentation
This commit is contained in:
Giacomo Tagliabue 2016-06-02 15:34:36 -04:00 committed by Maxime Beauchemin
parent c78d3682ac
commit 5f005d67e3
4 changed files with 26 additions and 1 deletions

View File

@ -46,6 +46,10 @@ if app.config.get('ENABLE_TIME_ROTATE'):
backupCount=app.config.get('BACKUP_COUNT'))
logging.getLogger().addHandler(handler)
if app.config.get('ENABLE_CORS'):
from flask.ext.cors import CORS
CORS(app, **app.config.get('CORS_OPTIONS'))
class MyIndexView(IndexView):
@expose('/')

View File

@ -132,6 +132,10 @@ IMG_UPLOAD_URL = '/static/uploads/'
CACHE_DEFAULT_TIMEOUT = None
CACHE_CONFIG = {'CACHE_TYPE': 'null'}
# CORS Options
ENABLE_CORS = False
CORS_OPTIONS = {}
# ---------------------------------------------------
# List of viz_types not allowed in your environment

View File

@ -28,7 +28,7 @@ the required dependencies are installed: ::
For **Fedora** and **RHEL-derivatives**, the following command will ensure
that the required dependencies are installed: ::
sudo yum upgrade python-setuptools
sudo yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel
@ -228,6 +228,20 @@ Note that you can run the ``caravel refresh_druid`` command to refresh the
metadata from your Druid cluster(s)
CORS
-----
The extra CORS Dependency must be installed:
caravel[cors]
The following keys in `caravel_config.py` can be specified to configure CORS:
* ``ENABLE_CORS``: Must be set to True in order to enable CORS
* ``CORS_OPTIONS``: options passed to Flask-CORS (`documentation <http://flask-cors.corydolphin.com/en/latest/api.html#extension>`)
Upgrading
---------

View File

@ -39,6 +39,9 @@ setup(
'sqlparse>=0.1.16, <0.2.0',
'werkzeug>=0.11.2, <0.12.0',
],
extras_require={
'cors': ['Flask-Cors>=2.0.0'],
},
tests_require=['coverage'],
author='Maxime Beauchemin',
author_email='maximebeauchemin@gmail.com',