Release Notes
2.15.0 [Core Modules] - February 28, 2023
Compatibility Notes
- [connectivity] When making a request to a destination that has a certificate in its defintion, the certificate is only added, if it is needed for the according authentication type. That way,
ClientCertificateAuthenticationwill have a certificate in the request, whileOAuth2SAMLBearerAssertiondoes not. Previously, the certificate would be added regardless. (5bad86c70)
Fixed Issues
- [connectivity] Stop adding certificates when sending requests to a destination, if the authentication type does not require a certificate. (5bad86c70)
2.14.0 [Core Modules] - January 13, 2023
Fixed Issues
- [connectivity] Fix the combination of providing the
isstogether withOnPremisebasic destinations. (20f550efd)
2.13.0 [Core Modules] - January 06, 2023
Compatibility Notes
- [generator] The SAP Cloud SDK does not differentiate between function imports and action imports anymore. Therefore the
actionImportsandfunctionImportsexposed in generated services are now deprecated and replaced byoptions. (aa0cf4820) - [openapi-generator] The options
licenseInPackageJsonandversionInPackageJsonare deprecated. If you want to set the license or version in your generatedpackage.jsonfile, use theincludeoption to add a custompackage.jsoninstead. (aa0cf4820)
Fixed Issues
- [odata-v2] Allow to update OData v2 entities to
null. Fixes 3204.- @sap-cloud-sdk/connectivity@2.13.0
- @sap-cloud-sdk/http-client@2.13.0
- @sap-cloud-sdk/odata-common@2.13.0
- @sap-cloud-sdk/util@2.13.0 (83eee1a3b)
2.12.1 [Core Modules] - January 03, 2023
Improvements
-
[connectivity] Update
jsonwebtokento 9.0.0 due to several security vulnerabilities:- CVE-2022-23529 (CVSS 9.8)
- CVE-2022-23539 (CVSS 8.1)
- CVE-2022-23540 (CVSS 9.8)
- CVE-2022-23541 (CVSS 9.8)
- @sap-cloud-sdk/util@2.12.1 (466cbec36)
2.12.0 [Core Modules] - December 07, 2022
Compatibility Notes
- [generator] Deprecate the
processesJsGenerationoption. (0f1056817) - [generator] Deprecate the
generatePackageJsonoption. UsepackageJsoninstead. (0f1056817) - [generator] Make options in
GeneratorOptionsoptional, if they are not mandatory. (0f1056817) - [generator] Deprecate
generateCSNoption. (0f1056817) - [generator] Deprecate the
licenseInPackageJsonoption. Useincludeinstead. (0f1056817) - [generator] Deprecate the
forceOverwriteoption. Useoverwriteinstead. (0f1056817)
Improvements
- [generator] Show warnings for deprecated options only if options where used.
- @sap-cloud-sdk/generator-common@2.12.0
- @sap-cloud-sdk/odata-common@2.12.0
- @sap-cloud-sdk/odata-v2@2.12.0
- @sap-cloud-sdk/odata-v4@2.12.0
- @sap-cloud-sdk/util@2.12.0 (0f1056817)
Fixed Issues
- [generator] Allow OData service to contain an entity name 'Service'. (0f1056817)
2.11.0 [Core Modules] - November 16, 2022
New Functionalities
- [odata-common] Add
getBatchReference()andsetBatchId()in request builders to use the batch ID as a reference to an entity in a batch request changeset. Batch reference are available increate,delete,getByKey,updateandactions/functionsrequest builder. (79e0fe811) - [odata-v4, generator] Support parsing and generating OData bound functions and actions in OData v4 (8ea28151b)
- [generator, openapi-generator, generator-common] Generated sources are formatted using prettier with default config. Use the CLI option
prettierConfigPathto provide a custom config. (74e14427a)
Improvements
- [odata-common] Change the place where batch ID is generated from on serialization to request creation. (79e0fe811)
2.10.0 [Core Modules] - November 02, 2022
Compatibility Notes
- [odata-common, odata-v2, odata-v4] Changed constructor argument of class
EntityBasefromschemato_entityApi. (144ff66f4)
Improvements
- [openapi-generator] Add
forceoption tormcommands, when settingclearOutputDirto true. (f76da3060)
Fixed Issues
- [odata-v2, odata-v4] Fix the "entity generic type" of the "delete request builder". (f76da3060)
- [generator, openapi-generator] Show detailed error message of compilation errors instead of
[object Object]. (f76da3060) - [generator-common] Show detailed error message of compilation errors instead of
[object Object].- @sap-cloud-sdk/util@2.10.0 (f76da3060)
2.9.0 [Core Modules] - September 20, 2022
New Functionalities
- [connectivity] Support fetching all subaccount- and service instance destinations from the destination service simultaneously. (24029503)
- [mail-client] Expose SMTP transport options of
nodemailer. (d1bf2dee) - [util] Add method
setGlobalTransportsto support setting custom transport globally. (4c51d3dc)
Improvements
- [odata-common] Set
orderBy()to ascending order by default. (f62eb0d3)
2.8.0 [Core Modules] - September 06, 2022
Compatibility Notes
- [eslint-config] Activated the eslint rule 'check-tag-names' to allowed jsdoc tags. If you use custom tags add them via the 'definedTags' in the eslint options. (15e9ef4b)
- [generator] Deprecated
generateNpmrccli option. This option was only used to configure the now defunct npm registry hosted by SAP. It now has no effect anymore and should be removed in all invocations of the generator cli. (15e9ef4b) - [generator, openapi-generator, generator-common] Description for package.json in a generated client has changed. (15e9ef4b)
New Functionalities
- [mail-client] Support defining the strategy of sending emails. By default, the emails are sent "in parallel" and can be set to "in sequential". (15e9ef4b)
- [odata-common, generator] Allow function imports using
GEThttp method in batch requests. (15e9ef4b)
Improvements
- [connectivity] Reduce default logs for failing requests in @sap-cloud-sdk/http-client.
- @sap-cloud-sdk/util@2.8.0 (15e9ef4b)
Fixed Issues
- [connectivity] Remove last explicit references to 'VCAP_SERVICES' and replace them with '@sap/xsenv'. (15e9ef4b)
- [connectivity] Fix that unparsable destinations in the subaccount prevent other destinations from beeing fetched. (15e9ef4b)
2.7.1 [Core Modules] - August 12, 2022
Fixed Issues
- [mail-client] Fix proxy authorization for sending emails.
2.7.0 [Core Modules] - August 10, 2022
New Functionalities
- [openapi-generator] Support globs in the
inputoption. (3f70b0c9)
Improvements
- [connectivity] Support consumption of the XSUAA API via destinations. (010a46fa)
Fixed Issues
- [connectivity] Fix a breaking change of
serviceTokenintroduced in 2.0, so it acceptsXsuaaServiceCredentialsagain as an option. (3bff42e1)
2.6.0 [Core Modules] - July 15, 2022
Compatibility Notes
- [odata-v4, temporal-de-serializers] Adjust parsing of
Edm.Date,Edm.DateTimeOffset,Edm.Time, andEdm.Durationto be closer to the OData v4 specification. There may be loss of precision if using the default (de-)serializers with high-precision fractional seconds. (de851289) - [generator] Deprecate generator option
versionInPackageJson. If you need to set the version, use the newincludeoption to add your ownpackage.jsonfile instead. (069aa168) - [generator] The hidden generator option
additionalFilesis renamed toinclude. (069aa168) - [connectivity] Rename
transformationFnintoserviceBindingTransformFninDestinationForServiceBindingsOptionsto avoid ambiguity and make the function async. (8fdfebd6)
New Functionalities
- [connectivity] Support JWTs without a
JKUproperty. (cb598c16) - [connectivity] Add interface
DestinationCacheInterfaceand methodsetDestinationCacheto support implementation of custom destination cache. (09094607) - [connectivity] Fetch client credential token for destinations created by service bindings. (93d41281)
- [generator] New generator option
includewhich allows to add files to generated packages. (069aa168)
Improvements
- [http-client] Make
requestConfigofOriginOptionsoptional. (e46bb51d)
Fixed Issues
- [connectivity] Fix
getDestination()to allow passing an async transform functionserviceBindingTransformFninoptions. The transform function can also be passed byexecute(),executeHttpRequest(),executeRaw(), etc. - [http-client] Fix the
executeHttpRequest/executeHttpRequestWithOriginfunction, so the warning is only shown when overwriting headers by using custom headers. (e44c214a) - [odata-common, odata-v4, temporal-de-serializers] Fix parsing of
Edm.DateTimeOffsetwith high-precision fractional seconds and edge-cases like 5-digit years. (de851289) - [odata-common, generator] Allow OData service to contain an entity name 'entity'. (0675ee3b)
- [odata-v2] Support negative epoch timestamps in serialization. (9ffe0824)
2.5.0 [Core Modules] - June 13, 2022
Compatibility Notes
- [odata-common, generator] Change
Edm.String,Edm.BooleanandEdm.Guidto be orderable to supportlt/lessThan(),le/lessOrEqual(),gt/greaterThan(), andge/greaterOrEqualoperators. Re-generate odata services to adopt the changes. (c3166ff6) - [util] Stop using
VCAP_SERVICESto determine the log format. UsesetLogFormatandsetGlobalLogFormatto specify the log format. By default, the log format is set tokibanaforNODE_ENV=productionandlocalotherwise. (89f1c423)
Fixed Issues
- [http-client] Fix the
executeHttpRequestfunction, so it accepts the same parameters as in version 1. [Compatibility Note] Deprecate one overload of theexecuteHttpRequestfunction, that acceptsHttpRequestConfigWithOriginas a parameter. Use the new functionexecuteHttpRequestWithOriginas replacement. [New Functionality] Support defining header options and query parameter options with origins. (9481ec69)
2.4.0 [Core Modules] - May 20, 2022
Compatibility Notes
- [connectivity] Mark the function
noDestinationErrorMessage()as internal API. - [odata-v4] Mark the function
uriConverteras internal API. - [eslint-config] Switch the following
jsdocrelated levels fromwarntoerror:jsdoc/check-param-namesjsdoc/require-description-complete-sentencejsdoc/require-jsdocjsdoc/require-paramjsdoc/require-returns
- [connectivity, http-client] Only log the successful retrieval of destinations on the
infolog level, log everything else asdebugorwarn.
New Functionality
- [connectivity] Support self-signed certificate using the
trustStoreproperty of the destination object.
Improvements
- [connectivity, http-client] Reduce default log output on the
infolevel significantly.
Fixed Issues
- [util] Fix a bug in the implementation of the trim method.
2.3.0 [Core Modules] - Apr 22, 2022
Compatibility Notes
- [odata-common, odata-v2, odata-v4] Remove all
$format=jsonquery parameters since headerAccept: application/jsonis sent by default.
New Functionality
- [odata-common] Generate mandatory
Content-Idheaders for changeset parts in batch request payloads (see OData Spec). - [odata-common] Support transforming response data for function and action imports before deserialization. #682.
Improvements
- [generator] Change log level from
warntoerrorif service path cannot be determined from the service specification (VALUE_IS_UNDEFINED). - [generator] Reduce memory usage of
schemain API classes (e.g.,BusinessPartnerAPI).
Fixed Issues
- [openapi-generator, openapi] Support path parameters that are not separated by '/', e.g.,
/path/{param}:{param}.
2.2.0 [Core Modules] - Apr 6, 2022
Compatibility Notes
- [eslint-config] Replace
valid-jsdocwitheslint-plugin-jsdocplugin for checking JSDoc comments, since thevalid-jsdocrule is deprecated in ESLint. To stop your project from using a specific rule, turn it off by setting the rule ID tooffunder theruleskey inside your configuration file. - [generator] Stop exporting service classes (e.g.,
BusinessPartnerService) from generated clients, usebusinessPartnerService()instead. - [generator] Stop exporting API classes (e.g.,
BusinessPartnerAPI) from generated clients, usebusinessPartnerService().businessPartnerApiinstead.
New Functionality
- [http-client] Introduce the
parameterEncoderoption to the request configuration of thehttp-clientto allow custom parameter encoding. - [http-client] Remove
methodfromdefaultDisallowedKeysto not filter out custom http method when usingfilterCustomRequestConfig. - [odata-common] Support adding custom http method in
addCustomRequestConfigurationto overwrite the default http method. - [openapi] Support adding custom http method in
addCustomRequestConfigurationto overwrite the default http method.
Improvements
- [generator] Remove unused imports (e.g,
moment,bignumber.jsandEdmTypeField) in API classes (e.g.,BusinessPartnerAPI) to reduce memory usage. - [http-client] Introduce consistent query parameter encoding for all non custom parameters.
2.1.0 [Core Modules] - Feb 18, 2022
Improvements
- [connectivity] Add details to error message for missing "URL" properties in destinations.
- [util] Add
sanitizeRecordfunction tocloud-sdk-loggerwhich replaces potentially sensitive information in aRecord<string, any>based on a list of sensitive keys. - [generator] The new CLI option
licenceInPackageJsonoffers the possibility to specify the license property in a generatedpackage.json.
Fixed Issues
- [openapi-generator] Add
@sap-cloud-sdk/openapias a dependency to the OpenAPI generator to fix errors during generation with--transpileenabled. - [connectivity] Fix an issue when using registering destinations with a JWT but without XSUAA service binding.
- [connectivity] Fix a missing export
DestinationSelectionStrategies. - [odata-common] Fix URL encoding for
getByKey
2.0.0 [Core Modules] - Feb 03, 2022
We released version 2 :partying_face: Be mindful of breaking changes when upgrading. Enjoy multiple improvements and new features. Check the upgrade guide.
Compatibility Notes
- Upgrade the ES version to
es2019.
New Functionality
- [connectivity] Create a new package with minimal API.
- [connectivity] Add
registerDestinationfunction to create destinations in thedestinationsenvironment variable. - [connectivity] Support the
SamlAssertionflow in destination retrieval. - [http-client] Create a new package with minimal API.
Removed functionality
- [generator] Remove the option:
aggregatorDirectoryNameandaggregatorNpmPackageName - [generator] Remove the option:
generateTypedocJson - [generator] Remove
packageJsonfunction from aggregator-package - [core] Remove some functions
- [analytics] Remove the
@sap-cloud-sdk/analyticspackage
New module structure
- [core] We have split the
corepackage into smaller packages, so functions are moved to the target package.
Changed signatures
- [core]
EdmTypeFieldonly support EDM types, no field types in generics
Changed implementation
- [generator] changed the following implementations
ServiceNameFormatterdeprecated constructor removed, reserverdName parameter from typeNameToFactoryName method removedVdmNavigationpropetymultiplicity, isMultiLink removedVdmFunctionImportReturnTypeisMulti removed
- [openapi] changed the following implementations
executeRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.executeRawRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.
- [odata-common] changed the following implementations
ComplexTypeFielddeprecated constructors removedConstructableSelectable removedCreateRequestBuilderBaseprepare removedEntityBasegetCurrentMapKey, initializeCustomFields removedEnumFieldedmType removedFilter_fieldName property removedFilterFunctiontoString, transformParameter removedLinkclone, selects removedMethodRequestBuilderwithCustomHeaders, withCustomQueryParameters, withCustomServicePath removed, build protectedODataRequestConfigcontentType, deprecated constructor removedODataBatchRequestConfigbatchId, content_type_prefix removedOneToOneLinkclone removedUpdateRequestBuilderBaseprepare, requiredFields, ignoredFields, withCustomVersionIdentifier removedexecuteRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions..executeRawRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.
- [odata-v2] changed the following implementations
executeRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.executeRawRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.
- [odata-v4] changed the following implementations
executeRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.executeRawRequest Builder APIs changed to use a single parameter, either a Destination or DestinationFetchOptions.
- [connectivity] changed the following implementations
getDestinationchanged to use DestinationFetchOptions as single parameter.getProxyRelatedAuthHeaderslegacyNoAuthOnPremiseProxy case removedserviceTokenusesJWTinstead of userJwt now.jwtBearerTokenusesJWTinstead of userJwt now.fetchVerificationKeysmerged withexecuteFetchVerificationKeys, now only accepts URL as parameter
- [http-client] changed the following implementations
executeHttpRequestfetches CsrfToken for non-GETrequests by default.