Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::DataStorageController Class Reference

Handles all /api/v1/datastorage endpoints. More...

#include <mitkDataStorageController.h>

Public Member Functions

 DataStorageController (DataStorageBridge &bridge)
 Construct a DataStorageController. More...
 
void SetTempDirectory (const std::string &tempDir)
 Set the temporary directory for data serialization. More...
 
void SetFileAccessConfig (FileAccessMode mode, const std::vector< std::string > &allowedDirs, const std::string &tempDirectory)
 Configure file access restrictions. More...
 
void SetMaxActiveTempDirsPerIp (size_t max)
 Set the maximum number of concurrently active file-reference temp directories per client IP. When a client exceeds the limit its oldest directory is evicted (deleted) to make room. Default: 5. More...
 
void HandleGET_nodes (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes request. More...
 
void HandlePOST_nodes (const httplib::Request &req, httplib::Response &res)
 Handle POST /datastorage/nodes request. More...
 
void HandleGET_nodes_uid (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes/:uid request. More...
 
void HandlePATCH_nodes_uid (const httplib::Request &req, httplib::Response &res)
 Handle PATCH /datastorage/nodes/:uid request. More...
 
void HandleDELETE_nodes_uid (const httplib::Request &req, httplib::Response &res)
 Handle DELETE /datastorage/nodes/:uid request. More...
 
void HandleGET_nodes_uid_children (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes/:uid/children request. More...
 
void HandlePOST_nodes_uid_children (const httplib::Request &req, httplib::Response &res)
 Handle POST /datastorage/nodes/:uid/children request. More...
 
void HandleGET_nodes_uid_data (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes/:uid/data request. More...
 
void HandlePUT_nodes_uid_data (const httplib::Request &req, httplib::Response &res)
 Handle PUT /datastorage/nodes/:uid/data request. More...
 
void HandleGET_nodes_uid_properties (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes/:uid/properties request. More...
 
void HandleGET_nodes_uid_properties_key (const httplib::Request &req, httplib::Response &res)
 Handle GET /datastorage/nodes/:uid/properties/:property_key request. More...
 
void HandlePUT_nodes_uid_properties_key (const httplib::Request &req, httplib::Response &res)
 Handle PUT /datastorage/nodes/:uid/properties/:property_key request. More...
 
void HandleDELETE_nodes_uid_properties_key (const httplib::Request &req, httplib::Response &res)
 Handle DELETE /datastorage/nodes/:uid/properties/:property_key request. More...
 
void HandlePUT_nodes_uid_properties (const httplib::Request &req, httplib::Response &res)
 Handle PUT /datastorage/nodes/:uid/properties request. More...
 
void HandlePATCH_nodes_uid_properties (const httplib::Request &req, httplib::Response &res)
 Handle PATCH /datastorage/nodes/:uid/properties request. More...
 

Detailed Description

Handles all /api/v1/datastorage endpoints.

Handler method naming convention: HandleMETHOD_path_segments() The method name directly reflects the route for clarity.

Node endpoints:

Data endpoints (on nodes):

Property endpoints (on nodes):

Definition at line 56 of file mitkDataStorageController.h.

Constructor & Destructor Documentation

◆ DataStorageController()

mitk::DataStorageController::DataStorageController ( DataStorageBridge &  bridge)
explicit

Construct a DataStorageController.

Parameters
bridgeReference to the DataStorageBridge for data operations.

Member Function Documentation

◆ HandleDELETE_nodes_uid()

void mitk::DataStorageController::HandleDELETE_nodes_uid ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle DELETE /datastorage/nodes/:uid request.

Deletes a node.

◆ HandleDELETE_nodes_uid_properties_key()

void mitk::DataStorageController::HandleDELETE_nodes_uid_properties_key ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle DELETE /datastorage/nodes/:uid/properties/:property_key request.

Deletes a property.

◆ HandleGET_nodes()

void mitk::DataStorageController::HandleGET_nodes ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes request.

Lists all nodes, optionally filtered.

◆ HandleGET_nodes_uid()

void mitk::DataStorageController::HandleGET_nodes_uid ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes/:uid request.

Gets a single node by UID.

◆ HandleGET_nodes_uid_children()

void mitk::DataStorageController::HandleGET_nodes_uid_children ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes/:uid/children request.

Lists child nodes of a given node.

◆ HandleGET_nodes_uid_data()

void mitk::DataStorageController::HandleGET_nodes_uid_data ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes/:uid/data request.

Downloads the binary data of a node. Supports direct mode (binary response) and file-reference mode (JSON with path).

◆ HandleGET_nodes_uid_properties()

void mitk::DataStorageController::HandleGET_nodes_uid_properties ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes/:uid/properties request.

Gets all properties of a node.

◆ HandleGET_nodes_uid_properties_key()

void mitk::DataStorageController::HandleGET_nodes_uid_properties_key ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle GET /datastorage/nodes/:uid/properties/:property_key request.

Gets a single property value.

◆ HandlePATCH_nodes_uid()

void mitk::DataStorageController::HandlePATCH_nodes_uid ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle PATCH /datastorage/nodes/:uid request.

Updates a node (e.g., reparenting).

◆ HandlePATCH_nodes_uid_properties()

void mitk::DataStorageController::HandlePATCH_nodes_uid_properties ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle PATCH /datastorage/nodes/:uid/properties request.

Updates multiple properties (merge semantics).

◆ HandlePOST_nodes()

void mitk::DataStorageController::HandlePOST_nodes ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle POST /datastorage/nodes request.

Creates a new node.

◆ HandlePOST_nodes_uid_children()

void mitk::DataStorageController::HandlePOST_nodes_uid_children ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle POST /datastorage/nodes/:uid/children request.

Creates a new child node.

◆ HandlePUT_nodes_uid_data()

void mitk::DataStorageController::HandlePUT_nodes_uid_data ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle PUT /datastorage/nodes/:uid/data request.

Uploads/replaces the binary data of a node. Can also set data on nodes that currently have null data.

◆ HandlePUT_nodes_uid_properties()

void mitk::DataStorageController::HandlePUT_nodes_uid_properties ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle PUT /datastorage/nodes/:uid/properties request.

Replaces all properties (full replacement).

◆ HandlePUT_nodes_uid_properties_key()

void mitk::DataStorageController::HandlePUT_nodes_uid_properties_key ( const httplib::Request &  req,
httplib::Response &  res 
)

Handle PUT /datastorage/nodes/:uid/properties/:property_key request.

Sets a single property value.

◆ SetFileAccessConfig()

void mitk::DataStorageController::SetFileAccessConfig ( FileAccessMode  mode,
const std::vector< std::string > &  allowedDirs,
const std::string &  tempDirectory 
)

Configure file access restrictions.

Precondition
mode must be a valid FileAccessMode value.
When mode is AllowedDirectories, allowedDirs must not be empty.
Parameters
modeThe file access mode (Unrestricted or AllowedDirectories).
allowedDirsList of allowed directory paths (only used in AllowedDirectories mode).
tempDirectoryPath to the temporary directory (always allowed in AllowedDirectories mode).

◆ SetMaxActiveTempDirsPerIp()

void mitk::DataStorageController::SetMaxActiveTempDirsPerIp ( size_t  max)

Set the maximum number of concurrently active file-reference temp directories per client IP. When a client exceeds the limit its oldest directory is evicted (deleted) to make room. Default: 5.

Precondition
max >= 1.

◆ SetTempDirectory()

void mitk::DataStorageController::SetTempDirectory ( const std::string &  tempDir)

Set the temporary directory for data serialization.

This directory is used for storing serialized data files when responding to GET /nodes/{uid}/data requests.

Parameters
tempDirPath to the temporary directory.

The documentation for this class was generated from the following file: