def create_app(): """ Creates the flask app, loading blueprints and the configuration. :return: flask app :rtype: Flask """ app_name = os.getenv("APP_NAME", "drift") openapi_args = {"path_prefix": config.path_prefix, "app_name": app_name} connexion_app = connexion.App(__name__, specification_dir="openapi/", arguments=openapi_args) connexion_app.add_api("api.spec.yaml", validate_responses=True, strict_validation=True) connexion_app.add_api("mgmt_api.spec.yaml") connexion_app.add_api("admin_api.spec.yaml", validate_responses=True, strict_validation=True) flask_app = connexion_app.app create_prometheus_registry_dir() # set up logging setup_audit_logging(logging.Logger) register_hsts_response(flask_app) gunicorn_logger = logging.getLogger("gunicorn.error") flask_app.logger.handlers = gunicorn_logger.handlers flask_app.logger.setLevel(gunicorn_logger.level) setup_cw_logging(flask_app.logger) flask_app.register_blueprint(v1.section) flask_app.register_error_handler(HTTPError, handle_http_error) return connexion_app
def create_connexion_app(): openapi_args = { "path_prefix": config.path_prefix, "app_name": app_config.get_app_name(), } connexion_app = connexion.App( __name__, specification_dir="openapi/", arguments=openapi_args ) connexion_app.add_api( "api.spec.yaml", strict_validation=True, validate_responses=True ) connexion_app.add_api("mgmt_api.spec.yaml", strict_validation=True) flask_app = connexion_app.app # set up logging ASAP gunicorn_logger = logging.getLogger("gunicorn.error") flask_app.logger.handlers = gunicorn_logger.handlers flask_app.logger.setLevel(gunicorn_logger.level) setup_cw_logging(flask_app.logger) # set up DB flask_app.config["SQLALCHEMY_ECHO"] = False flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False flask_app.config["SQLALCHEMY_DATABASE_URI"] = db_config.db_uri flask_app.config["SQLALCHEMY_POOL_SIZE"] = db_config.db_pool_size flask_app.config["SQLALCHEMY_POOL_TIMEOUT"] = db_config.db_pool_timeout db.init_app(flask_app) flask_app.register_blueprint(v0.section) flask_app.register_error_handler(HTTPError, handle_http_error) return connexion_app
def create_connexion_app(): openapi_args = { "path_prefix": kerlescan_config.path_prefix, "app_name": app_config.get_app_name(), } connexion_app = connexion.App(__name__, specification_dir="openapi/", arguments=openapi_args) connexion_app.add_api("api.spec.yaml", strict_validation=True, validate_responses=True) connexion_app.add_api("mgmt_api.spec.yaml", strict_validation=True) flask_app = connexion_app.app # set up logging ASAP setup_audit_logging(logging.Logger) gunicorn_logger = logging.getLogger("gunicorn.error") flask_app.logger.handlers = gunicorn_logger.handlers flask_app.logger.setLevel(gunicorn_logger.level) setup_cw_logging(flask_app.logger) register_hsts_response(flask_app) # set up DB engine_options = { "pool_pre_ping": True, "pool_recycle": 300, "pool_size": config.db_pool_size, "pool_timeout": config.db_pool_timeout, } flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False flask_app.config["SQLALCHEMY_DATABASE_URI"] = config.db_uri flask_app.config["SQLALCHEMY_ENGINE_OPTIONS"] = engine_options flask_app.config["SQLALCHEMY_ECHO"] = False if config.log_sql_statements: flask_app.config["SQLALCHEMY_ECHO"] = True db.init_app(flask_app) flask_app.register_blueprint(v1.section) flask_app.register_error_handler(HTTPError, handle_http_error) return connexion_app