NDSS CRM Manual / Chapter 17: Administration & Settings
V3.8 · 2024/2025
Chapter 17

Administration & Settings

System configuration, user management, audit logging, integrations, email templates, and backup procedures for the NDSS CRM NDIS care management platform.

17.1 - Admin Panel Overview

The NDSS CRM Administration Panel is the centralised hub through which Super Administrators and Organisation Administrators configure every aspect of the platform. Accessible via the left-hand sidebar under Administration → Settings, the panel consolidates user management, role configuration, audit logging, system settings, data operations, integrations, email templates, and backup procedures into a single, well-organised interface.

Who Can Access the Admin Panel?

Access to the Administration Panel is governed by the platform's Role-Based Access Control (RBAC) system. The following roles have varying levels of administrative access:

Role Access Level Permissions Summary
Super Admin Full Access All settings, user management, role management, audit logs, backups, integrations, data management
Org Admin Extended Access User management (within own organisation), system settings, email templates, audit logs (own org), integrations
Manager Limited Access View audit logs, view system settings (read-only), manage team members in assigned region
Staff / Support Worker No Access Administration panel is not visible in sidebar for these roles

Admin Panel Navigation Structure

When a user with administrative privileges navigates to the Admin Panel, they see a tabbed interface with the following sections:

  • Users - Manage all user accounts across the platform
  • Roles & Permissions - Configure roles, assign granular permissions
  • Audit Log - Immutable record of every action taken in the system
  • System Settings - Organisation profile, branding, timezone, locale
  • Data Management - Import, export, bulk operations, data cleanup
  • Integrations - Third-party services, webhooks, API keys
  • Email Templates - Customise notification emails
  • Backup & Recovery - Automated and manual backup procedures
Admin Panel - Wireframe
Users Roles Audit Log Settings Data Integrations Email Backup
[ Search Bar ]
[ Filter: Role ]
+ Add New User
NameEmailRoleStatusLast LoginActions
Jane Smithjane@newdawn.comAdminActive04 Apr 2024, 09:14Edit | Deactivate
Tom Browntom@newdawn.comManagerActive03 Apr 2024, 17:42Edit | Deactivate
Lisa Chenlisa@newdawn.comStaffInactive28 Mar 2024, 11:05Edit | Activate
Showing 1-3 of 47 users [ « Prev ] [ 1 ] [ 2 ] [ 3 ] ... [ Next » ]

Technical Implementation

The Admin Panel is built using the following technologies:

  • Frontend: Next.js (App Router) with React Server Components and TypeScript for type safety. TailwindCSS handles all styling. Radix UI primitives provide accessible dialog, dropdown, and tab components.
  • Backend API: Next.js API routes handle CRUD operations. Python microservices process bulk data operations and generate analytics reports. PHP endpoints support legacy data synchronisation and third-party integrations.
  • Database: PostgreSQL via Supabase / Oracle with Row-Level Security (RLS) policies ensuring administrators only see data within their organisational scope.
  • Real-time: Supabase / Oracle Realtime subscriptions push audit log entries to connected admin sessions in real time.
17.2 - User Management

The User Management module provides comprehensive capabilities for creating, editing, deactivating, and monitoring all user accounts in the NDSS CRM platform. Every person who accesses the system - whether they are a Super Administrator, Organisation Administrator, Manager, Support Worker, Clinician, Finance Officer, or Client - has a user record managed through this interface.

17.2.1 Users List View

The default view displays all users in a paginated, searchable, and filterable table. Administrators can quickly locate any user by typing into the search bar (which filters by name, email, or NDIS number) or by selecting a role filter from the dropdown.

Users List - Wireframe
Search users by name, email, NDIS number...
+ Add New User
NameEmailRoleStatusLast LoginActions
JS Jane Smith jane.smith@newdawn.com.au Super Admin Active 04 Apr 2024, 09:14 AM Edit · Deactivate · View Log
TB Tom Brown tom.brown@newdawn.com.au Manager Active 03 Apr 2024, 17:42 PM Edit · Deactivate · View Log
LC Lisa Chen lisa.chen@newdawn.com.au Support Worker Inactive 28 Mar 2024, 11:05 AM Edit · Activate · View Log
RP Rachel Park rachel.park@newdawn.com.au Finance Active 04 Apr 2024, 08:30 AM Edit · Deactivate · View Log
Showing 1–4 of 47 users
« 1 2 3 »

