From 90bd6582de29ed24c835e550cf0176116bc40497 Mon Sep 17 00:00:00 2001 From: Pierre Jeambrun Date: Tue, 13 May 2025 19:31:42 +0200 Subject: [PATCH] Move webserver expose_hostname config to fab (#50269) (cherry picked from commit 7c292141cb69ee37c5b2bd621cae85526b828b03) --- airflow-core/src/airflow/cli/commands/config_command.py | 4 ++++ airflow-core/src/airflow/config_templates/config.yml | 7 ------- airflow-core/src/airflow/configuration.py | 1 + providers/fab/provider.yaml | 7 +++++++ .../fab/src/airflow/providers/fab/get_provider_info.py | 7 +++++++ providers/fab/src/airflow/providers/fab/www/auth.py | 4 ++-- .../providers/fab/www/extensions/init_jinja_globals.py | 2 +- 7 files changed, 22 insertions(+), 10 deletions(-) diff --git a/airflow-core/src/airflow/cli/commands/config_command.py b/airflow-core/src/airflow/cli/commands/config_command.py index 843adcd87dbb3..bedf7681e0db2 100644 --- a/airflow-core/src/airflow/cli/commands/config_command.py +++ b/airflow-core/src/airflow/cli/commands/config_command.py @@ -383,6 +383,10 @@ def message(self) -> str | None: config=ConfigParameter("webserver", "access_denied_message"), renamed_to=ConfigParameter("fab", "access_denied_message"), ), + ConfigChange( + config=ConfigParameter("webserver", "expose_hostname"), + renamed_to=ConfigParameter("fab", "expose_hostname"), + ), ConfigChange( config=ConfigParameter("webserver", "base_url"), renamed_to=ConfigParameter("api", "base_url"), diff --git a/airflow-core/src/airflow/config_templates/config.yml b/airflow-core/src/airflow/config_templates/config.yml index f88d0f02e5f37..122b67174e5de 100644 --- a/airflow-core/src/airflow/config_templates/config.yml +++ b/airflow-core/src/airflow/config_templates/config.yml @@ -1741,13 +1741,6 @@ webserver: sensitive: true example: ~ default: "{SECRET_KEY}" - expose_hostname: - description: | - Expose hostname in the web server - version_added: 1.10.8 - type: string - example: ~ - default: "False" grid_view_sorting_order: description: | Sorting order in grid view. Valid values are: ``topological``, ``hierarchical_alphabetical`` diff --git a/airflow-core/src/airflow/configuration.py b/airflow-core/src/airflow/configuration.py index 385b87e5f9268..592a060307def 100644 --- a/airflow-core/src/airflow/configuration.py +++ b/airflow-core/src/airflow/configuration.py @@ -357,6 +357,7 @@ def sensitive_config_values(self) -> set[tuple[str, str]]: ("triggerer", "capacity"): ("triggerer", "default_capacity", "3.0"), ("api", "expose_config"): ("webserver", "expose_config", "3.0.1"), ("fab", "access_denied_message"): ("webserver", "access_denied_message", "3.0.2"), + ("fab", "expose_hostname"): ("webserver", "expose_hostname", "3.0.2"), } # A mapping of new section -> (old section, since_version). diff --git a/providers/fab/provider.yaml b/providers/fab/provider.yaml index b34d7264ac7c6..9c7d63f76a67c 100644 --- a/providers/fab/provider.yaml +++ b/providers/fab/provider.yaml @@ -64,6 +64,13 @@ config: type: string example: ~ default: "Access is Denied" + expose_hostname: + description: | + Expose hostname in the web server + version_added: 2.0.3 + type: string + example: ~ + default: "False" auth_rate_limited: description: | Boolean for enabling rate limiting on authentication endpoints. diff --git a/providers/fab/src/airflow/providers/fab/get_provider_info.py b/providers/fab/src/airflow/providers/fab/get_provider_info.py index 4baf5b88011d9..a811deb5cec2a 100644 --- a/providers/fab/src/airflow/providers/fab/get_provider_info.py +++ b/providers/fab/src/airflow/providers/fab/get_provider_info.py @@ -37,6 +37,13 @@ def get_provider_info(): "example": None, "default": "Access is Denied", }, + "expose_hostname": { + "description": "Expose hostname in the web server\n", + "version_added": "2.0.3", + "type": "string", + "example": None, + "default": "False", + }, "auth_rate_limited": { "description": "Boolean for enabling rate limiting on authentication endpoints.\n", "version_added": "1.0.2", diff --git a/providers/fab/src/airflow/providers/fab/www/auth.py b/providers/fab/src/airflow/providers/fab/www/auth.py index 204bab480403f..a01ab8c9e1f9b 100644 --- a/providers/fab/src/airflow/providers/fab/www/auth.py +++ b/providers/fab/src/airflow/providers/fab/www/auth.py @@ -145,7 +145,7 @@ def _has_access(*, is_authorized: bool, func: Callable, args, kwargs): return ( render_template( "airflow/no_roles_permissions.html", - hostname=get_hostname() if conf.getboolean("webserver", "EXPOSE_HOSTNAME") else "", + hostname=get_hostname() if conf.getboolean("fab", "EXPOSE_HOSTNAME") else "", logout_url=get_fab_auth_manager().get_url_logout(), ), 403, @@ -217,7 +217,7 @@ def decorated(*args, **kwargs): return ( render_template( "airflow/no_roles_permissions.html", - hostname=get_hostname() if conf.getboolean("webserver", "EXPOSE_HOSTNAME") else "", + hostname=get_hostname() if conf.getboolean("fab", "EXPOSE_HOSTNAME") else "", logout_url=get_auth_manager().get_url_logout(), ), 403, diff --git a/providers/fab/src/airflow/providers/fab/www/extensions/init_jinja_globals.py b/providers/fab/src/airflow/providers/fab/www/extensions/init_jinja_globals.py index 5929a40d8f576..35aa5c71413b9 100644 --- a/providers/fab/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +++ b/providers/fab/src/airflow/providers/fab/www/extensions/init_jinja_globals.py @@ -37,7 +37,7 @@ def init_jinja_globals(app, enable_plugins: bool): elif server_timezone == "utc": server_timezone = "UTC" - expose_hostname = conf.getboolean("webserver", "EXPOSE_HOSTNAME") + expose_hostname = conf.getboolean("fab", "EXPOSE_HOSTNAME") hostname = get_hostname() if expose_hostname else "redact" try: