diff --git a/frontend/src/app/settings/page.tsx b/frontend/src/app/settings/page.tsx index 9af3f19..796ffde 100644 --- a/frontend/src/app/settings/page.tsx +++ b/frontend/src/app/settings/page.tsx @@ -11,11 +11,10 @@ import { Textarea } from "@/components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Alert, AlertDescription } from "@/components/ui/alert"; -import { - Settings, - Save, +import { + Settings, + Save, RefreshCw, - Shield, Globe, Database, Mail, @@ -36,30 +35,9 @@ import { useModules, triggerModuleRefresh } from '@/contexts/ModulesContext'; import { Badge } from '@/components/ui/badge'; interface SystemSettings { - // Security Settings - security: { - password_min_length: number; - password_require_uppercase: boolean; - password_require_lowercase: boolean; - password_require_numbers: boolean; - password_require_symbols: boolean; - session_timeout_minutes: number; - max_login_attempts: number; - lockout_duration_minutes: number; - require_2fa: boolean; - allowed_domains: string[]; - }; // API Settings api: { - // Security Settings - security_enabled: boolean; - threat_detection_enabled: boolean; - rate_limiting_enabled: boolean; - ip_reputation_enabled: boolean; - anomaly_detection_enabled: boolean; - security_headers_enabled: boolean; - // Rate Limiting by Authentication Level rate_limit_authenticated_per_minute: number; rate_limit_authenticated_per_hour: number; @@ -67,23 +45,13 @@ interface SystemSettings { rate_limit_api_key_per_hour: number; rate_limit_premium_per_minute: number; rate_limit_premium_per_hour: number; - - // Security Thresholds - security_risk_threshold: number; - security_warning_threshold: number; - anomaly_threshold: number; - + // Request Settings max_request_size_mb: number; max_request_size_premium_mb: number; enable_cors: boolean; cors_origins: string[]; api_key_expiry_days: number; - - // IP Security - blocked_ips: string[]; - allowed_ips: string[]; - csp_header: string; }; // Notification Settings @@ -95,7 +63,6 @@ interface SystemSettings { smtp_use_tls: boolean; from_address: string; budget_alerts: boolean; - security_alerts: boolean; system_alerts: boolean; }; } @@ -180,13 +147,16 @@ function SettingsPageContent() { // Transform backend format to frontend format const transformedSettings = {} as SystemSettings; - - // Transform each category from backend format {key: {value, type, description}} + + // Transform each category from backend format {key: {value, type, description}} // to frontend format {key: value} + // Skip security category as it has been removed from the UI for (const [categoryName, categorySettings] of Object.entries(data)) { + if (categoryName === 'security') continue; // Skip security settings + if (typeof categorySettings === 'object' && categorySettings !== null) { transformedSettings[categoryName as keyof SystemSettings] = {} as any; - + for (const [key, setting] of Object.entries(categorySettings as any)) { if (typeof setting === 'object' && setting !== null && 'value' in setting) { transformedSettings[categoryName as keyof SystemSettings][key] = setting.value; @@ -384,214 +354,27 @@ function SettingsPageContent() { )} - - - Security + + API Notifications Modules - - - - - - Security Settings - - - Configure password policies, session management, and authentication settings - - - -
-
-

Password Policy

-
-
- - updateSetting("security", "password_min_length", parseInt(e.target.value))} - /> -
-
-
- updateSetting("security", "password_require_uppercase", checked)} - /> - -
-
- updateSetting("security", "password_require_lowercase", checked)} - /> - -
-
- updateSetting("security", "password_require_numbers", checked)} - /> - -
-
- updateSetting("security", "password_require_symbols", checked)} - /> - -
-
-
-
- -
-

Session & Authentication

-
-
- - updateSetting("security", "session_timeout_minutes", parseInt(e.target.value))} - /> -
-
- - updateSetting("security", "max_login_attempts", parseInt(e.target.value))} - /> -
-
- - updateSetting("security", "lockout_duration_minutes", parseInt(e.target.value))} - /> -
-
- updateSetting("security", "require_2fa", checked)} - /> - -
-
-
-
- -
- -