Changelog 2024
Open Source Changelogs
For repositories and plugins that are open source, please check out the respective changelogs in the cap-js organization and the CAP Community.
December 2024
Added
- [cds-dk@8.6.0]
cds replgot new option--runto run a server; also available through.runcommand within the REPL. - [cds-dk@8.6.0]
cds replgot new option--useto make the features of acdsavailable as globals. - [cds-dk@8.6.0]
cds replgot new builtin.inspectcommand to inspect object with configurable depth, e.g..inspect cds .depth=1. - [cds-dk@8.6.0]
cds watchnow detects a TypeScript project and tries to run withtsxif this is installed locally or globally. Otherwise a warning message is emitted.CDS_TYPESCRIPT=falsecan be used to opt out of this behavior. - [cds-dk@8.6.0]
cds import --groupto allow RFC importer to organize imported modules under a logical name. - [cds-dk@8.6.0]
cds init/addfor Java projects automatically create apackage-lock.json. - [cds-dk@8.6.0]
cds add iasadds IAS configuration (beta). - [cds-dk@8.6.0]
cds add amsadds AMS configuration (beta). - [cds-compiler@5.6.0] Allow to refer to draft state element
HasActiveEntityandHasDraftEntityvia variable$draftin annotation path expressions. - [cds-compiler@5.6.0] for.odata|to.edm(x): Introduce annotating the generated foreign keys
- [cds.java@3.6.0] Feature
cds-feature-ordnow also exposes EDMx metadata documents which are linked from ORD documents with the same authentication scheme as the ORD document. - [cds.java@3.6.0] The goal
generateof thecds-maven-pluginexecuted with option-Dcds.generate.feature=EVENT_HANDLERScan be executed from project root. - [cds.java@3.6.0] Optimized HANA JDBC connection retrieval in MT applications with shared pool configured. In particular, recently used connections of the same tenant can be reused much more quickly if they are not taken by an other tenant already.
- [cds.java@3.6.0] Support for Apache Kafka messaging in CAP Java application running in a DwC environment, see util-cap-kafka for details.
- [cds.java@3.6.0] CAP integration for IAS now also supports SAP BTP, Kyma runtime.
- [cds.java@3.6.0] Events, for which registered handlers on Event Hub messaging services are available, will be automatically exposed as integration dependencies in the ORD document of the CAP application. For each topic one integration dependency will be created.
- [cds4j@3.6.0] Support match predicates
anyMatch/allMatchin infix filters of element refs on the select list. - [cds@8.6.0]
SELECT.fromnow supports full-query tagged template literals, e.g.:SELECT.from`Books where ID=${201}` - [cds@8.6.0]
cds.qlenhanced by functions to facilitate construction of CQN objects. - [cds@8.6.0]
cds.qlbecame a function to turn CQN objects, CQL strings, or tagged template literals into instances of the respectivecds.qlclass. - [cds@8.6.0] New
cdsevents to allow multitenant plugins:compile.for.runtime,compile.to.dbx,compile.to.edmx. - [cds@8.6.0]
cds.envnow supports.cdsrc.jsand.cdsrc.yamlfiles, also in plugins. - [cds@8.6.0]
cds.envnow supports profile-specific.envfiles, e.g..hybrid.envor.attic.env. - [cds@8.6.0] Experimental OData parsing for hierarchy requests (
descendants,ancestors,TopLevels) - [cds@8.6.0] The new OData adapter now supports
cds.odata.containment. Contained entities can only be accessed via their parents and do not show up as EntitySets in $metadata and the service document.
Changed
- [cds-dk@8.6.0] Running
cds initin the user's home dir w/o a project name now fails. This is to prevent creation of configuration that would act as global (user) configuration leading to follow-up problems with later projects. - [vscode-cds@8.5.1] enabling
newParserviacds.envwill no longer interfere with CDS editor - [cds-compiler@5.6.0] Update OData vocabularies: 'Common', 'EntityRelationship', 'UI'
- [cds.java@3.6.0] cds-feature-kafka now uses mTLS for authentication. OAuth authentication is deprecated by Kafka on BTP and will be removed starting February 2025.
- [cds.java@3.6.0] The goal
install-cdsdkof thecds-maven-pluginhas been deprecated. - [cds.java@3.6.0] The
cds-services-archetypegenerates new CAP Java projects with apacakge.jsonandpackage-lock.jsoncontaining a devDependency to@sap/cds-dk. Thesrv/pom.xmlis generated with the execution ofnpm ciinstead of using goalinstall-cdsdk. - [cds.java@2.10.6] cds-feature-kafka now uses mTLS for authentication. OAuth authentication is deprecated by Kafka on BTP and will be removed starting February 2025.
- [cds@8.6.0]
CDL,CQL, andCXLglobals are deprecated => use respective functions fromcds.qlinstead. - [cds@8.6.0]
CREATE, andDROPglobals are deprecated => use respective functions fromcds.qlinstead. - [cds@8.6.0] Zulu time zone information is stripped from
cds.DateTimeproperties when querying Odata V2 remote services - [cds@8.6.0] Processing of
@restrict.wherewas aligned with CAP Java:- Instance-based authorization on app service calls does not consider custom
WHEREclauses ofUPDATE/DELETEqueries- Until
@sap/cds^9, this change can be deactivated viacds.env.features.compat_restrict_where = true
- Until
- Simple static clauses (e.g.,
$user.level > 5) are no longer evaluated by the server but added to the respective SQL regardless. As a result, requests may receive a response of2xxwith an empty body instead of a403.- Until
@sap/cds^9, this change can be deactivated viacds.env.features.compat_static_auth = true
- Until
- Read restrictions on the entity are no longer taken into consideration when evaluating restrictions on bound actions/ functions
- Until
@sap/cds^9, this change can be deactivated viacds.env.features.compat_restrict_bound = true
- Until
- Instance-based authorization on app service calls does not consider custom
Fixed
- [cds-dk@8.6.1]
cds add amsnow creates correct dependencies for Java projects. - [cds-dk@8.6.0]
cds add html5-repoadds anindex.htmlaswelcomePageto thexs-app.json, if available. - [cds-dk@8.6.0]
cds bindfixes the recursive call tomergeCredentials. - [cds-dk@8.6.0]
cds addwon't add a duplicatedSUBSCRIPTION_URLif it doesn't match the template specification. - [cds-dk@8.6.0]
cds watchgives a better error message for TypeScript projects started with iftsxisn't installed. - [cds-dk@8.6.0]
cds buildno longer throws an undefined error when processing build plugin messages. - [cds-dk@8.5.1]
cds buildnow logs existing plugin build messages if a BuildError is thrown. - [cds-compiler@5.5.2] to.hdi|sql|edm[x]: Correctly handle
cds.Map, ensure that it does not have.elementsyet. - [cds.java@3.6.0] Fixed an issue in
addgoal of thecds-maven-plugincausing a wrong yaml syntax of mock user roles inapplication.yaml. - [cds.java@3.6.0] Fixed a bug causing URL encoded client certificates being incorrectly rejected on Kyma when calling endpoints secured with mTLS (e.g. SMS and UCL).
- [cds.java@3.6.0] Fixed a bug causing the close of DB sessions when the outbox tries to process an outbox entry that shall be emitted using a Kafka messaging service.
- [cds.java@3.6.0] Fixed a bug that bound service manager instances where no plan could be determined on K8S are ignored.
- [cds.java@2.10.6] Values for key elements annotated with
@Core.Immutableare no longer removed from the payload of updates. - [cds.java@2.10.6] For ST applications, the request user name is written to Auditlog V2 instead of the technical provider user.
- [cds4j@3.6.1] Fixed a bug in handling case of
node_idandparent_idfor HANA hierarchies - [cds4j@3.6.0] Fixed a bug, causing duplicate elements
node_idandparent_idon the select list of a source of a hierarchy - [cds4j@3.6.0] Fixed a bug, causing a wrong value for
IsActiveEntityin a nested select from inactive drafts - [cds4j@3.6.0] Reject write operations through projections using paths or infix filters
- [cds4j@3.6.0] Don't generate UUIDs for association key elements on insert
- [cds4j@2.10.6] Reject write operations through projections using paths or infix filters
- [cds4j@2.10.6] Don't generate UUIDs for association key elements on insert
- [cds@8.6.0] ETag calculation if column was provided as Javascript Date
- [cds@8.6.0] Forwarding of
/$countqueries while mocking the external service - [cds@8.6.0] Resolving of implicit function parameters (e.g
GET .../test.foo?x='bar') - [cds@8.6.0] Arrayed elements are not part of response unless explicitly selected with
$select - [cds@8.6.0] In case of nonexistent user attributes (
$user.X), only the subclause gets substituted withfalse - [cds@8.6.0]
@odata.contextin new OData adapter:- Fixed crash for requests to actions/functions when
cds.env.odata.context_with_columnsis enabled - Aggregation functions with
$applyare now returned whencds.env.odata.context_with_columnsis enabled @odata.contextis now the first property in the response values ofconcatrequests- Binary key values are now properly encoded and formatted
- Fixed keys appearing as
(undefined)for updates via navigation to-one - Fixed key value pairs being returned as
undefined=undefinedfor property access of aspects - Backlinks no longer appear as keys for property access of aspects
- Non-anonymous structured types are now prefixed with the service name
- Structured types no longer end with
/$entity
- Fixed crash for requests to actions/functions when
- [cds@8.5.1]
cds deploy --dry --model-onlyno longer tries to load a SQLite database - [cds@8.5.1] Requests with HTTP methods other than
POSTto the/$batchendpoint are now rejected when using the new OData adapter - [cds-mtxs@2.4.2] The annotation check of the extension linter can now properly handle extensions like
extend service CatalogService with @cds.query.limit; - [cds-mtxs@2.4.1]
cds-mtx upgrade "*"correctly parses metadata supplied by the--bodyparameter.
Removed
- [vscode-cds@8.5.1] obsolete support for CAP Notebook urls
November 2024
Added
[cds-dk@8.5.0]
cds debuglets you debug Node.js applications running locally or in Cloud Foundry.[cds-dk@8.5.0]
cds watch --inspectandcds watch --inspect-brkactivate the debugger in the same way as the standard Node.js CLI options, i.e. they accept ahost:portcombination and0as values.[cds-dk@8.5.0] The existing
cds watch --debugis now an alias tocds watch --inspect.[cds-dk@8.5.0]
cds add cloud-loggingadds cloud-logging as an alternative for application logging in Kyma.[cds-dk@8.5.0]
cds add cloud-logging --with-telemetryorcds add telemetryadds cloud-logging as well as support forcap-js/telemetryplugin in Kyma.[cds-dk@8.5.0]
cds add handlernow also works for Node.js projects. It creates an implementation file for each service with event handlers for all entities and actions.[cds-dk@8.5.0]
cds add esmcreates ESM-compatible Node.js projects. Sample code added byadd sampleandadd handlerwill respect this setting if added afterwards. Existing code will not be adjusted bycds add esm, though.[cds-dk@8.4.1]
cds deploy --no-buildlets you skip the implicitcds build.[cds-dk@8.4.1]
cds add data/httpsupports new typecds.Map.[vscode-cds@8.4.3] refactoring
usingstatements when renaming/deleting files or folders now considers ignore files (.cdsignore or .gitignore) and will not refactor ignored files[vscode-cds@8.4.2] user setting to disable refactoring support when renaming/deleting CDS files (
cds.refactoring.files.rename.enabledandcds.refactoring.files.delete.enabled)[vscode-cds@8.4.0] Rename or move of CDS files and folders will update all
usingstatements to the renamed file[vscode-cds@8.4.0] Deletion of CDS files or folders will show all
usingstatements to the renamed file with possibility to remove those. Note: The referencing files will likely have compilation errors afterward.[vscode-cds@8.4.0] Telemetry reporting in SAP Business Application Studio
[cds-compiler@5.5.0] CDL parser: when the new experimental option
newParseris used, the compiler uses a CDL parser with a significantly smaller footprint (among other things).[cds-compiler@5.5.0] to.sql|hdi.migration: For SAP HANA, render
ALTERstatements as one big statement to improve performance.[cds-compiler@5.5.0] to.sql.migration: Give more helpful comments when using option
script.[cds.java@3.5.0] Added feature
cds-feature-uclwhich allows CAP applications to write custom event handlers for Unified Customer Landscape´s (UCL) SPII Tenant Mapping API.[cds.java@3.5.0] Added feature
cds-feature-ordwhich allows CAP applications to serve Open Resource Discovery (ORD) documents.[cds.java@3.5.0] Added the option to validate semi-open intervals with
@assert.range.[cds.java@3.5.0] Instance based authorization can now reject WRITE/DELETE/custom events with 403 instead of filtering via option
cds.security.authorization.instance-based.reject-selected-unauthorized-entity[cds4j@3.5.0] Codegen: added an option to improve naming for CDS entities with upper case characters containing slashes.
[cds4j@3.5.0] Support
Select.from(CqnTableFunction)to useHANA.hierarchyas source of a query[cds4j@3.5.0] Automatically rename node_id/parent_id based on the @Aggregation.RecursiveHierarchy annotation
[cds4j@3.5.0] Support
CqnAnalyzer.analyze()forCqnFilterableStatementas convenience[cds4j@3.5.0] Add support for filters and orderBy of elements in cds.Map (beta)
[cds@8.5.0] New
cds.i18nmodule used consistently for both, UI labels and runtime messages.[cds@8.5.0] Enhanced
cds.validateto support open intervals for:@assert.range:[(0),(Infinity)]->0 < x < ∞[cds@8.5.0]
package.jsonvalidation and suggestions for messaging services.[cds@8.5.0]
cds.log(): Detect binding to SAP Cloud Logging via user provided service. The user provided service must have tagcloud-logging.[cds@8.5.0] Support for function parameters via query component (example:
GET /foo?bar=bazinstead ofGET /foo(bar='baz'))[cds@8.5.0] Experimental support for programmatic draft actions
srv.new(MyEntity, data),srv.cancel(MyEntity.drafts, keys),srv.edit(MyEntity, data)andsrv.save(MyEntity.drafts, keys)[cds-mtxs@2.4.0] Deployment logs written by HDI to
stderrare now attached to deployment error messages.[cds-mtxs@2.4.0] For HANA, the initial job status for asynchronous tenant upgrades is now
QUEUED.[cds-mtxs@2.4.0] Annotation in extensions that are blocked by default can now be allow-listed:
jsonc"requires": { "cds.xt.ExtensibilityService": { "extension-allowlist": [ { "for": ["my.bookshop.Books"], "annotations": ["@mandatory", "@cds.api.ignore"] } ] } }[cds-mtxs@2.3.1] The
X-Correlation-IDheader is set for requests to Service Manager.[cds-mtxs@2.3.1] Extension projects can now be tested using
cds weven if the application base model contains@implannotations.
Changed
- [cds-dk@8.5.0]
cds importnow generates generic action/function in case of bound action/function collision and unbound function collision with @cds.validate = false. - [cds-dk@8.5.0]
cds add typescriptcreates projects withcds-tsxto run apps instead of formercds-ts. - [cds-dk@8.5.0]
cds deploywrites error output tostderr. - [cds-dk@8.5.0]
cds add httpnow evaluates mocks users when creatingAuthorizationheaders - [cds-dk@8.4.2]
cds inituses latest Maven Java archetype version 3.4.1 for creating Java projects. - [vscode-cds@8.4.3] (performance) expensive workspace scanning is only done during renaming/deleting files or folders if those contain CDS files
- [vscode-cds@8.4.2] performance improved when scanning the workspace and calculating refactorings when renaming/deleting CDS files
- [vscode-cds@8.4.0] Improve handling of fall back cds-lsp version 7.9.0
- [vscode-cds@8.4.0] Improve dynamic schema loading for
package.jsonandcds-rc.json - [vscode-cds@8.4.0] Improve size and start-up time by bundling
- [cds-compiler@5.5.0] Update OData vocabularies: 'Common', 'PersonalData', 'UI'.
- [cds.java@3.5.0] Property
cds.multiTenancy.subscriptionManager.clientCertificateHeaderhas been deprecated. Use 'cds.security.authentication.clientCertificateHeader' instead. - [cds.java@3.5.0] Property
cds.multiTenancy.security.internalUserAccess.enabledhas been deprecated. Usecds.security.internalUserAccess.enabledinstead. - [cds@8.5.0]
cds-deployscript has a non-zero exit code on deployment failure - [cds@8.5.0] Properties of type
cds.Binaryin URLs as well as request payload are converted toBuffers. Properties of typecds.LargeBinaryin request payload are converted toReadables. Previously, both were provided as Base64-encoded strings. This change can be deactivated viacds.env.features.base64_binaries = true, which is set by default for profileattic.
Fixed
- [cds-dk@8.5.0]
cds importthrows proper error message if Annotation element doesn't have Term attribute. - [cds-dk@8.5.0]
cds add approuterno longer enforces Node.js 22, which is not supporter by current@sap/approuterversion 17. The previous Node.js version 20 is used again. - [cds-dk@8.5.0]
cds add -pwith custom options now works if the entry was not in thepackage.jsonbeforehand. - [cds-dk@8.5.0]
cds add httpworks for actions without parameters. - [cds-dk@8.5.0]
cds add workzoneincludes theupdateManifestJsontask on initial generation. - [cds-dk@8.5.0]
cds build --wsno longer creates migration tables in shared database or wrong workspace. - [cds-dk@8.4.2]
cds add -p/--packagecorrectly parse plugin-contributed options. - [cds-dk@8.4.2]
cds add side-by-side-extensibilitydoes not throw an error. - [cds-dk@8.4.2] fix method name in
cds bindcredential handling. - [cds-dk@8.4.2]
cds add --helpno longer has missing line breaks in help text. - [cds-dk@8.4.2]
cdscommands no longer fail with an errorcds.extend is not a functionwith very old versions of@sap/cds. - [cds-dk@8.4.2]
cds add hanaadds therequires.dbentry to.cdsrc.jsonfor Java projects. - [cds-dk@8.4.2]
cds add datacreates decimal values with correct scale0if only precision is given, like inDecimal(15). - [cds-dk@8.4.1]
cds compile --to <unknown>shows a cleaner error message. - [cds-dk@8.4.1]
cds add datahandles composition of one correctly. - [cds-dk@8.4.1]
cds add httpcreates payloads for unbound actions in services. - [cds-dk@8.4.1]
cds compile --to xsuaacan now handle annotation expressions inwhereclauses. - [cds-dk@8.4.1]
cds add httpproduces requests for all expected data and no longer relies on existing data on the side. - [cds-dk@8.4.1]
cds add typercreatestsconfig.jsonthat works withcds-tsx. - [vscode-cds@8.4.1] Deleting CDS files now also suggests to remove
usingstatements without artifacts - [vscode-cds@8.4.0] Preview uses text document listener for refreshing preview file
- [vscode-cds@8.4.0] highlighting of escaped identifiers and parameter lists
- [vscode-cds@8.4.0]
usingpath proposals could have been suggesting JS files instead of CDS files in certain cases - [vscode-cds@8.4.0] on Windows if client mixes upper- and lowercase drive letters some requests could have failed
- [vscode-cds@8.4.0] CDS Typer was called when deleting a file which led to a misleading error output
- [vscode-cds@8.4.0] Analysis of dependencies failed when handling non-npm
package.jsonfiles (e.g. frompnpmlackingnameproperty) - [cds-compiler@5.4.4] Re-allow referring to mixins (and table aliases) in added columns
- [cds-compiler@5.4.4] Re-add foreign keys of named aspects to the OData CSN.
- [cds-compiler@5.4.2] to.sql: For SQLite, map
cds.MaptoJSON_TEXTto ensure text affinity. - [cds.java@3.5.0] Fixed a bug in
cds-feature-mt, causing data sources accidentally being initialized for service instances ofservice-managerwhich were meant for single tenancy use cases. Now data sources in multi-tenant environments are only created for service plancontainer. - [cds.java@3.5.0] Fixed a bug causing an
HTTP 500 Internal Server Error(CdsDefinitionNotFoundException) when a CDS service which is inactive due to a feature toggle is targeted in an OData V4 request. - [cds.java@3.5.0] Fixed a bug in
cds-feature-change-trackingcausing theStackOverflowErrorexception being thrown, when change-tracking entities with references to self. - [cds.java@3.5.0] Fixed a bug in the
versiongoal of thecds-maven-pluginprinting the version information of the wrong sub-module. - [cds.java@3.5.0] Fixed a bug, causing client certificates not to be handled correctly on endpoints secured with mTLS (e.g. SMS and UCL).
- [cds.java@3.5.0] Values for key elements annotated with
@Core.Immutableare no longer removed from the payload of updates. - [cds.java@3.4.1] Fixed a bug causing an
HTTP 500 Internal Server Error(CdsDefinitionNotFoundException) when a CDS service which is inactive due to a feature toggle is targeted in an OData V4 request. - [cds.java@3.4.1] Fixed a bug in
cds-feature-change-trackingcausing theStackOverflowErrorexception being thrown, when change-tracking entities with references to self. - [cds.java@3.4.1] Added filename support for annotation @Core.ContentDisposition.Type: 'inline' in cds-adapter-odata-v4. This ensures that the browser saves the content with the correct filename, if it can't be shown in browser window (e.g. zip archive).
- [cds.java@3.4.1] Fixed an issue in the
cds-services-archetypecausing to create initial CAP Java projects with a reference to a snapshot version of the@sap/cds-dk. - [cds.java@2.10.5] Fixed a bug, causing redundant change log entries being generated for changed localized elements.
- [cds.java@2.10.5] Fixed a bug, causing translated values depending on user locale to appear in values for identifiers for change log entries.
- [cds.java@2.10.5] Fixed a bug, causing UI provided by
cds-feature-change-trackingto omit text for attributes of the change tracked entities when the respective field is hidden from the UI. - [cds.java@2.10.5] Fixed a bug in
cds-feature-change-trackingcausing theStackOverflowErrorexception being thrown, when change-tracking entities with references to self. - [cds4j@3.5.0] Fix builder interface methods for structured elements by adding
@CdsNameannotations. - [cds4j@3.5.0]
@cds.java.ignoreannotations on structured elements are respected - [cds4j@2.10.5] Fixed a bug, causing database implementations to fail to load in ForkJoinPool threads
- [cds4j@2.10.5] SAP HANA HEX mode: fixed fallback to non-hex SQL on "HEX enforced but cannot be selected" errors on HANA QRC 3/2024
- [cds@8.5.0]
cds.validateshould not delete readonly keys fromreq.data - [cds@8.5.0]
cds.validateshould not reject imported associations - [cds@8.5.0] Readonly fields must not be set when creating draft entities
- [cds@8.5.0] Validation of mandatory properties caused streams to be rejected for new OData adapter
- [cds@8.5.0]
cds.logwith null parameters and JSON format - [cds@8.5.0]
cds.compile.to.sqlproper replacement for sqlite session variables in java projects - [cds@8.5.0]
cds.compile.to.serviceinfoignores only theendpointsproperty for unknown protocols - [cds@8.5.0]
Preference-Appliedheader is returned in OData adapter if requested - [cds@8.5.0] No location header is returned on OData update requests if
minimalpreference is set - [cds@8.5.0] Handling of invalid requests for views with parameters
- [cds@8.4.2]
cds.compile.to.edmxif using the new builtin typecds.Map - [cds@8.4.1] Validate request method for operations
- [cds@8.4.1] Correctly generate CQN for lambda expressions in new OData adapter
- [cds@8.4.1]
req.diff()on old database with property transitions - [cds-mtxs@2.4.0] Status codes for parallel async requests are always reported correctly.
- [cds-mtxs@2.3.1] The access token coming from Service Manager is redacted with
DEBUGoutput on. - [cds-mtxs@2.3.1] The Service Manager client will now poll the ongoing operation for containers which are on "in progress" if it can find an existing instance instead of erroring out.
- [cds-mtxs@2.3.1]
cds login --clientworks correctly with client credentials from a service key. - [cds-mtxs@2.3.1] Synchronous upgrades don't fail for all tenants when there's a tenant for which the upgrade fails.
October 2024
Added
- [cds-dk@8.4.0] Added support for
importandexportfor auto-completion inpackage.jsonand.cdsrc.json. - [cds-dk@8.4.0]
cds add side-by-side-extensibilityadds configuration for logic extensibility via extension points (Java). - [cds-dk@8.4.0]
cds init --javacan be used as an alias tocds init --add java. - [cds-dk@8.4.0] Add cds schema for
helmbuild plugin. - [vscode-cds@8.3.0] Preview of
mta.yamlvia Mermaid diagram - [vscode-cds@8.3.0] show absolute name and kind of artifact in hover and completion details
- [cds-compiler@5.4.0] to.edm(x):
cds.Mapas empty open complex type with namecds_Mapor if the definition has been assigned@open: falseas empty open complex typecds_Map_closedin OData V4. - [cds.java@3.4.0] Added support for annotation
@Core.ContentDisposition.Typeincds-adapter-odata-v4. - [cds.java@3.4.0] Added support for Preference
omit-values=nullsfor OData V4. To omitnullvalues in payload the headerPreferwith valueomit-values=nullsmust be specified. - [cds.java@3.4.0] The goal
addof thecds-maven-pluginsupports adding AMS integration to a CAP Java project. - [cds4j@3.4.0] Support
where in <subquery>predicates in Select, Update and Delete - [cds4j@3.4.0] New case-when-then API to build case expressions
- [cds4j@3.4.0] SAP HANA: optimized search over to-many associations
- [cds4j@3.4.0] Add basic support for
cds.Maptype (beta) - [cds@8.4.0] Set the maximum allowed size of HTTP headers in bytes for
$batchsubrequests via flagcds.env.odata.max_batch_header_size(default: 64 KiB) - [cds@8.4.0] New OData flag
cds.env.odata.context_with_columnsthat adds selected and expanded columns to@odata.context. Default isfalse - [cds@8.4.0] New experimental option
--workerstocds watch/run/servethat allows running acds.servercluster (process env variableWORKERSorCDS_WORKERScan be used alternatively) - [cds-mtxs@2.3.0] If extensibility is disabled, the upgrade operation now checks if extensions exist to avoid potential data loss. If intended the check can be disabled by setting
cds.requires['cds.xt.DeploymentService'].upgrade.skipExtensionCheck: true. - [cds-mtxs@2.3.0] Requests to Service Manager now forward the correlation ID.
Changed
- [cds-dk@8.4.0]
cds initdoes not put comments in JSON files within.vscode/. - [cds-dk@8.4.0]
cds import --from asyncapinow uses CloudEvents type in@topicannotation. - [cds-dk@8.4.0]
cds deploydoes not fall back to the deprecatedhanatrialservice plan any more. - [eslint-plugin-cds@3.1.1]
no-db-keywordsis no longer part of the 'recommended' rules, as the cds-compiler takes care of quoting SQL keywords, if they are used as identifiers. - [vscode-cds@8.3.0] Visualize dependencies:
- no longer need to install 3rd party extension
- no longer need to show
.dottext file first to render the graph i.e. less flickering - removed clumsy zoom buttons. Use mouse wheel or touchpad gestures to zoom in/out, mouse drag to move
- [vscode-cds@8.3.0] Improved UI code formatter settings: better usage of horizontal space, number settings are now shown in same line
- [cds-compiler@5.4.0] Update OData vocabularies: 'Capabilities', 'Common', 'Core', 'PersonalData', 'PDF', 'UI'.
- [cds-compiler@5.4.0] to.cdl: Identifiers using non-ASCII unicode characters, as introduced in v4.4.0, are no longer quoted.
- [cds-compiler@5.4.0] For propagated expressions as annotation values, the
=is changed as well, if it is a simple identifier. - [cds.java@3.4.0] Removed deprecated goals
addTargetPlatformandaddIntegrationTestsfrom thecds-maven-plugin. Both are replaced by goaladdwith corresponding feature parameter. - [cds.java@3.4.0] Dependencies to modules with groupId
com.sap.cloud.mthave been removed. Classes originating from these dependencies have been directly packaged intocds-feature-mtand other internal modules. Packagescom.sap.cloud.mtandcom.sap.cds.mtxhave been renamed tocom.sap.cds.feature.mtandcom.sap.cds.services.util.lib. - [cds.java@3.4.0] Classes
ClientCredentialJwtAccessandClientCredentialJwtReaderhave been deprecated. - [cds.java@3.4.0] Minimum version of
com.sap.dwc:util-caplibrary for DWC integration into CAP Java has been increased to2.3.15. - [cds.java@3.4.0] Added property
cds.multiTenancy.security.internalUserAccess.enabledto control authorization of MT lifecycle endpoints for internal users. In production profile,internal-useris not authorized by default anymore. - [cds@8.4.0] For remote service calls to OData v2 services, less conversions are performed on the returned data
- [cds@8.4.0] Internal API
srv.endpointsnow always is an array of endpoint objects, an empty one if the service is not served to any protocol
Fixed
- [cds-dk@8.4.0]
cds envnow colors is output honoring settings likeFORCE_COLOR. - [cds-dk@8.4.0]
cds addcommands correctly detect Java/Node in Microsoft PowerShell. - [cds-dk@8.4.0]
cds add hanadoesn't adddependenciesto.cdsrc.jsonany more. - [cds-dk@8.4.0]
cds add cf-manifestuses the newsap_java_buildpack_jakartabuildpack. - [cds-dk@8.4.0]
cds build --productionnow correctly formats console log output. - [cds-dk@8.4.0]
cds addcorrectly handles entries likecds.requires.authif the following configuration is scoped in a profile. - [cds-dk@8.4.0]
cds addplugins can use a shortcut for their options. - [cds-dk@8.4.0]
cds importfix for no entity schema in OData V2. - [eslint-plugin-cds@3.1.1]
auth-restrict-grant-servicecan now handle invalid values for@restrict - [eslint-plugin-cds@3.1.1]
auth-use-requiresnow handlesnullvalues for@restrict.grant.to - [eslint-plugin-cds@3.1.1]
auth-valid-restrict-tois now more robust against invalid properties such as__proto__and reduces the number of false positives - [eslint-plugin-cds@3.1.1]
auth-valid-restrict-wherenow handles and reports invalid value@restrict: [{where: null}] - [eslint-plugin-cds@3.1.1]
auth-no-empty-restrictionsnow handles invalid value@restrict: [null] - [vscode-cds@8.3.0] highlighting of CASE-statement keywords when put in their own line
- [vscode-cds@8.3.0] analysis of dependencies for certain cases
- [cds-compiler@5.4.0] compiler: Some invalid CDL snippets could crash the parser and compiler.
- [cds-compiler@5.4.0] to.edm(x): OData V2:
Core.Linkswatermark annotation has axmlnsattribute now. - [cds-compiler@5.4.0] for.seal: Remove unapplied extensions from CSN.
- [cds-compiler@5.4.0] to.sql.migration: Handle
ALTER COLUMNfor columns withNOT NULLand a default value. - [cds-compiler@5.3.2] to.sql|hdi|hdbcds|effective: Handle subexpressions in conjunction with exists predicate.
- [cds.java@3.4.0] Fixed the messaging default error handler behaviour when receiving messages of not subscribed tenants. By default, such messages are now acknowledged (i.e. skipped) to avoid growing error queues in the messaging broker.
- [cds.java@3.3.1] Fixed a bug, causing an HTTP connection leak in health indicator
modelProvider. - [cds.java@3.3.1] Fixed a bug, causing
deploymentServicehealth indicator being enabled by default. - [cds.java@3.3.1] Fixed a bug, causing UI provided by
cds-feature-change-trackingto omit text for attributes of the change tracked entities when the respective field is hidden from the UI. - [cds4j@3.4.0] Fixed a bug in code generator, causing builder interfaces to be generated with incorrect references when builders for nested inline structured types are generated.
- [cds4j@3.3.1] SAP HANA HEX mode:
- fixed fallback to non-hex SQL on "HEX enforced but cannot be selected" errors on HANA QRC 3/2024
- fixed SQL mode statement hints for hierarchy search queries
- [cds@8.4.0] Commands like
cds deploynow fail with a clear error message if called with an invalid value forcds.features.assert_integrity(liketrue) - [cds@8.4.0] Authentication validation errors (e.g., expired token, wrong audience) are logged as warning
- [cds@8.4.0] Requests using
$applywill always apply implicit sorting on best effort mechanism - [cds@8.4.0] Properly handle empty content-type in new OData adapter
- [cds@8.4.0] Error/crash with
cds.features.odata_new_parserfor requests containing$expand=*and$select, which selects individual columns and star, e.g.$select=ID,* - [cds@8.4.0] Referencing new entities in
$batchwith new OData adapter did not work properly when using non integer content IDs in multipart/mixed - [cds@8.4.0]
cds.compile.to.serviceinfoto ignore unknown protocols - [cds@8.4.0] New OData adapter and
cds.spawndid not crash on programming errors (for example TypeError) - [cds@8.3.1] Erroneous caching in
cds.validate - [cds@8.3.1] Precedence of request headers for
cds.context.id - [cds@8.3.1] For
quotednames, overwrite@cds.persistence.namefor drafts and localized views properly - [cds@8.3.1] Do not use hana error code as http status code
- [cds-mtxs@2.3.0] Migration command
cds-mtx-migrate --syncTenantListis now more robust. - [cds-mtxs@2.3.0]
DEBUG=mtxredacts Service Manager credentials. - [cds-mtxs@2.3.0] When deleting a tenant HDI container, all of its service bindings are deleted – not just the ones labeled with the tenant ID.
- [cds-mtxs@2.3.0] Extension linter now checks
@mandatoryand@readonlymore accurately. - [cds-mtxs@2.3.0]
cds.xt.JobsServiceinserts jobs and tasks in one transaction.
September 2024
Added
[cds-dk@8.3.0]
cds add mta,cds add helmandcds add cf-manifestexecute themvn cds:add -Dfeature CF/K8Sunder the hood for Java projects.[cds-dk@8.3.0]
cds compile --to mermaidnow supportsmta.yamlto generate a visualization of your deployment descriptor.[cds-dk@8.3.0]
cds add datanow also generates data for models imported withcds import.[cds-dk@8.3.0]
cds add datanow also supports structured types.[cds-dk@8.3.0]
cds deploynow can also write its DDL statements to a separate log file with the--out <file>parameter.[cds-dk@8.3.0]
cds add dynatraceis now supported for Kyma.[cds-dk@8.3.0]
cds import --name ...to be used in RFC importer (@sap/cds-rfc).[cds-dk@8.3.0]
cds add cloud-logging --with-telemetryandcds add dynatraceare added to theproductionprofile by default and respect theforoption.[cds-dk@8.2.0]
cds add dynatraceadds configuration for Dynatrace.[cds-dk@8.2.0]
cds add cloud-loggingadds configuration for SAP Cloud Logging. Option--with-telemetryallows for configuration with telemetry.[cds-dk@8.2.0]
cds versionshows version information for@cap-js/db-service.[cds-dk@8.2.0]
cds add portalnow adds SAP Cloud Portal configuration for Kyma.[cds-dk@8.2.0]
cds add handlerallows to create handler stubs (for Java only, beta)[cds-dk@8.2.0]
cds init --add java --no-dblets you create a Java project without persistent database.[cds-dk@8.2.0]
cds importsupports plugins.[cds-dk@8.2.0]
cds add containerizenow supports unified-runtime.[cds-dk@8.2.0]
cds add helmnow supports templating in the mountPath in the additionalVolumes.[cds-dk@8.2.0] Experimental support for
tsxthroughcds-tsx.[cds-dk@8.2.0]
cds bind --to-app-servicesnow usesvcap.nameto resolve multiple services with same type. A warning is issued in case of ambiguities.[cds-dk@8.2.0]
cds compile --to ord -o <name>supports.jsonfile extension.[cds-dk@8.2.0]
cds import --destinationapplies destination credentials to existing service configurations.[eslint-plugin-cds@3.1.0] api:
- rules now have a
nameproperty, containing the rule name - new exported property
parser
- rules now have a
[eslint-plugin-cds@3.1.0] rules: there is now an
experimentalrule group, containing new rules that can be tested[eslint-plugin-cds@3.1.0] new experimental rules were added:
@sap/cds/sql-null-comparison@sap/cds/no-java-keywords
[eslint-plugin-cds@3.1.0]
auth-valid-restrict-grantnow proposes '*' when incorrect@restrict.grantvalue 'any' is used[vscode-cds@8.2.0] code completion for artifacts within
usingstatements now also completes single name segments with complete name[cds-compiler@5.3.0] compiler:
- A warning is emitted if a string enum's values are longer than the specified length.
- ON-condition rewriting has been improved and now supports secondary associations.
[cds-compiler@5.3.0] to.edm(x): Support optional action and function parameters in OData V4. The following rules apply:
- A parameter declared
not nullwithout default value is mandatory. - A function parameter declared
nullwithout default value is mandatory. - An action parameter declared
nullwithout default value is optional as it is equivalent to@Core.OptionalParameter { DefaultValue: null }. - A parameter with a default value is optional and the default value is rendered as
@Core.OptionalParameter { DefaultValue: <value> }regardless of its nullability. @Core.OptionalParameter: truecan be used to turn a mandatory parameter into an optional parameter (especially function parameters) and to signal an unspecified default value in the API if the parameter has no default clause.@Core.OptionalParameter: falseturns the creation of a@Core.OptionalParameter: { Default: ... }annotation off.- A default clause or
@Core.OptionalParameter: <bool>have no effect on an explicit binding parameter. - Mandatory and optional action parameters may appear in any order.
- Optional function parameters must not be followed by mandatory parameters.
- A parameter declared
[cds-compiler@5.3.0] to.edm: Forward
@OpenAPI {...}into EDM Json with option--odata-openapi-hints.[cds-compiler@5.3.0] cdsc: Option
--transitive-localized-viewswas added.[cds.java@3.3.0] Introduced a new health indicator
modelProviderto include the health status of MTX sidecar into the application's/actuator/healthendpoint.[cds.java@3.3.0] Introduced a new setting
strictSettersfor thegenerategoal of the CDS Maven Plugin. This enables stricter type-safe setters for data access interfaces, instead of using a plainMap<String, Object>type.[cds.java@3.3.0] OData V4 protocol adapter now supports parameter aliases for entity keys.
[cds.java@3.3.0] OData V4 protocol adapter now supports parameter aliases for function calls.
[cds.java@3.3.0] New property
cds.odata-v4.fiori-preview.ui5.versionallows to configure the UI5 version used by the Fiori Preview.[cds.java@3.2.0] The goal
addof thecds-maven-pluginsupports adding CloudFoundry / Kubernetes support and health checks to a CAP Java project.[cds.java@3.2.0] The goal
generateof thecds-maven-pluginsupports generation of template handlers for actions and functions from the CDS models.[cds.java@3.2.0]
TenantProviderService.readTenantsInfonow accepts a set of strings that filters the fields of the retrievedTenantInfoobjects. This helps to reduce memory consumption when there is a large number of subscribed tenants.[cds.java@3.2.0] OData V4 PATCH or PUT requests now handle
If-Match: *andIf-None-Match: *, allowing to enforce a strict update respectively insert behaviour instead of the default upsert behaviour.[cds.java@3.2.0] The goal
addof thecds-maven-pluginsupports adding application logging to a CAP Java project.[cds.java@3.2.0] Deep authorizations now support conditions with paths involving associations in
@restrictpredicates.[cds.java@3.2.0] Support OData hierarchical requests, using
com.sap.vocabularies.Hierarchy.v1.TopLevels,ancestors,descendantstransformations. The feature is supported only on SAP HANA and needs to be enabled by settingcds.query.hierarchy.enabledtotrue.[cds.java@3.2.0] Support
nullvalues for collection-typed arguments for OData V4 as arguments for actions and functions.[cds4j@3.3.0] Support predicates comparing managed to-one associations with structured target key values
[cds4j@3.3.0]
@cds.java.namecan be used as alias with lower priority in all places where@cds.java.this.nameis supported[cds@8.3.0]
cds.deploycan now also write its DDL statements to a separate log[cds@8.3.0] Symlinks are followed in
cds test[cds-mtxs@2.2.0]
PUT /-/cds/saas-provisioning/tenantandPOST /-/cds/saas-provisioning/subscribeaccept additional environment variables to the HDI deployment via the generic options_, e. g. additionalVCAP_SERVICES:jsonc"_": { "hdi": { "deployEnv": { "VCAP_SERVICES": { ... }, "SOMETHING_ELSE": "something" }, ... } }
Changed
- [cds-dk@8.3.0]
cds add samplenow uses@ui5/cliversion 4. - [cds-dk@8.3.0]
cds importnow throws a warning for OpenAPI files containing recursive data types. - [cds-dk@8.2.0]
cds add hanawrites configuration forcds build/compileto no longer produce native SAP HANA associations. This improves deployment performance, but has a one-time performance penalty (in the next deployment). - [cds-dk@8.2.0]
cds loginprints shorter messages about refresh tokens. - [cds-dk@8.2.0]
cds inituses latest Maven Java archetype version 3.2.0 for creating Java projects. - [vscode-cds@8.2.0] hover and completion proposal details now show artifact kind
- [vscode-cds@8.2.0] Minimum VSCode version is now 1.90.2
- [cds.java@3.2.0] Reading inactive instances of draft-enabled entities no longer issues data access events to the audit log.
- [cds.java@2.10.4] Reading inactive instances of draft-enabled entities no longer issues data access events to the audit log.
- [cds4j@3.3.0] Copy Select w/ modifier: when replacing element refs on the select list with non-ref values, the ref's display name is now propagated as alias to
Modifier::selectListValue - [cds@8.3.0] Unknown protocols in
@protocolannotations formerly prevented server starts; they are merely ignored now with a warning in the logs. - [cds@8.3.0] Deprecated configuration flag
cds.env.features.keys_in_data_compatbecause of incompatibility with data validation in new OData adapter. - [cds@8.3.0]
@cds.api.ignoredoesn't suppress an association, the annotation is propagated to the (generated) foreign keys. - [cds@8.3.0] Where clauses of restrictions for bound actions and functions defined by
@restrictare now enforced and no longer ignored. - [cds@8.3.0]
@cap-js/telemetryis now loaded before other plugins to allow better instrumentation. - [cds@8.2.3] All annotations in input data are skipped and removed from the input by
cds.validate()- as we did in legacy OData adapter - [cds-mtxs@2.2.0] HANA deployments without
resources.tgzwill now skip the deployment instead of failing with an error. - [cds-mtxs@2.2.0] Debug logs for HANA deployments can be set using
DEBUG=deploy. - [cds-mtxs@2.2.0] The error about an invalid scope when fetching a token now contains the expected scope.
- [cds-mtxs@2.2.0] Logs for enqueued jobs are not colored in non-TTY environments any more.
Fixed
- [cds-dk@8.3.0]
cds add workzone-created apps can now directly be added via Content Manager in SAP Build Work Zone. - [cds-dk@8.3.0] Less obtrusive warning about
cdsinstead ofcds-tsin Typescript projects. - [cds-dk@8.2.3] In
cds.cli.command, commands now show up in the correct case. - [cds-dk@8.2.3]
cds addplugins don't throw aTypeErrorifcds.cli.optionsisundefined. - [cds-dk@8.2.3]
cds watchno longer ignores*git/folders, but only.git/. - [cds-dk@8.2.3]
cds importupdatespackage.jsonfile insrvfolder if existing. Thesrvfolder name is determined bycds.env.folders.srvconfig or parameter--out. - [cds-dk@8.2.3]
cds importdoesn't change existing service configuration data. Now,destinationcredentials are only saved for theproductionprofile. - [cds-dk@8.2.2] BDSA-2024-6188: vulnerability with express.js 4.19.2
- [cds-dk@8.2.2]
cds import --outcopies the given metadata file to the correct output folder. CLI options are propagated to thecds.importAPI. - [cds-dk@8.2.2]
cds add sampleno longer creates a irregular whitespace inadmin-service.js. - [cds-dk@8.2.2]
cds loginnow correctly fetches tokens again with client credentials (or hints at invalid credentials). - [cds-dk@8.2.2]
cds add handlercan now also be called from thesrvdir. - [cds-dk@8.2.1] Update
@sap/hdi-deployto fix CVE-2024-4067 withmicromatch4.0.7 - [cds-dk@8.2.1]
cds addplugins now correctly parse flags (options withtype: 'boolean') if not used as the last argument. - [cds-dk@8.2.0]
cds importfix for single entity schema in OData V2. - [cds-dk@8.2.0]
cds add portalcorrectly sets theappIdin itsCommonDataModel.jsonfrom themanifest.jsonapp ID. - [cds-dk@8.2.0]
cds add html5-repoadds the SAP BTP Destination service as a hard dependency again for Kyma projects. - [cds-dk@8.2.0]
cds build --ws-packcorrectly creates tarball archives for workspaces with nestednode_modulesfolders. - [cds-dk@8.2.0]
cds importnow shows proper error message in case of bound action collision. - [cds-dk@8.2.0]
cds deploy --to hananow runs an existinghanabuild task configuration instead of a default one. - [cds-dk@7.9.8] BDSA-2024-6188: vulnerability with express.js 4.19.2
- [eslint-plugin-cds@3.1.0] cli: Running
eslinton the command line now runsinferredrules again - [eslint-plugin-cds@3.1.0]
start-entities-uppercaseno longer reports false positives for elements - [eslint-plugin-cds@3.1.0] Typescript errors in
lib/types.d.tswere fixed - [eslint-plugin-cds@3.1.0] Rule property
hasSuggestions: truewas removed from rules that did not have suggestions - [eslint-plugin-cds@3.1.0] Custom rule tests using
runRuleTesterdid not catch errors in files insidevalid/. Tests can now also be run with other test runners such asmochaandnode --testinstead of justjest - [eslint-plugin-cds@3.1.0]
auth-lint rules have been reworked to reduce the number of false positives and negativesauth-valid-restrict-whereno longer runs in quadratic time and now handles "expressions as annotation values"auth-no-empty-restrictionsnow runs for actions and functions, tooauth-use-requireswill not propose@requiresanymore, if the@restricthas awhereconditionauth-valid-restrict-grantsincorrectly proposed to useWRITEinstead of other events; it no longer crashes for invalid value types and now runs on all CSN artifactsauth-valid-restrict-keyshas improved reporting about misspelled vs unknown properties; it now runs on all CSN artifacts
- [eslint-plugin-cds@3.0.5] Inferred rules did not run when executed via
eslintorcds lint. - [vscode-cds@8.2.0] highlighting of element names in annotate statements and of special element names
entity,type,event - [vscode-cds@8.2.0] completion: rename of source folders led to wrong using path proposals
- [vscode-cds@8.2.0] completion: using path proposals did not work in multi-line using statements
- [vscode-cds@8.2.0] maintain translation quickfix sent wrong document version
- [cds-compiler@5.3.0] CDL parser: Issue warning if annotation assignments have been written at an invalid position inside a type expressions.
- [cds-compiler@5.3.0] CDL parser: Issue warning for arrayed parameter with default value.
- [cds-compiler@5.3.0] to.cdl: Arrayed parameters with default values were not rendered correctly.
- [cds.java@3.3.0] Fixed a bug, causing excessive serialization of elements of complex type not present in the payload returned via OData action/function import.
- [cds.java@3.3.0] Fixed a bug, preventing OData V4 parser to correctly parse entities, actions or functions with the elements or the arguments of types defined within the CDS services.
- [cds.java@3.3.0] Fixed a bug, causing redundant change log entries being generated for changed localized elements.
- [cds.java@3.3.0] Fixed a bug, causing translated values depending on user locale to appear in values for identifiers for change log entries.
- [cds.java@3.2.0] Fixed a bug, causing audit log implementation to fail with
NullPointerExceptionwhen processing the associations with elements relevant to Audit Logging. - [cds.java@3.2.0] Fixed a bug, causing failed unsubscriptions triggered by Subscription Manager Service in a Deploy with Confidence context.
- [cds.java@3.2.0] Fixed a bug, causing incorrect EDMX being returned by the
$metadataendpoint when special characters are used in the I18N texts. - [cds.java@3.2.0] Fixed a bug, causing
ErrorStatusExceptionbeing thrown when auditing accesses to inactive instances of draft-enabled entities. - [cds.java@3.2.0] Fixed a bug, causing failing requests to
/cdsactuator when one of the internal contributors throws an exception. - [cds.java@3.2.0] Fixed an incompatible change, causing applications with multiple xsuaa bindings to fail on startup due to missing XSUAA configuration for secondary bindings. These applications now can set
cds.security.xsuaa.allowMultipleBindingtotrueso that all xsuaa bindings are available in custom spring auto-configurations. Note: CAP Java still does not process multiple bindings and requires a dedicated spring configuration. In general, applications should refrain from configuring several XSUAA bindings. - [cds.java@2.10.4] Fixed a bug, causing audit log implementation to fail with
NullPointerExceptionwhen processing the associations with elements relevant to Audit Logging. - [cds.java@2.10.4] Fixed a bug, causing incorrect EDMX being returned by the
$metadataendpoint when special characters are used in the I18N texts. - [cds.java@2.10.4] Fixed a bug, causing
ErrorStatusExceptionbeing thrown when auditing accesses to inactive instances of draft-enabled entities. - [cds.java@2.10.4] Fixed a bug, causing failing requests to
/cdsactuator when one of the internal contributors throws an exception. - [cds4j@3.3.0] Fixed a bug, causing SQL exceptions when processing deep updates from flattened runtime views
- [cds4j@3.3.0] Fixed a bug in code generator leading to missing annotations
@CdsNameon setters and getters in FLUENT mode. - [cds4j@3.3.0] Fixed a bug causing database implementations to fail to load in ForkJoinPool threads
- [cds4j@3.3.0] Fixed a bug in $apply processing causing filter preceding a filter by grouped values to be ignored
- [cds4j@3.3.0] Fixed bugs in code generator:
- [cds4j@3.3.0] leading to incorrect interfaces being generated for entities annotated with the
@cds.java.extendsnaming entities that contain inline types. - [cds4j@3.3.0] causing builder interfaces for global structured types to be omitted.
- [cds4j@3.3.0] leading to missing annotations
@CdsNameon setters and getters in FLUENT mode.
- [cds4j@3.3.0] leading to incorrect interfaces being generated for entities annotated with the
- [cds4j@3.3.0] Fixed inline count for queries which use top 0
- [cds4j@2.10.4] Skip updates with empty entries
- [cds4j@2.10.4] Fixed a bug, causing
Cds4jServiceLoaderfailing to load certain classes when used in asynchronous code - [cds@8.3.0] When modifying active children of of draft-enabled entities directly (
bypass_draft), the error message was misleading. - [cds@8.3.0] Cleaning up drafts calls
CANCELhandlers - [cds@8.3.0] Allow to call
CANCELon draft entities programmatically - [cds@8.3.0] Encoding of
@odata.nextLinkpath - [cds@8.3.0] Computed fields are ignored in projections
- [cds@8.3.0] Consider
idin arefstep for mapping of service elements to their name on the db. - [cds@8.3.0] Feature toggles with new OData adapter.
- [cds@8.3.0] Target entity was incorrectly calculated for some actions in new OData adapter.
- [cds@8.3.0]
req.diff()does not manipulate existing queries anymore. - [cds@8.3.0] New OData adapter: normalize on commit error in
/$batch - [cds@8.2.3] Unmanaged associations are excluded from
@mandatorychecks - [cds@8.2.3] Properly reject direct requests to
DraftAdministrativeData - [cds@8.2.3] Virtual elements annotated with
@Core.MediaType - [cds@8.2.3] OData Requests targeting a specific instance and custom handler returns empty array
- [cds@8.2.3]
cds-serveandcds-deploynow setcds.cliinformation - [cds@8.2.2] Erroneous caching in
cds.validate - [cds@8.2.2] Properly check
$filterelement types across navigations - [cds@8.2.1] Date validation of legacy OData protocol adapter
- [cds@8.2.1] Content-Length headers in multipart batch request body
- [cds@8.2.1] Streaming requests with virtual properties
- [cds@8.2.1] Bring back support for
x-correlationid - [cds@8.2.1] Validation of inlined elements
- [cds@8.2.1] multipart
$batchparsing with -- as part of payload - [cds-mtxs@2.2.0]
/-/cds/saas-provisioning/dependenciesshow a better error message when it can't resolve its configured SaaS dependencies. - [cds-mtxs@2.2.0] The Service Manager client re-fetches the authorization token on retries.
- [cds-mtxs@2.2.0] Better error handling in
cds.xt.JobsService.
Removed
- [cds-dk@8.2.0] Removed
buildandbuild:tsnpm scripts that were generated intopackage.jsonwhen adding thetypescriptfacet. - [eslint-plugin-cds@3.1.0] api:
genDocswas removed - [cds@8.3.0] Alpha support for SAP Event Broker-based messaging (kind
event-broker). Use CDS plugin@cap-js/event-brokerinstead.
August 2024
Added
- [cds-dk@8.1.1] Add more features to CAP project creation wizard in SAP Business Application Studio.
- [cds-dk@8.1.1]
cds.add.mergenow you specify akeyin itsdeletionssemantics. - [vscode-cds@8.0.2] Mermaid: add option for layout direction
- [cds-compiler@5.2.0] to.edm(x): Add
@Core.Links { rel: 'author', href: 'https://cap.cloud.sap' };as watermark to lead schema. - [cds-compiler@5.2.0] to.sql.migration: Introduce option
scriptto aid in generation of manual migration scripts by not aborting when encountering lossy changes. - [cds4j@3.2.0] SAP HANA:
- Support to resolve and normalize queries, that use hierarchy transformations:
CqnTopLevelsTransformation,CqnDescendantsTransformation,CqnAncestorsTransformation - Use
SCOREfunction to search hierarchies in HEX mode
- Support to resolve and normalize queries, that use hierarchy transformations:
- [cds4j@3.2.0] Extended support for runtime views
- [cds@8.2.0] Allow
cds.connect.to (SomeService)whereSomeServiceis a class - [cds@8.2.0] Lean draft: support CDS orderBy in
list status: all - [cds@8.2.0] Support where not in as object in
cds.qlexpressions like:where({ID:{not:{in:[...]}}}) - [cds@8.2.0] Unbound CDS functions now show up in the server's index page along with an exemplary call signature
- [cds@8.2.0]
cds.log's JSON formatter:- Field
w3c_traceparentis filled based on request headertraceparent(cf. W3C Trace Context) for improved correlation - Custom fields
cds.env.log.cls_custom_fieldsare filled if bound to an instance of SAP Cloud Logging - Default
cds.env.log.als_custom_fieldsenhanced by{ reason: 3 }(project config takes precedence)
- Field
- [cds@8.2.0] Support for
cds.hanatypes likecds.hana.ST_POINTincds.builtin - [cds@8.2.0] Internal
cds.debug()API now always returns a logger instance, which allows switching on debugging subsequently, e.g. by the like ofcds.log('sql','debug') - [cds@8.2.0] New config flag
cds.server.shutdown_on_uncaught_errorsallows to control whether the server should shut down on uncaught errors. Default istrue
Changed
- [cds-dk@8.2.0]
cds add hanawrites configuration forcds build/compileto no longer produce native SAP HANA associations. This improves deployment performance, but has a one-time performance penalty (in the next deployment). - [cds-dk@8.2.0]
cds loginprints shorter messages about refresh tokens. - [cds-dk@8.2.0]
cds inituses latest Maven Java archetype version 3.2.0 for creating Java projects. - [cds-dk@8.1.1]
cds inituses latest Maven Java archetype version 3.1.0 for creating Java projects. - [cds-compiler@5.2.0] for.odata: No longer reject default values on action/function parameters.
- [cds-compiler@5.2.0] to.edm(x): Raise warning for default values on action/function parameters that they are ignored.
- [cds@8.2.0] Revert workaround from 8.1.0 for server startup message
WARNING: Package '@sap/cds' was loaded from different installations. This is now addressed in@sap/cds-mtxs2.0.5. - [cds@8.2.0] When parsing CSV files,
cds.deployno longer doubles a literal\character (backslash) with a second backslash (\\), but retains it as-is. This caused unwanted data changes. - [cds@8.2.0] Optimized handling of large binaries (BLOBs) in case of drafts. Unchanged BLOBs are not copied into the draft entity. If those BLOBs from draft entities are requested, the unchanged BLOBs will be fetched from the corresponding active entity. Note that this change may require adjustment of custom logic, if large binaries from draft entities are requested (for example, using
ql.SELECTstatement). To restore previous behavior usecds.features.binary_draft_compat.
Fixed
- [cds-dk@8.2.0]
cds importfix for single entity schema in OData V2. - [cds-dk@8.2.0]
cds add portalcorrectly sets theappIdin itsCommonDataModel.jsonfrom themanifest.jsonapp ID. - [cds-dk@8.2.0]
cds add html5-repoadds the SAP BTP Destination service as a hard dependency again for Kyma projects. - [cds-dk@8.2.0]
cds build --ws-packcorrectly creates tarball archives for workspaces with nestednode_modulesfolders. - [cds-dk@8.2.0]
cds importnow shows proper error message in case of bound action collision. - [cds-dk@8.2.0]
cds deploy --to hananow runs an existinghanabuild task configuration instead of a default one. - [cds-dk@8.1.2] Dependency update for
axiosto fix CVE-2024-39338. - [cds-dk@8.1.2]
cds loginnow fetches the passcode URL for the subscriber tenant if the subdomain is given. - [cds-dk@8.1.2]
cds buildnow correctly generates migration tables forCodeListentities. - [cds-dk@8.1.1]
cds importnow gives proper error message for OData import in case of invalid OData version or invalid encoding. - [cds-dk@8.1.1]
cds importnow able to ignore invalid escape sequence in the description of properties for OData V2. - [cds-dk@8.1.1]
cds add mtadoes not error when theapp/routerfolder was deleted. - [cds-dk@8.1.1]
cds version -idoes not show a globally installed version when none is installed or linked. - [cds-dk@8.1.1]
cds compile --to openapino longer fails withError: Unknown protocol: graphql. - [cds-dk@8.1.1]
cds add datacan now correctly handle circular dependencies in entities that point to themselves via associations and compositions. - [cds-dk@8.1.1]
cds addreturns correct suggestions for shell completion. - [cds-dk@8.1.1]
cds versionreports correct@sap/cds-compilerversion. - [cds-dk@8.1.1]
cds deployfalls back correctly to@sap/hana-clientwhenHDI_DEPLOY_OPTIONS='{"use_hdb":false}'is set. - [cds-dk@7.9.7] Dependency update for
axiosto fix CVE-2024-39338 - [cds-dk@7.9.7]
cds build --for mtx-sidecarnow correctly supports differentsrvfolder name. - [cds-dk@7.9.7]
cds build --ws-packcorrectly creates tarball archives for workspaces with nestednode_modulesfolders. - [cds-dk@7.9.7]
cds versionnow reports the correct version of@sap/cdsif this one is installed locally along with a local@sap/cds-dkinstallation. - [cds-dk@7.9.7]
cds version -idoes not show a globally installed version when none is installed or linked. - [cds-dk@7.9.7]
cds versionreports correct@sap/cds-compilerversion. - [cds-dk@7.9.7]
cds versioncan skip over check for Java version - [cds-compiler@5.2.0] compiler: Fix extensions with bound actions using an explicit binding parameter in
parseCdlCSN. - [cds-compiler@5.2.0] for.odata, to.edm(x): Fix some issues with resolving annotation expressions in nested objects and reliably replace value of
=attribute withtrueafter processing. - [cds-compiler@5.1.2] compiler: In parseCdl mode, bound actions specifying the binding parameter with
$selfdid not work. - [cds.java@3.2.0] Fixed a bug, causing audit log implementation to fail with
NullPointerExceptionwhen processing the associations with elements relevant to Audit Logging. - [cds.java@3.2.0] Fixed a bug, causing failed unsubscriptions triggered by Subscription Manager Service in a Deploy with Confidence context.
- [cds.java@3.2.0] Fixed a bug, causing incorrect EDMX being returned by the
$metadataendpoint when special characters are used in the I18N texts. - [cds.java@3.2.0] Fixed a bug, causing
ErrorStatusExceptionbeing thrown when auditing accesses to inactive instances of draft-enabled entities. - [cds.java@3.2.0] Fixed a bug, causing failing requests to
/cdsactuator when one of the internal contributors throws an exception. - [cds.java@3.2.0] Fixed an incompatible change, causing applications with multiple XSUAA bindings to fail on startup due to missing XSUAA configuration for secondary bindings. These applications now can set
cds.security.xsuaa.allowMultipleBindingtotrueso that all XSUAA bindings are available in custom spring auto-configurations. Note: CAP Java still does not process multiple bindings and requires a dedicated spring configuration. In general, applications should refrain from configuring several XSUAA bindings. - [cds.java@3.1.1] Fixed a bug, causing runtime exceptions when loading I18n data from MTXS sidecar running with @sap/cds >=
8.1.0. - [cds.java@3.0.2] Fixed a bug, causing runtime exceptions when loading I18n data from MTXS sidecar running with @sap/cds >=
8.1.0. - [cds4j@3.2.0] Consider expand ref filter in optimized parent-key expands
- [cds4j@3.2.0] Fix usage of context variables in match predicates
- [cds4j@3.2.0] Fix handling of external imported draft entities when parsing the CDS model
- [cds4j@3.2.0] Fixed a bug, causing
Cds4jServiceLoaderto fail to load certain classes inside asynchronous code - [cds4j@3.2.0] Consider
@cds.searchin select from subquery - [cds@8.2.0] Resolving views with path expression renamings
- [cds@8.2.0] Set content-type-header in batch for actions with 204 No Content
- [cds@8.2.0] URI encoding of
@odata.nextLinkin OData response - [cds@8.2.0] Requests reading media data streams did not provide
req.params - [cds@8.2.0]
cds.compile.to.hanafor legacy hana service with@cap-js/sqliteas dev dependency - [cds@8.2.0] Better redaction of debug output
- [cds@8.2.0] Instance-based authorization using functions
- [cds@8.2.0] Fixed flaws in
cds.connect.to()that lead to deadlocks in case of errors due to invalid service configurations or initializations. - [cds@8.2.0] Navigation with backlink as key can now omit backlink keys for new OData adapter
- [cds@8.1.1] For
accept-language, ignore additional options - [cds@8.1.1] Global
describe,before,beforeAll,afterAllhooks are now writable again. They were accidentally made read-only in 8.0.0. - [cds@8.1.1] Expand to
DraftAdministrativeDatafor active instances of draft-enabled entities over drafts - [cds@8.1.1] Deduplication of columns for certain on conditions for the legacy database driver
- [cds@8.1.1] For legacy-sqlite/-hana: Add keys to expands with only non-key elements to ensure not returning null for expand.
- [cds@8.1.1] New parser was to restrictive regarding an empty line at the end of batch body.
- [cds@8.1.1] Error target for operations with complex parameters
- [cds@8.1.1] Remote services: JWT gets found in authorization header
- [cds@8.1.1] Search with invalid characters
- [cds@8.1.1] Invoke
srv.on('error')for each failing batch subrequest - [cds-mtxs@2.1.0] On-the-fly CSN calculations are only done with
extensibility: truein the main app. - [cds-mtxs@2.1.0] The request correlation ID is appended to generic HDI deployment error messages.
- [cds-mtxs@2.1.0] Asynchronous extension activation now reverts faulty extensions correctly.
- [cds-mtxs@2.1.0] Parallel extension activation calls do no longer create inconsistent extension states.
- [cds-mtxs@2.0.6] Subscription Manager service subscriptions are now working again.
- [cds-mtxs@2.0.6] The
cds.features.assertIntegrityis correctly added to the compiler options for HANA builds. - [cds-mtxs@2.0.6] The job status now always returns a non-null value also when using
@cap-js/hana. - [cds-mtxs@2.0.6] The passcode URL now reflects the subscriber subdomain, if such is received from the client.
- [cds-mtxs@2.0.5] The server startup no longer yields the
WARNING: Package '@sap/cds' was loaded from different installations:message in PNPM setups with--global-bin-diron. This happened in BAS, for example oncds watch/serveetc. - [cds-mtxs@2.0.5] Setting
HDI_DEPLOY_OPTIONSto'{"use_hdb": false}'now works correctly for@sap/hana-clientfallbacks.
Removed
[cds-dk@8.2.0] Removed
buildandbuild:tsnpm scripts that were generated intopackage.jsonwhen adding thetypescriptfacet.[cds@8.2.0] Array methods
forEach,filter,find,map,some,everyfromLinkedDefinitions. Convert linked definitions into arrays before using these methods, for example:js[...linked.definitions].map(d => d.name)
July 2024
Added
- [cds-dk@8.1.0]
cds compile --to mermaidcan be configured with a layout direction likeLR. - [cds-dk@8.1.0]
cds deploy --to hananow shows thehdi-deployversion when running. - [cds-compiler@5.1.0] cdsc: Option
--stdinwas added to support input via standard input, for example,cat file.cds | cdsc --stdin - [cds-compiler@5.1.0] Allow to refer to draft state element
IsActiveEntityvia magic variable$draft.IsActiveEntityin annotation path expressions.- for.odata: During draft augmentation,
$draft.IsActiveEntityis rewritten to$self.IsActiveEntityfor all draft-enabled entities (root and sub-nodes but not for named types or entity parameters). - to.edm(x): (V4 only) Allow to refer to an entity element in a bound action via
$selfand not only via explicit binding parameter in an annotation path expression. The API generator will prefix the path with the actual binding parameter name (explicit, annotation or default).
- for.odata: During draft augmentation,
- [cds.java@3.0.1] Added switch
cds.multiTenancy.serviceManager.acceptInstancesWithoutTenant.enabled(default: false) to allow reading tenant labels also from HDI container bindings in case the underlying HDI service instance is missing the label due to a data inconsistency. You may use this switch to temporarily activate the work-around for the broken service instances, but you should manually patch the instances with the correct tenant label as soon as possible via the ServiceManager API. - [cds.java@2.10.3] Added switch
cds.multiTenancy.serviceManager.acceptInstancesWithoutTenant.enabled(default: false) to allow reading tenant labels also from HDI container bindings in case the underlying HDI service instance is missing the label due to a data inconsistency. You may use this switch to temporarily activate the work-around for the broken service instances, but you should manually patch the instances with the correct tenant label as soon as possible via the ServiceManager API. - [cds4j@3.1.0]
@Search.rankingannotation to define the ranking weight for an element ('HIGH' = 1.0, 'MEDIUM' = 0.7, 'LOW' = 0.5). - [cds@8.1.0] Streaming of data with content type 'application/json'
- [cds@8.1.0] Service annotation
@cds.server.body_parser.limitand global config optioncds.server.body_parser.limitallow to configure the maximum request body size in bytes. The default value by express' body parser middleware is 100 kb. See express docs for details. - [cds@8.1.0] Translations for new languages: bg (Bulgarian), el (Greek), he (Hebrew), hr (Croatian), kk (Kazakh), sk (Slovak), sl (Slovenian), sr (Serbian), uk (Ukrainian)
Changed
- [cds-dk@8.1.0] Better generation of http files with
cds add http, especially for draft requests. - [cds-compiler@5.1.0] Update OData vocabularies: 'Common', 'Core', 'HTML5', 'UI'.
- [cds-compiler@5.1.0] to.cdl|hdbcds|hdi|sql: Remove
generated bycomment. - [cds.java@3.0.1] Deep authorizations are not enabled by default (
cds.security.authorization.deep.enabled: false) - [cds@8.1.0] Event Broker: Standardize behavior for cloud events and header propagation
Fixed
- [cds-dk@8.1.0]
cds addrecognizeshasCfManifestas inactive unless amanifest.ymlfile exists. - [cds-dk@8.1.0]
cds addhelp and suggestions are only shown when thehelpmethod is implemented. - [cds-dk@8.1.0]
cds add sampledoes not include the deprecatedsynchronizationModeproperty inmanifest.jsonfiles anymore. - [cds-dk@8.1.0]
cds compile --to mermaidno longer produces emptynamespaceblocks that would lead to rendering errors. - [cds-dk@8.1.0]
cds compile --to mermaidno longer fails for complex queries like joins. - [cds-dk@8.1.0]
cds build --for mtx-sidecarnow correctly supports differentsrvfolder name. - [cds-dk@8.1.0]
cds add audit-login combination withcds add multitenancycorrectly adds the audit-log dependency to the MTX sidecar. - [cds-dk@8.1.0]
cds buildadds the correct hdbtabledata file paths to the hana result set. - [cds-dk@8.1.0]
cds addplugins can now correctly interpretcds.cliproperties. - [cds-dk@8.1.0]
cds deploy --to hana --drynow shows correct files with their content. - [cds-dk@8.1.0]
cds versionnow reports the correct version of@sap/cdsif this one is installed locally along with a local@sap/cds-dkinstallation. - [cds-dk@8.1.0] Shell completion now works correctly for
cds init --add. - [cds-dk@8.1.0]
cds build --for mtx-sidecarno longer fails if the severity of a compilation error has been downgraded fromErrortoWarning. - [cds-dk@8.0.3]
cds build --wsno longer creates migration tables in shared db if already existing in a workspace. - [cds-dk@8.0.3]
cds add destinationadds the destination service as an MTX SaaS dependency. - [cds-dk@8.0.3]
cds add html5-repoadds the HTML5 repo runtime as an MTX SaaS dependency. - [cds-dk@8.0.3]
cds add html5-repodoes not add a destination service anymore if not required by other services. - [cds-dk@8.0.3]
cds add workzonerunscds add destinationas a dependent facet. - [cds-dk@8.0.3]
cds addplugins don't fail if custom options are provided via theoptionsAPI. - [cds-dk@8.0.3]
cds add datacan now correctly handle circular associations. The maximum depth of associations is increased to 5. - [cds-dk@8.0.3]
cds add redisis separated fromcds add redis-messagingto allow for separate consumption. - [cds-dk@8.0.3]
cds add redisuses thestandardservice plan by default. - [cds-dk@8.0.3]
cds watchno longer leads to a warning'@sap/cds' was loaded from different installationswhen local project dependencies are installed. - [cds-dk@8.0.3]
cds inituses latest Maven Java archetype version 3.0.0 for creating Java projects. - [cds-dk@7.9.6]
cds add datacan now correctly handle circular associations. The maximum depth of associations is increased to 5. - [cds-compiler@5.1.0] compiler: checks for associations now work for nested projections of the form
association.{ id } - [cds-compiler@5.1.0] to.edm(x): No
Nullableattribute for$ReturnTypeofCollection(<entity type>)OData V4 CSDL, section 12.8 Return Type - [cds-compiler@5.1.0] to.sql|hdi|hdbcds: Detect and error on "cross-eyed" backlinks, where we cannot construct a valid on-condition.
- [cds-compiler@5.1.0] to.sql|hdi.migration: Correctly detect that a view was dropped - this was previously just silently ignored.
- [cds-compiler@4.9.8] compiler: Fix extensions with bound actions using an explicit binding parameter in
parseCdlCSN. - [cds-compiler@4.9.8] to.edm(x): No
Nullableattribute for$ReturnTypeofCollection(<entity type>)OData V4 CSDL, section 12.8 Return Type - [cds.java@3.0.1] Fixed a bug in
cds-feature-postgresqlwhich caused a connection issue to a PostgreSQL database due to an invalid CA certificate. - [cds.java@2.10.3] Fixed a bug in
cds-feature-postgresqlwhich caused a connection issue to a PostgreSQL database due to an invalid CA certificate. - [cds4j@3.1.0] Support nested select with inline count
- [cds4j@3.1.0] Setting session context variables is no longer implicitly assumed to have a surrounding transaction
- [cds4j@3.1.0] Skip updates with empty entries
- [cds@8.1.0] Erroneous authentication of
enterprise-messaging - [cds@8.1.0]
@odata.contextfor actions/functions returning an array of<type> - [cds@8.1.0]
cds-deployscript terminates if deployment fails - [cds@8.1.0] Allow backslashes, quotation marks and ampersands in search terms
- [cds@8.1.0] Search compatibility for new parser and old db
- [cds@8.1.0] The server startup no longer yields the
WARNING: Package '@sap/cds' was loaded from different installations:message in PNPM setups using--global-bin-dir. This happened in BAS, for example oncds watch/serve - [cds@8.0.4] Localized views like
localized_de_Bookswhere accidentally generated for new sqlite service. - [cds@8.0.4] Atomicity group handling in
$batch - [cds@8.0.4]
$batchin combination withcommithooks - [cds@8.0.4]
continue-on-errorpreference for JSON$batch - [cds@7.9.4] View resolving for
cds.features.lean_draft - [cds@7.9.4] Error in the
enterprise-messagingdeploy script - [cds@7.9.4] Properly forward path expression in front of lambda functions for
odata-v2remote services - [cds@7.9.4] OData queries selecting the same column with
$count=true - [cds@7.9.4] Closed higher end of version range for dependency on
cds-types
June 2024
Added
- [cds-dk@8.0.2]
cds add malware-scanneradds configurations forSAP Malware Scanning service. - [cds-dk@8.0.1]
cds add hanaandcds buildnow support the SAP HANA artifact type.hdbeshconfigrequired for enterprise search integration. - [cds-dk@8.0.1]
cds initadds simplisticeslint.config.mjsfile to newly created projects. - [cds-dk@8.0.1] Running any
cdscommand in a TypeScript project will print a hint tocds-ts. - [cds-dk@8.0.1] The
cds.build.Pluginclass now supports abaseModel()method that returns a CSN that doesn't include features when feature toggles are enabled. - [cds-dk@8.0.1]
cds add workzoneadds support for SAP BTP Work Zone, Standard Edition. - [cds-dk@8.0.1]
cds add helmnow supports using external destinations inbackendDestinationskey. - [cds-dk@8.0.1]
cds addsupports the--java:mvnoption. - [cds-dk@8.0.0]
cds init --addnow also allows the shortcutcds init -a. - [cds-dk@8.0.0]
cds add audit-loggingadds configuration for@cap-js/audit-logging. - [cds-dk@8.0.0]
cds add typescriptinitializes a bare CDS project with TypeScript nature. - [cds-dk@8.0.0]
cds add containerizegeneratescontainerize.yamlfile with configuration required to build the container images byctzCLI. - [cds-dk@8.0.0] Setting
FORCE_COLOR=1will now force colored log output. - [cds-dk@8.0.0]
cds add --package/-pallows you to specify remote packages (innpm addformat). - [cds-dk@8.0.0]
cds add helmasks prompts to fill in data at first execution. - [cds-dk@8.0.0]
cds add httpcan now generate requests for entities annotated withodata.draft.enabled. - [cds-dk@8.0.0]
cds importwill now support references inrequestBodyfor OpenAPI files. - [cds-dk@8.0.0] Multitenancy-related commands now always print the HTTP status on request errors.
- [cds-dk@8.0.0]
cds add helmaddedHorizontalPodAutoscalerwhich can be enabled bysrv.hpa.enabled. - [cds-dk@8.0.0]
cds add attachmentsadds configurations for@cap-js/attachments. - [cds-dk@8.0.0] Shell completion now supports
fishshell. - [cds-dk@8.0.0]
cds add portalcreates configuration for the SAP Cloud Portal service. - [cds-dk@8.0.0]
compile --to mermaidexports a CDS model as a mermaid diagram. - [cds-dk@7.9.5]
cds add hanaandcds buildnow support the HANA artifact type.hdbeshconfigrequired for enterprise search integration. - [vscode-cds@8.0.1] Commands CDS: Preview as diagram to create a Mermaid class diagram.
@sap/cds-dk 8is required. - [vscode-cds@8.0.1] If trace is enabled via
cds.trace.levelthe trace file location is shown in thevscode-cdsOutput view. - [cds.java@3.0.0] Added support for @sap/cds-dk version
8. - [cds.java@3.0.0] Implemented instance-based authorization for bound actions & functions.
- [cds.java@3.0.0] Added properties
cds.odataV2.searchModeandcds.odataV4.searchModeto configure how$searchis handled. - [cds.java@3.0.0] Correlation IDs are now propagated for messaging services running in structured mode (separating headers from data).
- [cds.java@3.0.0] Setting the new parameter
persistenceof the cds-maven-archetype tofalsegenerates an application without the JDBC persistence layer. - [cds.java@3.0.0] The goal
addof thecds-maven-pluginsupports adding AuditLog V2 support to a CAP Java project. - [cds.java@3.0.0] Introduced deep role-based and instance-based authorization checks for CQN statements.
- [cds.java@3.0.0] The goal
npmof thecds-maven-pluginsupports the new parametercommandsto execute multiple npm commands in one execution block. - [cds.java@3.0.0] Added OpenTelemetry instrumentation for Outbox Services.
- [cds.java@3.0.0] Added actuator end point
/actuator/cds/outboxesto introspect outbox services. - [cds.java@3.0.0] Properties
cds.model.provider.extensibilityandcds.model.provider.togglescan be used to disable tenant-specific extensions and/or feature toggles dimensions when loading models dynamically from MTX Sidecar. - [cds.java@3.0.0] The switch
interfacesForAspectsin thecds-maven-pluginenables the generation of accessor interfaces for the entities representing targets of the compositions of aspects. - [cds4j@3.0.0]
CqnPassThroughSearchPredicateto pass-through search strings to the data store. - [cds4j@3.0.0] Added new switch
interfacesForAspectsto the code generator configuration to enable the generation of accessor interfaces for targets of the compositions of aspects. - [cds@8.0.3] Translations for the technical SAP language
1Qused in support scenarios, for example for translation issues. See https://sapui5.hana.ondemand.com/sdk/#/topic/91f21f176f4d1014b6dd926db0e91070 for more. - [cds@8.0.2]
expressis now an optional peer dependency, to indicate to applications to install it as part of their dependencies. It is needed for all runtime scenarios, but can be omitted for pure design-time cases likecds compilecalls. - [cds@8.0.0] Profile
[attic]to quickly test with deprecated features like soCDS_ENV=attic cds watchorCDS_ENV=attic jest. - [cds@8.0.0] New OData Adapter: Default location header for actions that return an entity (custom handler must set the response status code to 201)
- [cds@8.0.0] New
cds.utilsmethods.stack()and.location()to get the stack trace and location of the caller (not publicly released yet). - [cds@8.0.0] Protected the methods inherited from
LinkedDefinitionsprototype against accidental and undetected interpretation and usage as CSN element: An error is thrown, when trying to access one of the usual CSN properties, like.name,.kind,.type, ... on them. - [cds@8.0.0] Escaping single quotes with doubled ones
''in.propertiesfiles - [cds@8.0.0] Support for
@sap/xssec^4 - [cds@8.0.0] New OData and REST adapter pass error to next such that a custom error middleware added to
cds.middlewares.afteris called- Note: The custom middleware must precede the default error middleware (if it remains), for example, by adding via
unshift()
- Note: The custom middleware must precede the default error middleware (if it remains), for example, by adding via
- [cds@8.0.0] Support for extensibility scenarios in RESTful protocol adapters
- [cds@8.0.0] The built-in CORS middleware can be enabled explicitly with
cds.server.cors = true. By default, this isfalseif in production. - [cds@8.0.0] Remote Service:
useCachedestination option is enabled by default - [cds@8.0.0] New model processor
cds.compile.to.hanato generate.hdbtable,.hdbviewfiles including migration table support. - [cds@8.0.0] Added
cds.requires.connectivityindicating whether SAP BTP Connectivity service is required. - [cds@8.0.0] Support inline where conditions in
@restrictlikewhere: (prop = $user.id). - [cds-mtxs@2.0.1] Added HANA build plugin mappings
.hdbeshconfigand.hdbcalculationviewrequired for enterprise search and embedded analytics integration. - [cds-mtxs@2.0.1] The Service Manager client reports the container state on timeouts.
- [cds-mtxs@2.0.0] Additional end point to get the passcode URL.
- [cds-mtxs@2.0.0] Dependencies for the SAP BTP Connectivity, Audit Logging, and Destinations services are automatically added if
cds.requires.[connectivity|audit-log|destinations]properties are set, respectively.
Changed
- [cds-dk@8.0.2]
cds add httpstoreshttpfiles in a foldertest/http/by default. Previously, this washttp/. - [cds-dk@8.0.2]
cds add helmremovedsaasRegistryParameterskey and moved parameters tosaas-registry. - [cds-dk@8.0.2]
cds initno longer creates a.cdsrc.jsonfor Node.js projects. - [cds-dk@8.0.2]
cds buildconfiguration cleanup fordata.modelandservice.modelto only support configuration of a single model folder. - [cds-dk@8.0.1]
cds add multitenancynow adds thejavaprofile in the MTX sidecar config, in addition tomtx-sidecar. - [cds-dk@8.0.1]
cds inituses Maven Java archetype version 2.10.1 for creating Java projects. - [cds-dk@8.0.1]
cds init --add javaand othercds addcommands use Java 21 by default. - [cds-dk@8.0.1]
cds add helmnow adds env variables directly in values.yaml file instead of mtxs-configmap ref. - [cds-dk@8.0.1]
cds initfor a Node.js project adds@cap-js/cds-typesto itsdevDependencies. - [cds-dk@8.0.1]
cds loginnow informs about command-line options ignored when fetching a token. - [cds-dk@8.0.1]
cds loginnow exits with an error in case of clashing parameters. - [cds-dk@8.0.1] cds shell completion now suggests files/folders when called directly after cds command, for example,
cds pac<tab>will return files/folders starting withpac. - [cds-dk@8.0.0]
cds deploy --to hanauses@sap/hdi-deployversion 5. - [cds-dk@8.0.0]
cds deployresolves the existing binding for deployment. - [cds-dk@8.0.0]
cds importwill not generateON conditionfor association or composition. - [cds-dk@8.0.0]
cds importwill not add the@cds.ambiguousannotation for association or composition. - [cds-dk@8.0.0]
cds importnow supports OData V2 EDMX file with empty or missingEntityContainer. - [cds-dk@8.0.0]
cds initwill now initialize a cds 8 project. - [cds-dk@8.0.0]
cds add approuterwill not add XSUAA under the hood any longer. - [cds-dk@8.0.0]
cds add hanaandcds builduse@sap/hdi-deployversion 5. - [cds-dk@8.0.0]
cds add hananow uses@cap/js-hana. - [cds-dk@8.0.0]
cds add multitenancyuses@sap/cds-mtxsversion 2. - [cds-dk@8.0.0]
cds add multitenancydoes not add theUIFlexDeveloperrole anymore. - [cds-dk@8.0.0]
cds add helmdoesn't expose srv and sidecar workload in multi tenant mode if approuter is present. - [cds-dk@8.0.0]
cds add helmchangedvalues.yamlstructure. - [cds-dk@8.0.0]
cds add helmcommand doesn't generate static files (subcharts and templates) whencds addis executed. Instead, it generates thechartfolder containing all the static data in thegenfolder whencds buildis executed. - [cds-dk@8.0.0]
cds add xsuaanow uses@sap/xssecversion 4. - [cds-dk@8.0.0]
cds add tiny-sampleuses the sameschema.cdsfile name ascds add sample. - [cds-dk@8.0.0]
cds add html5-reponow adds thedeploy_mode: html5-repoparameter to the mta.yaml. - [cds-dk@8.0.0]
cds add html5-repousesgen(Node.js) or.(Java) for the app deployerpath. - [cds-dk@8.0.0]
cds add mtanow creates an mta.yaml with schema version 3.3.0. - [cds-dk@8.0.0]
cds loginno longer falls back to a legacy URL or a GET request for tokens. - [cds-dk@8.0.0]
cds loginnow enforces HTTPS when contacting remote URLs. - [cds-dk@8.0.0]
cds loginno longer saves Refresh Tokens by default for security reasons. (Use--save-refresh-tokento enable this feature.) - [cds-dk@8.0.0]
cds buildcleanup of build task propertyuse. - [cds-dk@8.0.0]
cds add helmdefault value ofxsappnamewill contain Release Namespace as well. - [cds-dk@8.0.0]
cds buildallows custom plugins to be executed after the built-in plugins. - [cds-dk@8.0.0]
cds logineagerly fetches the passcode URL (if supported by@sap/cds-mtxs) and prints it on prompt. - [cds-dk@8.0.0]
cds extendandcds activatehave been deprecated and are now removed. (You can still migrate and download projects, seecds migrate --helpandcds extend --help.) - [cds-dk@8.0.0] Remove obsolete classic MTX checks and enforce
@sap/cds>= 7. - [cds-dk@8.0.0]
cds builduses cds.compile.to.hana API with@sap/cds8. - [cds-dk@8.0.0]
cds bindandcds deployuse direct http requests instead ofcf curl. - [cds-dk@8.0.0]
cds build --for javano longer generates localized EDMX files by default. It can be enabled usingcontentLocalizedEdmxbuild task option. - [cds-dk@8.0.0]
@cap-js/sqlite/better-sqlite3is used in dependencies instead ofsqlite3. - [cds-dk@8.0.0]
cds add samplenow generates comma-separated CSV files, instead of semicolon-separated, in order to be more consistent withcds add data. - [cds-dk@8.0.0]
cds buildno longer supports the deprecated register API for custom plugins. - [cds-dk@8.0.0]
cds initno longer addsdevDependenciesforeslintand@sap/eslint-plugin-cdswhen creating a new project. - [cds-dk@8.0.0]
cds initnow createseslint.config.mjsfile with reference to@sap/cds/eslint.config.mjs. - [cds-dk@7.9.4]
cds inituses latest Maven Java archetype version 2.10.1 for creating Java projects. - [cds-dk@7.9.4]
cds bindandcds deployuse direct http requests instead ofcf curl. - [eslint-plugin-cds@3.0.4] Internal refactorings
- [vscode-cds@8.0.1] Dropped official support for CDS compilers <4. The extension likely still works with older versions, but compatibility is not guaranteed.
- [vscode-cds@8.0.1] Minimum VSCode version is now 1.89.1
- [cds-compiler@5.0.2] Node 18 is now the minimum required version.
- [cds-compiler@5.0.2] API
CompilationErrors will no longer serialize all compiler messages intoe.message. Usee.messages[]instead ore.toString()to serialize errors into a string. - [cds-compiler@5.0.2] CDL parser: Annotations that can't be applied are now rejected.
- [cds-compiler@5.0.2] compiler:
extendstatements on "namespaces" (paths that are not definitions) are now always errors.- non-structured events are rejected
$selfreferences in JOINs are rejected if they could lead to issues in SQL rendering.- non-string enum definitions must have a value.
- A top-level definition
$selfis rejected.$selfis considered a reserved name. $at.from/$at.toare deprecated; use$valid.from/$valid.toinstead.
- [cds-compiler@5.0.2] to.hdbcds: The HDBCDS backend is now considered deprecated.
- [cds-compiler@5.0.2] to.edm(x):
- Set default nullability to
truefor collection like properties (wasfalsebefore). - Raise message ids
odata-spec-violation-namespace,odata-spec-violation-no-keyfrom warning to error.
- Set default nullability to
- [cds-compiler@5.0.2] to.sql:
@cds.persistence.existsis not propagated to generated localization views (localized.*)- Option
fewerLocalizedViewsis now enabled by default. - Option
betterSqliteSessionVariablesis now enabled by default.
- [cds.java@3.0.0] The minimum required @sap/cds-dk version is now
7. - [cds.java@3.0.0] The minimum required Cloud SDK version is now
5.9.0. - [cds.java@3.0.0] The minimum required Maven version for a CAP Java project is now
3.6.3. - [cds.java@3.0.0] The default Node.js version installed by the CDS Maven Plugin is updated to
v20.14.0. - [cds.java@3.0.0] Enabled parameters
sharedInterfacesanduniqueEventContextby default in goalgenerate. - [cds.java@3.0.0] The Spring Boot
cloudprofile is now set as production profile by default. - [cds.java@3.0.0] CSRF Token Handling for Remote OData Services is now disabled by default. It can be enabled by setting
cds.remote.services.<key>.http.csrf.enabledtotrue. - [cds.java@3.0.0] The SQL optimization mode for SAP HANA is now set to
hexby default. - [cds.java@3.0.0] Setting the configuration property
cds.outbox.persistent.enabledtofalsenow disables all persistent outbox services. - [cds.java@3.0.0] The lazy internationalization of OData V4 metadata is enabled by default. It can be disabled by setting
cds.odata-v4.lazy-i18n.enabledtofalse. - [cds.java@3.0.0] The
ModelChangedEventContextnow takes anInstantinstead of aLongas timestamp. This timestamp is used to only refresh model caches where the model was cached before that time. - [cds.java@3.0.0] The "proof of possession" check in the SAP Security Library is enabled by default for IAS scenarios. This requires clients to always send the client certificate in addition to the actual JWT token. It can disabled by setting the configuration property
sap.spring.security.identity.prooftokentofalse. - [cds.java@3.0.0] The property
cds.auditLog.personalData.throwOnMissingDataSubjectnow defaults totrue, causing exceptions in case of incomplete personal data annotations. - [cds.java@3.0.0] CQN queries on application services using expand or inline without specifying an association to expand resp. inline all associations are rejected now.
- [cds.java@3.0.0] The
cds-services-archetypegenerates CAP Java projects using JDK 21 by default, if no JDK version is specified. - [cds.java@3.0.0] MessagingServices now represent message and headers in a structured Map-based format by default. The old string-based format can be used by setting
cds.messaging.services.<key>.structured: false - [cds4j@3.0.0] Deprecated
CqnSearchPredicate, instead useCqnSearchTermPredicate - [cds4j@3.0.0] Deprecated
Modifier.search(String), instead useModifier.searchTerm(CqnSearchTermPredicate) - [cds4j@3.0.0] Deprecated session context variable
$user.tenant, instead use$tenant - [cds4j@3.0.0] Deprecated session context variables
$at.fromand$at.to, instead use$valid.fromand$valid.to - [cds4j@3.0.0] Removed deprecated option
supported_localesfor using locale-specific views on H2 and SQLite - [cds4j@3.0.0] Removed deprecated
cqn(String)methods inInsert,UpdateandUpsert - [cds4j@3.0.0] Optimized SQL for to-many expands by parent-keys
- [cds@8.0.2] Creation via draft by association is forbidden with
403response. - [cds@8.0.2] New OData adapter captures input of
$searchas plain val without applying OData grammar. - [cds@8.0.2] ´not null´ is not validated for action/function params. Use
@mandatoryinstead. - [cds@8.0.2] REST adapter rejects unknown input if not annotated with
@open. Previously, it removed the unknown elements from the payload. - [cds@8.0.0] Meant for tests only:
cds.User.defaultpoints to a singleton instance ofcds.Userinstead of a class now. - [cds@8.0.0] Never public:
express.Request.useror.tenantmust not be used anywhereNOTE: that was never public nor guaranteed to exist at all! Always only use
cds.Request.user/tenantorcds.context.user/tenant. - [cds@8.0.0] Never public:
cds.Request.protocolwas 'odata-v4' and is now 'odata'. - [cds@8.0.0] Errors sent to clients now include a stack trace in the
stackproperty during development and in testsNEVER test with
.toEqual()but always only with.toMatchObject(). - [cds@8.0.0] Node.js 18 is now the minimum required Node.js version. Version 16 is no longer supported.
- [cds@8.0.0]
cds.fiori.draft_deletion_timeoutis enabled with default value30d - [cds@8.0.0]
srv.on('error')is only invoked for errors duringsrv.dispatch(), i.e., for errors that occur while the respective request is being processed by a service instance- Specifically,
srv.on('error')is no longer invoked for an error that occurs in the protocol adapter. Instead, use a custom middleware added to the beginning ofcds.middlewares.after. - This change does not affect the legacy OData adapter.
- Specifically,
- [cds@8.0.0] In
bypass_draft, direct active modifications now have eventCREATEinstead ofNEW. - [cds@8.0.0]
cds compile --to serviceinforeturns the correct URL path for Java applications. - [cds@8.0.0] The default index page is no longer served if
NODE_ENVis set toproduction. Setcds.server.index = trueto restore previous behavior. - [cds@8.0.0] Delete deprecated cds build stub.
- [cds@8.0.0] Multiple entries in
cds.requires.<name>.vcapare now ANDed instead of ORed, so that e.g. multiple bound services of the same kind can be filtered more easily. For example,{ "vcap": { "label": "xsuaa", "tag": "broker" }}can be used to only bind an XSUAA instance (out of many) with thexsuaalabel AND thebrokertag. - [cds@8.0.0] Role
cds.Subscriberremoved from predefined mock users. - [cds@8.0.0] REST adapter uses managed transactions
- [cds@8.0.0] The default index page got a new design.
- [cds@8.0.0] Syntax error in batch body is handled as bad request
- [cds-mtxs@2.0.2] Calls to Service Manager now include the
Client-IDandClient-Versionheaders. - [cds-mtxs@2.0.0]
@sap/cds-mtxsnow requires@sap/hdi-deploy >= 4. - [cds-mtxs@2.0.0] Deprecated endpoint
upgradeAllhas been removed fromSaasProvisioningService. - [cds-mtxs@2.0.0] Use the
cds.compile.to.hanaAPI to support cds plugins such as embedded analytics. - [cds-mtxs@2.0.0] When pushing an extension, the extension is blocked if it contains critical annotations.
- [cds-mtxs@1.18.2] All requests to Service Manager are now retried 3 times by default. This value can be modified by setting
cds.requires.mulitenancy.serviceManager.retries. - [ux-cds-odata-language-server-extension@1.14.1] Updated to support changes in annotation vocabularies
- [ux-cds-odata-language-server-extension@1.14.1] Enhanced code completion performance
Fixed
- [cds-dk@8.0.1]
cds addis failing if one of thecanRunconditions in the plugin isn't satisfied. - [cds-dk@8.0.1]
cds versionand other CLI commands no longer color their output if e.g. stdout is redirected. - [cds-dk@8.0.1]
CHANGELOG.mdis part of npm package. - [cds-dk@8.0.1]
cds builddetermines the correct feature names if a.cdsfile path contains the namefts. - [cds-dk@8.0.1]
cds watchnow ignores.git/** - [cds-dk@8.0.0]
cds add mtacorrectly adds the logging service with@sap/cds >= 7.5, if not explicitly disabled. - [cds-dk@8.0.0]
cds adddoesn't fail for Java projects ifsrv/pom.xmldoesn't exist. - [cds-dk@8.0.0]
cds loginnow prints the App URL, reports HTTP 404 errors correctly and gives better mitigation hints. - [cds-dk@8.0.0]
cds deployconsistently resolves configured service models, where previously the db model had priority. - [cds-dk@8.0.0]
cds buildchecks for the existence of a package.json file in the root folder of Node.js projects. - [cds-dk@8.0.0]
cds addsetscds.clibefore plugins are loaded. - [cds-dk@8.0.0]
cds add httpsupports custom keys, including composite keys. - [cds-dk@8.0.0]
cds add approuterwill not create aroutersubfolder if anxs-app.jsonis found in theappdirectory. - [cds-dk@7.9.5]
cds addis failing if one of thecanRunconditions in the plugin isn't satisfied. - [cds-dk@7.9.5]
cds watchnow ignores.git/** - [cds-dk@7.9.4] Dependency update to fix CVE-2024-37890
- [cds-dk@7.9.3]
cds add datanow has a more precise foreign key type conversion from CSV data, covering edge cases. - [cds-compiler@5.0.6] for.seal: Don't generate DRAFT artifacts.
- [cds-compiler@5.0.4] CDL parser: an
extend entityandextend aspectwith an extensions for the same element now correctly leads to an error, because it resulted in part of the extension being simply dropped. Remark: anextend typeand the recommended plainextendled to an error in that situation already before. - [cds-compiler@5.0.4] to.sql: Conditions inside filters in combination with foreign key aliases were not properly translated in rare cases.
- [cds-compiler@5.0.4] Update OData Vocabularies: 'PDF', 'UI'.
- [cds-compiler@5.0.2] for.odata: Propagate all
@odata { Type, MaxLength, Precision, Scale, SRID }to generated foreign keys. - [cds-compiler@4.9.6] for.seal: Don't generate DRAFT artifacts.
- [cds-compiler@4.9.6] for.odata: Propagate all
@odata { Type, MaxLength, Precision, Scale, SRID }to generated foreign keys. - [cds-compiler@4.9.6] to.edm(x): Respect
AppliesTospecification in term definitions for actions and functions. - [cds-compiler@4.9.6] to.sql: Conditions inside filters in combination with foreign key aliases were not properly translated in rare cases.
- [cds.java@3.0.0] Fixed a bug, causing draft fields to be generated for structured types and arrays of structured types.
- [cds.java@3.0.0] Fixed a bug, causing issues when using
@cds.java.versionon draft-enabled entities. - [cds.java@3.0.0] Fixed a variable scale of
Decimalused as action/function parameter. - [cds.java@2.10.2] Fixed a bug, causing the SMS client to retrieve subscribed tenants from the Subscription Manager Service without pagination.
- [cds.java@2.10.1] Fixed a bug in MT applications, causing even more requests to ServiceManager in an overload situation (429 responses).
- [cds.java@2.10.1] Fixed a bug, causing unexpected transaction rollbacks during processing of outbox messages. This might have resulted in messages delivered with a delay.
- [cds.java@2.10.1] Fixed a bug in the developer dashboard which caused a crash when the application is reloaded by Spring Dev Tools in CDS watch mode.
- [cds.java@2.10.1] Fixed a bug, causing the developer dashboard to not be completely disabled in production.
- [cds4j@3.0.0] OData v4 - select list items of
$selectare not ignored any longer but correctly applied to the result of the$apply-pipeline, if a request contains both$applyand$select - [cds4j@2.10.1] SAP HANA: Don't generate statement-level collation clause in subqueries
- [cds4j@2.10.1] Fix UnsupportedOperationException on deep updates with
@cds.java.versionelements - [cds@8.0.3] Empty feature set by switched off feature toggles
- [cds@8.0.3] Allow deviating response types for
$batch, e. g. inputmultipartand outputjson - [cds@8.0.2]
cds.log(…, 0)now properly changes log level toSILENTif called after the respective logger had already been created. - [cds@8.0.2]
cds.testrecommends version 7 ofchai-as-promised. Version 8 is ESM-only and does not work withcds.testat the moment. - [cds@8.0.2] Loading of
cds.pluginsnow respects the (internal!) propertycds.env.pluginsagain. - [cds@8.0.2] Proper error handling for invalid draft requests in combination with
$apply - [cds@8.0.2] Usage of
Datevalues incds.qlexpressions - [cds@8.0.2] Error in
enterprise-messagingdeploy script - [cds@8.0.2] Error handling for bad navigation properties (like in
$orderby=prop1/prop2) in new OData adapter - [cds@8.0.2] Properly forward path expression in front of lambda functions for
odata-v2remote services - [cds@8.0.1] always enforce
atticprofile - [cds@8.0.0] Failing logins with internal pre-release versions from git main branches.
- [cds@8.0.0] Prevent inconsistent ordering when selecting messages from outbox
- [cds@8.0.0] Creating child-nodes with
@Core.Immutablefields - [cds@8.0.0] ETag handling in draft cancel
- [cds@8.0.0]
if-none-matchwith asterisk in update handler - [cds@8.0.0]
odata.mediaContentTypefor empty stream is alwaysnull - [cds@8.0.0]
$select/$expandlarge binaries by draft edit and activate does not return large binaries - [cds@8.0.0] Error message for actions/functions with wrong path
- [cds@8.0.0] Direct
READof entities that are@cds.autoexposedwhen thecds.env.features.odata_new_adapterflag is set totrue - [cds@8.0.0] Reject
PATCHrequests where foreign keys cannot be determined statically or where multiple entities need to be updated - [cds@8.0.0] actions / functions bound to a collection of entities in case
cds.features.odata_new_parseris enabled - [cds@8.0.0]
cds.compile.to.hanageneratesafterImageonly if migration tables exist. - [cds@7.9.3]
cds compile --to serviceinforeturns the correct URL path for Java applications. - [cds@7.9.3] Prevent HANA deadlocks when processing outbox table
- [cds@7.9.3] Invalid cache for
SiblingEntityrequests - [cds@7.9.3]
cds.testrecommends version 7 ofchai-as-promised. Version 8 is ESM-only and does not work withcds.testat the moment. - [cds@7.9.3] Loading of
cds.pluginsnow respects the (internal!) propertycds.env.pluginsagain. - [cds@7.9.3]
req.dataandreq.INSERT.entrieswere not pointing to same object if it contains more than one entry. - [cds-mtxs@2.0.2] Reduced number of Service Manager requests to
service_instancesin the error case. - [cds-mtxs@2.0.1] Improved robustness in case of temporary extension inconsistencies.
- [cds-mtxs@2.0.1] The Service Manager client now stores instance and binding locations used for async polling in-memory, allowing parallel subscriptions for single-instance applications.
- [cds-mtxs@2.0.1] The Service Manager client automatically recreates instances in "creation failed" state on subscription.
- [cds-mtxs@1.18.2] Certificate check for sms subscription now also compatible with kyma.
- [cds-mtxs@1.18.2] Feature toggles can contain
.again. - [cds-mtxs@1.18.2] Extension field limit check now correctly accepts
0as no fields to be extended.
Removed
- [cds-dk@8.0.0]
cds add notebookis removed. CAP Jupyter Notebooks have been replaced by custom CAP Notebooks for VS Code which are now part of the CDS Editor. See https://cap.cloud.sap/docs/tools/#add-cds-editor for more. - [cds-compiler@5.0.2] API: Deprecated functions
preparedCsnToEdmxandpreparedCsnToEdmwere removed. Useto.edm(x)instead. - [cds.java@3.0.0] Removed deprecated feature
cds-feature-xsuaa. As a consequence, support for SAP'sspring-xsuaalibrary has been removed as well. Usecds-feature-identityin combination with SAP'sspring-securitylibrary instead. - [cds.java@3.0.0] Removed support for the classic MTX Sidecar. The
cds.multitenancy.mtxs.enabledproperty has been removed, as it is now obsolete. - [cds.java@3.0.0] The deprecated
MtSubscriptionServiceAPI and the corresponding compatibility modecds.multitenancy.compatibility.enabledhave been removed in favor of theDeploymentService. - [cds.java@3.0.0] The deprecated HTTP-based tenant upgrade APIs
/mt/v1.0/subscriptions/deployandPUT /messaging/v1.0/em/<tenant id>have been removed in favor of the task-based upgrade approach. - [cds.java@3.0.0] The goal
addSampleis removed from thecds-maven-pluginand replaced with goaladdwith parameter-Dfeature=TINY_SAMPLE. - [cds.java@3.0.0] Removed various deprecated classes, methods and properties.
- [cds@8.0.2] Type information is no longer shipped as part of
@sap/cds. Instead, the@cap-js/cds-typespackage has to be explicitly installed as devDependency for projects requiring type support. Installing the package is sufficient to add type support back in. - [cds@8.0.2] Invalid annotations
@Common.FieldControl.Mandatoryand@FieldControl.Mandatory→ use@Common.FieldControl: #Mandatoryinstead - [cds@8.0.2] Invalid annotations
@Common.FieldControl.ReadOnlyand@FieldControl.ReadOnly→ use@Common.FieldControl: #ReadOnlyinstead - [cds@8.0.0] Legacy leftovers for old middlewares:
ExtensedModel:middleware4(in combination with extensibility) - [cds@8.0.0] Legacy request header
x-correlationidwhich was always just a misspelled variant ofx-correlation-id. - [cds@8.0.0] Legacy configuration option
cds.requires.middlewares = false - [cds@8.0.0] Legacy configuration option
cds.features.serve_on_root = true - [cds@8.0.0] Legacy draft implementation
cds.fiori.lean_draft = false - [cds@8.0.0] Legacy API
req.user.locale. Usereq.localeinstead. - [cds@8.0.0] Legacy API
req.user.tenant. Usereq.tenantinstead. - [cds@8.0.0] Legacy configuration
cds.drafts.cancellationTimeout. Usecds.fiori.draft_lock_timeoutinstead. - [cds@8.0.0] Legacy annotation
@assert.enum. Use@assert.rangeinstead. - [cds@8.0.0] Legacy properties of
cds.Request:req.tokenInfo,req._.shared, andreq.attr - [cds@8.0.0] Legacy type facade files from
@sap/cds/apis/.... Use@sap/cdsas only type import. - [cds@8.0.0] Legacy quirks mode. From now on,
cds.qlgenerates spec compliantrefpaths in INSERT/UPDATE/DELETE CQNs. The database services expect the same.- Use
{ INSERT: { into: { ref: ['Authors']}}}instead of{ INSERT: { into: 'Authors' }} - Use
{ UPDATE: { entity: { ref: ['Authors']}}}instead of{ UPDATE: { entity: 'Authors' }} - Use
{ DELETE: { from: { ref: ['Authors']}}}instead of{ DELETE: { from: 'Authors' }}
- Use
- [cds@8.0.0] Deprecated csn entity proxy
<entity>_texts. Use<entity>.textsinstead. - [cds@8.0.0] Deprecated built-in
cds.compile.to.gqlandcds.compile.to.graphqlcompile targets. These are provided by@cap-js/graphqlplugin versions >= 0.9.0. - [cds@8.0.0] Deprecated API
srv.stream. UseSELECTwith a singlecds.LargeBinarycolumn instead. - [cds-mtxs@2.0.1]
@sap/instance-manageris not supported any longer as a fallback to the built-in Service Manager client.
May 2024
Added
- [vscode-cds@7.9.0] Commands CDS: Generate Model Data as JSON/CSV to create a number of records with test data for a selected entity.
- [vscode-cds@7.9.0] Command CDS: Generate HTTP Requests to create HTTP requests for a selected service or entity.
- [vscode-cds@7.9.0] Syntax highlighting for the
cdslanguage to the markdown editor (not to the preview though). - [cds.java@2.10.0] Option to set a
Cache-Control: max-age=<seconds>HTTP header via@http.CacheControl: {maxAge: <seconds>}CDS annotation on stream properties. The header allows to control the behavior of caches, themax-age(in seconds) specifies the maximum age of the content before it becomes stale. - [cds.java@2.10.0] Change Tracking: Annotation
@changelogon compositions and to-one associations can be used to write human-readable values into the change log instead of technical keys of the target entity. - [cds.java@2.10.0] Support OData V4 Key-as-Segment Convention
- [cds.java@2.10.0] Support filtering grouped data by aggregated values with
$these/aggregatefor OData V4 analytical queries. - [cds.java@2.10.0] New Developer Dashboard (alpha) that provides a centralized point where developers can efficiently manage and monitor their CAP applications.
- [cds.java@2.10.0] Introduced Kafka consumer/producer configuration via messaging configuration (
cds.messaging.services.[my_kafka_service].queue.config.[consumer/producer].[property]: "value"). - [cds4j@2.10.0] Introduced
CdsDiffProcessorAPI to compare images of the data between each other and observe differences in them. - [cds4j@2.10.0] Support fuzzy search on SAP HANA
- via config option
cds.sql.hana.search.fuzzy: true - fuzziness threshold default
cds.sql.hana.search.fuzzinessThreshold(default: 0.8) @Search.fuzzinessThresholdelement annotation to override the default fuzziness threshold
- via config option
- [cds4j@2.10.0] Support exact search with wildcards
*and?. - [cds4j@2.10.0] New
ContainmentTestmodesMATCHandSEARCHwith wildcard support.
Changed
- [cds-dk@7.9.1]
cds add mtawill now use the newsap_java_buildpack_jakartabuildpack configuration in themta.yaml. - [cds-mtxs@1.18.1] Extension linter can now be configured for extensions of existing fields.
- [cds-mtxs@1.18.1] With extensions, the deployment service now uses a separate folder for each deployment to improve parallel upgrade and extension operations.
- [cds-mtxs@1.18.1] Trailing parts of secrets are not logged in case of errors anymore.
Fixed
- [cds-dk@7.9.2]
cds add datanow uses the correct JSON type for foreign keys from CSV data, e.g. number instead of string - [cds-dk@7.9.2]
cds bindnow calls resolve in sequence to avoid file access exceptions - [cds-dk@7.9.1]
eslint9 doesn't crash anymore if called in a project created withcds init - [eslint-plugin-cds@3.0.3] Disabling ESLint for the next line via
eslint-disable-next-linenow works properly in cds files - [vscode-cds@7.9.0] code completion for elements snippet now works when annotating artifacts using paths such as
MyService.SomeEntityor when triggered at particular positions including line start - [vscode-cds@7.9.0] maintain translation quickfix could have used an existing translation file of a reuse component
- [cds-compiler@4.9.4] to.sql:
- always include
tenantcolumn in foreign key references. - reject
tenantDiscriminatoroption only if sql dialect ishanaand ifwithHanaAssociationsoption is set.
- always include
- [cds-compiler@4.9.2] compiler: Rewriting annotation expression paths in structures of projections has been improved.
- [cds-compiler@4.9.2] to.edm(x):
- Operator
/representsDivByoperator, explicitDivByis replaced withDivas integer division.
- Operator
- [cds-compiler@4.9.2] to.sql: consider all associations in tenant dependent entity for referential constraint generation
- [cds.java@2.10.0] Fixed a bug, causing incorrect session context variables when processing database statements.
- [cds.java@2.9.2] Fixed a bug, causing connections to PostgreSQL databases on Google Cloud Platform (GCP) to fail because missing support for mutual TLS.
- [cds.java@2.9.1] Fixed a bug, causing the index page to fail to load in a Native Image application.
- [cds4j@2.10.0] Fixed "Cannot set reference. Reverse associations are not supported" exception on insert with data for to-many associations.
- [cds@7.9.2] Server crash in case of certain errors in Cloud SDK
- [cds@7.9.2] Bug in restriction of entities modeled as composition of aspects
- [cds@7.9.2]
$search: resolve an exception accessingreq.query.elements - [cds@7.9.2] Ignore flattened associations in projection on remote entities
- [cds@7.9.2] Falsy keys in
cds.qlwere ignored in usage likeSELECT.from(Books, 0) - [cds@7.9.1]
cds.compile.to.sqldoesn't fail for older compiler versions ifpostgreskeywords aren't defined - [cds@7.9.1]
cds compile --to serviceinfono longer detects a Java project if there is a pom.xml file in a subfolder ofapp/ - [cds@7.9.1]
acquireTimeoutMillisis ensured if custom pool config is provided - [cds-mtxs@1.18.1] Callback to saas-registry now works properly with certificate-based binding.
- [cds-mtxs@1.18.1] The passcode URL returned by the token endpoint no longer contains a 'cert' subdomain.
Removed
- [vscode-cds@7.9.0] Toolbar button Open with CDS Text Editor from graphical modeler, modeler now handles both directions to switch between graphical and textual editor.
April 2024
Added
- [cds-dk@7.9.0] Shell completion in Linux, macOS, Windows for cds commands and parameters (beta)
- [cds-dk@7.9.0]
cds bindsupports shared service instances. Service keys are created in the space where a service instance was shared from. - [cds-dk@7.9.0]
cds add datanow can generate actual data (not only a header line), both ascsvandjsonstructure. - [cds-dk@7.9.0]
cds subscribenow allows to pass tenant metadata and HDI parameters using parameter--body <json>. - [cds-dk@7.9.0]
cds add httphas a--dryflag to write the generated http requests to stdout. - [cds-dk@7.9.0]
cds add hanaandcds buildsupport undeploy of calculation views by default. - [cds-dk@7.9.0]
cds bindsupports custom credentials to overwrite cloud service credentials. - [cds-dk@7.9.0] Better support for
profilesin cds schema forpackage.jsonand.cdsrc.json. - [cds-dk@7.9.0]
cds bindsupports custom credentials to overwrite cloud credentials of multiple services. - [cds-dk@7.8.2]
cds compiletoopenapinow maps@ODM.oidReference.entityNameannotation to generatex-sap-odm-oid-reference-entity-name. - [cds-dk@7.8.1]
cds addplugins now support custom flags. - [cds-dk@7.8.1]
cds add kafkais also enabled for Helm deployments. - [cds-dk@7.8.1]
cds add enterprise-messagingandcds add enterprise-messaging-sharednow support a--cloudeventsflag which automatically addscds.requires.messaging.format = 'cloudevents'. - [eslint-plugin-cds@3.0.0] Support ESLint flat configurations (
eslint@v9) and make them available as recommended, all. - [eslint-plugin-cds@2.7.0] Add
getRootPath()method tocontextobject to get the project rootPath. - [cds-compiler@4.9.0] compiler: Annotations with expressions are now rewritten when propagated.
- [cds-compiler@4.9.0] for.seal: Added API function that produces a CSN for SEAL.
- [cds-compiler@4.9.0] for.odata/to.edm(x): Support annotation path expressions including path flattening.
- [cds.java@2.9.0] UI content from the
appfolder is now served automatically for local development. - [cds.java@2.9.0] Links to web applications from
appfolder are now added automatically to the index page for local development. - [cds.java@2.9.0] OData V4 index page content now provides a
Fiori Previewlink for each entity, loading a dynamically generated Fiori sample application. - [cds.java@2.9.0] Added support for communicating with MTX sidecar based on a bound instance of identity service (IAS).
- [cds.java@2.9.0] CSRF token retrieval for Remote OData Services can now be disabled by setting
cds.remote.services.<key>.http.csrf.enabledtofalse. - [cds.java@2.9.0] The goal
addof thecds-maven-pluginsupports adding a complex and tiny sample to a CAP Java project. - [cds.java@2.9.0] A set of property defaults recommended for production can now be set at once by setting
cds.environment.production.enabledtotrueor marking a specific Spring profile as the production profile by settingcds.environment.production.profileto (for example)cloud. The properties set include strict disabling of mock users and the index page. - [cds.java@2.9.0] The goal
generateof thecds-maven-pluginprovides the new switchuniqueEventContextsto prefix event context interfaces for bound actions / functions with the entity name. This avoids possible naming clashes for operations with the same name for different entities. - [cds.java@2.9.0] Added a new property
cds.sql.inlineCount.modeto configure how inline counts are calculated. - [cds4j@2.9.0] Configuration option
cds.sql.inlineCountto specify if inline-count is executed viawindow-functionor an additionalquery. - [cds@7.9.0] Option
cds.env.sql.transitive_localized_views: falseto skip generating transitive localized views for entities which don't have own localized elements, but only associations to such. Supported for Java and new database services in Node.js (ignored for old ones). - [cds@7.9.0] Option
cds.env.sql.native_hana_associations: falseto skip generating native HANA associations. - [cds@7.9.0] Running
cds compile --to sqlwith@cap-js/sqliteinstalled now usessession_context('$user.locale')in generated DDL statements instead of generating static localized views for 'en', 'fr', and 'de' (same forcds.deploy). - [cds@7.9.0]
api: export reserved keywords for postgres viacds.compiler.to.sql.keywords.postgres - [cds@7.9.0] Kind
legacy-hanaand profilebetter-hanafor local testing scenarios. - [cds@7.9.0] Support for PDF files (MIME type
application/pdf) when thecds.env.features.odata_new_adapterflag is set totrue - [cds@7.9.0] Lean draft: Support for filtered compositions (remain in the document)
- [cds@7.9.0] Support for
COUNT_DISTINCTas OData data aggregation default method - [cds@7.9.0] Better support for
profilesin cds schema forpackage.jsonand.cdsrc.json - [cds@7.9.0] Performance improvement for generating
@odata.contexturl ifcds.features.odata_new_parseris enabled - [cds@7.9.0] Alpha support for SAP Event Broker-based messaging (kind
event-broker) - [cds-mtxs@1.18.0]
cds-mtx subscribe <tenant> --body <json>now allows to pass tenant metadata and HDI parameters.
Changed
- [cds-dk@7.9.0]
cds deploy --to hanawarns about using custom service name, e.g--to hana:myServiceand--vcap-fileat the same time. - [cds-dk@7.9.0]
cds compiletoopenapinow throws an error when@protocol : 'none'is given. - [cds-dk@7.9.0]
--data:forofcds add datais now deprecated in favor of--filter. - [cds-dk@7.9.0]
cds add datasorts columns with own elements first, assuming they are more significant than the inherited/included elements. - [cds-dk@7.9.0]
cds add http --filteraccepts a service/entity/action name or a regex instead of a path. - [cds-dk@7.9.0]
cds deployandcds bindboth use Cloud Foundry client for backend communication. - [cds-dk@7.9.0] Changes in the
package-lock.jsonfile don't restart the server e.g. duringcds watch - [cds-dk@7.9.0]
cds init --add javauses the currently installed Java version for thepom.xml. - [cds-dk@7.9.0]
cds add mtaderives the JDK version from thepom.xmlversion. - [cds-dk@7.9.0]
cds add helmupdate default gateway tokyma-system/kyma-gateway - [cds-dk@7.9.0]
cds lintsupports both legacy (@eslint@^8) and flat (@eslint@^9) ESLint configurations. - [cds-dk@7.9.0]
cds add lintadds flat ESLint configurations with@eslint@^9,@sap/eslint-plugin-cds@^3.0.0. - [cds-dk@7.9.0]
cds add lintnow requiresESLintversion 8 or above. - [cds-dk@7.8.2] New versions of
@sap/cdsand@sap/eslint-plugin-cds - [cds-dk@7.8.2]
cds add helmmovedTENANT_HOST_PATTERNkey from configmap tovalues.yaml. - [cds-dk@7.8.2]
cds add helmweb-applicationsubchart now supports controlling the health probe timings and updated default gateway tokyma-system/kyma-gateway - [eslint-plugin-cds@3.0.2] requires
ESLintversion 8 or above - [eslint-plugin-cds@3.0.0] Plugin configurations (recommended, all) for
eslint@<v9are now available with the-legacysuffix. - [eslint-plugin-cds@2.7.0] Rule option "show" now allows inferred rules to rerun/recompile instead of just running once (as is the CLI behavior).
- [eslint-plugin-cds@2.7.0] Removed
min-node-versionrule, as it is now covered by the cds CLI. - [vscode-cds@7.8.1] Formatter now puts
actionskeyword after projection or query in a new line - [cds-compiler@4.9.0] parser: A space between
.and*/{(nested projections) is now a warning.
Usebin/cds_remove_invalid_whitespace.jsto automatically fix this warning. - [cds-compiler@4.9.0] compiler:
- Published compositions with filters are changed to associations.
- Expressions as annotation values are rejected for few known annotations that don't expect them.
- [cds-compiler@4.9.0] Update OData vocabularies: 'Aggregation', 'Capabilities', 'Common', 'Hierarchy', 'PersonalData', 'Session', 'UI'.
- [cds-compiler@4.9.0] to.edm(x): Exposed anonymous parameter types are now prefixed with
ap,bapandepfor actions, bound actions and entities. - [cds.java@2.9.0] Renamed property
cds.odataV4.apply.inCqn.enabledtocds.odataV4.apply.transformations.enabledto align with@odata.apply.transformationsannotation name. - [cds.java@2.9.0] The CSV data importer shows a warning instead of stopping the application, if it finds a CSV file for a not existing entity.
- [cds.java@2.9.0] An empty quoted value in a CSV files (
"") is no longer interpreted asnull, but as an empty String value. - [cds4j@2.9.0] SAP HANA HEX mode: fallback to non-hex SQL on "hex enforced but cannot be selected" errors.
- [cds4j@2.9.0] The inline-count of a query is now computed with an SQL window function if the query has a filter.
- [cds4j@2.9.0] Segments of structured types created from a Path no longer contain a filter, as they don't have an identity.
- [cds4j@2.8.2]
DeepUpdateSplitterlocks only entities annotated with@cds.java.versionto calculate FKs. - [cds@7.9.0] Deprecated INSERT.into(...) .as (SELECT...) → use INSERT.into(...) .entries (SELECT...) instead.
- [cds@7.9.0] Default value of
cds.env.log.mask_headerschanged to['/authorization/i', '/cookie/i', '/cert/i', '/ssl/i'](adding'/cert/i'and'/ssl/i') - [cds@7.9.0] Error messages for entities annotated with '@cds.autoexpose'
- [cds@7.9.0] For Java apps
cds.sql.transitive_localized_viewsnow defaults tofalseto create less database views. - [cds@7.9.0] For Java apps
cdsc.betterSqliteSessionVariablesnow defaults totrueto enable session variables on H2 and SQLite by default. - [cds-mtxs@1.18.0] Retries for failed upgrades are more resilient, using an exponential backoff mechanism and more retries.
Fixed
- [cds-dk@7.9.0] Revert json schema for cds schemas to
draft-07to prevent VS Code warnings about unsupported schema features. - [cds-dk@7.9.0]
cds adddoesn't fail for projects with a minimalpackage.jsonw/onameandversionfields - [cds-dk@7.9.0]
cds add datacan be executed in projects w/opackage.jsonand.cdsrc.jsonfiles. - [cds-dk@7.9.0]
cds add sampledoes not fail if thesrvfolder doesn't exist. - [cds-dk@7.9.0]
cds add helmfixed xsuaa tenant-mode not updating on addingmultitenancy - [cds-dk@7.9.0]
cds watchedcannot be called from command line anymore. - [cds-dk@7.9.0]
cds loginnow correctly handles the case of an expired refresh token and gives more information about token-request errors. - [cds-dk@7.9.0]
cds loginnow refreshes the token URL if it had previously reverted to a legacy URL. - [cds-dk@7.9.0] Command retrieval during cds bootstrap is now more robust.
- [cds-dk@7.9.0]
cds watchnow ignores allgen-folder content to allow tenant subscription in hybrid mode. - [cds-dk@7.9.0]
cds builddoesn't copy.cdsrc-private.jsonfile into the deployment folder. - [cds-dk@7.8.2]
cds run/serve --resolve-bindingscorrectly work with the new runtime authentication middleware. - [cds-dk@7.8.2]
cds add helm-unified-runtimefixed backend destinations urls for deployments that aren't exposed. - [cds-dk@7.8.1]
cds builddoes no longer add the model @sap/cds-mtxs/srv/bootstrap for Java projects by mistake if the--wsoption is set. - [eslint-plugin-cds@3.0.2] Internal parser call now handles
ESLintversion 8 and 9 - [eslint-plugin-cds@3.0.1] Add namespace
@sap/cdsto plugin configuration - [eslint-plugin-cds@3.0.0] In latest-cds-version, get output from
npm outdatedon exit code 1. - [eslint-plugin-cds@2.7.0] In no-db-keywords, use
getRootPath()instead of dirname, as wrong paths lead to missing db entries, disabling the rule. - [vscode-cds@7.8.1] Revert json schema to
draft-07due to unsupported features in2020-12and2019-09 - [vscode-cds@7.8.1]
workspace/symbolsrequest could have shown interactive popup if LSP plugins are slow - [vscode-cds@7.8.1] Indexing of entities with enum elements that led to wrongly reported unused imports
- [vscode-cds@7.8.1] Indexing of namespaces after internal compiler changes
- [vscode-cds@7.8.1] Indexing of annotations was slow
- [cds-compiler@4.9.0] compiler:
- Deprecated
$parametersis no longer proposed in code completion. - Duplicate mixin definitions lead to failing name resolution.
- Deprecated
- [cds-compiler@4.9.0] to.cdl: Types were always rendered for associations with filters, even if it would lead to a compilation failure.
- [cds-compiler@4.9.0] to.edm(x):
- Fix a recursion bug in entity parameter handling.
- Fix event exclusion in service preprocessing.
- [cds.java@2.9.0] Fixed a bug, causing a failure when upgrading webhooks in Enterprise Messaging for tenants subscribed using Subscription Management Service (SMS).
- [cds.java@2.9.0] Fixed a bug, causing
@mandatoryornot nullvalidations to run on nested data of non-cascading associations. - [cds.java@2.9.0] Fixed a bug, causing
ext_attrXSUAA claim not to be available inUserInfo.getAdditionalAttributes(). - [cds4j@2.9.0] Fixed deletes via to-one compositions with backlink association key.
- [cds4j@2.9.0] Fixed setting of structured foreign keys with nesting level greater than two.
- [cds4j@2.9.0] Fixed result of inserts on draft-enabled projections, containing projected data.
- [cds4j@2.8.2] Fixed type of
cds.Vectorelements in generated accessor interfaces. - [cds@7.9.0]
cds.compile.to.yamlproduced invalid YAML for compacted lines - [cds@7.9.0] Handling of If-None-Match header for non-existing entity
- [cds@7.9.0] Revert json schema for cds schemas to
draft-07to prevent VS Code warnings about unsupported schema features. - [cds@7.9.0] Remote services: JSON representation of error shall include
requestandresponse - [cds@7.9.0] Aliasing of associated entity column in case of expand by CQN build with joins.
- [cds@7.9.0]
$applyscenarios when used alongsidecds.env.features.odata_new_adapter = trueand the new database layer - [cds@7.9.0] ETag handling combined with where restrictions
- [cds@7.9.0]
cds compile --to hdbtabledatanow correctly supports CSV files using format.texts_<lang>.csv. Before theinclude_filterwasn't set in the generated.hdbtabledatafiles. - [cds@7.9.0]
cdscommands no longer crash when executed in the@sap/cdsinstallation dir. - [cds@7.9.0]
cds.infer: exposed association of query is inferred ascds.Associationand not as it's target - [cds@7.8.2]
.findand.filterinlinked.entities()now returns values instead of names - [cds@7.8.2]
cds.app.serve.from(pkg,folder)did not considerpkgfor serving static resources - [cds@7.8.1] In some cases,
<entity>.draftserroneously pointed to a CSN entity stub. - [cds@7.8.1] Feature vectors including falsy values like
{ ft1: true, ft2: true, ft3: false } - [cds-mtxs@1.18.0] Extension linter is now also called if extensions are created via API.
- [cds-mtxs@1.18.0] The Service Manager credentials cache is correctly invalidated following a resubscription.
March 2024
Added
- [cds-dk@7.8.0]
cds add mtaconfigures readiness health checks via http to/for Java and/healthfor Node.js. - [cds-dk@7.8.0]
cds addfacets can now also be space-separated, e.g.cds add mta mtx pipeline. - [cds-dk@7.8.0]
cds add httpadds anhttpfolder with.httpfiles generated for all services. - [cds-dk@7.8.0]
cds add http --filter [path to dir or file]generates.httpfiles only for the specified file or directory. The shortcut is-f. - [cds-dk@7.8.0]
cds add http --for-app [app name]uses the hostname and the auth of the specified deployed app. - [cds-dk@7.8.0]
cds add http --outallows to specify the output folder for the http files. The shortcut is-o. - [cds-dk@7.8.0]
cds buildreclassifies compilation warnings as info messages for extension projects in case they are caused by the SaaS application base model.cds build --log-level infologs all messages. Reclassification of message IDs can be customized. - [cds-dk@7.8.0]
cds versionnow also prints the version of the CAP Java SDK as well as the Java and Maven versions - [cds-dk@7.8.0]
cds buildnow uses argument--ws-packinstead of--wsto enable tarball based packaging of npm workspace dependencies for Node.js apps (beta). - [cds-dk@7.8.0]
cds importcan now import the Action/Function with binding parameter type of different schema in the scope of a document. - [cds-dk@7.7.2]
cds importnow hasbetaflag which can be used to import beta functionality in the CSN/CDS. - [vscode-cds@7.8.0] Add preview commands to editor title
- [cds-compiler@4.8.0] compiler: Type
cds.Vectorwas added. It is mapped toREAL_VECTORon SAP HANA. - [cds-compiler@4.8.0] Support associations to/from entities with parameters for SAP HANA SQL (hdi/direct).
- [cds-compiler@4.8.0] to.sql/to.hdi:
- SAP HANA keywords
ABSOLUTE,REAL_VECTOR, andST_ASESRIJSONare now included for smart quoting. +PostgreSQL keywordSYSTEM_USERis now included for smart quoting.
- SAP HANA keywords
- [cds-compiler@4.8.0] API: Added
to.sql.postgres.keywordsandto.sql.h2.keywords. They contain keywords for the respective SQL dialect. - [cds.java@2.8.1] Added a new property
cds.multiTenancy.dependencies.destination.enabledto automatically declare Destination service as a dependency during subscription. - [cds.java@2.8.1] Remote Services can now be configured with a service binding, from which a destination is derived automatically, by configuring the new properties section
cds.remote.services.<key>.binding. - [cds.java@2.8.1] Remote OData services now support the
ETagPredicatefor update and delete queries. TheETagPredicateis translated into a correspondingIf-Matchheader. - [cds.java@2.8.1] Remote OData services now store values from
ETagresponse headers in theCdsDatametadata (data.getMetadata("etag")). When executing an update statement ETags are automatically set inIf-Matchif present in the metadata of the data provided for the update. - [cds.java@2.8.1] The switch
sharedInterfacesin thecds-maven-pluginallows to replace the inner interfaces for global types with inlined arrayed types in the event contexts for an actions and functions with global ones. - [cds.java@2.8.1] The goal
watchof thecds-maven-plugincan be executed from the project root folder. - [cds.java@2.8.1] Introduced a new API
OutboxService.outboxed(Service, Class)to wrap a service with an asynchronous suited API while outboxing it. - [cds.java@2.8.1] Introduced the interface
AsyncCqnServiceand the APIAsyncCqnService.of(CqnService, OutboxService), providing an asynchronous suited API for CqnServices wrapped by an outbox. - [cds.java@2.8.1] Added a new property
cds.outbox.services.<key>.ordered(default:true) to disable strict ordering of outbox messages, allowing for parallelized message processing. - [cds.java@2.8.1] Improved parallelization of tenant processing across outbox processors in multiple application instances.
- [cds.java@2.8.1] The new
EventContext.proceed()method allows to explicitly proceed with executing the next On event handler. - [cds.java@2.8.1] The goal
addof thecds-maven-pluginsupports adding Kafka support to a CAP Java project. - [cds.java@2.8.1] The mock user security configuration now allows loading iFrames, to support H2 console out-of-the-box for local development.
- [cds.java@2.8.1] The mock user security configuration now triggers authentication also for XMLHttpRequests, to fix authentication issues with local UIs running under a parallel path to the API endpoints in some browsers.
- [cds.java@2.7.1] CQN transformations for
$applycan now be selectively enabled per service using annotationodata.apply.transformations - [cds4j@2.8.1] Added new switch
uniqueEventContextsto the code generator configuration to enable the generation of unique event context interfaces. This is an incompatible change, because the event context interfaces are generated with the prefix of bound entities. - [cds4j@2.8.1] SAP HANA: added support for CDS type
cds.Vector:- the data type
com.sap.cds.Vector - similarity functions
CQL.cosineSimilarityandCQL.l2Distance
- the data type
- [cds4j@2.8.1] Support spaces in ref paths for structure preserving element selections.
- [cds@7.8.0] Health check endpoint
/healthin default server - [cds@7.8.0] Class
cds.servicenow provides getters forentities,types,eventsandoperations. These return iterable objects, which can be used infor...ofloops. - [cds@7.8.0] Class
cds.entitygetters forkeys,associations,operationsalso returnIterableobjects now - [cds@7.8.0] Method
compile.to.serviceinfo()now lists all Node.js service endpoints in cases where multiple protocols are configured. For Java, the list is still limited to the first endpoint. This will be fixed in a future release. - [cds@7.8.0] More warnings for deprecated features, functions and annotations.
- [cds-mtxs@1.17.0] Ignore non-existing container if running upgrade
*by settingcds.requires['cds.xt.SaasProvisioning'].upgrade.ignoreNonExistingContainers: true. - [cds-mtxs@1.17.0]
cds-mtx-migrate '*'|<tenant>[,<tenant>] --init-tenant-list [--force] [--dry]now allows to fill the internal tenant list (e. g. for migration of Dynamic Deployer base applications). - [cds-mtxs@1.17.0]
cds-mtx-migrate '*'|<tenant>[,<tenant>] --sync-tenant-list [--force] [--dry]now allows to sync the internal tenant list with existing containers. Entries without a corresponding HDI container will be removed.
Changed
- [cds-dk@7.8.0]
cds add helmuses/healthfor liveness and readiness checks for Node.js. - [cds-dk@7.7.1]
cds inituses latest Maven Java archetype version 2.7.0 for creating Java projects. - [eslint-plugin-cds@2.6.6] Removed
require-2many-oncondrule, as it is now covered by the compiler. - [vscode-cds@7.8.0] Move menu item
Preview as yamlto the top of the menu items list indicating its default character - [vscode-cds@7.8.0] Formatting logging now includes whitespace even if it may be reduced to empty string, relative alignment positions, and details on inserting delayed items
- [vscode-cds@7.8.0] Minimum supported VSCode version is now 1.86.0
- [cds-compiler@4.8.0] compiler: Overriding an included element must not change the type to an association if it wasn't an association before and vice versa.
- [cds-compiler@4.8.0] Update OData vocabularies: 'Authorization', 'Common', 'UI'.
- [cds.java@2.8.1] Moved property
cds.remote.services.<key>.destination.typetocds.remote.services.<key>.type. Also moved propertiessuffix,service,queriesandheadersfrom sectioncds.remote.services.<key>.destinationto sectioncds.remote.services.<key>.http. Backwards compatibility for the old properties remains. - [cds.java@2.8.1] CQN statements are not added to Open Telemetry spans anymore by default for performance reasons, but only if logger
com.sap.cds.otel.spans.CQNis set toDEBUG. - [cds4j@2.8.1] SQL: only use localized helper views if necessary
- [cds4j@2.7.1] Code generator: Constant classes for an enums are not generated anymore if the enum is defined as inline type for the element.
- [cds-mtxs@1.17.0]
/-/cds/saas-provisioning/upgradesent as an async request with payload"tenants": ["*"]will now return job information even if no tenants are found.
Fixed
- [cds-dk@7.8.0]
cds deployalways included models from existingfts/*folders. Now, it only does so ifcds.requires.togglesis switched on. - [cds-dk@7.8.0]
cds buildnow adds the correct HANA tenant database artifacts for a multitenant application in case a second shared database exists. - [cds-dk@7.8.0]
cds bind --to-app-serviceswill throw a better error message if no app name is supplied. - [cds-dk@7.7.2]
cds deploy --to hanaenvironment entries from--vcap-fileoption now overwrite environment entries. - [cds-dk@7.7.2]
cds add helmweb-applicationsubchart now allows annotations to be added to the K8s services andcontent-deploymentsubchart now allows to setimagePullPolicy. - [cds-dk@7.7.1]
cds buildnow allows the SaaS application base model to be located in a subfolder of the mtx extension project using npm workspace setup. Before, such a scenario caused duplicate model definitions. - [cds-dk@7.7.1]
cds initshows better error message if project name contains unsupported characters. - [eslint-plugin-cds@2.6.7] Removed loading of previously removed rule.
- [vscode-cds@7.8.0] Code completion for annotations with ![] identifiers
- [cds-compiler@4.8.0] compiler:
cast()s to structured types and associations are now rejected. They could lead to crashes before. - [cds-compiler@4.8.0] to.edm(x):
- Reject action/function return types that are declared
many of many. - Render user defined annotation type
cds.IntegerasEdm.Int.
- Reject action/function return types that are declared
- [cds-compiler@4.8.0] to.sql|hdi|hdbcds:
- Correctly handle
.listduring flattening. - Improve handling of
.items.
- Correctly handle
- [cds-compiler@4.8.0] to.sql|hdi.migration:
- Turn types and aspects into dummies to reduce CSN size.
- Correctly detect a removed
.defaultand forcefully set the default tonull.
- [cds.java@2.8.1] Fixed a bug that prevents deactivating the draft gc as a side-effect of a draft activation.
- [cds.java@2.7.1] Fixed a bug, causing event-mesh tenant upgrades not to be executed.
- [cds4j@2.8.1] Fixed a bug in code generator causing the event context interfaces being generated for the operations that are renamed with
@cds.java.name. - [cds4j@2.8.1] Structured compound foreign keys have priority over flat foreign keys, even if only partially defined.
- [cds4j@2.8.1] Fixed write operations on elements of a projections that are referenced via an alias prefix in the CDS model.
- [cds4j@2.7.1] Fixed a bug causing
ClassCastExceptionforBetweenPredicatein the CQL Statement Builder - [cds4j@2.7.1] Fixed a bug causing key values to be set to
nullwhen setting an association tonullcontaining the source key in the ON condition - [cds@7.8.0] Reverted
cds.Associationbeing derived fromcds.struct; it's now derived fromcds.typeagain. - [cds@7.8.0] Entity definitions using joins were erroneously marked as
_unresolved - [cds@7.8.0] Consistent error messages for query options validation with new parser
- [cds@7.8.0] Validation for mandatory associations which target entities with defaulted keys
- [cds@7.8.0] Transaction handling for aborted streaming requests
- [cds@7.8.0] Create/Update over filtered managed compositions
- [cds@7.8.0] Templates are cached at the model (instead of the service)
- [cds@7.8.0] Deprecation warnings use
cds.log()in production - [cds@7.8.0] Single quote in a string in
.wherefor remote service - [cds@7.8.0] Escaped characters in double quoted search term when using
odata_new_parser - [cds@7.7.3]
cds.log: preserve message property of details through stringification (it's non-enumerable if the detail entry is an error) - [cds@7.7.3] Auto-exposed child entities with multiple restrictions
- [cds@7.7.3] Calculation of read-only values in custom code during creation of new drafts
- [cds@7.7.2] Requests to actions/functions on entities in draft state via navigation.
- [cds@7.7.2] PUT/PATCH with if-none-match: * forces insert
- [cds@7.7.1] JWT authentication for Event Mesh endpoints
- [cds@7.7.1]
cds.log's json formatter: ensuretypeis set (required on kubernetes until CLS defaults this) - [cds@7.7.1] Erroneously generated foreign keys in
req.datafor UPDATE using path expressions - [cds@7.7.1]
INSERT.columns.rowsfor multiple nested composition of aspects - [cds@7.7.1] Paths passed to
taron Windows are now normalized to use forward slashes. - [cds-mtxs@1.17.0] The
dataEncryptionprovisioning parameter is disabled fort0when using HANA native tenants. - [cds-mtxs@1.17.0] Ignore non-existing container if running upgrade
*by settingcds.requires['cds.xt.SaasProvisioning'].upgrade.ignoreNonExistingContainers: true. - [cds-mtxs@1.17.0] The built-in Service Manager client filters bindings by
ready = true.
February 2024
Added
[cds-dk@7.7.0] Schema support for declaring schema contributions in cds plugins.
[cds-dk@7.7.0]
cds importnow supportsrefin schema properties for AsyncAPI files.[cds-dk@7.7.0]
cds add html5-repois now supported for Cloud Foundry (Beta).[vscode-cds@7.6.1] Add preview commands to editor title
[vscode-cds@7.6.0] Hover over import path of
usingstatement showsREADME.mdorpackage.json#descriptionif absolute (i.e. module) import[cds-compiler@4.7.0] compiler: Virtual elements can now be referenced in expressions in annotation
[cds.java@2.7.0] Introduced a new API
OutboxService.outboxed(Service)to wrap services with outbox handling. Events triggered on the wrapper are stored in the outbox first, and executed asynchronously. Relevant information from theRequestContextis stored with the event data, however the user context is downgraded to a system user context.[cds.java@2.7.0] If the outbox is enabled for Messaging and AuditLog services the new outbox wrapper API is used. The outbox wrapper can be programmatically removed by using
OutboxService.unboxed(Service), returning a synchronously operating instance.[cds.java@2.7.0] Added properties section
cds.outbox.servicesto configure additional outbox services. The previous propertiescds.outbox.persistentstill configure the default outbox services namedDefaultOutboxOrderedandDefaultOutboxUnordered, if they are not configured explicitly within the new section.[cds.java@2.7.0] The default outbox used by a Messaging or AuditLog service can now be configured through properties
cds.messaging.services.<key>.outbox.nameandcds.auditlog.outbox.name.[cds.java@2.7.0] Added support for case insensitive contains CQN queries with the
cds-feature-remote-odatato remote OData V2/V4 services.[cds.java@2.7.0] Added support for
CqnBetweenPredicatein remote OData requests.[cds.java@2.7.0] Added OpenTelemetry spans for outbox and draft GC background activity.
[cds.java@2.7.0] Improved Draft GC to request tenant-specific CDS models only if there is at least one stale draft in the tenant database.
[cds.java@2.7.0] The goal
addof thecds-maven-pluginsupports adding Spring-Boot Security support to a CAP Java project with-Dfeature=SECURITY.[cds.java@2.7.0] Added beta version of change tracking feature
cds-feature-change-trackingto capture changes in the database.[cds4j@2.7.0] Between predicate (
CqnBetweenPredicate) usingCQL.between()[cds4j@2.7.0] Code generator: For an enums defined in the CDS model, the constant classes are generated with the constants reflecting the values of the enum members
[cds4j@2.7.0] Added support for parsing Base64 encoded binary data in a JSON document
[cds4j@2.7.0] Support
cds.Vectortype on SAP HANA beta[cds@7.7.0] Improved trace output for bootstrap phase. For example try that:
jsDEBUG=trace cds w bookshop | grep trace[cds@7.7.0] Support for
@odata.draft.bypassto allow direct modifications of active instances.[cds@7.7.0]
req.user.tokenInfofor@sap/xssec-based authentication (ias,jwt,xsuaa)[cds@7.7.0]
cds.fiori.draft_lock_timeoutas successor ofcds.drafts.cancellationTimeout.- Possible values are /^([0-9]+)(h|hrs|min)$/ or a number in milliseconds.
[cds@7.7.0] There is a new
sap.common.Timezonesentity with a basic time zone definition. There will be accompanying data in package@sap/cds-common-content.[cds@7.7.0] Deprecation warnings for configuration options
cds.drafts.cancellationTimeout,cds.features.serve_on_root,cds.features.stream_compat,cds.fiori.lean_draftandcds.requires.middlewares, as well as for the propertiesreq.user.localeandreq.user.tenant. The deprecation warnings can be turned off by settingcds.features.deprecatedtooff.[cds-mtxs@1.16.0]
cds-mtx upgradenow allows to pass*to upgrade all tenants.
Changed
- [cds-dk@7.7.0]
cds add mtawill addnpm cito itsbefore-allbuild scripts to makembt buildmore self-contained. - [cds-dk@7.6.1]
cds loginnow automatically discards invalid refresh tokens and retries instead of exiting with an error. - [cds-dk@7.6.1]
cds loginnow saves the passcode URL received from a failing token request and prints it along with the error and any subsequent passcode prompt. - [cds-dk@7.6.1]
cds loginnow hints at missing user role as the cause of an error, if applicable. - [vscode-cds@7.6.0] Formatting option
alignAfterKeyoption now applies to views and projections as well - [cds-compiler@4.7.0] Update OData vocabularies: 'Authorization', 'Common', 'Hierarchy', 'UI'.
- [cds-compiler@4.7.0] to.edm(x):
@cds.odata.valuelistrenders all non-key elements of the value help list asValueListProperty. - [cds.java@2.7.0] Properties section
cds.outbox.persistenthas been deprecated in favor ofcds.outbox.services. - [cds.java@2.7.0] Properties
cds.auditlog.outbox.persistent.enabledandcds.messaging.services.<key>.outbox.persistent.enabledhave been deprecated in favor of the existing...outbox.enabledand new...outbox.nameproperty. - [cds.java@2.7.0] System users now generally run with all feature toggles enabled by default. This aligns with the behaviour of the recently introduced
RequestContextRunner.systemUser(String)methods. - [cds4j@2.7.0]
CdsAssociationType::getTargetAspectnow returnsOptional<CdsStructuredType>as aspects are always structured - [cds@7.7.0] The index page now lists all service endpoints, which is important for services that are exposed through multiple protocols.
- [cds@7.7.0]
cds.deployimproves error diagnostics with deeperQueryobject inspection. - [cds@7.7.0] Slightly changed the default export for ESM compatibility. This fixed failing ESM imports in Vitest tests.
- [cds-mtxs@1.16.0] The Service Manager polling timeout is increased from 60 to 180 seconds.
- [cds-mtxs@1.16.0] On failing UAA token request, MTXS now responds to client with JSON to enable parsing the passcode URL.
Fixed
- [cds-dk@7.7.0]
cds buildfor MTX extensions no longer fails in case of duplicate model definitions. - [cds-dk@7.7.0]
cds version -inow prints the same versions in MD form ascds version - [cds-dk@7.6.1]
cds importnow fixed theAnnotationPathattribute value import for Annotation in OData V4 EDMX correctly in the CSN. - [cds-dk@7.6.1]
cds importwill now move the imported EDMX file tosrv/externalonly if the import is successful. - [cds-dk@7.6.1]
cds importnow captures the annotations present within EntityContainer for OData V4 EDMX in the CSN. - [cds-dk@7.6.1]
cds deployallows usage ofSERVICE_REPLACEMENTSwithout specifyingVCAP_SERVICES. - [cds-dk@7.6.1]
cds deploygives an error if its service key corresponds to a Service Manager instance. - [vscode-cds@7.6.1] Elements snippet now works when annotating artifacts in namespaces and/or contexts or if the brace after the elements is still missing
- [vscode-cds@7.6.0] Removed padding after unary plus, minus or parameter colon
- [vscode-cds@7.6.0] Artifact-elements snippet in
annotatestatement now appears regardless of cursor position between braces (or logs reason for not appearing) - [vscode-cds@7.6.0] Highlighting after semicolon in certain contexts
- [vscode-cds@7.6.0] On Windows editor potentially no longer updated diagnostics for sources with annotations
- [vscode-cds@7.6.0] Wrong diagnostics about unused imports
- [vscode-cds@7.6.0] First code completion could have been slow as workspace was scanned unnecessarily
- [vscode-cds@7.6.0] Code completion for annotations was not shown in certain cases
- [vscode-cds@7.6.0]
untitledi.e. new not yet saved files no longer worked in VSCode - [cds-compiler@4.7.6] OData: Restored compatibility with the Java runtime. Drafts generation was applied twice.
- [cds-compiler@4.7.4] OData: Fixed infinite recursion in draft handling for nested recursive compositions.
- [cds-compiler@4.7.2] Restored compatibility with
@sap/cds-dkfor Java runtime - [cds-compiler@4.7.0] CDL parser: a
selectafter two or more(s in an expression or condition could cause some constructs in that query, such asvirtual, to be not properly parsed. - [cds-compiler@4.7.0] compiler: published associations with filters sometimes had the filter applied twice if used in inline aspect compositions
- [cds-compiler@4.7.0] to.sql|hdi|hdbcds[.migration]:
- With
withHanaAssociations:false, remove the association elements from the final CSN in order to correctly detect them during migration scenarios and with generatedhdbcds. - Skip expensive processing (for calculated elements and nested projections) if the model doesn't use it.
- Don't greedily set alias on subqueries if not required.
- Remove bound actions and turn all non-database relevant artifacts into dummies to simplify and shrink CSN.
- With
- [cds-compiler@4.6.2] compiler: Fix incorrect error about type properties if deprecated flag
ignoreSpecifiedQueryElementsis set. - [cds-compiler@4.6.2] Update OData vocabularies: 'Authorization', 'Common'.
- [cds.java@2.7.0] Fixed a bug, causing an
Internal Server Errorif an OData V2 request without/$valueis sent to a stream entity with a field annotated with@Core.MediaType. - [cds.java@2.7.0] Fixed a bug, causing
FeatureToggleInfoProviderto be skipped, when usingRequestContextRunner.systemUser(String)to set a system user context. - [cds4j@2.7.0] Fixed a bug causing syntax errors in the consumption interfaces that used the global types with an inlined arrayed types
- [cds4j@2.7.0] Fixed a bug, causing wrong signatures being generated for the methods representing an actions and functions with the arrayed arguments or return types
- [cds4j@2.7.0] Fixed a bug, causing virtual structured elements not being ignored outside of filters and where conditions
- [cds4j@2.7.0] Fixed a bug in the Boolean comparison of row values with IS/IS NOT on H2 and SAP HANA
- [cds4j@2.6.1] SAP HANA: Fix "hex enforced but cannot be selected" for subqueries using
LIMIT/OFFSETin optimizationModehex - [cds4j@2.6.1] Fixed a bug, causing unexpected manipulations of shared
Expandobjects - [cds@7.7.0] Persistent outbox must not be used for
t0tenant. - [cds@7.7.0] Second
await cds.connect.to('X'), where initialization ofXresults in an error, did not return. - [cds@7.7.0] Support additional draft requests.
- [cds@7.7.0]
cds.logwithnullas argument. - [cds@7.6.4] Emitting multiple message with an in-memory outbox
- [cds@7.6.4] Occasional crash for invalid draft requests
- [cds@7.6.4] On the index page, additional links now show up again for non-OData services.
- [cds@7.6.4] Handling of thenables for queries
- [cds@7.6.3] Event Mesh webhooks now add standard
beforemiddlewares in case of custom authorization - [cds@7.6.3]
compile.to.serviceinfono longer fails for services marked with@protocol:'none'. Such internal services are not shown in the output. - [cds@7.6.2] Introduce i18n
BATCH_TOO_MANY_REQkey for error message: "Batch request contains too many requests" - [cds@7.6.2] Properly handle
$orderbyin lean draft - [cds@7.6.2] View resolving in combination with
@cap-js/cds-db - [cds@7.6.2] Allow
cds.requires.someService.outboxto be a string - [cds@7.6.2]
cds.log: errors, when not the first argument, were considered objects carrying custom fields - [cds@7.6.2]
acceptheader parsing for OData requests if quality factorqis included - [cds@7.6.2] Broken links on index page if multiple protocols are configured
- [cds-mtx@2.6.7]
provisioning_parametersset viacds.mtx.provisioning.containerorCDS_MTX_PROVISIONING_CONTAINERare correctly merged into request options. - [cds-mtxs@1.16.0]
upgradeaction is now also provided bycds.xt.SmsProvisioningService. - [cds-mtxs@1.16.0] Cleanup option of MTXS Migration deletes old
__META__tenant only if cleanup is triggered for*(all tenants). - [cds-mtxs@1.16.0] Improved formatting of errors when fetching auth tokens.
January 2024
Added
- [cds-dk@7.6.0]
cds add application-loggingis now supported for Java. - [cds-dk@7.6.0]
cds addandcds inithelp shows a more complete list of available commands. - [cds-dk@7.6.0]
cds bind -2 <service-name>automatically creates service key named<service-name>-keyon Cloud Foundry. - [cds-dk@7.6.0]
cds bind --to-app-services <app-name>binds to all services of a deployed app. - [cds-dk@7.6.0]
cds buildrequires feature toggles to be switched-on in order to get the corresponding features generated. - [cds-dk@7.6.0]
cds buildsupports npm workspace setups beta. - [cds-compiler@4.6.0] compiler: Events can now be projections on other structured events and types.
- [cds-compiler@4.6.0] to.cdl:
parseCdlandgensrcstyle CSN (a.k.a.inferredandxtended) is now supported as input. - [cds.java@2.6.0] Optionally handle
$applyin custom code. Requires settingcds.odataV4.apply.inCqn.enabledtotrue. - [cds.java@2.6.0] Support for calling actions and functions via HCQL has been added to
cds-adapter-hcqlandcds-feature-remote-hcql. - [cds.java@2.6.0] Added Open Telemetry spans for individual requests of an OData $batch request.
- [cds.java@2.6.0] Added Open Telemetry spans for executed CQN statements.
- [cds.java@2.6.0] Support for Cloud SDK 5 (>= 5.2.0) in addition to Cloud SDK 4.
- [cds.java@2.6.0] Entities associated through composition and explicitly annotated with
@odata.draft.enabled: falseare now excluded from the draft tree (incl..textsentities in case of missing@fiori.draft.enabledannotation). - [cds4j@2.6.0] ETag predicate (
CqnEtagPredicate) for optimistic verification withCQL.eTag()andStructuredType.eTag()factory methods. - [cds4j@2.6.0] Add typed query builder API for Update::set
- [cds@7.6.0]
cds.upsertas shortcut forcds.db.upsert - [cds@7.6.0] Automatic deletion of stale drafts. Feature is enabled if
cds.env.fiori.deletionTimeoutis set to a value oftrue;trueuses the default timeout of30d(30 days). - [cds@7.6.0] Support for default exports (ESM/TS) in custom authentication
- [cds@7.6.0] Support for executing SAP HANA procedures from SYS schema
- [cds@7.6.0] Support for more complex on-conditions in case of READ requests
- [cds@7.6.0] Best effort mechanism for supporting lambda expressions targeting remote odata-v2 services
- [cds@7.6.0] Support for actions and functions which are bound to singletons
- [cds-mtxs@1.15.0] MTXS now supports subscription via Subscription Manager Service also for Node.js applications.
- [ux-cds-odata-language-server-extension@1.12.2] Enhanced code completion to restrict the suggestions for annotation terms, complex types and properties to more meaningful based on
Validation.ApplicableTermsset in OData vocabulary definitions . - [ux-cds-odata-language-server-extension@1.12.2] Enhanced validation to display warning if the usage of annotation terms, complex types and properties is restricted in OData vocabulary definitions with
Validation.ApplicableTerms.
Changed
- [cds-dk@7.6.0] Json schemas for
buildanddeploymoved here from@sap/cds. - [cds-dk@7.6.0] cds build plugins can provide additional json schemas, including root nodes beta.
- [cds-dk@7.6.0]
cds add helmdoesn't expose srv workload in single tenant mode if App Router is present. - [cds-dk@7.6.0]
cds add hanaalso adds draft tables to theundeploy.json. - [cds-dk@7.6.0]
cds builduses existing.npmrcfile from project root for the MTX sidecar build, precedence has.npmrcin sidecar folder. - [cds-dk@7.6.0]
cds logout --clear-invalidalso deletes expired tokens. - [cds-dk@7.5.1] Bump of dependencies
- [cds-dk@7.5.1] MTXS commands will now use a request timeout to avoid hanging on invalid URLs.
- [cds-dk@7.5.1] Error messages for invalid URLs have been improved.
- [cds-dk@7.5.1] Reverting the fix from
7.5.0:cds compiletoopenapinow adds correct schema$reffor patch operation. - [cds-compiler@4.6.0] Update OData vocabularies: 'Aggregation', 'Validation'
- [cds-compiler@4.6.0] to.sql/hdi/hdbcds: Removed warnings for number and type of keys in draft-enabled entities.
- [cds.java@2.6.0] Outbox messages are no longer stored with a
partitionnumber, but with atarget, which identifies the outbox service and collector processing the message. TheOutboxService.PERSISTENT_NAMEinstance (formerly managing two partitions) was replaced by two distinct outbox services (OutboxService.PERSISTENT_UNORDERED_NAMEandOutboxService.PERSISTENT_ORDERED_NAME) each handling messages with a dedicatedtarget. Compatibility with auditlog or messaging events stored in the old format is ensured. - [cds.java@2.6.0] The OutboxService API has been changed from
enroll(String, String)tosubmit(String, Map<String, Object>). TheOutboxMessageEventContext.getMessage()method now respectively returnsMap<String, Object>as well. - [cds.java@2.6.0]
cds.multiTenancy.serviceManager.timeouthas been removed. - [cds4j@2.6.0] SQLite:
CQL.matchesPatternnow also throws an exception on unsupported patterns to align with H2 - [cds4j@2.6.0] To check for equality of
CdsElements obtained from theCdsModelthey now need to be compared withequals - [cds4j@2.6.0] Optimizations for SAP HANA HEX engine
- a subselect to search in active entities is avoided
- search can now search from a subquery
- search can now search computed elements
- search does not search the fallback text of localized elements
- enforce searching the fallback text with the annotation `@cds.sql.search.mode: 'localized-association'
- [cds4j@2.6.0] Rename config option
cds.sql.search.use-localized-view: truetocds.sql.search.mode: 'localized-view' - [cds@7.6.0] Draft: Standard Sorting Behavior for SAP Fiori List Report Floorplan
- [cds@7.6.0] Use new CDS schema for validation and code completion in
package.jsonand.cdsrc.jsonfiles - [cds@7.6.0] Media Data Streaming
- OData: Large binaries without
@Core.MediaTypeannotation were previously returned as base64-encoded buffer. Starting from this@sap/cdsversion also not-annotated large binaries are ignored by OData. It is strongly recommended to annotate all large binary properties with@Core.MediaTypeand use it according to streaming scenarios. - Custom Handlers:
SELECTwith explicitly listedSELECT.columnsof typecds.LargeBinaryreturns them as Readable streams. Large binary columns requested implicitly bySELECT(for example, with.columns('*')) are ignored. - Streaming API:
cds.stream()andsrv.stream()are deprecated and will be removed with the next major release. UseSELECTwith a singlecds.LargeBinarycolumn instead. The resulting object will contain the name of the column and a stream value. For example,SELECT.one.from(E).columns(['image']).where(...)returns{ image: <media stream> }. - Backward Compatibility: To restore previous behavior use
stream_compat.
- OData: Large binaries without
- [cds-mtxs@1.14.3] The temporary workaround for
cds.env.requires.['cds.xt.ModelProvideService'].loadSync = trueis removed. This setting won't have an effect for future versions.
Fixed
[cds-dk@7.6.0]
cds buildno longer throwsmaximum call stack size exceedederror when building SaaS extensions.[cds-dk@7.6.0]
cds add approuterno longer addsSUBSCRIPTION_URLconfiguration to Java projects in some scenarios.[cds-dk@7.6.0]
cds add html5-repoin combination withcds add helmorcds add helm-unified-runtimecorrectly adds HTML5 repo runtime configuration.[eslint-plugin-cds@2.6.5] Performance got improved significantly for projects with many non
.cdsfiles (like.jsfiles)[vscode-cds@7.5.1] Retrieval of
@sap/cds-dkglobal installation path is now more robust in SAP Business Application Studio[vscode-cds@7.5.1] Activate extension also for
jsoncfiles[cds-compiler@4.6.0] compiler:
- ON-conditions of associations with filters in calculated elements were incorrectly rewritten when included in other entities, and the filter was applied twice in some scenarios.
- redirecting an association with filter did not rewrite paths relative to the redirection target.
- Unknown type references with an explicit named type argument such as
Unknown(length: 10)crashed.
[cds-compiler@4.6.0] to.edm(x):
@Core.IsURLis not rendered in combination with@Core.MediaType(V4 only).- No 'odata-navigation' warning for association targets annotated with
@cds.autoexpose: false. - No empty annotation in API, when a non-existent base annotation is annotated (eg.
@Common.Label.@Core.Descriptionwithout@Common.Label). - Don't crash if value for
$Typeis not a string. - Generated foreign keys of type
cds.UUIDthat are also primary key are not annotated with@Core.ComputedDefaultValue. This is a follow up correction to 4.5.0
[cds.java@2.6.0] Fixed a bug, causing the
UnsupportedOperationExceptionbeing thrown during creation or an update of an entity with to-one compositions to other entities that are subject to the audit logging.[cds.java@2.6.0] The event contexts generated in the fluent style now autocomplete the event context when the method
result(...)is called. An explicit call tosetCompleted()is no longer necessary.[cds.java@2.6.0] Readded Cloud SDKs resilience implementation as a dependency to
cds-integration-cloudsdk.[cds.java@2.6.0] Fixed a bug, preventing
;to be used in OData V2 search words.[cds.java@2.6.0] Fixed a bug, causing
Numbertypes (e.g.Integer) toBigDecimalClassCastExceptionin OData v4 Serializer.[cds.java@2.6.0] Fixed a bug, causing
ClassCastExceptionwhen using typed service interfaces to call remote OData actions or functions.[cds.java@2.6.0] Fixed a bug, which prevents setting the correct tenant for the draft GC after draft activation.
[cds4j@2.6.0] Fix UnsupportedOperationException on expand by parent-keys with orderBy on result sets > 100
[cds4j@2.6.0] Fix upserts via projections using element ref paths
[cds4j@2.6.0] Fix exception that occurs if the name of an element equals the qualified name of its entity
[cds4j@2.6.0] Queries with inline count and the filters that are always false have inline count set to zero instead of a default value
[cds@7.6.1] Garbage collection of draft is configured with
cds.fiori.draft_deletion_timeout[cds@7.6.0]
cds.minifyreturned a shallow clone. When callers like 2sqlcds.linkedthat subsequently, this left the passed-in csn in a broken, partially linked state. Now,cds.minifydoesn't clone anymore, but modifies the passed in csn.[cds@7.6.0] Handling of read-only fields in drafts
[cds@7.6.0] Event Mesh: Better error message for incoming messages without a topic
[cds@7.6.0]
cds buildnow logs a better error message if an incompatible@sap/cdsversion is used.[cds@7.6.0] Better error message for runtime requests to non-existing tenants in extensibility scenario.
[cds@7.6.0] Do not generate UUIDs for association key during
CREATEoperation.[cds@7.6.0] OData aggregation with lean draft
[cds@7.6.0] Sorting in new odata parser with nested select statements. The default sort order is now added to the outer select statement.
[cds@7.6.0] Server crash in case of misformatted
groupbytransformation in$apply[cds@7.6.0] Switched EM webhook endpoints to also use new authentication implementation
[cds@7.6.0]
odata_new_parser: better error message and code for expand on non-existing elements[cds@7.5.3]
cds.localizeandcds buildproducei18n.jsonagain with keys from all base languages[cds@7.5.3]
cds.compile.to.serviceinfonow correctly parses SpringBoot config with nested objects, e.g. forcds.odata-v4.endpoint.path[cds@7.5.3] Recommend to use
chai4 for the time being, aschai5 doesn't properly work yet (requires ESM,chai-as-promisednot working)[cds@7.5.3] View resolving for entities using property names that are identical to entity names
[cds@7.5.3] Direct modifications with
cds.fiori.bypass_draftifcds.fiori.draft_compatis not enabled[cds@7.5.3] Draft: Field validation error message does not display the name of the field
[cds@7.5.2] Service-level ETag handling in legacy OData server
[cds@7.5.2] Only provide model to ModelProvider if extensibility or feature toggles are active
[cds@7.5.2] OData server driven paging when using feature flags
cds.env.features.odata_new_parserandcds.env.features.okra_skip_query_options[cds-mtxs@1.15.0] Additional services needed when using
SERVICE_REPLACEMENTSfor HDI deployment can now also be consumed in Kyma after adding them to thecdsconfiguration likejson"requires": { "myuserprovided": { "vcap": { "label": "user-provided", "name": "myuserprovided" } },[cds-mtxs@1.15.0] Temporary files for build and deployment are created in the OS temp directory if file system permissions do not allow the creation in the cds root directory.
[cds-mtxs@1.14.4] Fixed a
TypeErrorin the credentials cache invalidation for HANA deployments.[cds-mtxs@1.14.3] i18n translations missing in some Java setups are now correctly resolved.
[cds-mtxs@1.14.3] CSNs loaded in a worker thread are correctly linked. In earlier versions, this could lead to a stack overflow in projects having
cds.requires.db.schema_evolution: falseand cyclic actions such as this:cdsentity C_Books as projection on Books { * } actions { action returnSelf() returns C_Books; }[cds-mtxs@1.14.3] Sync upgrades for
tenants = *withclusterSize > 1are working correctly.[cds-mtxs@1.14.2]
POST /-/model-provider/getEdmxcorrectly ad-hoc compiles EDMX files for extended or toggled models.[cds-mtxs@1.14.2]
POST /-/model-provider/getEdmxre-compiles the EDMX if amodelis passed.[cds-mtxs@1.14.2] More resilient retry handling for 'authentication failed' errors in SAP HANA deployments.
Removed
- [cds@7.6.0] Experimental
STREAMCQN is removed and cannot be used anymore