Scheduled Git Backup
Automatically export all iFlow ZIPs from your SAP CPI tenant to GitHub — hourly, daily, or weekly — with zero manual effort.
Availability: Scheduled Git Backup requires an Enterprise licence and Admin role.
Overview
The Git Backup feature connects to your configured GitHub repository and automatically downloads every iFlow from your CPI tenant as a ZIP file, then commits it to a dedicated backup folder in the repo. It runs in the background on your chosen schedule without interrupting active developer sessions.
Backups are stored separately from manual workspace push/pull operations so there is no risk of conflict:
| Operation | GitHub path |
|---|---|
| Developer workspace push | {folder}/{iflow_id}.zip (e.g. iflows/MyFlow.zip) |
| Scheduled backup | {backup_folder}/{package_id}/{iflow_id}.zip (e.g. backup/MyPackage/MyFlow.zip) |
Prerequisites
- Enterprise licence active
- Admin role in CPI Studio
- Git config saved in Settings → Git Backup (GitHub) with a valid GitHub PAT and repository
- CPI tenant credentials configured (the backup uses the default active tenant)
Configuration
Go to Settings → Scheduled CPI Backup (visible to admins only).
| Setting | Description | Default |
|---|---|---|
| Enable Scheduled Backup | Toggle to activate automatic scheduled runs | Off |
| Schedule | How often to run: Manual only, Every hour, Daily, or Weekly | Daily |
| Backup Time (UTC) | Time of day to run (for Daily and Weekly schedules) | 02:00 |
| Day of Week | Which day to run (Weekly schedule only) | Sunday |
| Backup Folder | Subfolder in the GitHub repo where backups are stored. Must differ from the workspace folder. | backup |
| Backup Branch | GitHub branch for backup commits. Leave blank to use the same branch as the Git config. | (same as Git config) |
Repository Structure
After the first backup, your repository will contain:
your-repo/
├── iflows/ ← manual workspace pushes
│ └── MyFlow.zip
└── backup/ ← scheduled backups
├── PackageA/
│ ├── FlowOne.zip
│ └── FlowTwo.zip
└── PackageB/
└── FlowThree.zip Each backup commit message includes the UTC timestamp so you have a full history in GitHub's commit log.
Running a Backup
Two ways to trigger a backup:
- Scheduled: Runs automatically on the configured schedule. The background scheduler starts when the first request comes in after an app restart.
- Manual: Click ▶ Run Now in the Scheduled CPI Backup card. The status panel updates every few seconds until the backup completes.
Backup Status
The status panel shows the result of the last run:
| Status | Meaning |
|---|---|
| ✅ Success | All iFlows backed up without errors |
| ⚠️ Partial | Some iFlows succeeded, some failed (errors listed below) |
| ❌ Error | Backup could not start (missing credentials, Git not configured, etc.) |
| ⏳ Running | Backup is currently in progress |
Expand the error list to see which specific iFlows failed and why. Common causes:
- iFlow is in draft state and has no active version to download
- GitHub rate limit reached (hourly schedule on very large tenants)
- Network timeout connecting to the CPI tenant
Security Notes
- The same GitHub PAT used for manual push/pull is reused — no extra credentials needed
- CPI credentials are read from your stored tenant configuration — no extra setup required
- Only Admin users can view or change backup settings; the API routes return 403 for other roles
- A file lock ensures only one backup runs at a time even if the app has multiple worker processes
Disabling Backups
Uncheck Enable Scheduled Backup and click Save. Any in-progress backup will complete naturally — there is no forceful cancellation.