Closed HiranyaKavishani closed 9 months ago
11th of Sep 2023 - 15th of Sep (5 days)
[1] https://docs.google.com/document/d/1cf-LazqdytaybVuHoiF8LUIiP8ENgwiaPCbWZGWF6Vo/edit?usp=sharing
18h of Sep 2023 - 22nd of Sep (5 days)
BackEnd Implemetation
FrontEnd Implementation
Ongoing
25th of Sep 2023 - 27th of Sep 2023 (3 days)
Backend I. Added changes to support context versioning for API Products II. Modification on APIProduct listing Rest API to append context without version III. Modification on API Product deployment flow (Bind version in to generated synapse API of API Products)
Front End I. UI changes to display version at API tile during API Product listing and unified search II. UI Changes on life cycle page to display life cycle check list for new API Product versions
Ongoing/ pending testing usecases.
2nd of Oct 2023 - 6th of Oct 2023 (5 days)
Added backend changes to enable email notifications of new version creation of API Products
Added UI changes to API Products publisher tryout console to support versioning
Provided version support for API products in apictl
Identified testing scenarios and manually verified below I. Create/update/deleted API products with mutiple versions II Life Cycle support for API products based on the checklist to deprecate old versions or copy subscriptions or both III Deploy revisions of new API product versions and invoke at publisher and devportal IV Display multiple versions at devportal and verify their invocation. V Display default version at developer portal and invoke without version at url. VI. UI changes in publisher portal (Overview, design config, lifecycle, tryout UI) VII. Context versioning support for API products
Ongoing/ pending testing usecases and remain work
9th of Oct 2023 - 11th of Oct 2023 (3 days)
[1] carbon-apimgt: https://github.com/wso2/carbon-apimgt/pull/12168 [2] apim-apps: https://github.com/wso2/apim-apps/pull/506 [3] product-apim-tooling: https://github.com/wso2/product-apim-tooling/pull/1022
Code Review of the feature is completed on last week, The review comments which were suggested during code review are fixed and latest PRs are now available for the further review.
In order to work the migrated API products without any issue, we have set the default value of isDefaultVersion= null for APIProducts. So, that, If there is no any entry at AM_API_DEFAULT_VERSION table, it will be null as per the default value. We can identify migrated api products from that point.
In publisher design configuration UI, DefaultVersion of all migrated API Products will be shown as true if the isDefaultAPIVersion is null. When an APIProduct update
action is happened, new entry will be saved at AM_API_DEFAULT_VERSION table for those API Products.
For a creation of a new API Product (not a version) at API-M 4.3.0, We internally set isDefaultVersion to true in order to make consistent with old behaviour. So that, new entry will be saved at AM_API_DEFAULT_VERSION table during new API product creation.
We can port the available fixes to API-M 4.2.0 without any issue. Only tests and documentation are pending to complete the feature.
@nandika please note.
As @SavinduDimal worked on API Product Versioning support for API-M 4.2.0, we noticed some blockers during testing phase and introduced some changes to work migrated API Product as it is. Following are some of key highlights.
Closing the issue since all tasks are completed
Problem
When an API Product developer wants to change an operational behaviour of an already published API product as per their new business requirement, for such as authentication mechanism, resources, business plans, etc, currently WSO2 API-M does not have a proper mechanism at API product support, unless the change is made directly in to the deployed API product. But, this may directly affect the API product consumers’ functionalities in their applications and can have disastrous effects on end user’s downstream products and services.
Solution
The solution is to add versioning support for API products and we plan to support the following sub-features to provide the proper versioning experience for API product developers.
Allow API developers to create a new api product version from an existing API product and allow to add version number during API Product creation.
Allow API developers to invoke the api product resources without specifying the version number by Introducing default version support
Allow API developers to select two options during life cycle management of an API Product
Deprecate old versions after publishing the API Products
andRequire re-subscription by when publishing API Products
.Product developer to receive notification of API Product version creation Support context versioning for API Products in order to allow users to define the API Product version as a parameter of its context by adding the {version} into the context.
Allow API developers to manage their API product versions with different environments through WSO2 API CTL.
Affected Component
APIM
Version
4.3.0
Implementation
Followings are the sub tasks to achieve the whole versioning support for API Product version
Backend Changes to support api product versioning
UI modification for api product versioning suppport
Publisher UI modifications
Deprecate old versions after publishing the API Products
andrequire re-subscription by when publishing API Products
at life cycle management UIOther
_Tests and Documentation__
Related Issues
Similar issue: https://github.com/wso2/product-apim/issues/6971
Suggested Labels
No response