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

For automated backups use this API endpoint:

GET {SeekTable_BaseUrl}/api/account/{account_id}/backup
Header: Authorization (required) API key of the user with "admin" role + a login email of this user should be specified in SeekTable_ST__Api__AccountBackupAllowedForEmail 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 to backup.
Response HTTP/200 (OK) if restore operation executed successfully.
curl -k -H "Authorization: SEEKTABLE_ADMIN_ACCOUNT_API_KEY" SEEKTABLE_BASE_URL/api/account/ACCOUNT_ID/backup -o "seektable_backup.xml"

Account data restore API

For automated restore use this API endpoint:

POST {SeekTable_BaseUrl}/api/account/{account_id}/restore?mode={mode}&workspaces=1&dashboards=1&team=1
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:
(empty)
corresponds to "Keep record IDs, do not restore if IDs already exist" mode in UI
allowUpdate
corresponds to "Keep record IDs, overwrite existing records with same IDs"
newIds
corresponds to "Generate new record IDs" mode in UI
workspaces (optional) Determines whether to restore workspaces; if yes should be 1 or true (false by default).
dashboards (optional) Determines whether to restore dashboards; if yes should be 1 or true (false by default). This option makes sense only if installation has an active subscription for dashboards.
team (optional) Determines whether to restore "Team sharing" settings (team members/groups/access rules); if yes should be 1 or true (false by default). This option makes sense only if the user has a "Team sharing" capability.
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&workspaces=1&dashboards=1&team=1

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.