Documentation Index
Fetch the complete documentation index at: https://grantmaster.dev/llms.txt
Use this file to discover all available pages before exploring further.
Engineering reference: For service contracts, EventBus events, and data-layer details see src/features/settings/settings.md.
last_updated: 2026-03-08
Settings Hub
Overview
The Settings Hub is a centralized configuration interface organized into 7 categories with permission-gated access. It uses a hierarchical sidebar navigation pattern with URL-based routing and lazy-loaded setting pages.Architecture
The feature lives undersrc/features/settings/ and is built around three core components:
| Component | Purpose |
|---|---|
SettingsShell | Root container — handles routing (/settings/:category/:item), permission checks, Suspense boundaries, legacy URL redirects |
SettingsSidebar | Collapsible navigation using SecondarySidebar — groups items by category with expand/collapse |
SettingsHome | Hub landing page at /settings — category cards with search and quick navigation |
URL Routing
Categories & Items
| Category | ID | Items | Permission |
|---|---|---|---|
| Organization | organization | Profile, Classification | MANAGE_ORG_SETTINGS |
| Appearance | appearance | Theme, Widgets | MANAGE_ORG_SETTINGS |
| International | international | Language, Regional, Formats | MANAGE_ORG_SETTINGS |
| Finance | finance | Budget, Expenses, Cost Centers, Approvals | MANAGE_ORG_SETTINGS |
| Security | security | Login, Passwords, Authentication, Backup | MANAGE_ORG_SETTINGS |
| Grant Sources | grant-sources | Source Management | MANAGE_GRANT_OPPORTUNITIES |
| Danger Zone | danger-zone | Data (tenant lifecycle), Account (user lifecycle) | MANAGE_ORG_SETTINGS |
Setting Pages (Lazy-Loaded)
All setting page components are loaded viaReact.lazy() for code splitting:
Organization
- OrganizationProfileEditor — Organization name, logo, description, contact info
- ClassificationSettings — Sector, geography, legal/fiscal, SDG alignment
Appearance
- ScreenSettings — Theme mode (light/dark/system), color customization
- WidgetSettings — Dashboard widget visibility and layout preferences
International
- LanguageSettings — UI language selection (i18n)
- RegionalSettings — Country, timezone, locale
- DateTimeSettings — Date format, time format, fiscal year start
Finance
- BudgetCategoriesSettings — Budget category taxonomy management
- ExpenseSettings — Expense policies, receipt requirements, limits
- CostCentersSettings — Cost center hierarchy configuration
- AutoApprovalSettings — Automated approval rules and thresholds
Security
- LoginPolicySettings — Login restrictions, allowed domains
- PasswordPolicySettings — Password complexity, rotation rules
- AuthenticationSettings — MFA, SSO, session timeout
- BackupExportsSettings — Data export and backup preferences
Grant Sources
- GrantSourceManagement — Grant ingestion pipeline controls, source configuration
Danger Zone
- DangerTenantDataSettings — Organization data lifecycle (export, purge)
- DangerAccountSettings — User account lifecycle (deactivate, delete)
Key Features
- Permission Filtering — Items are hidden if the user lacks the required permission
- Search — Fuzzy search across all items using labels, descriptions, and keywords
- Legacy URL Support — Old
?tab=xxxquery parameters redirect to new URL structure - Single-Item Category Optimization — Categories with one item navigate directly without sub-path
Public API
The settings feature exports key components for use outside the feature boundary viasrc/features/settings/public.ts:
AutoApprovalSettings— embedded in finance workflowsBudgetCategoriesSettings— embedded in budget managementSettingsPageHeader— reusable header for settings-style pagesSecurityPolicies— embedded in Platform Management security tab
Configuration
The settings hierarchy is defined insrc/features/settings/components/SettingsShell/settingsConfig.ts. Each item specifies:
Related Documentation
- Security & Tenancy — RBAC model underlying permission checks
- Permission Matrix — full permission list
- Platform Administration — SuperAdmin-level configuration (separate from org settings)