Speaker
Description
There are several ways to store and access configuration in Tango Controls:
- Device and Сlass properties, which are the standard interface for Tango devices;
- Local files for secrets that should not be stored in properties;
- Sardana’s own file format for storing environment variables, e.g., ScanID or Measurement Groups, in addition to device properties for elements;
- Free properties used by other libraries and applications (such as Python HdbReader or Role-Based Access Control), which are not attached to any device and are global across the entire control system.
MXCuBE is a data acquisition framework for macromolecular crystallography experiments. It is the result of an international collaboration and is used by many institutes, which may rely on different control systems based on Tango Controls or EPICS.
For this reason, MXCuBE uses YAML (or XML) files for configuration instead of Tango properties. It makes configuration less flexible and less accessible, and switching between working environments becomes more difficult.
Tango Keystore is a tool and library developed to overcome these limitations. It stores key–value pairs in Tango Free Properties, serialized in JSON. The data is stored together with its type (preserving the original Python type), since all properties in the Tango database are stored as strings.
It provides a convenient API for writing, reading, and updating values, as well as support for bulk operations, snapshots, and validation of user changes.
Tango Keystore can also be useful for other tools, helping to maintain a consistent configuration standard across different control systems.
| Tags | Properties, Tool, Library, Configuration |
|---|