Skip to main content

cloudillo_action/
settings.rs

1//! Federation/action settings registration (admin-only infrastructure settings)
2
3use crate::prelude::*;
4use cloudillo_core::settings::{
5	PermissionLevel, SettingDefinition, SettingScope, SettingValue, SettingsRegistry,
6};
7
8/// Register all federation/action settings (admin-only infrastructure)
9/// Note: User-facing settings are in profile/settings.rs under the profile.* prefix
10pub fn register_settings(registry: &mut SettingsRegistry) -> ClResult<()> {
11	// Federation auto-accept followers
12	registry.register(
13		SettingDefinition::builder("federation.auto_accept_followers")
14			.description("Automatically accept follow requests")
15			.default(SettingValue::Bool(false))
16			.scope(SettingScope::Tenant)
17			.permission(PermissionLevel::Admin)
18			.build()?,
19	)?;
20
21	// Federation auto-approve actions from trusted (connected) sources
22	registry.register(
23		SettingDefinition::builder("federation.auto_approve")
24			.description("Automatically approve approvable actions from connected sources")
25			.default(SettingValue::Bool(false))
26			.scope(SettingScope::Tenant)
27			.permission(PermissionLevel::Admin)
28			.build()?,
29	)?;
30
31	// Key fetch failure cache size
32	registry.register(
33		SettingDefinition::builder("federation.key_failure_cache_size")
34			.description("Maximum entries in the key fetch failure cache (in-memory LRU)")
35			.default(SettingValue::Int(100))
36			.scope(SettingScope::Global)
37			.permission(PermissionLevel::Admin)
38			.build()?,
39	)?;
40
41	Ok(())
42}
43
44// vim: ts=4