Improvements for server settings configuration in admin-fe
Update labels in group Pleroma.Web.Endpoint: Http -> HTTP, Ip -> IP, Url -> URL. In group :http: Proxy url -> Proxy URL. In group :http_security: Sts -> STS, Sts max age -> STS max age, Ct max age -> CT max age, Report uri -> Report URI
Change description for group :frontend_configurations to 'This form can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe and masto_fe are configured. If you want to add your own configuration your settings need to be complete as they will override the defaults.'
Fix labels that doesn't have spaces in group :frontend_configurations (e.g. Redirectrootnologin, Redirectrootlogin, Showinstancespecificpanel, Scopeoptionsenabled, Hidepoststats and others). Also change 'Pleroma fe' to 'Pleroma FE', 'Masto fe' to 'Masto FE'.
:mascots in group :assets should have second type map
:proxy_url in group :http has type ['string', 'atom']. I guess it should be just 'string'.
:adapter in group :http is type keyword but doesn't have any children. Current config has the following settings configured:
adapter: { ssl_options: { partial_chain: '&:hackney_connect.partial_chain/1', versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] } }
I guess we can add those children to our description.
`
It would be very helpful if every entry in description had a key. For those settings that don't have key we can take group name or child's key. For example, description for :cors_plug: { children: Array(5), key: ":cors_plug", group: ":cors_plug", type: "group" }
Description for Pleroma.Web.Auth.Authenticator: { children: Array(1), description: "Authenticator", key: "Pleroma.Web.Auth.Authenticator", group: ":pleroma", type: "group".
Description for :esshd: { children: Array(5), description: "Before enabling this ...", key: ":esshd", group: ":esshd", type: "group" }.
Description for :admin_token: { children: Array(1), description: "Allows to set ...", key: ":admin_token", group: ":pleroma", type: "group" }.
Description for :logger: { children: Array(1), description: "Logger-related settings", key: ":logger", group: ":logger", type: "group" }.
Description for :quack: { children: Array(3), description: "Quack-related settings", key: ":quack", group: ":quack", type: "group" }.
I think :expose in group :cors_plug should have type ['string', 'list'], not just single 'string'
:mrf_transparency_exclusions in group ':instance' has array inside of an array in suggestions. Same for :valid_schemes in group :uri_schemes, :backends in group :logger, :metadata in groups :console, :ex_syslogger (:logger)
:rewrite_policy in group :instance has type ['list', 'module'] but it's value can also be a string, so I think we should add 'string' type as well (['string', ['list', 'module']]).
I suggest changing suggestion for :welcome_message in group :instance to 'Hi, @username! Welcome on board!'
I think all atoms in suggestions should have colons so we don't mix it up with strings. So suggestions in :limit_to_local_content in group :instance should be atoms, not strings. Also :disabled in :prune setting in group Oban should be an atom. Same for suggestion request_id in :metadata in groups :console, :ex_syslogger (:logger)
Update labels in group Pleroma.Emails.Mailer: Ssl -> SSL, Tls -> TLS, Api key -> API key, in group Pleroma.Web.Metadata: Unfurl nsfw -> Unfurl NSFW, in group :rich_media: Ignore tld -> Ingore TLD, Ttl setters -> TTL setters, in group :mrf_simple: Media nsfw -> Media NSFW, in group :mrf_rejectnonpublic: Allow followersonly -> Allow followers-only
:tls and :auth in group Pleroma.Emails.Mailer have type atom but has strings in suggestions
:region in group Pleroma.Emails.Mailer should have type string instead of ['string']
:interval in :digest in :email_notifications has a typo in type: 'ininteger' instead of 'integer'
I think we can delete null from type for :logo in group Pleroma.Emails.UserEmail
:adapter in :http in group :media_proxy has type keyword but no children or suggestions
Children in :types in group :mimes have keys with colons, but they are just regular strings so they shouldn't start with colons
There is no description for groups Pleroma.Uploaders.MDII, :mrf_rejectnonpublic, :mrf_normalize_markup and for :rich_media
There is a typo in word description in group Pleroma.Web.Metadata
I suggest to have strings and atoms instead of arrays of those values in suggestions for :args in group Pleroma.Upload.Filter.Mogrify. Example: suggestions: ["strip", "auto-orient", ["implode", "1"]]`
:federated_timeline_removal and :replace in group :mrf_keyword has identical description
I suggest adding type map to :replace setting in group :mrf_keyword (type: ['map', ['string', 'string'], ['regex', 'string'])
:actors in group :mrf_mention has array inside of an array in suggestions. Same for :accept and :reject in group :mrf_vocabulary
Update description for Pleroma.Plugs.RemoteIp to 'Pleroma.Plugs.RemoteIp is a shim to call RemoteIp but with runtime configuration. If your instance is not behind at least one reverse proxy, you should not enable this plug.'