Hey,
is there any official guidance on OSDK versioning in connection with function & action versions? Specifically I’d like to know:
- Do I have to release a new OSDK version whenever a function/action updates, or only when the function’s in- or output types change?
- Is there backward compatibility, meaning an older OSDK version will always serve the functions/actions in the versions they had when the OSDK was released?
Thanks!
1 Like
Do I have to release a new OSDK version whenever a function/action updates, or only when the function’s in- or output types change?
If you change the content of the function without changing the input or outputs you don’t need to re-generate the SDK, as we will always call the last version of the function.
If the function is used in an action which is later used in the OSDK, you need to update the version of the function the action is using but you don’t need to re-generate the SDK.
Is there backward compatibility, meaning an older OSDK version will always serve the functions/actions in the versions they had when the OSDK was released?
No, Currently Object types and Action types don’t have versions so you can’t pin an SDK to a specific version of the object or action. A good practice is not to “break the API” by adding a new property instead of renaming one, mark the old one as deprecated and let consumers adopt the change.
One other thing to remember, the Dev console control both the SDK with the resources you can use and the Auth scope which govern which resource the user can access. When you want to remove an action from the SDK, it is recommended to remove the action in the Dev console but to keep it in the selected scope resources (you will be prompt for it), until all clients upgraded to the newest version of the SDK. If you remove the action from the scope, old clients which uses the old SDK will still fail as the token they will get on login will not include the action permission.