{% set config_lines = ["IS_DRAFT=" + config.get('IS_DRAFT', {}).get('value', 'no')] if (current_endpoint != "global-config" and current_endpoint != "global-settings") else [] %} {% set entire_config = config_lines|list %} {% set default_settings = ["IS_DRAFT=no"] if (current_endpoint != "global-config" and current_endpoint != "global-settings") else [] %} {% set disabled_settings = namespace(items=[]) %} {# Canonical set of valid keys (+ multiple base-prefixes) for this editor, built from the SAME settings walk that produces the raw config text below. The client parser uses it to tell a real `KEY=value` line apart from a continuation line of a multiline value (PEM cert/key, base64 block). #} {% set known_keys = namespace(keys=[], bases=[], multiline=[], multiline_bases=[]) %} {% for plugin_data in plugins.values() %} {% set filtered_settings = get_filtered_settings(plugin_data["settings"], (current_endpoint == "global-config" or current_endpoint == "global-settings")) %} {% if filtered_settings %} {% for setting, setting_data in filtered_settings.items() if not setting_data.get('multiple', false) and setting not in blacklisted_settings %} {% set setting_config = config.get(setting, {}) %} {% set setting_default = setting_data.get("default", "") %} {% set setting_method = setting_config.get("method", "default") %} {% set setting_value = setting_config.get("value", setting_default) %} {% if current_endpoint == "new" or clone %} {% set setting_method = "default" %} {% set disabled = false %} {% if setting == "SERVER_NAME" %} {% set setting_value = "" %} {% endif %} {% endif %} {% set disabled = not is_editable_method(setting_method, allow_default=True) and (current_endpoint == "global-config" or current_endpoint == "global-settings" or not setting_config.get("global")) %} {% if disabled %} {% set disabled_settings.items = disabled_settings.items + [setting ~ "::" ~ setting_method] %} {% endif %} {% if entire_config.append(setting + "=" + setting_value) %}{% endif %} {% if known_keys.keys.append(setting) %}{% endif %} {% if setting_data.get("type") == "file" and known_keys.multiline.append(setting) %}{% endif %} {% if setting_value != setting_default %} {% if config_lines.append(setting + "=" + setting_value) %}{% endif %} {% if default_settings.append(setting + "=" + setting_default) %}{% endif %} {% endif %} {% endfor %} {% endif %} {% set plugin_multiples = get_multiples(filtered_settings, config) %} {% if plugin_multiples %} {% for multiple, multiples in plugin_multiples.items() %} {% for setting_suffix, settings in multiples.items() %} {% for setting, setting_data in settings.items() if setting not in blacklisted_settings %} {% set setting_config = config.get(setting, {}) %} {% set setting_default = setting_data.get("default", "") %} {% set setting_method = setting_config.get("method", "default") %} {% set setting_value = setting_config.get("value", setting_default) %} {% set disabled = not is_editable_method(setting_method, allow_default=True) and (current_endpoint == "global-config" or current_endpoint == "global-settings" or not setting_config.get("global")) %} {% if disabled %} {% set disabled_settings.items = disabled_settings.items + [setting ~ "::" ~ setting_method] %} {% endif %} {% if entire_config.append(setting + "=" + setting_value) %}{% endif %} {% if known_keys.keys.append(setting) %}{% endif %} {% if setting_data.get("setting_no_suffix") %}{% if known_keys.bases.append(setting_data["setting_no_suffix"]) %}{% endif %}{% endif %} {% if setting_data.get("type") == "file" %}{% if known_keys.multiline.append(setting) %}{% endif %}{% if setting_data.get("setting_no_suffix") %}{% if known_keys.multiline_bases.append(setting_data["setting_no_suffix"]) %}{% endif %}{% endif %}{% endif %} {% if setting_value != setting_default %} {% if config_lines.append(setting + "=" + setting_value) %}{% endif %} {% if default_settings.append(setting + "=" + setting_default) %}{% endif %} {% endif %} {% endfor %} {% endfor %} {% endfor %} {% endif %} {% endfor %} {# Control keys that appear in the editor text (or are posted alongside it) but are not iterated as plugin settings above (IS_DRAFT is emitted at the top; the rest are defensive against future template changes). #} {% for _control_key in ["IS_DRAFT", "SERVER_NAME", "OLD_SERVER_NAME", "USE_TEMPLATE", "OVERRIDE_NON_GLOBAL_SERVICES"] %}{% if known_keys.keys.append(_control_key) %}{% endif %}{% endfor %} {% set raw_config = config_lines | join('\r\n') %} {% set raw_entire_config = entire_config | join('\r\n') %}
Raw configuration
Locked settings are highlighted