mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-24 23:41:10 +02:00
This commit implements a comprehensive database-driven site configuration system that allows administrators to control the visibility and behavior of homepage elements, navigation links, footer sections, and route availability without code changes. Backend Changes: - Added SiteConfiguration model with singleton pattern (id=1) - Created migration 38_add_site_configuration_table.py - Implemented site_configuration_routes.py with public + admin endpoints - Added Pydantic schemas for validation (Base, Update, Read, Public) - Registered routes in main app Frontend Changes: - Created SiteConfigContext.tsx for global state management - Updated app/layout.tsx to wrap app in SiteConfigProvider - Implemented RouteGuard component for disabled routes - Updated navbar with conditional rendering (pricing, docs, github, signin) - Updated hero-section with conditional buttons (get started, talk to us) - Updated footer with conditional sections and custom copyright - Applied route guards to pricing, contact, terms, privacy pages Admin Panel: - Created /dashboard/site-settings page with full UI - Visual toggle switches for all configuration options - Real-time updates via API with toast notifications - Organized by section (Header, Homepage, Footer, Routes, Text) - Dark mode support and responsive design Configuration Options: Header: show_pricing_link, show_docs_link, show_github_link, show_sign_in Homepage: show_get_started_button, show_talk_to_us_button Footer: show_pages_section, show_legal_section, show_register_section Routes: disable_pricing/docs/contact/terms/privacy_route Custom: custom_copyright text (max 200 chars) Security: - Superuser-only admin endpoints with JWT validation - Public read-only endpoint for frontend consumption - Input validation via Pydantic schemas - Singleton pattern with database constraints - Client-side route guards for disabled routes Documentation: - Added comprehensive section to claude.md - Includes API docs, migration guide, testing checklist - Example code snippets and configuration tables - Security considerations and future enhancements All configuration defaults to minimal/privacy-focused state (most features disabled by default). Administrators can enable features as needed via the admin panel. Files Changed: 16 files (6 backend, 10 frontend, 1 documentation) |
||
|---|---|---|
| .. | ||
| 1_add_github_connector_enum.py | ||
| 2_add_linear_connector_enum.py | ||
| 3_add_linear_connector_to_documenttype_.py | ||
| 4_add_linkup_api_enum.py | ||
| 5_remove_title_char_limit.py | ||
| 6_change_podcast_content_to_transcript.py | ||
| 7_remove_is_generated_column.py | ||
| 8_add_content_hash_to_documents.py | ||
| 9_add_discord_connector_enum_and_documenttype.py | ||
| 10_update_chattype_enum_to_qna_report_structure.py | ||
| 11_add_llm_config_table_and_relationships.py | ||
| 12_add_logs_table.py | ||
| 13_add_jira_connector_enums.py | ||
| 14_add_confluence_connector_enums.py | ||
| 15_add_clickup_connector_enums.py | ||
| 16_fix_connector_unique_constraint.py | ||
| 17_add_google_calendar_connector_enums.py | ||
| 18_add_google_gmail_connector_enums.py | ||
| 19_add_airtable_connector_enums.py | ||
| 20_add_openrouter_to_litellmprovider_enum.py | ||
| 21_add_luma_connector_enums.py | ||
| 22_add_cometapi_to_litellmprovider_enum.py | ||
| 23_associate_connectors_with_search_spaces.py | ||
| 24_fix_null_chat_types.py | ||
| 25_migrate_llm_configs_to_search_spaces.py | ||
| 26_add_language_column_to_llm_configs.py | ||
| 27_add_searxng_connector_enum.py | ||
| 28_add_chinese_litellmprovider_enum.py | ||
| 29_add_unique_identifier_hash_to_documents.py | ||
| 30_add_baidu_search_connector_enum.py | ||
| 31_add_elasticsearch_connector_enums.py | ||
| 32_add_periodic_indexing_fields.py | ||
| 33_add_page_limits_to_user.py | ||
| 34_add_podcast_staleness_detection.py | ||
| 35_update_litellmprovider_enum_comprehensive.py | ||
| 36_remove_fk_constraints_for_global_llm_configs.py | ||
| 37_add_social_media_links_table.py | ||
| 38_add_site_configuration_table.py | ||
| e55302644c51_add_github_connector_to_documenttype_.py | ||