@ -1,5 +1,4 @@
use Mix.Config
alias Pleroma.Docs.Generator
websocket_config = [
path : " /websocket " ,
@ -1555,298 +1554,6 @@ config :pleroma, :config_description, [
}
]
} ,
%{
group : :pleroma ,
key : :mrf ,
tab : :mrf ,
label : " MRF " ,
type : :group ,
description : " General MRF settings " ,
children : [
%{
key : :policies ,
type : [ :module , { :list , :module } ] ,
description :
" A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name. " ,
suggestions : { :list_behaviour_implementations , Pleroma.Web.ActivityPub.MRF }
} ,
%{
key : :transparency ,
label : " MRF transparency " ,
type : :boolean ,
description :
" Make the content of your Message Rewrite Facility settings public (via nodeinfo) "
} ,
%{
key : :transparency_exclusions ,
label : " MRF transparency exclusions " ,
type : { :list , :string } ,
description :
" Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. " ,
suggestions : [
" exclusion.com "
]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_simple ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.SimplePolicy " ,
label : " MRF Simple " ,
type : :group ,
description : " Simple ingress policies " ,
children : [
%{
key : :media_removal ,
type : { :list , :string } ,
description : " List of instances to strip media attachments from " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :media_nsfw ,
label : " Media NSFW " ,
type : { :list , :string } ,
description : " List of instances to tag all media as NSFW (sensitive) from " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :federated_timeline_removal ,
type : { :list , :string } ,
description :
" List of instances to remove from the Federated (aka The Whole Known Network) Timeline " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :reject ,
type : { :list , :string } ,
description : " List of instances to reject activities from (except deletes) " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :accept ,
type : { :list , :string } ,
description : " List of instances to only accept activities from (except deletes) " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :followers_only ,
type : { :list , :string } ,
description : " Force posts from the given instances to be visible by followers only " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :report_removal ,
type : { :list , :string } ,
description : " List of instances to reject reports from " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :avatar_removal ,
type : { :list , :string } ,
description : " List of instances to strip avatars from " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :banner_removal ,
type : { :list , :string } ,
description : " List of instances to strip banners from " ,
suggestions : [ " example.com " , " *.example.com " ]
} ,
%{
key : :reject_deletes ,
type : { :list , :string } ,
description : " List of instances to reject deletions from " ,
suggestions : [ " example.com " , " *.example.com " ]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_activity_expiration ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy " ,
label : " MRF Activity Expiration Policy " ,
type : :group ,
description : " Adds automatic expiration to all local activities " ,
children : [
%{
key : :days ,
type : :integer ,
description : " Default global expiration time for all local activities (in days) " ,
suggestions : [ 90 , 365 ]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_subchain ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.SubchainPolicy " ,
label : " MRF Subchain " ,
type : :group ,
description :
" This policy processes messages through an alternate pipeline when a given message matches certain criteria. " <>
" All criteria are configured as a map of regular expressions to lists of policy modules. " ,
children : [
%{
key : :match_actor ,
type : { :map , { :list , :string } } ,
description : " Matches a series of regular expressions against the actor field " ,
suggestions : [
%{
~r/ https: \/ \/ example.com /s = > [ Pleroma.Web.ActivityPub.MRF.DropPolicy ]
}
]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_rejectnonpublic ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.RejectNonPublic " ,
description : " RejectNonPublic drops posts with non-public visibility settings. " ,
label : " MRF Reject Non Public " ,
type : :group ,
children : [
%{
key : :allow_followersonly ,
label : " Allow followers-only " ,
type : :boolean ,
description : " Whether to allow followers-only posts "
} ,
%{
key : :allow_direct ,
type : :boolean ,
description : " Whether to allow direct messages "
}
]
} ,
%{
group : :pleroma ,
key : :mrf_hellthread ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.HellthreadPolicy " ,
label : " MRF Hellthread " ,
type : :group ,
description : " Block messages with excessive user mentions " ,
children : [
%{
key : :delist_threshold ,
type : :integer ,
description :
" Number of mentioned users after which the message gets removed from timelines and " <>
" disables notifications. Set to 0 to disable. " ,
suggestions : [ 10 ]
} ,
%{
key : :reject_threshold ,
type : :integer ,
description :
" Number of mentioned users after which the messaged gets rejected. Set to 0 to disable. " ,
suggestions : [ 20 ]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_keyword ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.KeywordPolicy " ,
label : " MRF Keyword " ,
type : :group ,
description :
" Reject or Word-Replace messages matching a keyword or [Regex](https://hexdocs.pm/elixir/Regex.html). " ,
children : [
%{
key : :reject ,
type : { :list , :string } ,
description : """
A list of patterns which result in message being rejected .
Each pattern can be a string or [ Regex ] ( https :/ / hexdocs . pm / elixir / Regex . html ) in the format of ` ~r/ PATTERN / ` .
""" ,
suggestions : [ " foo " , ~r/ foo /iu ]
} ,
%{
key : :federated_timeline_removal ,
type : { :list , :string } ,
description : """
A list of patterns which result in message being removed from federated timelines ( a . k . a unlisted ) .
Each pattern can be a string or [ Regex ] ( https :/ / hexdocs . pm / elixir / Regex . html ) in the format of ` ~r/ PATTERN / ` .
""" ,
suggestions : [ " foo " , ~r/ foo /iu ]
} ,
%{
key : :replace ,
type : { :list , :tuple } ,
description : """
* * Pattern * * : a string or [ Regex ] ( https :/ / hexdocs . pm / elixir / Regex . html ) in the format of ` ~r/ PATTERN / ` .
* * Replacement * * : a string . Leaving the field empty is permitted .
"""
}
]
} ,
%{
group : :pleroma ,
key : :mrf_mention ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.MentionPolicy " ,
label : " MRF Mention " ,
type : :group ,
description : " Block messages which mention a specific user " ,
children : [
%{
key : :actors ,
type : { :list , :string } ,
description : " A list of actors for which any post mentioning them will be dropped " ,
suggestions : [ " actor1 " , " actor2 " ]
}
]
} ,
%{
group : :pleroma ,
key : :mrf_vocabulary ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.VocabularyPolicy " ,
label : " MRF Vocabulary " ,
type : :group ,
description : " Filter messages which belong to certain activity vocabularies " ,
children : [
%{
key : :accept ,
type : { :list , :string } ,
description :
" A list of ActivityStreams terms to accept. If empty, all supported messages are accepted. " ,
suggestions : [ " Create " , " Follow " , " Mention " , " Announce " , " Like " ]
} ,
%{
key : :reject ,
type : { :list , :string } ,
description :
" A list of ActivityStreams terms to reject. If empty, no messages are rejected. " ,
suggestions : [ " Create " , " Follow " , " Mention " , " Announce " , " Like " ]
}
]
} ,
# %{
# group: :pleroma,
# key: :mrf_user_allowlist,
# tab: :mrf,
# related_policy: "Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy",
# type: :map,
# description:
# "The keys in this section are the domain names that the policy should apply to." <>
# " Each key should be assigned a list of users that should be allowed through by their ActivityPub ID",
# suggestions: [
# %{"example.org" => ["https://example.org/users/admin"]}
# ]
# ]
# },
%{
group : :pleroma ,
key : :media_proxy ,
@ -3159,22 +2866,6 @@ config :pleroma, :config_description, [
}
]
} ,
%{
group : :pleroma ,
key : :mrf_normalize_markup ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.NormalizeMarkup " ,
label : " MRF Normalize Markup " ,
description : " MRF NormalizeMarkup settings. Scrub configured hypertext markup. " ,
type : :group ,
children : [
%{
key : :scrub_policy ,
type : :module ,
suggestions : [ Pleroma.HTML.Scrubber.Default ]
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.User ,
@ -3364,33 +3055,6 @@ config :pleroma, :config_description, [
}
]
} ,
%{
group : :pleroma ,
key : :mrf_object_age ,
tab : :mrf ,
related_policy : " Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy " ,
label : " MRF Object Age " ,
type : :group ,
description :
" Rejects or delists posts based on their timestamp deviance from your server's clock. " ,
children : [
%{
key : :threshold ,
type : :integer ,
description : " Required age (in seconds) of a post before actions are taken. " ,
suggestions : [ 172_800 ]
} ,
%{
key : :actions ,
type : { :list , :atom } ,
description :
" A list of actions to apply to the post. `:delist` removes the post from public timelines; " <>
" `:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines; " <>
" `:reject` rejects the message entirely " ,
suggestions : [ :delist , :strip_followers , :reject ]
}
]
} ,
%{
group : :pleroma ,
key : :modules ,