{[:instance, :mrf_transparency], [:mrf, :transparency],
"\n* `config :pleroma, :instance, mrf_transparency` is now `config :pleroma, :mrf, transparency`"},
{[:instance, :mrf_transparency_exclusions], [:mrf, :transparency_exclusions],
- "\n* `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions`"}
+ "\n* `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions`"},
+ {[:instance, :quarantined_instances], [:mrf_simple, :reject],
+ "\n* `config :pleroma, :instance, :quarantined_instances` is now covered by `:pleroma, :mrf_simple, :reject`"}
]
def check_simple_policy_tuples do
has_strings =
Config.get([:mrf_simple])
- |> Enum.any?(fn {_, v} -> Enum.any?(v, &is_binary/1) end)
+ |> Enum.any?(fn {_, v} -> is_list(v) and Enum.any?(v, &is_binary/1) end)
if has_strings do
Logger.warn("""
new_config =
Config.get([:mrf_simple])
+ |> Enum.filter(fn {_k, v} -> not is_atom(v) end)
|> Enum.map(fn {k, v} ->
{k,
Enum.map(v, fn
end
def check_quarantined_instances_tuples do
- has_strings = Config.get([:instance, :quarantined_instances]) |> Enum.any?(&is_binary/1)
+ has_strings = Config.get([:instance, :quarantined_instances], []) |> Enum.any?(&is_binary/1)
if has_strings do
Logger.warn("""
check_old_mrf_config(),
check_media_proxy_whitelist_config(),
check_welcome_message_config(),
- check_gun_pool_options(),
check_activity_expiration_config(),
check_remote_ip_plug_name(),
check_uploders_s3_public_endpoint(),
- check_old_chat_shoutbox(),
check_quarantined_instances_tuples(),
check_transparency_exclusions_tuples(),
- check_simple_policy_tuples()
+ check_simple_policy_tuples(),
+ check_http_adapter()
]
|> Enum.reduce(:ok, fn
:ok, :ok -> :ok
end
end
+ def check_http_adapter do
+ http_adapter = Application.get_env(:tesla, :adapter)
+
+ case http_adapter do
+ {Tesla.Adapter.Finch, _} ->
+ :ok
+
+ Tesla.Mock ->
+ # tests do be testing
+ :ok
+
+ _anything_else ->
+ Logger.error("""
+ !!!CONFIG ERROR!!!
+ Your config is using a custom tesla adapter, this was standardised
+ to finch in 2022.06, and alternate adapters were removed in 2023.02.
+ Please ensure you either:
+ \n* do not have any custom value for `:tesla, :adapter`, or
+ \n* have `config :tesla, :adapter, {Tesla.Adapter.Finch, name: MyFinch}`
+ (your current value is #{inspect(http_adapter)})
+ """)
+
+ :error
+ end
+ end
+
def check_old_mrf_config do
warning_preface = """
!!!DEPRECATION WARNING!!!
end
end
- def check_gun_pool_options do
- pool_config = Config.get(:connections_pool)
-
- if timeout = pool_config[:await_up_timeout] do
- Logger.warn("""
- !!!DEPRECATION WARNING!!!
- Your config is using old setting `config :pleroma, :connections_pool, await_up_timeout`. Please change to `config :pleroma, :connections_pool, connect_timeout` to ensure compatibility with future releases.
- """)
-
- Config.put(:connections_pool, Keyword.put_new(pool_config, :connect_timeout, timeout))
- end
-
- pools_configs = Config.get(:pools)
-
- warning_preface = """
- !!!DEPRECATION WARNING!!!
- Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings. Setting should work for now, but you are advised to change format to scheme with port to prevent possible issues later.
- """
-
- updated_config =
- Enum.reduce(pools_configs, [], fn {pool_name, config}, acc ->
- if timeout = config[:timeout] do
- Keyword.put(acc, pool_name, Keyword.put_new(config, :recv_timeout, timeout))
- else
- acc
- end
- end)
-
- if updated_config != [] do
- pool_warnings =
- updated_config
- |> Keyword.keys()
- |> Enum.map(fn pool_name ->
- "\n* `:timeout` options in #{pool_name} pool is now `:recv_timeout`"
- end)
-
- Logger.warn(Enum.join([warning_preface | pool_warnings]))
-
- Config.put(:pools, updated_config)
- :error
- else
- :ok
- end
- end
-
@spec check_activity_expiration_config() :: :ok | nil
def check_activity_expiration_config do
warning_preface = """
:ok
end
end
-
- @spec check_old_chat_shoutbox() :: :ok | nil
- def check_old_chat_shoutbox do
- instance_config = Pleroma.Config.get([:instance])
- chat_config = Pleroma.Config.get([:chat]) || []
-
- use_old_config =
- Keyword.has_key?(instance_config, :chat_limit) or
- Keyword.has_key?(chat_config, :enabled)
-
- if use_old_config do
- Logger.error("""
- !!!DEPRECATION WARNING!!!
- Your config is using the old namespace for the Shoutbox configuration. You need to convert to the new namespace. e.g.,
- \n* `config :pleroma, :chat, enabled` and `config :pleroma, :instance, chat_limit` are now equal to:
- \n* `config :pleroma, :shout, enabled` and `config :pleroma, :shout, limit`
- """)
-
- :error
- else
- :ok
- end
- end
end