Description
The tck server contains component/dataset/datastore specific version.
If a client App have a different version than the tck server, to do a migration, the client App will call a tck server API endpoint:
- component/migrate https://talend.github.io/component-runtime/main/latest/rest-openapi.html#/Component/migrateComponent for component
- configurationtype/migrate https://talend.github.io/component-runtime/main/latest/rest-openapi.html#/Configuration%20Type/migrateConfiguration for dataset or datastore
To test this comportment, we created a Sample connector with a simple migration task.
If the migration task is executed, it returns the content of the request body and add migration information:
"currentVersion": "2" "incomingVersion": "1" "level": "DATASTORE"
- level is the migrated element type (DATASET, DATASTORE, OUTPUT, INPUT)
- current version is the element version owned by the server, this is the targeted version
- Incoming version is the version sent with the API call
Observed behavior
endpoint | element | incoming version |
current version (tck server) |
Is the migration executed |
Comment |
---|---|---|---|---|---|
component/migrate | component INPUT | 2 | 3 | YES | |
component/migrate | component INPUT | 10 | 3 | YES | |
component/migrate | component OUTPUT | 1 | 2 | YES | |
component/migrate | component OUTPUT | 10 | 3 | YES | |
configurationtype/migrate | dataset | 4 | 5 | YES | |
configurationtype/migrate | dataset | 6 | 5 | NO | |
configurationtype/migrate | dataset | 5 | 5 | NO | |
configurationtype/migrate | datastore | 1 | 2 | YES | |
configurationtype/migrate | datastore | 2 | 2 | NO | |
configurationtype/migrate | datastore | 3 | 2 | NO |
Migration from equal or higher version is not protected for a component, but it is for a configurationType.
You can see API test results linked
- is duplicated by
-
TCOMP-2482 Protect migration from higher version
- Rejected