17.2.2 Add New User

Clicking the + Add New User button opens a modal dialog with a multi-step form. The form is implemented using React Hook Form with Zod schema validation to ensure data integrity before submission.

Step 1: Personal Information

FieldTypeRequiredValidation
First NameTextYes2–50 characters, letters and hyphens only
Last NameTextYes2–50 characters, letters and hyphens only
Email AddressEmailYesValid email format, must be unique in the system
Phone NumberTelNoAustralian phone format: 04XX XXX XXX or +614XXXXXXXX
Date of BirthDateNoMust be a past date; user must be 16+ years old
AddressTextNoFree-form Australian address

Step 2: Role & Access

FieldTypeRequiredDescription
RoleSelectYesChoose from available roles (Super Admin, Org Admin, Manager, Support Worker, Clinician, Finance Officer, Client)
OrganisationSelectYesAssign to an organisation (auto-filled for Org Admins)
RegionSelectNoOptional geographic region assignment
TeamMulti-selectNoAssign to one or more teams
Direct ManagerSelectNoAssign a direct reporting manager
Send Welcome EmailCheckbox -If checked, system sends an automated welcome email with password setup link
Add New User - Modal Wireframe ×
1. Personal Info 2. Role & Access 3. Review
First Name *
Enter first name
Last Name *
Enter last name
Email Address *
user@organisation.com.au
Phone Number
04XX XXX XXX
Date of Birth
DD/MM/YYYY
Cancel
Next Step →

17.2.3 Edit User

Clicking Edit on any user row opens the same multi-step form pre-populated with the user's current data. All fields are editable except the email address (which serves as the unique identifier). To change an email address, the administrator must deactivate the existing account and create a new one.

Key edit actions available:

  • Update Personal Information: Change name, phone, address, date of birth.
  • Change Role: Promote or demote a user. Role changes take effect immediately and the user is notified via email.
  • Reassign Organisation/Team: Move a user between organisations or teams. Historical records remain associated with the original organisation.
  • Reset Password: Send a password reset link to the user's email. The administrator cannot set passwords directly for security reasons.
  • Force Logout: Invalidate all active sessions for the user, requiring re-authentication on next access.

17.2.4 Deactivate / Activate User

Users are never permanently deleted from the NDSS CRM platform. Instead, they are deactivated, which:

  • Prevents the user from logging in
  • Removes the user from all active shift rosters (future shifts only; completed shifts are preserved)
  • Hides the user from assignment dropdowns (client allocation, shift assignment, etc.)
  • Retains all historical data (notes, incidents, completed shifts, audit entries) for compliance
  • Sends an automated notification email to the user and their direct manager

Reactivation reverses all of the above. The user regains their previous role and access level. The administrator may optionally send a reactivation welcome email.

Important: NDIS Compliance

Under NDIS Quality and Safeguards Commission requirements, all user records must be retained for a minimum of 7 years after the last service delivery. NDSS CRM enforces this by preventing permanent deletion and maintaining immutable audit trails for all user account changes.

17.3 - Role Management

The Role Management section allows administrators to define custom roles, assign granular permissions, and establish a role hierarchy that controls data visibility and action authorisation throughout the platform. NDSS CRM ships with a set of pre-defined system roles, but organisations can create additional custom roles to match their operational structure.

17.3.1 Pre-defined System Roles

Role NameLevelScopeDescription
Super Admin1 (Highest)GlobalFull platform access. Can manage all organisations, users, settings, and system configuration. Cannot be deleted.
Org Admin2OrganisationFull access within assigned organisation. Can manage users, settings, and all operational modules.
Manager3Region/TeamManages staff, clients, and operations within assigned region or team. Can approve timesheets and shifts.
Team Leader4TeamLeads a specific team. Can view team rosters, manage shift swaps, and submit reports.
Support Worker5Assigned ClientsProvides direct support to allocated clients. Can view assigned client details, log notes, and complete shifts.
Clinician5Assigned ClientsClinical role with access to health records, behaviour support plans, and clinical notes.
Finance Officer4OrganisationManages invoicing, payroll, NDIS claims, and financial reports. No access to clinical data.
Client6 (Lowest)Own DataClient portal access only. Can view their own plan, bookings, invoices, and submit requests.

