+ description: "Options for Pleroma.ReverseProxy",
+ suggestions: [
+ redirect_on_failure: false,
+ max_body_length: 25 * 1_048_576,
+ http: [
+ follow_redirect: true,
+ pool: :media
+ ]
+ ],
+ children: [
+ %{
+ key: :redirect_on_failure,
+ type: :boolean,
+ description:
+ "Redirects the client to the real remote URL if there's any HTTP errors. " <>
+ "Any error during body processing will not be redirected as the response is chunked"
+ },
+ %{
+ key: :max_body_length,
+ type: :integer,
+ description:
+ "limits the content length to be approximately the " <>
+ "specified length. It is validated with the `content-length` header and also verified when proxying"
+ },
+ %{
+ key: :http,
+ type: :keyword,
+ description: "HTTP options",
+ children: [
+ %{
+ key: :adapter,
+ type: :keyword,
+ description: "Adapter specific options",
+ children: [
+ %{
+ key: :ssl_options,
+ type: :keyword,
+ label: "SSL Options",
+ description: "SSL options for HTTP adapter",
+ children: [
+ %{
+ key: :versions,
+ type: {:list, :atom},
+ descriptions: "List of TLS version to use",
+ suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
+ }
+ ]
+ }
+ ]
+ },
+ %{
+ key: :proxy_url,
+ label: "Proxy URL",
+ type: [:string, :tuple],
+ description: "Proxy URL",
+ suggestions: ["127.0.0.1:8123", {:socks5, :localhost, 9050}]
+ }
+ ]
+ }
+ ]