diff --git a/requirements/prod.txt b/requirements/prod.txt index b65cfb72..eb52998c 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -31,4 +31,7 @@ flask_sqlalchemy==2.4.1 requests==2.23.0 # The Debug Toolbar -Flask-DebugToolbar==0.11.0 \ No newline at end of file +Flask-DebugToolbar==0.11.0 + +#CORS +flask-cors==3.0.8 \ No newline at end of file diff --git a/setup.py b/setup.py index 999aad6e..65ccd419 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages setup( - name="time-tracker-api", + name="time-tracker-backend", packages=find_packages(), include_package_data=True, ) diff --git a/time_tracker_api/__init__.py b/time_tracker_api/__init__.py index cca09e77..7b8489e1 100644 --- a/time_tracker_api/__init__.py +++ b/time_tracker_api/__init__.py @@ -45,8 +45,12 @@ def init_app(app: Flask): app.logger.setLevel(logging.INFO) add_debug_toolbar(app) + cors_origins = app.config.get('CORS_ORIGINS') + if cors_origins: + enable_cors(app, cors_origins) -def add_debug_toolbar(app): + +def add_debug_toolbar(app: Flask): app.config['DEBUG_TB_PANELS'] = ( 'flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', @@ -62,3 +66,10 @@ def add_debug_toolbar(app): from flask_debugtoolbar import DebugToolbarExtension toolbar = DebugToolbarExtension() toolbar.init_app(app) + + +def enable_cors(app: Flask, cors_origins: str): + from flask_cors import CORS + cors_origins_list = cors_origins.split(",") + CORS(app, resources={r"/*": {"origins": cors_origins_list}}) + app.logger.info("Set CORS access to [%s]" % cors_origins) diff --git a/time_tracker_api/config.py b/time_tracker_api/config.py index 005a655a..3700adde 100644 --- a/time_tracker_api/config.py +++ b/time_tracker_api/config.py @@ -11,6 +11,7 @@ class Config: PROPAGATE_EXCEPTIONS = True RESTPLUS_VALIDATE = True DEBUG = True + CORS_ORIGINS = "*" class DevelopmentConfig(Config):