Platform Settings
Configure global platform settings, integrations, and system options
Overview
Platform Settings provides administrators with centralized control over global configuration options that affect all organizations on the platform. This includes integration settings, feature flags, email configuration, and system-wide defaults.
Settings Categories
General Settings
Platform name, branding, and default configurations
Integration Settings
Third-party service connections and API keys
Feature Flags
Enable/disable platform features globally or per-tenant
Email Configuration
SMTP settings and email template defaults
Security Settings
Authentication, MFA, and session policies
System Defaults
Default values for new organizations
General Settings
| Setting | Type | Description |
|---|
| Platform Name | Text | Display name shown in emails and UI |
| Support Email | Email | Default support contact email |
| Support URL | URL | Link to support documentation |
| Terms of Service URL | URL | Link to terms of service |
| Privacy Policy URL | URL | Link to privacy policy |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Regional Defaults
| Setting | Type | Description |
|---|
| Default Timezone | Select | Default timezone for new organizations |
| Default Currency | Select | Default currency (AUD, USD, GBP, EUR, etc.) |
| Default Date Format | Select | DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD |
| Default Language | Select | Default UI language |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Integration Settings
Stripe Configuration
| Setting | Type | Required | Description |
|---|
| Stripe Mode | Toggle | Yes | Live or Test mode |
| Publishable Key | Text | Yes | Public API key |
| Secret Key | Secret | Yes | Private API key (encrypted) |
| Webhook Secret | Secret | Yes | Webhook signing secret |
| Webhook URL | Read-only | - | URL to configure in Stripe dashboard |
Each organization can override Stripe settings with their own connected account for direct payments.
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Xero Configuration
| Setting | Type | Required | Description |
|---|
| Client ID | Text | Yes | OAuth2 client ID |
| Client Secret | Secret | Yes | OAuth2 client secret |
| Redirect URI | Read-only | - | OAuth callback URL |
| Default Tax Rate | Text | No | Default tax rate code |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Salesforce Configuration
| Setting | Type | Required | Description |
|---|
| Environment | Select | Yes | Production or Sandbox |
| Consumer Key | Text | Yes | Connected app consumer key |
| Consumer Secret | Secret | Yes | Connected app consumer secret |
| Login URL | Text | Yes | login.salesforce.com or test.salesforce.com |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
HubSpot Configuration
| Setting | Type | Required | Description |
|---|
| Portal ID | Text | Yes | HubSpot portal/account ID |
| API Key | Secret | Yes | Private app API key |
| Sync Contacts | Toggle | No | Auto-sync members to HubSpot contacts |
| Sync Companies | Toggle | No | Auto-sync organizations to HubSpot companies |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Email Provider (SMTP)
| Setting | Type | Required | Description |
|---|
| Provider | Select | Yes | SendGrid, Mailgun, Amazon SES, Custom SMTP |
| SMTP Host | Text | Yes | Mail server hostname |
| SMTP Port | Number | Yes | Mail server port (587, 465, 25) |
| SMTP Username | Text | Yes | Authentication username |
| SMTP Password | Secret | Yes | Authentication password |
| From Address | Email | Yes | Default sender email |
| From Name | Text | Yes | Default sender name |
| Reply-To Address | Email | No | Default reply-to email |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Feature Flags
Control which features are available across the platform.
Global Feature Flags
| Flag | Default | Description |
|---|
enable_lms | On | Learning Management System |
enable_cpd | On | CPD Point Tracking |
enable_directory | On | Business Directory |
enable_job_board | On | Job Board / Careers |
enable_sponsorships | On | Sponsorship Management |
enable_community | Off | Community Features (Beta) |
enable_ai_features | Off | AI-powered features (Beta) |
enable_sso | On | Single Sign-On support |
enable_mfa | On | Multi-Factor Authentication |
enable_api_access | On | REST API access for organizations |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Per-Tenant Overrides
Administrators can override global flags for specific organizations:
GET /api/admin/tenants/{id}/features # Get tenant feature flags
PUT /api/admin/tenants/{id}/features # Update tenant feature flags
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Security Settings
Authentication
| Setting | Type | Default | Description |
|---|
| Session Timeout | Number | 24 | Hours until session expires |
| Max Login Attempts | Number | 5 | Failed attempts before lockout |
| Lockout Duration | Number | 30 | Minutes account is locked |
| Password Min Length | Number | 8 | Minimum password characters |
| Require Uppercase | Toggle | On | Require uppercase letter |
| Require Number | Toggle | On | Require numeric character |
| Require Special Char | Toggle | Off | Require special character |
| Password Expiry Days | Number | 0 | Days until password expires (0 = never) |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Multi-Factor Authentication
| Setting | Type | Default | Description |
|---|
| MFA Available | Toggle | On | Allow users to enable MFA |
| MFA Required (Admins) | Toggle | On | Require MFA for platform admins |
| MFA Required (Client Admins) | Toggle | Off | Require MFA for client admins |
| MFA Methods | Multi-select | TOTP, Email | Available MFA methods |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
API Security
| Setting | Type | Default | Description |
|---|
| API Rate Limit | Number | 1000 | Requests per hour per key |
| API Key Expiry | Number | 365 | Days until API key expires |
| Require HTTPS | Toggle | On | Reject non-HTTPS API requests |
| IP Whitelist | Textarea | - | Allowed IP addresses (one per line) |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
System Defaults
Default values applied to new organizations.
Membership Defaults
| Setting | Type | Default | Description |
|---|
| Default Member Role | Select | ROLE_MEMBER | Role for new members |
| Require Email Verification | Toggle | On | Verify email before activation |
| Auto-Approve Members | Toggle | Off | Auto-approve new registrations |
| Welcome Email Template | Select | default | Default welcome email |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Notification Defaults
| Setting | Type | Default | Description |
|---|
| Email Notifications | Toggle | On | Enable email notifications |
| Digest Frequency | Select | Daily | Email digest frequency |
| Admin Alerts | Toggle | On | Send alerts to admins |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Storage Defaults
| Setting | Type | Default | Description |
|---|
| Max File Size | Number | 50 | Maximum upload size in MB |
| Allowed File Types | Multi-select | PDF, DOC, etc. | Permitted file extensions |
| Storage Quota | Number | 10 | GB per organization |
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling
Audit Log
All settings changes are logged for compliance and troubleshooting.
| Field | Description |
|---|
| Timestamp | When the change occurred |
| Admin | Who made the change |
| Setting | Which setting was changed |
| Old Value | Previous value |
| New Value | New value |
| IP Address | Admin's IP address |
GET /api/admin/settings/audit-log # View settings change history
API Endpoints
GET /api/admin/settings # Get all settings
GET /api/admin/settings/{category} # Get settings by category
PUT /api/admin/settings/{category} # Update settings category
POST /api/admin/settings/test-email # Send test email
POST /api/admin/settings/test-integration # Test integration connection
GET /api/admin/settings/audit-log # View audit log
Access Control
Platform Settings can only be accessed by users with the ROLE_PLATFORM_ADMIN role. All changes are logged and auditable.
Features
Acceptance Criteria
Frontend
Backend / API
Permissions
Business Rules
Error Handling