17.3.2 Permission Categories

Permissions in NDSS CRM are organised into categories corresponding to platform modules. Each permission follows the pattern module.action (e.g., clients.create, shifts.approve).

CategoryPermissions
Usersusers.view, users.create, users.edit, users.deactivate, users.reset_password, users.force_logout
Rolesroles.view, roles.create, roles.edit, roles.delete, roles.assign
Clientsclients.view, clients.create, clients.edit, clients.delete, clients.view_plan, clients.edit_plan, clients.view_notes, clients.create_notes
Staffstaff.view, staff.create, staff.edit, staff.delete, staff.view_qualifications, staff.manage_availability
Shiftsshifts.view, shifts.create, shifts.edit, shifts.delete, shifts.approve, shifts.allocate, shifts.swap
Financefinance.view, finance.create_invoice, finance.approve_invoice, finance.submit_claim, finance.view_payroll, finance.process_payroll
Incidentsincidents.view, incidents.create, incidents.edit, incidents.close, incidents.escalate, incidents.view_all
Clinicalclinical.view, clinical.create, clinical.edit, clinical.view_bsp, clinical.edit_bsp, clinical.medication_management
Reportsreports.view, reports.create, reports.export, reports.schedule
Adminadmin.view_settings, admin.edit_settings, admin.view_audit_log, admin.manage_integrations, admin.manage_backups, admin.manage_email_templates

17.3.3 Creating a Custom Role

To create a custom role, navigate to Admin → Roles & Permissions → + New Role. The creation form requires:

  1. Role Name: A unique, descriptive name (e.g., "Regional Coordinator", "SIL House Manager")
  2. Description: Brief explanation of the role's purpose
  3. Role Level: Numeric level (1–10) determining hierarchy position. Lower numbers have higher authority.
  4. Base Role (optional): Clone permissions from an existing role as a starting point
  5. Permissions: Toggle individual permissions on/off using a grouped checkbox interface

17.3.4 Role Hierarchy Rules

  • A user can only manage (create, edit, deactivate) users with a role level lower than their own.
  • A user can only assign roles with a level lower than or equal to their own role level.
  • Data visibility cascades downward: a Manager can see all data created by Support Workers in their team.
  • Role changes are logged in the audit trail with the old role, new role, and the administrator who made the change.
Technical Note

Role-based access control is enforced at three levels: (1) the Next.js middleware checks route-level access, (2) the API layer validates action-level permissions using TypeScript decorators, and (3) Supabase / Oracle Row-Level Security (RLS) policies enforce data-level isolation at the PostgreSQL database layer. Python and PHP service endpoints also validate permissions using shared JWT token verification libraries.

17.4 - Audit Log

The Audit Log provides a comprehensive, immutable record of every action performed within the NDSS CRM platform. Every user interaction - from logging in, to editing a client record, to approving an invoice - is captured with full context including the user, timestamp, action type, affected resource, details of the change, and the IP address from which the action originated.

17.4.1 Audit Log Interface

The audit log is presented as a searchable, filterable, and exportable table. Administrators can narrow results using the following filters:

  • Date Range: Select start and end dates (defaults to last 7 days)
  • User: Filter by specific user or all users
  • Action Type: LOGIN, LOGOUT, CREATE, READ, UPDATE, DELETE, APPROVE, REJECT, EXPORT, IMPORT
  • Resource Type: User, Client, Staff, Shift, Invoice, Incident, Setting, Role, etc.
  • Severity: INFO, WARNING, CRITICAL
