Determine Zuora REST API minor version for CDot IronBank configuration
Background
In https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/7563+, the IronBank gem dependency for CDot was updated to v5.4.0
. One change introduced in this new version was the ability to set the api_minor_version
which would be included in the header of Zuora requests. If this setting was not specified, IronBank defaults the api minor version setting to 211.0
. See https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/7563#note_1424559074 for more info.
We decided to set this configuration to nil
(here) for backwards compatibility with the existing version of IronBank. According to the Zuora API doc:
if the minor version is not specified in the request header, Zuora will use the minimum minor version of the REST API to avoid breaking your integration.
However, we could and probably should set this configuration to a higher minor version.
Follow-up
The following discussion from !7563 should be addressed:
-
@tyleramos started a discussion: (+3 comments) @a_luna Would you mind reviewing this MR when you have time? Thanks!
Proposal
Let's consult with Enterprise Applications to see if CDot should target a specific version of the Zuora REST API in the request header. When considering a minor version to target, we can consult this Zuora documention which lists minor version history. This includes fields supported or no longer supported in specific versions.
Let's also the Rspec logic used for the :zuora
metadata tag to match the zuora-version
(minor API version) included in the requests headers. This way if the config.api_minor_version
in the IronBank initializer changes, the VCR cassettes will no longer match, forcing them to be updated with the newer API version. This will help us catch bugs caused by the API version change before they end up in production.