From 4870c0214a8a1a801d4b681498c39ea2dc9b1afd Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 25 Aug 2026 07:49:06 +0200 Subject: [PATCH] OpenAPI: default the file writer format to NXmxVDS, and regenerate The schema declared NXmxLegacy while the server's own default has long been NXmxVDS (FileWriterSettings.h), and the integration page added this release tells users NXmxVDS is the one to use - legacy is the layout DIALS reads only the first data file of. A generated client that fills in schema defaults was therefore quietly asking for the layout we advise against. The C++ server does not materialise the default at all - an absent enum reaches Convert as INVALID_VALUE and throws - so this moves nothing server-side. It moves the python and zod clients, which do fill defaults in, and the changelog says so. update_version.sh also picked up a grid-scan description that had been changed on this branch but never regenerated into the clients ("mutually exclusive with rotation_axis", which stopped being true when the two stopped being alternatives). Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Y5XisyYxmF8mUEQjzpMRe2 --- broker/gen/model/Grid_scan.h | 4 ++-- broker/jfjoch_api.yaml | 2 +- broker/redoc-static.html | 7 ++++--- docs/CHANGELOG.md | 1 + docs/python_client/docs/FileWriterSettings.md | 2 +- docs/python_client/docs/GridScan.md | 2 +- frontend/src/client/types.gen.ts | 4 +++- frontend/src/client/zod.gen.ts | 6 ++++-- 8 files changed, 17 insertions(+), 11 deletions(-) diff --git a/broker/gen/model/Grid_scan.h b/broker/gen/model/Grid_scan.h index 91bc1a02..2edaba31 100644 --- a/broker/gen/model/Grid_scan.h +++ b/broker/gen/model/Grid_scan.h @@ -12,7 +12,7 @@ /* * Grid_scan.h * - * Definition of a grid scan (mutually exclusive with `rotation_axis`) + * Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was. */ #ifndef Grid_scan_H_ @@ -25,7 +25,7 @@ namespace org::openapitools::server::model { /// -/// Definition of a grid scan (mutually exclusive with `rotation_axis`) +/// Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was. /// class Grid_scan { diff --git a/broker/jfjoch_api.yaml b/broker/jfjoch_api.yaml index 5f17efac..8a0ef07e 100644 --- a/broker/jfjoch_api.yaml +++ b/broker/jfjoch_api.yaml @@ -729,7 +729,7 @@ components: - "CBF" - "TIFF" - "NoFileWritten" - default: "NXmxLegacy" + default: "NXmxVDS" description: | NoFileWritten - no files are written at all NXmxOnlyData - only data files are written, no master file diff --git a/broker/redoc-static.html b/broker/redoc-static.html index d6e9454d..ff2ade46 100644 --- a/broker/redoc-static.html +++ b/broker/redoc-static.html @@ -467,7 +467,8 @@ Flux incident on beam plane in photons per second. In other words this is the fl transmission
number <float> [ 0 .. 1 ]

/entry/instrument/attenuator/attenuator_transmission Transmission of attenuator (filter) [no units]

object (rotation_axis)

Definition of a crystal rotation axis

-
object (grid_scan)

Definition of a grid scan (mutually exclusive with rotation_axis)

+
object (grid_scan)

Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected +at a particular head position, and a stationary axis records where that was.

header_appendix
any

Header appendix, added as user_data/user to start ZeroMQ message (can be any valid JSON) In general, it is not saved in HDF5 file.

However, if values are placed in "hdf5" object, jfjoch_writer will write them in /entry/user of the HDF5 file. @@ -635,7 +636,7 @@ left unset there, but that is their own default and is not reachable through thi

Response samples

Content type
application/json
{
  • "integration_model": "ProfileGaussian",
  • "max_hkl": 100
}

Change file writer settings

This can only be done when detector is Idle, Error or Inactive states.

Request Body schema: application/json
overwrite
boolean
Default: false

Inform jfjoch_write to overwrite existing files. Otherwise files would be saved with .h5.{timestamp}.tmp suffix.

-
format
string (file_writer_format)
Default: "NXmxLegacy"
Enum: "NXmxOnlyData" "NXmxLegacy" "NXmxVDS" "NXmxIntegrated" "CBF" "TIFF" "NoFileWritten"

NoFileWritten - no files are written at all +

format
string (file_writer_format)
Default: "NXmxVDS"
Enum: "NXmxOnlyData" "NXmxLegacy" "NXmxVDS" "NXmxIntegrated" "CBF" "TIFF" "NoFileWritten"

NoFileWritten - no files are written at all NXmxOnlyData - only data files are written, no master file NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling @@ -981,7 +982,7 @@ then image might be replaced in the buffer between calling /images and /image.cb