diff --git a/src/lib/components/common/PruneDataDialog.svelte b/src/lib/components/common/PruneDataDialog.svelte index 1dd11e984a..9f9a8fa9b0 100644 --- a/src/lib/components/common/PruneDataDialog.svelte +++ b/src/lib/components/common/PruneDataDialog.svelte @@ -12,6 +12,12 @@ let exempt_archived_chats = true; let exempt_chats_in_folders = false; + // Inactive user deletion + let deleteInactiveUsers = false; + let delete_inactive_users_days = 90; + let exempt_admin_users = true; + let exempt_pending_users = true; + // Orphaned resource deletion toggles let delete_orphaned_chats = true; let delete_orphaned_tools = false; @@ -27,8 +33,8 @@ let audio_cache_max_age_days = 30; let showDetailsExpanded = false; - let activeDetailsTab = 'chats'; - let activeSettingsTab = 'chats'; + let activeDetailsTab = 'users'; + let activeSettingsTab = 'users'; let showApiPreview = false; const dispatch = createEventDispatcher(); @@ -46,7 +52,10 @@ delete_orphaned_models, delete_orphaned_notes, delete_orphaned_folders, - audio_cache_max_age_days: cleanupAudioCache ? audio_cache_max_age_days : null + audio_cache_max_age_days: cleanupAudioCache ? audio_cache_max_age_days : null, + delete_inactive_users_days: deleteInactiveUsers ? delete_inactive_users_days : null, + exempt_admin_users, + exempt_pending_users }); show = false; }; @@ -68,9 +77,15 @@ Authorization: Bearer "delete_orphaned_models": ${delete_orphaned_models}, "delete_orphaned_notes": ${delete_orphaned_notes}, "delete_orphaned_folders": ${delete_orphaned_folders}, - "audio_cache_max_age_days": ${cleanupAudioCache ? audio_cache_max_age_days : null} + "audio_cache_max_age_days": ${cleanupAudioCache ? audio_cache_max_age_days : null}, + "delete_inactive_users_days": ${deleteInactiveUsers ? delete_inactive_users_days : null}, + "exempt_admin_users": ${exempt_admin_users}, + "exempt_pending_users": ${exempt_pending_users} }`; + // Warning for short inactive user deletion periods + $: shortUserDeletionWarning = deleteInactiveUsers && delete_inactive_users_days < 30; + const copyApiCall = () => { navigator.clipboard.writeText(apiCallPreview).then(() => { // Could add a toast notification here @@ -146,6 +161,12 @@ Authorization: Bearer
+