Transfer Service ability to transfer data from Live to PIT Data Version
Modify the Transfer Service to allow data transfer from Live to PIT (and optionally PIT to Live).
The current implementation of the Transfer endpoint in the Transfer service takes a single targetVersion parameter that determines whether data is transferred from Live version to Live version or PIT version to PIT version. Data cannot be transferred from Live to PIT.
To manage the current Transfer Service behavior, the ABS sets all data in our internal dataspace to PIT. The use of PIT data internally has caused us issues with Data Explorer, and led to us putting in a ticket Support for Point in Time Feature (dotstatsuite-data-explorer#332). This is likely to be fairly complicated to implement, but would not be necessary if the Transfer change was implemented.
The intended behavior of this feature would be that calls to the Transfer endpoint could specify both a source and target version parameter. We believe that this could be done in a backwards-compatible way by adding the parameter "sourceVersion" with the following rules:
- If neither sourceVersion nor targetVersion are provided, it defaults to the current behaviour of Live to Live
- If only targetVersion is provided, the current behaviour is supported.... it transfers from Live to Live or PIT to PIT, depending on the value provided to targetVersion
- If only sourceVersion is provided then it transfers from Live to Live or PIT to PIT, depending on the value provided to sourceVersion.
- If both sourceVersion and targetVersion are provided, it transfers from sourceVersion to targetVersion (PIT to PIT, Live to Live, PIT to Live or Live to PIT).
We don't believe this should require significant refactoring, but would be interested in hearing whether the development team agrees.