+ key: :federation,
+ type: :keyword,
+ description: "Settings for federation pool.",
+ children: [
+ %{
+ key: :size,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [50]
+ },
+ %{
+ key: :max_overflow,
+ type: :integer,
+ description: "Number of additional workers if pool is under load.",
+ suggestions: [10]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `gun` will wait for response.",
+ suggestions: [150_000]
+ }
+ ]
+ },
+ %{
+ key: :media,
+ type: :keyword,
+ description: "Settings for media pool.",
+ children: [
+ %{
+ key: :size,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [50]
+ },
+ %{
+ key: :max_overflow,
+ type: :integer,
+ description: "Number of additional workers if pool is under load.",
+ suggestions: [10]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `gun` will wait for response.",
+ suggestions: [150_000]
+ }
+ ]
+ },
+ %{
+ key: :upload,
+ type: :keyword,
+ description: "Settings for upload pool.",
+ children: [
+ %{
+ key: :size,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [25]
+ },
+ %{
+ key: :max_overflow,
+ type: :integer,
+ description: "Number of additional workers if pool is under load.",
+ suggestions: [5]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `gun` will wait for response.",
+ suggestions: [300_000]
+ }
+ ]
+ },
+ %{
+ key: :default,
+ type: :keyword,
+ description: "Settings for default pool.",
+ children: [
+ %{
+ key: :size,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [10]
+ },
+ %{
+ key: :max_overflow,
+ type: :integer,
+ description: "Number of additional workers if pool is under load.",
+ suggestions: [2]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `gun` will wait for response.",
+ suggestions: [10_000]
+ }
+ ]
+ }
+ ]
+ },
+ %{
+ group: :pleroma,
+ key: :hackney_pools,
+ type: :group,
+ description: "Advanced settings for `hackney` connections pools",
+ children: [
+ %{
+ key: :federation,
+ type: :keyword,
+ description: "Settings for federation pool.",
+ children: [
+ %{
+ key: :max_connections,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [50]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `hackney` will wait for response.",
+ suggestions: [150_000]
+ }
+ ]
+ },
+ %{
+ key: :media,
+ type: :keyword,
+ description: "Settings for media pool.",
+ children: [
+ %{
+ key: :max_connections,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [50]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `hackney` will wait for response.",
+ suggestions: [150_000]
+ }
+ ]
+ },
+ %{
+ key: :upload,
+ type: :keyword,
+ description: "Settings for upload pool.",
+ children: [
+ %{
+ key: :max_connections,
+ type: :integer,
+ description: "Number workers in the pool.",
+ suggestions: [25]
+ },
+ %{
+ key: :timeout,
+ type: :integer,
+ description: "Timeout while `hackney` will wait for response.",
+ suggestions: [300_000]
+ }
+ ]
+ }
+ ]
+ },
+ %{
+ group: :pleroma,
+ key: :restrict_unauthenticated,
+ type: :group,
+ description:
+ "Disallow viewing timelines, user profiles and statuses for unauthenticated users.",
+ children: [
+ %{
+ key: :timelines,
+ type: :map,
+ description: "Settings for public and federated timelines.",
+ children: [
+ %{
+ key: :local,
+ type: :boolean,
+ description: "Disallow view public timeline."
+ },
+ %{
+ key: :federated,
+ type: :boolean,
+ description: "Disallow view federated timeline."
+ }
+ ]
+ },
+ %{
+ key: :profiles,
+ type: :map,
+ description: "Settings for user profiles.",
+ children: [
+ %{
+ key: :local,
+ type: :boolean,
+ description: "Disallow view local user profiles."
+ },
+ %{
+ key: :remote,
+ type: :boolean,
+ description: "Disallow view remote user profiles."
+ }
+ ]
+ },
+ %{
+ key: :activities,
+ type: :map,
+ description: "Settings for statuses.",
+ children: [
+ %{
+ key: :local,
+ type: :boolean,
+ description: "Disallow view local statuses."
+ },
+ %{
+ key: :remote,
+ type: :boolean,
+ description: "Disallow view remote statuses."
+ }
+ ]
+ }
+ ]
+ },
+ %{
+ group: :pleroma,
+ key: Pleroma.Web.ApiSpec.CastAndValidate,
+ type: :group,
+ children: [
+ %{
+ key: :strict,