Backup/restore account data

Account data (cubes, reports / published reports, workspaces) may be downloaded as an XML file in this way:

  1. Open Manage Account view (top-right menu)
  2. Click on Backup Account Data button
  3. XML file is a human-readable and it can be stored under the version control like git; in this way you can easily track changes with a diffs between commits and review changes.

This XML file can be restored on self-hosted SeekTable instance with an active "System/users admin" subscription:

  1. Login as a user with an installation "admin" rights
  2. Go to Admin (top-menu) → User accounts
  3. Choose an user account (where you want to restore the backup) and open account's form with a click on Edit button
  4. Click on Restore Account Data:
    Account: restore from XML backup
  5. Choose a file to upload and a restore mode:
    • Keep record IDs, do not restore if IDs already exist: use this option to restore only removed cubes/reports.
    • Keep record IDs, overwrite existing records with same IDs: use this option to transfer/update account data between SeekTable instances.
    • Generate new record IDs: use this option to 'clone' cubes with reports.

With a backup/restore functionality it's easy to organize a typical "dev → staging → prod" development flow:

Reports deployment process can be fully automated with API calls described below.

Account data backup API

Coming soon (this API will be present in the next self-hosted SeekTable release).

Account data restore API

For automated restore use this API endpoint:

POST {SeekTable_BaseUrl}/api/account/{account_id}/restore?mode={mode}
Header: Authorization (required) API key of the user with "admin" role + a login email of this user should be specified in SeekTable_ST:Api:AccountRestoreAllowedForEmail app setting. It is strongly recommended to create a dedicated "admin" user (without cubes/reports) and use its API key ONLY for backup/restore API calls.
account_id (required) ID of the account where cubes/reports are restored.
mode (optional) restore mode:
corresponds to "Keep record IDs, do not restore if IDs already exist" mode in UI
corresponds to "Keep record IDs, overwrite existing records with same IDs"
corresponds to "Generate new record IDs" mode in UI
Response HTTP/200 (OK) if restore operation executed successfully.
curl -k -H "Content-Type: text/xml" -H "Authorization: SEEKTABLE_ADMIN_ACCOUNT_API_KEY" --data-binary "@seektable_backup_YYYYMMDD.xml" SEEKTABLE_BASE_URL/api/account/ACCOUNT_ID/restore?mode=allowUpdate

Full backup of SeekTable instance

To backup self-hosted SeekTable installation it is enough to make a copy of files in the docker volumes db-volume and csv-files-volume + docker-compose configuration files.