Smart Cache Graph - Backup API

Introduction

This API lets you manage backups of datasets through a simple set of HTTP endpoints. You can:

  • Create backups of one or all datasets
  • View existing backups
  • Restore backups
  • Delete backups
  • Validate backups using SHACL
  • View validation reports

This API is ideal for automated workflows, scheduled backups, or manual data protection and recovery tasks.

The API supports authentication via JWT tokens.

🔐 Authentication

You must be authenticated to use the API.

  • Bearer Token (JWT): Include a standard Authorization: Bearer <your-jwt> header.

🛠️ Key Operations

✅ 1. Create a Backup (single dataset)

Endpoint: POST /backups/create/{datasetName}

Purpose: Back up a specific dataset.

Parameters:

  • datasetName (required): Name of the dataset to back up.
  • description (optional): A short note like "Daily backup 12th June 2025".

Response: The numerical ID and details of the freshly generated backup.

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/create/my-dataset \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <jwt-token>"

✅ 2. Create a Backup (all datasets)

Endpoint: POST /backups/create/

Purpose: Back up all available datasets.

Response: The numerical ID and details of the freshly generated backup(s).

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/create/

📋 3. List Backups

Endpoint: GET /backups/list

Purpose: Returns a list of all available backup entries and their details.

Response: A JSON list of backup details, including but not limited to:

  • Numerical ID
  • Description (if available)
  • Date
  • Created by User

Example:

curl https://telicent.core.domain/api/sparql/backups/list

♻️ 4. Restore a Backup

Endpoint:

POST /backups/restore/{restoreId}

POST /backups/restore/{restoreId}/{datasetName}

Purpose: Restore data from a backup using its ID.

Parameters:

  • restoreId (required): The numerical ID of the backup to restore.
  • datasetName (optional): Specific dataset for a targeted partial restore.

Response: The details of the restoration.

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/restore/17

🗑️ 5. Delete a Backup

Endpoint: POST /backups/delete/{deleteId}

Purpose: Permanently remove a backup.

Parameters:

  • deleteId (required): The numerical ID of the backup to delete.

Response: Confirmation of the deleted backup.

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/delete/abc123

🔍 6. Validate a Backup Using SHACL

There are two ways to validate:

a) Entire Backup

Endpoint: POST /backups/validate/{backupId}

Purpose: Run a SHACL validation on a whole backup.

Parameters:

  • backupId (required)

Response: The results of the validation.

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/validate/abc123 \
     -H "Content-Type: application/json" \
     -d '{ "shapesGraph": "..." }'

b) Specific Dataset in a Backup

Endpoint: POST /backups/validate/{backupId}/{datasetName}

Purpose: Validate one dataset within a backup using SHACL.

Response: The results of the validation.

Example:

curl -X POST https://telicent.core.domain/api/sparql/backups/validate/abc123/my-dataset \
     -H "Content-Type: application/json" \
     -d '{ "shapesGraph": "..." }'

📄 7. View Validation Report

Endpoint: GET /backups/report/{backupId}/{datasetName}

Purpose: Fetch the SHACL validation results for a specific dataset within a backup. Assuming the validation has been requested (via the validation endpoint above)

Response: The results of the requested SHACL validation.

Example:

curl https://telicent.core.domain/api/sparql/backups/report/abc123/my-dataset

More Details

For a more in-depth description of the actions above please read the accompanying section of the getting started guide here.



[EARLY DRAFT RELEASE] Copyright 2020-2025 Telicent Limited. All rights reserved