"""Application. The API application is a `flask` application. It provides simple features such as registering a url for a specific handlers. """ import connector_neo4j from flask import Flask from flask_executor_pde.executor import Executor from owslogger import flask_logger from owsrequest import flask_request from backend import config from backend.connectors import sentry app = Flask(config.SERVICE_NAME) flask_logger.setup( app, config.ENVIRONMENT, config.LOGGER_NAME, config.LOGGER_LEVEL, config.SERVICE_NAME, config.SERVICE_VERSION, exclude_paths=[config.HEALTH_CHECK]) if config.SENTRY: sentry.init_sentry(config.SENTRY) try: import uwsgi # noqa uwsgiRunning = True except ImportError: uwsgiRunning = False flask_request.set_rules_validator(app, 'backend/access_rules.yml') flask_request.setup( application=app, environment=config.ENVIRONMENT, uwsgi_cache_enabled=uwsgiRunning, add_request_context=True, label_profile=True, verify_access=False, rules_file=None, access_log_only=config.ONLY_LOG_ACCESS_ERRORS, exclude_paths=config.EXCLUDE_PATH, ) executor = Executor(app) connector_neo4j.configure( config.NEO4J_URL, config.NEO4J_USERNAME, config.NEO4J_PASSWORD )