Skip to the content
DIANOTrust Centre

Trust Centre › 4. Backups and restore

Backups and restore

Checked on 19 October 2026 · version 2026-10-19-u1

In short

A full backup of the database is made every day and kept for 14 days. Since 18 October 2026, DIANO can also take the database back to how it was at any minute in the last 7 days. This is called point-in-time recovery.

What is backed up, and how often

Where the copies are

What is locked, and what is not

How to get records back

In your request, say what is wrong, which records, and the date and time it went wrong. If you are not sure, e-mail info@diale.co.za and we will help.

Tested restores

Roadmap: planned, not true yet

Targets can move. When an item is done, it moves up into the page with its proof. The whole roadmap.

For your IT team / auditor

Each statement on this page, how it was checked and when. Every check was read-only. The full evidence (commands and their output) is available to auditors on request.

StatementHow it was checkedChecked
A full backup of the database is made every day and kept for 14 days.Google Cloud backup schedules (read-only check, 2026-10-20) (daily: retention 14 days).2026-10-19
Since 18 October 2026, DIANO can also take the database back to how it was at any minute in the last 7 days. This is called point-in-time recovery.Google Cloud database settings (read-only check, 2026-10-20) (POINT_IN_TIME_RECOVERY_ENABLED, versionRetentionPeriod 604800s, earliestVersionTime 2026-10-18T14:19:00Z).2026-10-19
A weekly backup is made every Sunday and kept for 8 weeks.Google Cloud backup schedules (read-only check, 2026-10-20) (weekly SUNDAY: retention 56 days).2026-10-19
Every night at 03:00 South African time, a full copy is also saved to separate storage in africa-south1 and kept for 90 days.Google Cloud scheduled jobs (read-only check, 2026-10-20) (dia-firestore-export 0 1 * * * UTC = 03:00 SAST); Google Cloud storage settings (read-only check, 2026-10-20) (firestore-exports: lifecycle Delete age 90).2026-10-19
That nightly copy is copied again to europe-west1 (Belgium) every day and kept there for 30 days.Google Cloud scheduled jobs (read-only check, 2026-10-20) (dia-firestore-export-dr, 86400s); Google Cloud storage settings (read-only check, 2026-10-20) (dr-europe-west1: retention 30 days, lifecycle Delete age 31).2026-10-19
Each company also gets its own backup every night, kept for 90 days.Google Cloud scheduled jobs (read-only check, 2026-10-20) (dia-company-backups 30 1 * * *; 20 Oct 01:30 UTC run: "companyBackup: done" 10 times, 0 failed, for the 10 companies of that night; 11 at the 02:25 UTC collection -- a test company of the running production gate set -- so the next run backs up 11). Reread 20 Oct 02:30 SAST (MAIN): claim holds.2026-10-19
When an uploaded file is replaced or deleted, the old version is kept, and a deleted file can be recovered for 7 days.Google Cloud storage settings (read-only check, 2026-10-20) (dia-accounting.firebasestorage.app: versioning True, soft delete 7 days).2026-10-19
The database is protected so that it cannot be deleted by mistake.Google Cloud database settings (read-only check, 2026-10-20) (DELETE_PROTECTION_ENABLED).2026-10-19
The daily and weekly backups, the nightly copies and each company's own backup are kept in africa-south1.Google Cloud backup schedules (read-only check, 2026-10-20) (backups in africa-south1); Google Cloud storage settings (read-only check, 2026-10-20) (firestore-exports, company-backups: AFRICA-SOUTH1). Google: "A backup resides in the same location as the source database."2026-10-19
One more copy of the nightly backup is kept in Google's europe-west1 region in Belgium, in case the whole South African region fails.Google Cloud scheduled jobs (read-only check, 2026-10-20) (transfer job dia-firestore-export-dr: firestore-exports → dr-europe-west1, daily); Google Cloud storage settings (read-only check, 2026-10-20) (dr-europe-west1: EUROPE-WEST1). europe-west1 = St. Ghislain, Belgium (Google regions page).2026-10-19
The audit trail archive is locked for 7 years. Until then nobody can change or delete it, not even DIANO.Google Cloud storage settings (read-only check, 2026-10-20) (dia-accounting-audit-logs: retention 2556 days LOCKED); Google Bucket Lock page ("permanently preventing the policy from being reduced or removed").2026-10-19
The other backups are not locked yet. Someone with full control of DIANO's Google Cloud project could delete them.Google Cloud storage settings (read-only check, 2026-10-20) (dr-europe-west1: 30 days not locked; firestore-exports, company-backups: retention none); Firestore backups have no lock option.2026-10-19
To get records back, a Company Admin asks in Settings, under Backups, and gives a reason. The platform owner checks and approves the request.DIANO's published pages (requestCompanyRestore with a reason; the platform owner approves); Google Cloud server functions (read-only check, 2026-10-20) (requestCompanyRestore, ownerApproveCompanyRestore on production).2026-10-19
A restore makes a new copy of your company. Your live company is not changed, so you can compare before anything is copied back.DIANO's live server code (restoreToNewCompany: "the source is never written"); DIANO's records 12/12 (8 Oct 2026, staging).2026-10-19
On 10 October 2026 a full copy of the live database was restored into a separate test database. All 22 kinds of records matched the original exactly, and the test database was then deleted.DIANO's release record of 2026-10-12 (B5: restore-test-202610100703, 478 documents, "22 collections compared, 0 differ", scratch database deleted).2026-10-19
That test restore of 478 records took under 3 minutes. A larger database takes longer.DIANO's release record of 2026-10-12 (B5 07:02–07:05 UTC: export finished 07:03:03, import and comparison done by 07:05).2026-10-19
On 8 October 2026 a company restore was tested on DIANO's test system. The new copy matched the original record for record, and the original was unchanged.DIANO's release record of 2026-10-08 (backup-restore.mjs 12/12).2026-10-19
A restore from point-in-time recovery or from the scheduled backups has not been tested yet.DIANO's backup and recovery plan (Layer 6 restore drill: "to do"); both were switched on 18 Oct 2026.2026-10-19