Listing available backups

In this case, we are looking to find out what backups have already been created and when.

Example Call

curl -s -X GET -H "Authorization: $TC_OIDC_TOKEN" https://telicent.core.domain/api/sparql/backups/list

Response

The response below shows that 2 backups are present in the local file-system.

Click to expand JSON response ```json { "date": "2025-06-26_13-33-32", "backups": { "1": { "backup-id": 1, "date": "2025-06-10_13-49-52", "datasets": [ { "dataset-id": "knowledge", "tdb": { "folder": "/fuseki/backups/1/knowledge/tdb/", "success": true, "files": { "files": [ "knowledge_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/1/knowledge/kafka/", "/knowledge": [ { "name": "knowledge", "source": "/fuseki/databases/Replay-RDF.state", "destination": "/fuseki/backups/1/knowledge/kafka//knowledge.json", "success": true } ], "files": { "files": [ "knowledge.json" ] } }, "labels": { "folder": "/fuseki/backups/1/knowledge/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "MANIFEST-000073", "CURRENT", "OPTIONS-000075", "000072.log" ] } }, "shared_checksum": { "files": [ "000077_sE2GWJWZWS8JYXZHENHN7_68785994.sst", "000076_sE2GWJWZWS8JYXZHENHN7_68808191.sst", "000080_sE2GWJWZWS8JYXZHENHN7_11082531.sst", "000078_sE2GWJWZWS8JYXZHENHN7_68473975.sst", "000079_sE2GWJWZWS8JYXZHENHN7_69444784.sst" ] } } } }, { "dataset-id": "catalog", "tdb": { "folder": "/fuseki/backups/1/catalog/tdb/", "success": true, "files": { "files": [ "catalog_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/1/catalog/kafka/", "/catalog": [ { "name": "catalog", "source": "/fuseki/databases/Replay-Catalog-RDF.state", "destination": "/fuseki/backups/1/catalog/kafka//catalog.json", "success": true } ], "files": { "files": [ "catalog.json" ] } }, "labels": { "folder": "/fuseki/backups/1/catalog/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "CURRENT", "MANIFEST-000009", "OPTIONS-000011", "000008.log" ] } }, "shared_checksum": {} } } }, { "dataset-id": "ontology", "tdb": { "folder": "/fuseki/backups/1/ontology/tdb/", "success": true, "files": { "files": [ "ontology_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/1/ontology/kafka/", "/ontology": [ { "name": "ontology", "source": "/fuseki/databases/Replay-Ontology-RDF.state", "destination": "/fuseki/backups/1/ontology/kafka//ontology.json", "success": true } ], "files": { "files": [ "ontology.json" ] } }, "labels": { "folder": "/fuseki/backups/1/ontology/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "OPTIONS-000012", "MANIFEST-000010", "000009.log", "CURRENT" ] } }, "shared_checksum": { "files": [ "000008_sE2GWJWZWS8JYXZHENHN6_2992049.sst" ] } } } } ] }, "2": { "backup-id": 2, "date": "2025-06-17_13-57-46", "datasets": [ { "dataset-id": "knowledge", "tdb": { "folder": "/fuseki/backups/2/knowledge/tdb/", "success": true, "files": { "files": [ "knowledge_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/2/knowledge/kafka/", "/knowledge": [ { "name": "knowledge", "source": "/fuseki/databases/Replay-RDF.state", "destination": "/fuseki/backups/2/knowledge/kafka//knowledge.json", "success": true } ], "files": { "files": [ "knowledge.json" ] } }, "labels": { "folder": "/fuseki/backups/2/knowledge/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "MANIFEST-000073", "CURRENT", "OPTIONS-000075", "000072.log" ] } }, "shared_checksum": { "files": [ "000077_sE2GWJWZWS8JYXZHENHN7_68785994.sst", "000076_sE2GWJWZWS8JYXZHENHN7_68808191.sst", "000080_sE2GWJWZWS8JYXZHENHN7_11082531.sst", "000078_sE2GWJWZWS8JYXZHENHN7_68473975.sst", "000079_sE2GWJWZWS8JYXZHENHN7_69444784.sst" ] } } } }, { "dataset-id": "catalog", "tdb": { "folder": "/fuseki/backups/2/catalog/tdb/", "success": true, "files": { "files": [ "catalog_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/2/catalog/kafka/", "/catalog": [ { "name": "catalog", "source": "/fuseki/databases/Replay-Catalog-RDF.state", "destination": "/fuseki/backups/2/catalog/kafka//catalog.json", "success": true } ], "files": { "files": [ "catalog.json" ] } }, "labels": { "folder": "/fuseki/backups/2/catalog/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "CURRENT", "MANIFEST-000009", "OPTIONS-000011", "000008.log" ] } }, "shared_checksum": {} } } }, { "dataset-id": "ontology", "tdb": { "folder": "/fuseki/backups/2/ontology/tdb/", "success": true, "files": { "files": [ "ontology_backup.nq.gz" ] } }, "kafka": { "folder": "/fuseki/backups/2/ontology/kafka/", "/ontology": [ { "name": "ontology", "source": "/fuseki/databases/Replay-Ontology-RDF.state", "destination": "/fuseki/backups/2/ontology/kafka//ontology.json", "success": true } ], "files": { "files": [ "ontology.json" ] } }, "labels": { "folder": "/fuseki/backups/2/ontology/labels/", "success": true, "files": { "meta": { "files": [ "1" ] }, "private": { "1": { "files": [ "OPTIONS-000012", "MANIFEST-000010", "000009.log", "CURRENT" ] } }, "shared_checksum": { "files": [ "000008_sE2GWJWZWS8JYXZHENHN6_2992049.sst" ] } } } } ] } } }```

Overall Response

There is a lot of information to parse. Essentially it breaks down as

  • Date & Time of the call.
  • A list of backups - if any.

If no backups exist, an empty JSON object is returned i.e. {}

{
  "date": "2025-06-30_13-00-54",
  "backups": {}
}
Backup Details

Each backup consists of the following:

  • ID - a number representing the unique ID of the backup.
  • Date - the date in which the backup was taken
  • Dataset(s) - a list of the underlying datasets being stored.

Note: At present the ID is an increasing numerical value. This is for ease of use and simplicities sake. In future this may change to a UUID or similar.

Dataset Details

Each dataset entry is similarly broken down:

  • Dataset ID - the name of the underlying dataset say “Data-Catalog”
  • TDB - breakdown of the Triple Database being stored.
  • Labels - a breakdown of the Security Labels being stored.
  • Kafka - a breakdown of the Kafka state being stored.
TDB Details

These details involve the folder structure and files that compose the Apache Jena triple-store that is backed up.

NOTE: These may be removed in future versions due to the potentially sensitive nature of the information.

Security Labels Details

These details involve the folder structure and files the compose the Rocks DB Label store that is being backed up.

NOTE: These may be removed in future versions due to the potentially sensitive nature of the information.

Kafka Details

These details include the files, offsets and topics of the Kafka data that is being backed up.

NOTE: These may be removed in future versions due to the potentially sensitive nature of the information.


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