RADAR-base / ManagementPortal

Management Portal to manage research studies
Apache License 2.0
21 stars 15 forks source link

Catalog version updates #228

Open blootsvoets opened 6 years ago

blootsvoets commented 6 years ago

When a new updated source specification gets added to RADAR-Schemas, it gets a new catalog version. In addition, the app that is serving data according to the definition may get updated. How can the app indicate to the management portal that it wants to upgrade its catalog version?

In case of a dynamic_registration type:

  1. project admin adds the source type with the new version to the project
  2. app detects that a later version is available for the project
  3. app tries to register itself as a new source using the new catalog version.
  4. if successful, it tries to deregister itself as the previous source

The downside to this approach is that a new source ID is registered, which means that monitors and data analysis will not correlate data from the two source IDs.

In case of a non-dynamic type:

  1. project admin creates copies of the sources, now with an updated catalog version.
  2. project admin associates the new source with a user.
  3. project admin removes the old source from the user.

Same downside as with the dynamic approach. In addition, it will be very tedious to do this.

Ideally, there would be an upgrade path, so that source ID may stay the same, but it keeps a history of when certain catalog versions were used. This is less tedious for the user.

Dynamic case: 1 project admin adds the new type

  1. app detects that a later version is available and that the app supports it
  2. app requests with MP an upgrade to the latest catalog version

Non-dynamic:

  1. project admin adds the new type
  2. project admin indicates that a source is upgraded to the latest catalog version.
yatharthranjan commented 6 years ago

Can this be done ? -

  1. project admin adds the source type with the new version to the project
  2. app detects that a later version is available for the project
  3. app stores the previous source Id of aRMT for a subject
  4. app removes the previous source and registers as a new source with the specified source ID

But I guess the source Ids are auto-generated by the MP so in that case this will not be possible. Perhaps the app can try changing the sourceType of the already registered source to the new version if its possible via the API