def create_app(config: dict = None) -> flask.Flask: app = backend_common.create_app( project_name=tooltool_api.config.PROJECT_NAME, app_name=tooltool_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'pulse', ], ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.aws = tooltool_api.aws.AWS(app.config['S3_REGIONS_ACCESS_KEY_ID'], app.config['S3_REGIONS_SECRET_ACCESS_KEY']) for code, exception in werkzeug.exceptions.default_exceptions.items(): app.register_error_handler(exception, custom_handle_default_exceptions) @app.cli.command() def worker(): tooltool_api.cli.cmd_worker(app) @app.cli.command() def replicate(): tooltool_api.cli.cmd_replicate(app) @app.cli.command() def check_pending_uploads(): tooltool_api.cli.cmd_check_pending_uploads(app) return app
def create_app(config: dict = None) -> flask.Flask: app = backend_common.create_app( project_name=tooltool_api.config.PROJECT_NAME, app_name=tooltool_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'pulse', ], ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.aws = tooltool_api.aws.AWS(app.config['S3_REGIONS_ACCESS_KEY_ID'], app.config['S3_REGIONS_SECRET_ACCESS_KEY']) for code, exception in werkzeug.exceptions.default_exceptions.items(): app.register_error_handler(exception, custom_handle_default_exceptions) app.cli.add_command(tooltool_api.cli.cmd_worker, 'worker') app.cli.add_command(tooltool_api.cli.cmd_replicate, 'replicate') app.cli.add_command(tooltool_api.cli.cmd_check_pending_uploads, 'check-pending-uploads') return app
def app(): ''' Build an app with an authenticated dummy api ''' import backend_common # Use unique auth instance config = backend_common.testing.get_app_config({ 'OIDC_CLIENT_SECRETS': os.path.join(os.path.dirname(__file__), 'client_secrets.json'), 'OIDC_RESOURCE_SERVER_ONLY': True, 'APP_TEMPLATES_FOLDER': '', 'SQLALCHEMY_DATABASE_URI': 'sqlite://', 'SQLALCHEMY_TRACK_MODIFICATIONS': False, }) app = backend_common.create_app( 'test', extensions=backend_common.EXTENSIONS, config=config, ) @app.route('/') def index(): return app.response_class('OK') @app.route('/test-auth-login') @backend_common.auth.auth.require_login def logged_in(): data = { 'auth': True, 'user': flask_login.current_user.get_id(), # permissions is a set, not serializable 'scopes': list(flask_login.current_user.permissions), } return flask.jsonify(data) @app.route('/test-auth-scopes') @backend_common.auth.auth.require_scopes([ ['project/test/A', 'project/test/B'], ['project/test-admin/*'], ]) def scopes(): return app.response_class('Your scopes are ok.') @app.route('/test-auth0-userinfo') @backend_common.auth0.mozilla_accept_token() def auth0_token(): return app.response_class('OK') # Add fake swagger url, used by redirect app.api.swagger_url = '/' with app.app_context(): backend_common.testing.configure_app(app) yield app
def create_app(config=None): import backend_common app = backend_common.create_app( project_name=codecoverage_backend.config.PROJECT_NAME, app_name=codecoverage_backend.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) # Setup datadog stats codecoverage_backend.datadog.get_stats() # Warm up GCP cache try: codecoverage_backend.gcp.load_cache() except Exception as e: logger.warn('GCP cache warmup failed: {}'.format(e)) return app
def create_app(config: dict = None) -> flask.Flask: app = backend_common.create_app( project_name=tooltool_api.config.PROJECT_NAME, app_name=tooltool_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'pulse', ], static_folder='static', ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.aws = tooltool_api.aws.AWS(app.config['S3_REGIONS_ACCESS_KEY_ID'], app.config['S3_REGIONS_SECRET_ACCESS_KEY']) for code, exception in werkzeug.exceptions.default_exceptions.items(): app.register_error_handler(exception, custom_handle_default_exceptions) app.cli.add_command(tooltool_api.cli.cmd_worker, 'worker') app.cli.add_command(tooltool_api.cli.cmd_replicate, 'replicate') app.cli.add_command(tooltool_api.cli.cmd_check_pending_uploads, 'check-pending-uploads') app.add_url_rule('/tooltool.py', view_func=tooltool_api.api.download_client) return app
def create_app(config=None): app = backend_common.create_app( project_name=shipit_api.config.PROJECT_NAME, app_name=shipit_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'auth0', 'db', ], ) app.notify = cli_common.taskcluster.get_service( 'notify', os.environ.get('TASKCLUSTER_CLIENT_ID', app.config.get('TASKCLUSTER_CLIENT_ID')), os.environ.get('TASKCLUSTER_ACCESS_TOKEN', app.config.get('TASKCLUSTER_ACCESS_TOKEN')), ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.cli.add_command(shipit_api.worker.cmd, 'worker') return app
def create_app(config=None): app = backend_common.create_app( project_name=shipit_api.config.PROJECT_NAME, app_name=shipit_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'pulse', ], ) app.notify = cli_common.taskcluster.get_service( 'notify', os.environ.get('TASKCLUSTER_CLIENT_ID', app.config.get('TASKCLUSTER_CLIENT_ID')), os.environ.get('TASKCLUSTER_ACCESS_TOKEN', app.config.get('TASKCLUSTER_ACCESS_TOKEN')), ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.cli.add_command(shipit_api.worker.cmd, 'worker') return app
def create_app(config=None): app = backend_common.create_app( project_name=releng_notification_policy.config.PROJECT_NAME, app_name=releng_notification_policy.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # Add TaskCluster notify to service app.notify = cli_common.taskcluster.get_service( 'notify', app.config.get('TASKCLUSTER_CLIENT_ID'), app.config.get('TASKCLUSTER_ACCESS_TOKEN')) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml'), arguments={ 'CHANNELS': CHANNELS, 'URGENCY_LEVELS': URGENCY_LEVELS, }) return app
def create_app(config=None): app = backend_common.create_app( project_name=__name__, app_name=APP_NAME, config=config, extensions=["dockerflow", "log", "security", "cors", "api", "auth", "db", "pulse"], root_path=os.path.dirname(__file__), ) app.api.register(os.path.join(os.path.dirname(__file__), "api.yml")) app.cli.add_command(cmd, "worker") return app
def create_app(config=None): app = backend_common.create_app( project_name=shipit_code_coverage_backend.config.PROJECT_NAME, app_name=shipit_code_coverage_backend.config.PROJECT_PATH, config=config, extensions=[ 'log', 'security', 'cors', 'api', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( project_name=releng_tokens.config.PROJECT_NAME, app_name=releng_tokens.config.PROJECT_PATH, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( project_name=tokens_api.config.PROJECT_NAME, app_name=tokens_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( name=shipit_taskcluster.config.PROJECT_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( project_name={{cookiecutter.project_path}}.config.PROJECT_NAME, app_name={{cookiecutter.project_path}}.config.PROJECT_PATH, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( project_name=releng_clobberer.config.PROJECT_NAME, app_name=releng_clobberer.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_public_app(config=None): """ Create public API Flask application The corresponding OpenAPI spec is generated as a subset of the main api.yml file. In case the main spec is changed, you may want to regenerate the subset API spec by running `python ../../scripts/openapi_subset.py api.yml api_public.yml` """ app = backend_common.create_app( project_name=shipit_api.config.PROJECT_NAME, app_name=shipit_api.config.APP_NAME, config=config, extensions=["log", "security", "cors", "api", "db", "dockerflow"], ) app.api.register(os.path.join(os.path.dirname(__file__), "api_public.yml")) return app
def create_app(config=None): app = backend_common.create_app( project_name=releng_tooltool.config.PROJECT_NAME, app_name=releng_tooltool.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) app.aws = releng_tooltool.aws.AWS(app.config['S3_REGIONS_ACCESS_KEY_ID'], app.config['S3_REGIONS_SECRET_ACCESS_KEY']) return app
def create_app(config=None): app = backend_common.create_app( project_name=treestatus_api.config.PROJECT_NAME, app_name=treestatus_api.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'cache', 'pulse', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): app = backend_common.create_app( name=releng_notification_identity.config.PROJECT_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml'), arguments={ 'CHANNELS': CHANNELS, 'URGENCY_LEVELS': URGENCY_LEVELS, }) return app
def create_app(config=None): app = backend_common.create_app( project_name=shipit_api.config.PROJECT_NAME, app_name=shipit_api.config.APP_NAME, config=config, extensions=["log", "security", "cors", "api", "auth", "db", "pulse"], ) if not app.config.get("DISABLE_NOTIFY", False): app.notify = cli_common.taskcluster.get_service( "notify", os.environ.get("TASKCLUSTER_CLIENT_ID", app.config.get("TASKCLUSTER_CLIENT_ID")), os.environ.get("TASKCLUSTER_ACCESS_TOKEN", app.config.get("TASKCLUSTER_ACCESS_TOKEN")), ) app.api.register(os.path.join(os.path.dirname(__file__), "api.yml")) app.cli.add_command(shipit_api.worker.cmd, "worker") return app
def create_app(config=None): app = backend_common.create_app( name=shipit_signoff.config.PROJECT_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'auth0', 'db', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) if os.environ.get('TESTING'): from shipit_signoff.testing import fake_auth app.add_url_rule('/fake_auth', 'fake_auth', fake_auth) return app
def create_app(config=None): import backend_common app = backend_common.create_app( project_name=codecoverage_backend.config.PROJECT_NAME, app_name=codecoverage_backend.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) # Setup datadog stats codecoverage_backend.datadog.get_stats() return app
def create_app(config=None): import os import backend_common import shipit_uplift.config import shipit_uplift.models # noqa app = backend_common.create_app( name=shipit_uplift.config.PROJECT_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'cache', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def create_app(config=None): import os import backend_common import uplift_backend.config import uplift_backend.models # noqa app = backend_common.create_app( app_name=uplift_backend.config.APP_NAME, project_name=uplift_backend.config.PROJECT_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', 'cache', ], ) # TODO: add predefined api.yml app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
def app(): """ Build an app with an authenticated dummy api """ # Use unique auth instance config = { 'DEBUG': True, } app = create_app('test', extensions=[auth], config=config) @app.route('/') def index(): return app.response_class('OK') @app.route('/test-login') @auth.auth.require_login def logged_in(): data = { 'auth': True, 'user': current_user.get_id(), 'scopes': current_user.permissions, } return jsonify(data) @app.route('/test-scopes') @auth.auth.require_scopes([ ['project/test/A', 'project/test/B'], ['project/test-admin/*'], ]) def scopes(): return app.response_class('Your scopes are ok.') # Add fake swagger url, used by redirect app.api.swagger_url = '/' return app
def create_app(config=None): app = backend_common.create_app( project_name=notification_policy.config.PROJECT_NAME, app_name=notification_policy.config.APP_NAME, config=config, extensions=[ 'log', 'security', 'cors', 'api', 'auth', 'db', ], ) # Add TaskCluster notify to service app.notify = cli_common.taskcluster.get_service( 'notify', app.config.get('TASKCLUSTER_CLIENT_ID'), app.config.get('TASKCLUSTER_ACCESS_TOKEN') ) app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) return app
SCOPES_ADMIN = SCOPES_USER + [ 'project:shipit:admin', ] SCOPES_BOT = [ 'project:shipit:bot', 'project:shipit:analysis/manage', ] def init_app(app): # Register swagger api return app.api.register( os.path.join(os.path.dirname(__file__), 'api.yml')) if not os.environ.get('APP_SETTINGS') and \ os.path.isfile(APP_SETTINGS): os.environ['APP_SETTINGS'] = APP_SETTINGS app = create_app( "shipit_uplift", extensions=[init_app, db, auth], debug=DEBUG, debug_src=HERE, ) if __name__ == "__main__": app.run(**app.run_options())
DEBUG = bool(os.environ.get('DEBUG', __name__ == '__main__')) HERE = os.path.dirname(os.path.abspath(__file__)) APP_SETTINGS = os.path.abspath(os.path.join(HERE, '..', 'settings.py')) def init_app(app): app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) if not os.environ.get('APP_SETTINGS') and \ os.path.isfile(APP_SETTINGS): os.environ['APP_SETTINGS'] = APP_SETTINGS app = backend_common.create_app( "releng_treestatus", extensions=[ init_app, backend_common.auth, backend_common.db, backend_common.cache, backend_common.pulse, ], debug=DEBUG, debug_src=HERE, ) if __name__ == "__main__": app.run(**app.run_options())
from __future__ import absolute_import import os import backend_common import backend_common.db DEBUG = bool(os.environ.get('DEBUG', __name__ == '__main__')) HERE = os.path.dirname(os.path.abspath(__file__)) APP_SETTINGS = os.path.abspath(os.path.join(HERE, '..', 'settings.py')) def init_app(app): return app.api.register(os.path.join(os.path.dirname(__file__), 'api.yml')) if not os.environ.get('APP_SETTINGS') and \ os.path.isfile(APP_SETTINGS): os.environ['APP_SETTINGS'] = APP_SETTINGS app = backend_common.create_app( "releng_mapper", extensions=[init_app, backend_common.db], debug=DEBUG, debug_src=HERE, ) if __name__ == "__main__": app.run(**app.run_options())
DEBUG = bool(os.environ.get('DEBUG', __name__ == '__main__')) HERE = os.path.dirname(os.path.abspath(__file__)) APP_SETTINGS = os.path.abspath(os.path.join(HERE, '..', 'settings.py')) def init_app(app): return app.api.register( os.path.join(os.path.dirname(__file__), 'api.yml')) if not os.environ.get('APP_SETTINGS') and \ os.path.isfile(APP_SETTINGS): os.environ['APP_SETTINGS'] = APP_SETTINGS app = backend_common.create_app( "shipit_signoff", extensions=[ init_app, backend_common.auth, backend_common.auth0, backend_common.db, ], debug=DEBUG, debug_src=HERE, ) if __name__ == "__main__": app.run(**app.run_options())