9. Always Pass Files as URLs

  • Status: [accepted]

  • Deciders: [Fabian Bühler]

  • Date: [2021-06-29]

9.1. Context and Problem Statement

QHAna (and workflows) save the outputs of a plugin to be used as inputs for another plugin. The files (or their content) has to be passed to and from plugins.

9.2. Decision Drivers

  • results from plugins can be large or small

  • results must be saved to allow retries of experiments, reproducible experiments etc. in QHAna

9.3. Considered Options

  • Let the plugin decide

  • Always pass by value (file content)

  • Give access to shared (cloud) storage to plugins

  • Always pass files by URL

9.4. Decision Outcome

Chosen option: “Always pass files by URL”, because it normalizes file handling while allowing for many different storage options (e.g. local file system file://; cloud file system https://; passing file content directly data://).

9.4.1. Positive Consequences

  • Only one way to pass files to and from plugins reduces development effort

9.4.2. Negative Consequences

  • plugins must handle at least file:// and https:// URLs

  • file URLs cannot require authentication (or authentication tokens must be passed to the plugin in some way)