Skip to content

Synchronizing data to the cloud

Synchronization keeps your local experimental data in sync with the server: the sync agent runs as a background service on your computer, continuously discovering new datasets from your data sources and uploading them to QM Data Management.

Synchronization is one-way — data flows from your computer up to QM Data Management. The agent only reads your local files; it never modifies or deletes them, and changes made on the server are not written back to disk.

How it works

graph LR
    A["Data sources<br/>(Qualibrate, QCoDeS,<br/>Quantify, folders, …)"] -->| discovered by | B["Sync agent<br/>(background service)"]
    B -->| uploads to | C[("Data Management<br/>server")]

A few concepts are worth knowing:

  • Sync agent — the background service that does the work. It is installed and managed through the qDrive package; see qDrive installation.
  • Connector — the plugin that knows how to read a particular data format and adapt it for synchronization. Pre-built connectors exist for QUAlibrate, QCoDeS, Quantify, Labber, Core Tools, and generic folders (see connectors); you can also create your own.
  • Sync source — a configured data source to synchronize. Each source has a name, a connector, and connector-specific configuration (for example, the folder or database to watch).
  • Sync item — a single dataset queued for synchronization. A sync item is always part of a sync source. The agent creates one per discovered dataset and tracks its sync state.

Prerequisites

Before you can synchronize data:

  1. Install the background sync services — see qDrive installation.
  2. Log in to your institution — see Authentication.

Once the agent is running and you are logged in, you can configure and monitor synchronization in two ways.

Two ways to manage synchronization

  •   In the DataQruiser app


    Add and monitor sync sources from the desktop application — the easiest way to get started, no code required.

    Managing sync in DataQruiser

  •   From Python (the SDK)


    Manage sources, scope mappings, and sync items programmatically with the etiket-sdk package — ideal for servers and automation.

    Managing sync from Python

Want to synchronize a data format that isn't covered by the built-in connectors? See Creating a connector.