Skip to main content

Backup and Restore a Knowledge Box

For small knowledge boxes, the import/export feature is sufficient. However, for larger knowledge boxes or to ensure a complete state capture, using backups is more reliable.


Create a Backup

You can create a backup to capture the current state of your knowledge box (KB). This includes both the KB configuration and all associated resources.

note

Backup creation is asynchronous. The returned object represents the backup request, and the following fields will be populated once the backup is completed

  • finished_at: The timestamp (datetime) indicating when the backup was completed.
  • size: The total size of the backup in bytes.
from nuclia import sdk
from nuclia_models.accounts.backups import BackupCreate

# Authenticate and select the account
sdk.NucliaAuth().login()
sdk.NucliaAccounts().default("<your-account-slug>")

# Create a backup
backup = sdk.NucliaBackup().create(
backup=BackupCreate(kb_id="<your-kb-id>"),
zone="<zone>"
)
print(backup)

List Created Backups

Retrieve a list of all backups in a specified zone within your account.

from nuclia import sdk

sdk.NucliaAuth().login()
sdk.NucliaAccounts().default("<your-account-slug>")

# List backups
backups = sdk.NucliaBackup().list(zone="<zone>")
print(backups)

Delete a Backup

Delete a specific backup by providing its ID.

from nuclia import sdk

sdk.NucliaAuth().login()
sdk.NucliaAccounts().default("<your-account-slug>")

# Delete a backup
sdk.NucliaBackup().delete(id="<backup-id-to-delete>", zone="<zone>")

Restore a Backup

Restore a backup into a new knowledge box (KB).

  • The original knowledge box will remain unchanged.
  • The backup will not be deleted after restoration.
  • You must provide a unique slug and title for the new knowledge box.
  • The new knowledge box is created immediately, but the restoration of resources occurs asynchronously. This process may take time depending on the backup size and other factors.
warning
  • Ensure the slug is unique across your knowledge boxes.
from nuclia import sdk
from nuclia_models.accounts.backups import BackupRestore

sdk.NucliaAuth().login()
sdk.NucliaAccounts().default("<your-account-slug>")

# Restore a backup to a new knowledge box
new_kb = sdk.NucliaBackup().restore(
restore=BackupRestore(slug="<new-kb-slug>", title="<new-kb-title>"),
backup_id="<backup-id-to-restore>",
zone="<zone>",
)
print(new_kb)