Backups and export
Two layers to back up:
- The platform repository - artefacts, user workspaces, system files.
- The data - rows in the data sources backing the application.
Exporting the repository
Use the platform's IRepositoryExporter to produce a ZIP of /registry/public/..., /users/.../workspace/..., and any other repository paths. Two ways:
- IDE: right-click a project / workspace in the Projects view -> Export -> Download ZIP.
- REST:
GET /services/ide/transport/zip?path=/<path>returns a ZIP stream.
The ZIP is restorable through the IDE's import flow or via the matching POST /services/ide/transport/import endpoint.
Backing up the data
The platform itself does not snapshot the underlying database. Use the database's native backup tools:
- Postgres:
pg_dump(logical) or filesystem-level snapshots. - MSSQL:
BACKUP DATABASE. - HANA: HANA Backint / native backup.
- H2: copy the file under
<repo>/dirigible/h2/while the JVM is stopped.
For multi-tenant deployments back up SystemDB and the per-tenant data sources independently.
Disaster-recovery flow
- Stop the runtime (or cordon ingress for zero-write).
- Snapshot the database.
- Export the repository ZIP.
- Store both with the same timestamp - the repository state and the database state must be consistent.
A coupled restore replays both at the same timestamp.
CI-driven export
A small scheduled job can produce ZIP snapshots:
ts
import { Repository } from "@aerokit/sdk/platform";
const bytes = Repository.exportPath("/registry/public");
// store bytes wherever - S3, blob storage, etc.