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.