Audit Log - Wireframe
01 Apr 2024 → 04 Apr 2024
Export CSV
TimestampUserActionResourceDetailsIP Address
04 Apr 2024 09:14:32 Jane Smith LOGIN Session Successful login via email/password 203.45.67.89
04 Apr 2024 09:16:05 Jane Smith UPDATE Client Updated client #C-1042 (Mark Wilson) phone number 203.45.67.89
04 Apr 2024 09:22:18 Tom Brown CREATE Shift Created shift #SH-8891 for 05 Apr 2024, allocated to Sarah Lee 192.168.1.45
04 Apr 2024 09:25:41 Rachel Park DELETE Invoice Voided draft invoice #INV-2024-0412 ($1,245.00) 10.0.0.22
Showing 1–4 of 12,847 entries [ « ] [ 1 ] [ 2 ] [ 3 ] ... [ 3,212 ] [ » ]

17.4.2 Audit Log Data Schema

Each audit log entry is stored in the audit_logs PostgreSQL table with the following schema:

CREATE TABLE audit_logs (
  id            UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  timestamp     TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  user_id       UUID REFERENCES users(id),
  user_email    VARCHAR(255),
  action        VARCHAR(50) NOT NULL,   -- LOGIN, CREATE, UPDATE, DELETE, etc.
  resource_type VARCHAR(100) NOT NULL,  -- Client, Staff, Shift, Invoice, etc.
  resource_id   UUID,
  details       JSONB,                  -- Structured change data
  ip_address    INET,
  user_agent    TEXT,
  severity      VARCHAR(20) DEFAULT 'INFO',
  org_id        UUID REFERENCES organisations(id),
  created_at    TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- Index for fast filtering
CREATE INDEX idx_audit_logs_timestamp ON audit_logs(timestamp DESC);
CREATE INDEX idx_audit_logs_user_id ON audit_logs(user_id);
CREATE INDEX idx_audit_logs_action ON audit_logs(action);
CREATE INDEX idx_audit_logs_resource ON audit_logs(resource_type, resource_id);

17.4.3 Audit Log Retention

Audit logs are retained for a minimum of 7 years in compliance with NDIS Quality and Safeguards Commission requirements and the Australian Privacy Act 1988. Logs older than 7 years are archived to cold storage (compressed and encrypted) rather than deleted. The retention policy is configurable per organisation in System Settings.

Export & Reporting

Audit logs can be exported in CSV, JSON, or PDF format. Scheduled exports can be configured to automatically send audit reports to designated compliance officers on a daily, weekly, or monthly basis. Python batch processing services handle large export jobs asynchronously.

17.5 - System Settings

The System Settings section allows administrators to configure organisation-wide preferences that affect the behaviour, appearance, and defaults across the entire NDSS CRM platform.

17.5.1 Organisation Profile

SettingDescriptionDefault
Organisation NameLegal name of the NDIS provider organisation -
ABNAustralian Business Number -
NDIS Registration NumberNDIS provider registration number -
Primary Contact EmailMain contact email for the organisation -
Primary Contact PhoneMain contact phone number -
Registered AddressOfficial business address -
LogoOrganisation logo (PNG/SVG, max 2MB)NDSS CRM default
FaviconBrowser tab icon (ICO/PNG, 32x32px)NDSS CRM default

17.5.2 Branding Settings

SettingDescriptionDefault
Primary Brand ColourHex colour code used for buttons, links, and accents#E8672A
Secondary Brand ColourComplementary colour for backgrounds and highlights#1a1f2e
Sidebar ThemeLight or Dark sidebarDark (#1a1f2e)
Login Page BackgroundCustom background image for the login screenDefault gradient
Email Header LogoLogo used in outgoing email notificationsOrganisation logo
Invoice Footer TextCustom text displayed at the bottom of all generated invoicesOrganisation name and ABN

17.5.3 Notification Preferences

Administrators can configure which events trigger notifications and through which channels:

EventEmailIn-AppSMSPush
New shift assignedOnOnOffOn
Shift cancelledOnOnOnOn
Incident reportedOnOnOnOn
Invoice approvedOnOnOffOff
Timesheet submittedOffOnOffOff
New client intakeOnOnOffOn
Compliance alertOnOnOnOn
Password reset requestOnOffOffOff
User deactivatedOnOnOffOff
Backup completedOnOnOffOff

17.5.4 Timezone & Locale Settings

SettingDescriptionDefault
Default TimezoneOrganisation-wide timezone for display purposesAustralia/Sydney (AEST/AEDT)
Date FormatHow dates are displayed throughout the platformDD/MM/YYYY
Time Format12-hour or 24-hour clock12-hour (AM/PM)
CurrencyCurrency for financial displays and calculationsAUD ($)
LanguagePlatform display languageEnglish (Australian)
First Day of WeekWhich day starts the week in calendar viewsMonday
Financial Year StartStart month of the financial yearJuly (Australian FY)
System Settings - Wireframe
Organisation Branding Notifications Timezone & Locale Advanced
Organisation Name *
Newdawn Support Services
ABN *
12 345 678 901
NDIS Registration Number *
4-XXXX-XXXX
Primary Contact Email *
admin@newdawn.com.au
Logo Upload
Drag & drop logo file here, or click to browse (PNG/SVG, max 2MB)
Reset to Defaults
Save Changes
17.6 - Data Management

The Data Management module provides tools for importing, exporting, and maintaining data within the NDSS CRM platform. These operations are essential during initial setup (migrating from legacy systems), ongoing operations (bulk updates), and regulatory compliance (data exports for audits).

17.6.1 Data Import

NDSS CRM supports importing data from CSV, XLSX, and JSON files. The import wizard guides administrators through the following steps:

  1. Select Data Type: Choose what type of data to import (Clients, Staff, Shifts, Invoices, etc.)
  2. Upload File: Drag and drop or browse for the source file
  3. Map Columns: Map source file columns to NDSS CRM database fields
  4. Validate Data: The system runs Zod schema validation and reports errors
  5. Review & Confirm: Preview the data to be imported with error highlighting
  6. Execute Import: Process the import with progress tracking
Data TypeSupported FormatsMax RecordsProcessing
ClientsCSV, XLSX, JSON10,000Python batch processor
StaffCSV, XLSX, JSON5,000Python batch processor
Shifts (Historical)CSV, XLSX50,000Python batch processor
InvoicesCSV, XLSX20,000Python batch processor
NDIS Plan DataCSV, JSON10,000Python batch processor
Legacy System DataCSV, XML, JSON100,000PHP migration service

17.6.2 Data Export

Data can be exported from any module in CSV, XLSX, JSON, or PDF format. Export operations respect role-based access control - a user can only export data they have permission to view.

  • Quick Export: Export the current filtered view from any list page
  • Full Export: Export all records of a specific type (admin only)
  • Scheduled Export: Configure automated exports to run daily, weekly, or monthly
  • Compliance Export: Generate NDIS-formatted data extracts for regulatory submissions

17.6.3 Bulk Operations

Bulk operations allow administrators to perform actions on multiple records simultaneously:

  • Bulk Status Change: Activate or deactivate multiple users at once
  • Bulk Role Assignment: Change the role of multiple users in one operation
  • Bulk Shift Creation: Create recurring shifts for multiple staff members
  • Bulk Invoice Generation: Generate invoices for all completed shifts in a date range
  • Bulk Client Allocation: Assign multiple clients to a staff member or team

17.6.4 Data Cleanup

The data cleanup utility helps maintain data quality by identifying and resolving:

  • Duplicate Records: Scans for potential duplicates based on name, email, NDIS number, or phone number. Presents matches for manual review and merge.
  • Orphaned Records: Identifies records without required parent associations (e.g., shifts without a client, notes without an author).
  • Stale Data: Flags records that have not been updated beyond a configurable threshold (e.g., client plans older than 12 months).
  • Incomplete Records: Lists records missing required fields for compliance (e.g., clients without NDIS numbers, staff without qualification expiry dates).
17.7 - Integration Settings

NDSS CRM supports integration with a range of third-party services to extend platform functionality. The Integration Settings panel provides a centralised interface for managing all external connections, API keys, and webhook configurations.

17.7.1 Third-Party Integrations

IntegrationPurposeStatusConfiguration
NDIS myplace PortalClaim submission and plan retrievalConnectedAPI credentials, provider number, certificate
XeroAccounting and financial reconciliationConnectedOAuth2 connection, account mapping
MYOBAlternative accounting integrationNot configuredAPI key, company file
TwilioSMS notificationsConnectedAccount SID, Auth Token, sender number
SendGridTransactional email deliveryConnectedAPI key, sender domain, templates
Google CalendarShift calendar syncPendingOAuth2 connection, calendar selection
Microsoft 365Email and calendar integrationNot configuredAzure AD app registration, permissions
DeputyExternal rostering data syncNot configuredAPI token, location mapping

17.7.2 Webhook Configuration

Webhooks allow external systems to receive real-time notifications when events occur in NDSS CRM. Administrators can configure multiple webhook endpoints, each subscribed to specific event types.

SettingDescription
Endpoint URLThe HTTPS URL that will receive POST requests
Secret KeyHMAC-SHA256 signing key for payload verification
EventsSelect which events trigger the webhook (e.g., client.created, shift.completed, invoice.approved)
Retry PolicyNumber of retries on failure (default: 3) with exponential backoff
TimeoutMaximum wait time for endpoint response (default: 30 seconds)
ActiveToggle webhook on/off without deleting configuration

17.7.3 API Key Management

API keys allow external systems to authenticate with the NDSS CRM API. Each key is scoped to specific permissions and can be revoked at any time.

  • Generate New Key: Creates a new API key with a specified name, expiry date, and permission scope
  • View Keys: Lists all active API keys with creation date, last used date, and scope
  • Revoke Key: Immediately invalidates an API key. All requests using the revoked key will return 401 Unauthorized.
  • Rotate Key: Generates a new key and provides a 24-hour grace period during which both old and new keys are valid
Integration Dashboard - Wireframe
NDIS myplace
Claim submission & plan retrieval
Connected Configure
Xero
Accounting & reconciliation
Connected Configure
Twilio
SMS notifications
Connected Configure
API Keys
Key NameCreatedLast UsedScopeActions
Production API Key01 Jan 202404 Apr 2024FullRevoke
Reporting Service15 Feb 202403 Apr 2024Read-onlyRevoke
17.8 - Email Templates

NDSS CRM sends automated email notifications for various platform events. The Email Templates module allows administrators to customise the content, layout, and branding of these notifications. All templates use a variable substitution system, enabling dynamic content insertion.

17.8.1 Available Templates

Template NameTrigger EventDefault Subject Line
Welcome EmailNew user account createdWelcome to NDSS CRM - Set Up Your Account
Password ResetPassword reset requestedReset Your NDSS CRM Password
Shift AssignmentStaff assigned to a new shiftNew Shift Assigned: {{shift_date}}
Shift CancellationShift cancelled by managerShift Cancelled: {{shift_date}}
Shift Reminder24 hours before shift startReminder: Shift Tomorrow at {{shift_time}}
Incident NotificationNew incident reportedIncident Report Filed: {{incident_type}}
Invoice GeneratedNew invoice createdInvoice #{{invoice_number}} - ${{invoice_amount}}
Timesheet SubmittedStaff submits timesheetTimesheet Submitted for {{period}}
Account DeactivatedUser account deactivatedYour NDSS CRM Account Has Been Deactivated
Compliance AlertCompliance item expiringAction Required: {{compliance_item}} Expiring
Client Portal InviteClient invited to portalYou Have Been Invited to the NDSS CRM Client Portal
Backup NotificationBackup completed or failedSystem Backup {{backup_status}}: {{backup_date}}

17.8.2 Template Variables

Template variables are enclosed in double curly braces {{variable_name}} and are automatically replaced with actual values when the email is sent:

VariableDescriptionAvailable In
{{user_first_name}}Recipient's first nameAll templates
{{user_last_name}}Recipient's last nameAll templates
{{user_email}}Recipient's email addressAll templates
{{org_name}}Organisation nameAll templates
{{reset_link}}Password reset URL (valid 24 hours)Password Reset
{{setup_link}}Account setup URL (valid 7 days)Welcome Email
{{shift_date}}Shift date (DD/MM/YYYY)Shift templates
{{shift_time}}Shift start timeShift templates
{{shift_location}}Shift location/addressShift templates
{{client_name}}Client's full nameShift, Incident, Invoice
{{invoice_number}}Invoice reference numberInvoice templates
{{invoice_amount}}Invoice total amount (AUD)Invoice templates
{{incident_type}}Type of incident reportedIncident Notification
{{portal_link}}Direct link to platform loginAll templates

17.8.3 Template Editor

Each template can be edited using a rich-text editor that supports:

  • Bold, italic, underline text formatting
  • Heading levels (H1–H4)
  • Bulleted and numbered lists
  • Links and buttons
  • Variable insertion via autocomplete dropdown
  • Preview mode with sample data
  • HTML source editing for advanced customisation
  • Test send to a specified email address
Email Delivery

All emails are sent via the configured email provider (SendGrid by default). The system includes delivery tracking, bounce handling, and unsubscribe management. Email send logs are available in the Audit Log for compliance purposes. The PHP email service handles template rendering for legacy integrations, while the Next.js API routes handle modern React-based email templates using the @react-email/components library.

17.9 - Backup & Recovery

Data protection is a critical responsibility for NDIS service providers. NDSS CRM implements a comprehensive backup and recovery strategy that ensures business continuity and data integrity in the event of hardware failure, data corruption, accidental deletion, or security incidents.

17.9.1 Automated Backups

Backup TypeFrequencyRetentionStorageEncryption
Full Database BackupDaily at 02:00 AEST30 daysSupabase / Oracle automated + external S3AES-256 at rest
Incremental BackupEvery 6 hours7 daysSupabase / Oracle point-in-time recoveryAES-256 at rest
Transaction Log BackupContinuous (WAL)7 daysSupabase / Oracle WAL archivingAES-256 at rest
File Storage BackupDaily at 03:00 AEST30 daysSupabase / Oracle Storage + external S3AES-256 at rest
Configuration BackupOn every change90 daysVersion-controlled Git repositoryGPG-encrypted

17.9.2 Manual Backup

Administrators can trigger a manual backup at any time from the Backup & Recovery panel. Manual backups are recommended before:

  • Major data imports or migrations
  • System upgrades or configuration changes
  • Bulk data operations (mass updates, deletions)
  • Integration configuration changes

Manual backups are processed by a Python service that coordinates the database dump, file storage snapshot, and configuration export. The process takes approximately 5–15 minutes depending on database size and completes asynchronously with email notification.

17.9.3 Restore Procedures

Data restoration is a privileged operation available only to Super Administrators. The restore process follows these steps:

  1. Select Backup: Choose from a list of available backups (date, type, size)
  2. Select Scope: Full restore, specific tables, or point-in-time recovery
  3. Pre-restore Backup: System automatically creates a backup of the current state
  4. Confirmation: Multi-factor authentication required for restore operations
  5. Execute Restore: System enters maintenance mode during restore
  6. Verification: Automated integrity checks post-restore
  7. Notification: All administrators are notified of the restore operation
Backup & Recovery - Wireframe
OK
Last Backup Status
04 Apr 2024, 02:00 AM
147
Total Backups Stored
42.3 GB total storage
6h
Next Incremental
Scheduled: 08:00 AM
Trigger Manual Backup
Restore from Backup
Download Backup
Date & TimeTypeSizeDurationStatusActions
04 Apr 2024, 02:00 AMFull2.8 GB12 minSuccessRestore | Download
03 Apr 2024, 20:00 PMIncremental145 MB2 minSuccessRestore | Download
03 Apr 2024, 14:00 PMIncremental132 MB2 minSuccessRestore | Download

17.9.4 Recovery Time & Point Objectives

MetricTargetDescription
Recovery Time Objective (RTO)< 4 hoursMaximum acceptable time to restore service after a disaster
Recovery Point Objective (RPO)< 6 hoursMaximum acceptable data loss measured in time (last incremental backup)
Point-in-Time RecoveryUp to 7 daysAbility to restore to any specific point within the retention window
Disaster Recovery Testing

NDSS CRM recommends conducting a full disaster recovery test at least once per quarter. The test should include restoring a backup to a staging environment, verifying data integrity, and documenting the recovery time. Results should be recorded in the compliance module for audit purposes.

← Chapter 16: Reports & Analytics Chapter 18: SIL & Specialist Services →