""" To run a tracking server with this app, use `mlflow server --app-name custom_app`. """ import logging # This would be all that plugin author is required to import from mlflow.server import app as custom_app # Can do custom logging on either the app or logging itself # but you'll possibly have to clear the existing handlers or there will be duplicate output # See https://docs.python.org/3/howto/logging-cookbook.html app_logger = logging.getLogger(__name__) # Configure the app custom_app.config["MY_VAR"] = "config-var" app_logger.warning(f"Using {__name__}") def is_logged_in(): return True @custom_app.before_request def before_req_hook(): """A custom before request handler. Can implement things such as authentication, special handling, etc. """ if not is_logged_in(): app_logger.warning("Hello from before request!") return "Unauthorized", 403 @custom_app.route("/custom/endpoint", methods=["GET"]) def custom_endpoint(): """A custom endpoint.""" return "custom_endpoint", 200