Changelog 2025
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.
June 2025
Added
- [cds.java@4.0.0] Introduced a new setting
betterNames
for thegenerate
goal of the CDS Maven Plugin. This enables technical conversions to better support CDS models with names with characters invalid for Java identifiers or clashing with Java keywords. - [cds4j@4.0.0] Value.length() to determine the length of a String value
- [cds4j@4.0.0] Added new switch
betterNames
to the code generator configuration to introduce the following conversions:- the names from CDS entities that match Java keywords are suffixed with
_
. - the characters
/
and$
are treated as_
during conversion to camel case or screaming case. - the leading
_
in elements remains in the resulting names. - the characters that are not valid for Java identifiers are replaced with
_
in the resulting name.
- the names from CDS entities that match Java keywords are suffixed with
- [cds4j@4.0.0] Added the public API
CdsJsonConverter
(beta) to convert JSON toCdsData
and vice versa. - [cds4j@4.0.0] Added support for calculated elements (
null as LimitedDescendantCount : Int16
, etc.) in hierarchical views (projected entities only). - [cds4j@4.0.0] Added support for match predicates
anyMatch
/allMatch
in filters of recursive Hierarchies.
Changed
- [cds-dk@9.0.5]
cds init
uses latest Maven Java archetype version 4.0.0 for creating Java projects. - [vscode-cds@9.0.2] Telemetry now requires the user to install
SAP Business Application Studio Toolkit
extension - [cds.java@4.0.0] Runtime views are now by default rendered via CTEs pushing the projection into the SQL. Set
cds.sql.runtimeView.mode: resolve
to use the previous mode, which resolved projections explicitly by transforming CQN statements. - [cds.java@4.0.0] Renamed
cds.multiTenancy.subscriptionManager.clientCertificateHeader
tocds.security.authentication.clientCertificateHeader
. - [cds.java@4.0.0] Renamed
cds.multiTenancy.security.internalUserAccess.enabled
tocds.security.authentication.internalUserAccess.enabled
. - [cds.java@4.0.0] Security checks have been hardened by enabling the following properties by default:
cds.security.authorization.deep.enabled
,cds.security.authorization.instanceBased.rejectSelectedUnauthorizedEntity.enabled
andcds.security.authorization.instanceBased.checkInputData.enabled
. - [cds.java@4.0.0] Translations for error messages for built-in input validation annotations are now enabled by default. You can disable these translations by setting
cds.errors.defaultTranslations.enabled
tofalse
. - [cds.java@4.0.0] Subscription hooks in
com.sap.cds.feature.mt.lib.subscription.exits
from former MT library have been deprecated. Use event handler forDeploymentService
instead. - [cds4j@4.0.0] Runtime views are now by default rendered via CTEs. Set
cds.sql.runtimeView.mode: resolve
to use the resolve mode. - [cds4j@4.0.0] StructDataParser now rejects non-array nodes as value for to-many associations.
- [cds4j@4.0.0] With cds-compiler 6 (cds 9)
$now
in projections is replaced by the value of the session variablenow
. - [cds4j@4.0.0] Removed deprecated function Xpr.length(), use Xpr.size() instead.
- [cds4j@4.0.0] Removed deprecated configuration parameters
sharedInterfaces
anduniqueEventContexts
from code generator. - [cds4j@4.0.0] Removed deprecated
Modifier.selectListValue(Value<?>)
, useselectListValue(SelectableValue)
instead. - [cds4j@4.0.0] Removed deprecated
CqnSearchPredicate
, use CqnSearchTermPredicate instead. - [cds4j@4.0.0] Removed deprecated
SelectableValue::withoutAlias()
. - [cds4j@4.0.0] Removed deprecated
Modifier::search(String term)
, useModifier::searchTerm(CqnSearchTermPredicate)
instead.
Fixed
- [cds-dk@9.0.5]
cds build
for extensions now filters built-in entities such ascds.outbox.Messages
to fix the extension upload withcds push
. - [cds-dk@9.0.5]
cds add data
now correctly works for nested structured properties. - [cds.java@4.0.1] Native HANA associations are no longer explicitly disabled in new projects, as this is the default behaviour in cds9
- [cds.java@4.0.1] Fixed a bug, causing the sample UI to trigger unsupported requests
- [cds.java@4.0.1] Fixed a bug, causing
draftActivate
to return error targets withIsActiveEntity=true
, if there is exactly one error message. - [cds.java@4.0.0] Fixed a bug in
cds-feature-flow
, causing exceptions when updating the status of a draft-enabled entity. - [cds.java@4.0.0] Fixed a bug, causing
draftActivate
to return error targets withIsActiveEntity=true
. - [cds.java@4.0.0] Fixed an NPE in
cds-adapter-odata-v2
when media entity element is null. - [cds4j@4.0.1] Fixed search on entities using elements of
@cds.external
entities as@Common.Text
- [cds@9.0.3] Handling of bad timestamps in URL ($filter and temporals)
- [cds@9.0.3] View metadata for requests with $apply
- [cds@9.0.3] Server crash for some URLs
Removed
- [cds.java@4.0.0] Removed deprecated property
cds.security.authorization.emptyAttributeValuesAreRestricted
. Empty attributes are always considered restricted by default and explicitis null
conditions must be used to treat empty attributes as unrestricted. - [cds.java@4.0.0] Removed deprecated property
cds.odataV4.serializer.buffered
. OData V4 responses are now always streamed while serialized. - [cds.java@4.0.0] Removed deprecated property
cds.messaging.services.<key>.structured
and deprecated plain String-based methods inMessagingService
andTopicMessageEventContext
. Messages are now structured by default and always represented as separated data and header maps. - [cds.java@4.0.0] Removed deprecated custom K8s service binding handling via properties
cds.environment.k8s
. - [cds.java@4.0.0] Removed deprecated classes
ClientCredentialJwtAccess
,ClientCredentialsJwtReader
andXsuaaParams
. - [cds.java@4.0.0] Removed the resource bundle template
cds-messages-template.properties
in thecds-services-utils
jar.
May 2025
Added
- [cds-dk@9.0.1]
cds debug --force
automatically enables SSH for Cloud Foundry application instances. - [cds-dk@9.0.1] Faster table deployments on SAP HANA using HDI param
com.sap.hana.di.table/try_fast_table_migration=true
incds build --for hana
,cds deploy --to hana
,cds add hana
. - [eslint-plugin-cds@4.0.2] Add new rule sets for JS
js.all
andjs.recommended
to detect bad practice in service implementations. - [eslint-plugin-cds@4.0.2] Add rule
no-shared-handler-variables
to detect when state is shared between handlers. - [eslint-plugin-cds@4.0.2] Add rule
use-cql-select-template-strings
to mitigate potential for SQL injections. - [eslint-plugin-cds@4.0.2] Add rule
no-cross-service-import
to detect when typer artifacts are imported in an unrelated service. - [eslint-plugin-cds@4.0.2] Add rule
no-deep-sap-cds-import
to forbid importing from below the facade of@sap/cds
. - [vscode-cds@9.0.1] Support for telemetry - See
README.md
for details - [cds-compiler@6.0.8] for.odata/to.edm(x):
- Annotating the generated
DraftAdministrativeData
artifacts and their elements is now supported.
- Annotating the generated
- [cds.java@3.10.0] Support functions
round
,floor
,ceiling
,length
,indexof
, andtrim
in OData V4. - [cds.java@3.10.0] Added expression validations with
@assert.constraint
. - [cds.java@3.10.0] Added support for
@mandatory
with expressions. - [cds.java@3.10.0] Added support for
@readonly
with expressions. - [cds.java@3.10.0] Added support for Service Manager v2 API. Usage is disabled by default, but can be enabled with CDS property
cds.multiTenancy.serviceManager.v2.enabled: true
. - [cds.java@3.10.0] The goal
add
of thecds-maven-plugin
for feature AMS adds support for local testing of AMS policies to a CAP Java project. - [cds.java@3.10.0] Authorizations now support conditions with paths involving associations in
@restrict
predicates for modifying statements. - [cds.java@3.10.0]
@readonly
(and it's@Common.FieldControl
variants) and@Core.Computed
can now be evaluated already on draft instances by settingcds.drafts.enforceReadonly
totrue
. During activation they are therefore no longer evaluated. With this change values that are computed on server-side in draft mode will be retained during activation. - [cds4j@3.10.0] Support
Result:rowType
for insert, upsert and update results - [cds4j@3.10.0] Added numeric rounding functions
round
,floor
andceiling
onValue
and onCQL
- [cds4j@3.10.0] Function
average
is synonym foravg
- [cds4j@3.10.0] Type propagation for the
avg
|average
function - [cds4j@3.10.0] Added String functions
length
,indexOf
andtrim
- [cds4j@3.10.0] Support expanding unmanaged associations in hierarchies
- [cds4j@3.10.0] Support expanding reverse-mapped associations on subqueries and hierarchies
- [cds4j@3.10.0] Support associations/compositions to entities with aliased keys
- [cds@9.0.0] CAP-native task queues (beta; replacing generic outbox -- see section Changed for additional details)
- Events and requests to a "queued service" are written to the database in the current transaction (with default kind
persistent-queue
) and processed as asynchronous tasks- Programmatically queue or unqueue any service via
cds.queued(srv)
/cds.unqueued(srv)
- Statically queue instances of
cds.MessagingService
orAuditLogService
via configcds.requires.<srv>.queued = true
- Disable the persistent task queue via
cds.requires.queue = false
- Programmatically queue or unqueue any service via
- Tasks are processed in dedicated transactions (except on SQLite, where there are no concurrent transactions)
- Tasks are retried until processed successfully or the max. retry count is reached, i.e., adding resiliency to the respective service
- Tasks that cause unrecoverable or programming errors will remain in the database table but will not be retried
- Experimental task scheduling API
<srv>.schedule()
as variant of<srv>.send()
with fluent API options.after(<ms>)
and.every(<ms>)
- Experimental task callback API
<srv>.after('<event>/#succeeded', (results, req))
/<srv>.after('<event>/#failed', (error, req))
- Experimental task trigger API
<srv>.flush()
- Experimental application-level task status management to avoid long-lasting database locks
- Enable via
cds.requires.queue.legacyLocking = false
- Caution: Application-level task status management only works if all active app deployments are on cds^9!
- Enable via
- Events and requests to a "queued service" are written to the database in the current transaction (with default kind
- [cds@9.0.0] Inbox: Inbound messages can be accepted as asynchronous tasks via config
cds.requires.messaging.inboxed = true
- [cds@9.0.0] Not null validations for actions and functions
- [cds@9.0.0]
cds.auth
: Provide custom configuration to@sap/xssec
-based authentication viacds.requires.auth.config
- [cds@9.0.0] IAS: Token validation for requests to the app's "cert url" (with
.cert
segment in the domain) - [cds@9.0.0] Support refs with longer path expressions like
ref: ['root', 'child', 'subchild', 'ID']
when resolving queries to the target entity - [cds@9.0.0]
PATCH
as synonym forUPDATE
during event handler registration - [cds@9.0.0]
UPSERT
semantics forPUT
requests can be deactivated via flagcds.runtime.put_as_upsert=false
- [cds-mtxs@3.0.1]
cds-mtx upgrade t0
can be used to (re)initialize thet0
tenant, e. g. in a cf hook to avoid concurrency issues. - [cds-mtxs@3.0.1] The
cds.xt.ExtensibilityService.activated
event now also sends the payload of the activation call. It also sends the tenant in thex-tenant-id
header field now.
Changed
[cds-dk@9.0.4]
cds add typescript
adds atsx
dependency. It no longer adds awatch
script pointing tocds-tsx
becausecds watch
will runtsx
automatically.[cds-dk@9.0.3]
DEBUG=build cds build
does not log the CDS env any more.[cds-dk@9.0.3]
cds init --java:mvn
does not prefix the-D
to options any more to allow for options not starting with-D
.[cds-dk@9.0.3]
cds add html5-repo
for Helm does not add XSUAA configuration for IAS-only projects.[cds-dk@9.0.3]
cds add html5-repo
for Helm has improved support for IAS.[cds-dk@9.0.3]
cds watch
withtsx
will no longer be print notifications toconsole.log
without environment variableDEBUG
set.[cds-dk@9.0.3]
cds add html5-repo
will add missingrequires
for itsbuild-parameters
setting, even if ran with a preexistingrequires
key.[cds-dk@9.0.3]
cds unknown-command valid-file.cds
now fails due to the unknown command instead of compiling the cds file.[cds-dk@9.0.1] Change license from SAP DEVELOPER LICENSE AGREEMENT '3.1' to '3.2 CAP'. See https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt.
[cds-dk@9.0.1] The
CHANGELOG.md
file now only contains changes from 8.0.0 onwards.[cds-dk@9.0.1] cds-dk now requires
@sap/cds
version 8.3.0 or higher. An error is raised for older versions.[cds-dk@9.0.1] cds-dk now requires
@sap/cds-mtxs
version 2 or higher.[cds-dk@9.0.1]
cds add multitenancy
andcds add xsuaa
use theproduction
profile by default.[cds-dk@9.0.1]
cds add helm
uses a default for the Docker secret name (docker-registry
), instead of asking for it in interactive mode.[cds-dk@9.0.1]
cds add helm
uses the pre-configured domain name for your Kyma cluster as a default, instead of asking for it.[cds-dk@9.0.1]
cds add workzone
uses the backend destinationsrv-api
instead of-srv-api
on Cloud Foundry.[cds-dk@9.0.1]
cds add approuter
in combination withxsuaa
adds aredirect-uris
tomta.yaml
for Cloud Foundry projects.[cds-dk@9.0.1]
cds build --ws-pack
now recursively packs dependencies from workspaces. If theworkspaces
definition in the project root contains glob patterns with braces{…}
, Node.js 22 or later will be required.[cds-dk@9.0.1]
cds add xsuaa
adds aredirect_urls
to themta.yaml
for Cloud Foundry projects.[cds-dk@9.0.1]
cds deploy --to hana
throws an error if an unsupported option is passed.[cds-dk@9.0.1] The Node version in
gen/db/package.json
file generated bycds build
is now>=18
, matching to what@sap/hdi-deploy
specifies.[cds-dk@9.0.1]
cds watch
only auto-resolves bindings if eitherCDS_ENV
or--profile
are set.[cds-dk@9.0.1]
cds compile --help
no longer mentions thehdbcds
format.[cds-dk@9.0.1]
cds add pipeline
also creates UI5 resources if required.[cds-dk@9.0.1]
cds add hana
does not addnative_hana_associations
configuration any more.[cds-dk@9.0.1]
cds up
supports embedded multitenancy scenarios with no sidecar.[cds-dk@9.0.1]
cds lint
requires projects to installeslint
locally (or system-wide), ascds-dk
will no longer includeeslint
internally.[cds-dk@9.0.1]
cds add telemetry
adds limits the version of added@opentelemetry
dependencies to<0.200
.[cds-dk@9.0.1]
cds add cf-manifest
uses a 1 GB disk quota instead of 512 MB for Java apps.[cds-dk@8.9.4]
cds init
uses latest Maven Java archetype version 3.10.1 for creating Java projects.[eslint-plugin-cds@4.0.2] Bumped peer dependency to
@sap/cds
to 9.[vscode-cds@9.0.1] Change license from SAP DEVELOPER LICENSE AGREEMENT '3.1' to '3.2 CAP v2'
[vscode-cds@9.0.1] Where-used functionality now based on new index
[vscode-cds@9.0.1] Improved
cds json schema
retrieval[vscode-cds@9.0.1] Refactored CLI call handling to cds and other tools
[vscode-cds@9.0.1] More compact formatting of
case
statements[vscode-cds@9.0.1] Refactoring when renaming/deleting CDS files is now disabled by default. Corresponding user settings are
cds.refactoring.files.rename.enabled
andcds.refactoring.files.delete.enabled
[cds-compiler@6.0.8] License changed to "SAP DEVELOPER LICENSE AGREEMENT Version 3.2 CAP"
[cds-compiler@6.0.8] Node 20 is now the minimum required version.
[cds-compiler@6.0.8] Namespace
cds.core
is no longer reserved by the cds-compiler. It is used by the CAP runtimes.[cds-compiler@6.0.8] compiler:
Providing a filter for a function call now is a syntax error (was a warning before). Example:
count(*)[ uncheckedFilterRef > 0 ]
.Providing a default value for an array-like action or function parameter is a syntax error now (was a warning before). Example:
action A( par: many Integer default 42 )
.Providing an annotation for an array-like element in the middle of a type expression is no longer allowed (was a warning before), as this leads to unexpected results. Example:
bar: many String null @anno enum { symbol };
. Fix this by moving the annotation out of the type expression, e.g. before the element name.A simple query inside parentheses (e.g.
entity V as (select from E)
) is no longer represented asset
in CSN. Repeatedorder by
orlimit
clauses are no longer allowed (e.g.entity V as ( select from E order by id ) order by id;
).Defining an element or parameter as
not null default now
now is an error.A virtual element can be defined in a view without providing a value or reference.
cdsentity V as select from E { virtual a } //defines new virtual element 'a'
In this example, the compiler no longer tries to resolve the name of the virtual element as reference to an element of the view's data source.
If a select item selects an element of a virtual structure that itself is not explicitly marked as virtual, then the select item must be explicitly marked as virtual, too.
To-many associations without ON-condition no longer get a
keys
property, i.e.Association to many Foo;
does not get any foreign keys.Annotation
@cds.persistence.journal
is now propagated to generated entities, including.texts
entities.Doc comments are no longer propagated; use option
propagateDocComments: true
to propagate them again.With CSN input, the compiler does not accept anymore type properties like
enum
in thecast
property for the SQL functioncast
which were simply ignored by the SQL backend. Remark: inside a directcast
property for select columns (CDL-stylecast
), these type properties are still allowed.
[cds-compiler@6.0.8] to.sql/to.hdi:
- Default for option
booleanEquality
istrue
, i.e.!=
is rendered asIS DISTINCT FROM
or a similar expression and therefore has boolean logic instead of three-valued logic. - To-many associations with neither an explicit foreign key list (i.e. without
keys
) nor an ON-condition are reported as errors. - For SAP HANA, CDS associations are by default no longer reflected in the respective database tables and views by native HANA Associations (HANA SQL clause
WITH ASSOCIATIONS
). They can be switched on via configurationcds.sql.native_hana_associations: true
. - A set of OData and SAP HANA functions are translated to database-specific variants. See https://cap.cloud.sap/docs/guides/databases#standard-database-functions.
- For SQL and HDI rendering,
$now
is no longer rendered asCURRENT_TIMESTAMP
, but as a session variableSESSION_CONTEXT('NOW')
for SAP HANA,SESSION_CONTEXT('$now')
for SQLite,@now
for H2, andcurrent_setting('cap.now')::timestamp
for Postgres. Fordefault
values,CURRENT_TIMESTAMP
is kept, asdefault
clauses only allow static expressions. To restore the old behavior, use optiondollarNowAsTimestamp: true
. count(*)
inside nested projections is rejected, as there is no proper representation in SQL
- Default for option
[cds-compiler@6.0.8] to.cdl:
- Nested definition rendering is now the default, i.e. definitions inside services are rendered in
service { … }
, instead of being rendered top-level using their absolute name. to.cdl
no longer returns an entrynamespace
, onlymodel
.
- Nested definition rendering is now the default, i.e. definitions inside services are rendered in
[cds-compiler@6.0.8] for.odata/to.edm(x):
- References to foreign keys in annotation expressions are now adjusted to directly reference the corresponding local foreign key element.
- Annotating the generated
DraftAdministrativeData
artifacts and their elements is now supported.
[cds4j@3.10.0] New method
Xpr.size()
replaces (deprecated) methodXpr.length()
[cds@9.0.2] REVERT: For drafts, read-only fields must be set in
CREATE
handlers (calculated values set inNEW
handlers are cleansed). If children are added in draftCREATE
handlers, the fieldDraftAdministrativeData_DraftUUID
must be set.[cds@9.0.1] Lean draft handler is registered in a service only if a draft-enabled service entity exists
[cds@9.0.0] Evolution of the generic outbox to CAP-native task queues:
cds.queued()
/cds.unqueued()
replacecds.outboxed()
/cds.unboxed()
(temporary compat in place)- Global configuration
cds.requires.queue
replacescds.requires.outbox
(temporary compat in place) - New default
cds.requires.queue = true
. This change requires a database deployment (for tablecds.outbox.Messages
) ifcds.requires.outbox
was not manually set totrue
before. - Default
chunkSize
reduced from100
to10
. If parallel processing is disabled (parallel = false
), thechunkSize
config is ignored and the effectivechunkSize
is1
.
[cds@9.0.0] Support for
@sap/cds-mtxs
version 1 is dropped[cds@9.0.0] Service level restrictions for application service calls are enforced by default
- Opt out with
cds.features.service_level_restrictions=false
until next major version
- Opt out with
[cds@9.0.0]
req.diff
uses a deep expand to fetch data for deep update comparison. Previously, it read each composition layer sequentially.[cds@9.0.0]
cds.test
now requires module@cap-js/cds-test
to be installed. Test dependencies likeaxios
,chai
,chai-as-promised
, andchai-subset
can be usually removed in favor of@cap-js/cds-test
.[cds@9.0.0]
cds.context.locale
is only set if initiated from an HTTP client specifying a locale[cds@9.0.0] Only new major version 4 of SAP Cloud SDK is supported from now on . Please make sure to upgrade. Detailed changes are documented in the migration guide.
[cds@9.0.0]
cds-serve
now fails if@sap/cds
would be loaded from different installation paths to prevent inconsistent server state. Such situations are always a setup issue, often caused by plugins that require diverging versions. Disable withcds.server.exit_on_multi_install: false
.[cds@9.0.0] For drafts, read-only fields must be set in
CREATE
handlers (calculated values set inNEW
handlers are cleansed). If children are added in draftCREATE
handlers, the fieldDraftAdministrativeData_DraftUUID
must be set.[cds@9.0.0]
hdbtabledata
files created bycds compile/build
now instruct SAP HANA to decode base64 values in CSV files forLargeBinary
elements. This aligns the behavior with SQLite and H2, avoiding manual base64 decoding. It can be disabled withcds.hana.table_data.column_mapping.LargeBinary=false
.[cds@9.0.0]
PATCH
requests no longer create the target resource if it doesn't exist (UPSERT
semantics)- Re-enable via flag
cds.runtime.patch_as_upsert=true
- Re-enable via flag
[cds@9.0.0]
PUT
requests no longer set unprovided properties to their default values (REPLACE
semantics)- Re-enable via flag
cds.runtime.put_as_replace=true
- If enabled, the defaulting is now done in the protocol adapter
- Re-enable via flag
[cds@9.0.0]
req.params
is an array of objects (instead of plain values for single-keyed entities with keyID
)- Opt out with
cds.features.consistent_params=false
until next major version
- Opt out with
[cds-mtxs@3.0.2]
cds.requires.multitenancy.jobs.clusterSize
is set to 3 by default.[cds-mtxs@3.0.2]
cds.requires.multitenancy.jobs.workerSize
is set to 4 by default.[cds-mtxs@3.0.1]
@sap/cds-mtxs
now also conforms to the CAP plugin protocol.[cds-mtxs@3.0.1]
@sap/cds-mtxs
now declares a peer dependency to@sap/cds
version 9. Lower versions will fail.[cds-mtxs@3.0.1] For the
java
profile,cds.requires.auth
is set to"kind": "dummy"
in the sidecar by default.[cds-mtxs@3.0.1]
com.sap.hana.di.table/try_fast_table_migration
deployment parameter is now enabled as default.[cds-mtxs@3.0.1] Outdated MTX configuration now throws an error.
[cds-mtxs@3.0.1] Outdated provisioning parameter configuration now causes an error.
[cds-mtxs@3.0.1] The extension validation (aka linting) now always checks extensions including existing extensions. This can be disabled using
jsonc"requires": { "cds.xt.ExtensibilityService": { "check-existing-extensions": false } }
[cds-mtxs@3.0.1] The extension validation (aka linting) now also checks if the model can be compiled to EDMX. This also detects e.g. missing key fields of entities.
[cds-mtxs@3.0.1] If the
subscription-manager
profile is used, IAS will be the default authentication kind for production.[cds-mtxs@3.0.1] The MTX sidecar now always uses the compiler configuration of the project root. To use a separate compiler configuration, you need to add the configuration
jsonc"requires": { "cds.xt.ModelProviderService": { "use-local-cdsc-config": true } }
Fixed
[cds-dk@9.0.4] Bring shrinkwrap back.
[cds-dk@9.0.4]
cds import --from edmx
no longer produces invalid CSN for function imports with return types of the same name.[cds-dk@9.0.4]
cds watch
no longer shows the outbox model for empty projects.[cds-dk@9.0.3]
cds up -2 k8s
fails for errors inctz
instead of only logging the messages.[cds-dk@9.0.3]
cds add helm
now correctly prompts for the registry server.[cds-dk@9.0.2]
cds add multitenancy
adds the@sap/cds-mtxs
todevDependencies
in for Java projects.[cds-dk@9.0.2]
cds add ias
rewrites theurl: ~{srv-url}
tourl: ~{srv-cert-url}
if required.[cds-dk@9.0.2]
cds add ias
addsforwardAuthCertificates
andstrictSSL
settings to the app router if required.[cds-dk@9.0.1]
cds up
has improved support for monorepos.[cds-dk@9.0.1]
cds add html5-repo
works in combination with multitenancy when no app router or Work Zone is set up.[cds-dk@9.0.1]
cds add dynatrace
sets theenvironment_name
property according to the specification.[cds-dk@9.0.1]
cds deploy --to hana
now supports--with-mocks
.[cds-dk@9.0.1]
cds bind
gives better error messages if the Cloud Foundry org or space are not found.[cds-dk@9.0.1]
cds add enterprise-messaging
with xsuaa now addsprocessed-after
in themta.yaml
.[cds-dk@9.0.1]
cds deploy --to hana
correctly hands over--profile
tocds build
when deploying.[cds-dk@9.0.1]
cds import
adds@mandatory
annotations to properties marked asrequired
in the schema.[cds-dk@9.0.1]
cds add ams
for Java adds a custom builder to themta.yaml
to circumvent the missingsrv/src/gen/policies
.[cds-dk@9.0.1]
cds add multitenancy
requires thesrv-api
instead of themtx-api
for Java projects.[vscode-cds@9.0.1] Avoid exception during json schema hover when no hover text is available
[vscode-cds@9.0.1] Welcome page (
CAP Release Notes
) now show title of code block sections[vscode-cds@9.0.1] Formatter: Separate alignment of annotations to entity and select items
[vscode-cds@9.0.1] Syntax highlighting of parenthesized annotations with strings containing a colon
[vscode-cds@9.0.1] Syntax highlighting of comments in queries
[cds-compiler@6.0.10] to.sql/to.hdi:
- Fixed internal error for to-many associations without ON-condition in entities with
@cds.persistence.skip
.
- Fixed internal error for to-many associations without ON-condition in entities with
[cds-compiler@6.0.10] for.odata/to.edm(x):
- In annotation expressions: enum references that have already been resolved by the compiler are correctly rendered to EDMX.
[cds-compiler@6.0.8] to.edm(x): Fixed crash for rare case if annotation expressions were used.
[cds-compiler@5.9.4] to.edm(x): Parameters are marked optional unless explicitly marked as
not null
. AnnotationCore.OptionalParameter
will be added to optional parameters.[cds.java@3.10.1] Fixed a bug in the Service Manager v2 API integration that leads to 400 Bad Request errors when service instances or service bindings are requested by ID.
[cds.java@3.10.1] Fixed a bug in
cds-services-archetype
causing an invalid default package name.[cds.java@3.10.1] Fixed a bug in
cds-feature-change-tracking
causing the compositionchanges
to be written when the entity itself is deleted.[cds.java@3.10.1] Fixed a bug causing instance-based authorization conditions to be executed on inactive draft-enabled instances during
draftActivate
ordraftEdit
. This fix requirescds.security.authorization.instanceBased.checkInputData.enabled
to be set totrue
.[cds.java@3.10.1] Fixed a bug in
cds-feature-flow
causing server errors in case an action with@flow
annotations was triggered on a non-existent entity instance.[cds.java@3.10.0] Fixed a bug, causing
com.sap.cloud.sdk.datamodel.odata.client.exception.ODataDeserializationException
when querying the@odata.singleton
annotated entity via remote service.[cds.java@3.10.0] Fixed a bug, causing a JsonParsingException, when authenticating with a IAS based jwt token that contains non-string attributes.
[cds.java@3.10.0] Fixed a bug, causing the Kafka client to loose connection in case of a certificate rotation.
[cds.java@3.10.0] Fixed a bug, causing the original Correlation ID not propagated to custom Outbox handlers.
[cds.java@3.10.0] Fixed a bug, causing the display of the undocumented properties in the developer dashboard.
[cds.java@3.10.0] Fixed a bug, causing a messed up event context when receiving message from Event Mesh without data, dataMap or headersMap.
[cds.java@3.10.0] Fixed a bug in
cds-feature-change-tracking
causing the links between the projections of the entities that exclude elements of aspectchangelog.changeTracked
and their changes to be lost. Links between entities and changes are now written using domain entities which is assumed to be extended with aspectchangelog.changeTracked
.[cds.java@3.10.0] Fixed a bug in
cds-feature-change-tracking
causing statement with wrong selection predicate being generated whenUpdate
statement uses CDS delta lists as payloads for compositions.[cds.java@3.10.0] Fixed a bug in
cds-feature-change-tracking
causingDelete
statements to consider localized values for images.[cds.java@3.10.0] Fixed a bug in
cds-feature-change-tracking
causing parametrizedUpdate
statements to select more data than needed for changelogs.[cds4j@3.10.1] Fixed duplication issue due to left join in runtime view CTE mode on RT views with filtered to-many associations
[cds4j@3.10.1] Support redirected associations, nested projections and structs in runtime view CTE mode
[cds4j@3.10.0] Fixed serialization of statements with predicates on the select list
[cds4j@3.10.0] Reduced memory consumption during bulk inserts
[cds4j@3.10.0] Execute bulk inserts in partitions
[cds4j@3.10.0] Fix search on entities using virtual elements as
@Common.Text
[cds@9.0.2]
cds.load()
ignores the outbox model if it's the only model source, helpingwatch
to suppress it as well.[cds@9.0.1]
cqn2odata
: value formatting in OData v4 lambda expressions[cds@9.0.1] Processing in
filed-based-messaging
must be async[cds@9.0.1]
Location
response header for REST protocol[cds@9.0.1]
cds.log
is unwired fromcds.env
now, which allows to usecds.log
in plugins, without risk of loadingcds.env
too early.[cds@9.0.1] Elements from
mixin
are now being considered byminify
[cds@9.0.1] Lean draft: Insert.entries on draft enabled entity
[cds@9.0.1] Remote call of action/function always forwards passed headers
[cds@9.0.1]
cds serve
no longer fails with an duplicate install error if the shell's working directory differs in case (likeC:
vsc:
on Windows).[cds@9.0.1] Erroneously skipped input validation for local service calls
[cds@9.0.0] Webhook creation in
enterprise-messaging
is more resilient in case of multiple instances[cds@9.0.0]
cdsjsonschema
protocol in lower case for cds json schema[cds@9.0.0] In
CREATE
handlers for drafts, the original path is preserved[cds@9.0.0]
@sap/cds-mtxs
is now loaded before other plugins so that they can register handlers for mtx services.[cds@9.0.0] The default index page respects now
cds.odata.containment
[cds@9.0.0] Remove incorrect
Type
suffix from@odata.context
for views with parameters[cds@9.0.0] Support where clauses in refs
[cds@8.9.4] No longer require
@sap/cds-compiler
versions 6.x as these are not supported with CAP Java 3.[cds@8.9.4] Regression in view resolving with mixins
[cds@8.9.4] View resolving for external service entities aborted too early
[cds@8.9.4]
cds.Map
validation in action/function parameters[cds@8.9.3] OData:
$value
access of primitive properties returned by custom handler[cds@8.9.3] UCL: Add missing declaration of variable
$input
in mutation for creating an application template[cds@8.9.3] Purge of
servers
from.cds-services.json
file[cds@8.9.3] Loading of relative service implementations in plugins
[cds@8.9.3]
cds.compile.to.edmx
in case the model was manipulated in a plugin[cds-mtxs@3.0.2] Properly catching errors in the
t0
cleanup intervals.[cds-mtxs@3.0.1] Extension validation (aka linting) for new entities now works properly, also if no other extensions exist.
[cds-mtxs@3.0.1] Extension validation now ignores internal definitions with namespace
cds.core
.[cds-mtxs@3.0.1] Base model pulled for extension projects using
cds pull
no longer contains internal definitions with namespacecds.core
,cds.outbox
orcds.xt
.[cds-mtxs@3.0.1] [Beta] Extension of aspects is now possible. For now, it needs to be enabled using
jsonc"requires": { "cds.xt.ExtensibilityService": { "allow-aspect-extension": true } }
Removed
- [cds-dk@9.0.1]
cds build --clean
is removed. - [cds-dk@9.0.1]
cds build
no longer supports configuration withcds.data
andcds.service
in package.json. - [cds-dk@9.0.1]
cds watch
still allows options--include
and--exclude
, but CDS configuration is ignored. - [cds-dk@9.0.1]
cds deploy --to hana --store-credentials
is removed. - [eslint-plugin-cds@4.0.2] Removed support for ESLint8
- [vscode-cds@9.0.1] User setting
cds.useOldParser
- [vscode-cds@9.0.1] Official support for CDS < 8 and CDS compiler < 5 (a fallback to the latest compiler is done)
- [cds-compiler@6.0.8] compiler:
- The Antlr-based parser is removed.
- v5 deprecated flags are removed.
- Option
compositionIncludes
is removed, as its default istrue
; instead, a deprecated flag was added.
- [cds-compiler@6.0.8] to.hdbcds: The HDBCDS backend is deprecated and can no longer be invoked.
- [cds@9.0.0] Legacy OData adapter which was enabled with compat
cds.features.odata_new_adapter=false
- [cds@9.0.0] Legacy Database services which were enabled with
@sap/cds-hana
orsqlite3
- [cds@9.0.0]
@cds.default.order
and@odata.default.order
for implicit sorting - [cds@9.0.0]
cds.auth
: Support for@sap/xssec^3
(incl. compatibility mode of@sap/xssec^4
) - [cds@9.0.0] Undocumented compat flag
cds.features.odata_v2_result_conversion
- [cds@9.0.0] Undocumented util
cds.utils.pool
- [cds@9.0.0] Undocumented method
INSERT.as
. UseINSERT.from
instead to insert subSELECT
queries. - [cds@9.0.0] Undocumented method
req._queryOptions
ofcds.Request
belonging to the new OData adapter - [cds@9.0.0] Undocumented method
_reset
of thecds.ql
API - [cds@9.0.0] Undocumented property
cmd
of thecds.ql
Query
class. Please use methodkind
instead. - [cds@9.0.0] Undocumented method
protocol4
of theProtocol
class. Please use propertydef.protocols
instead. - [cds@9.0.0] Undocumented methods
impl
andwith
of theApplicationService
class. Please useprepend
instead. - [cds@9.0.0] Undocumented compat flag
cds.features.rest_error_handler
- [cds@9.0.0] Deprecated compat flags
cds.features.compat_restrict_bound
andcds.env.features.compat_restrict_where
- [cds@9.0.0] Deprecated compat flag
cds.features.stream_compat
- [cds@9.0.0] Deprecated feature flag
cds.log.kibana_custom_fields
. Please usecds.log.als_custom_fields
instead`. - [cds@9.0.0] Deprecated compat flag
cds.features.keys_in_data_compat
- [cds@9.0.0] Deprecated element-level annotation
@Search.defaultSearchElement
. Please use annotation@cds.search
instead. - [cds@9.0.0] Deprecated stripping of unnecessary topic prefix
topic:
in messaging - [cds@9.0.0] Deprecated messaging
Outbox
class. Please use config orcds.outboxed(srv)
to outbox your service.
April 2025
Added
- [cds.java@3.9.0] Added support for the SAP Integration Suite, Advanced Event Mesh.
- [cds.java@3.9.0] Added
@Core.OptionalParameter
support for bound and unbound function parameters. Supported values aretrue
andfalse
. - [cds.java@3.9.0] Subscription dependencies for
portal
andhtml5-apps-repo
are automatically created if the corresponding service is bound to the CAP Java application. - [cds.java@3.9.0] Log CDS Properties by setting the log level
logging.level.com.sap.cds.properties: DEBUG
in the application.yaml. Warnings are turned on by default. - [cds.java@3.9.0]
cds-feature-auditlog-v2
now ignores auditlog service bindings relevant for the XSA platform.
Changed
- [cds-dk@8.9.3]
cds add pipeline
also creates UI5 resources if required. - [cds-dk@8.9.2] The Node version in
gen/db/package.json
file generated bycds build
is now>=18
, matching to what@sap/hdi-deploy
specifies. - [cds-dk@8.9.2]
cds
commands now fail if used in combination with the upcoming@sap/cds
version 9. - [vscode-cds@8.9.0] use new CDS parser by default
Fixed
- [cds-dk@8.9.3]
cds add workzone
uses the backend destinationsrv-api
instead of-srv-api
on Cloud Foundry. - [cds-dk@8.9.3]
cds init
uses latest Maven Java archetype version 3.9.1 for creating Java projects. - [cds-dk@8.9.2]
cds bind
gives better error messages if the Cloud Foundry org or space are not found. - [cds-dk@8.9.2]
cds add html5-repo
works in combination with multitenancy when no app router or Work Zone is set up. - [cds-dk@8.9.1]
cds build
restores compatibility with@sap/cds
7, no more crashing there withTypeError: Cannot read properties of undefined (reading 'enabled')
. - [cds-dk@8.9.1]
cds add containerize
works if run beforecds add helm
. - [cds-dk@8.9.1]
cds add http
no longer writes headers starting with a placeholder (IntelliJ compatibility) - [cds-dk@8.9.1]
cds init --force
overwrites existing files. - [vscode-cds@8.9.1] Formatting of annotations in parentheses with values containing spaces
- [vscode-cds@8.9.0] Auto update of Annotation Modeler plugin did not work
- [vscode-cds@8.9.0] Document highlights could show wrong ranges for namespaces
- [cds-compiler@5.9.2] to.edm(x): Revert addition of the attribute sap:filterable="false" to the NavigationProperty DraftAdministrativeData in OData V2
- [cds-compiler@4.9.10] Added option
allowMixinInProjectionExtension
which allows referring to mixins inextend projection
. This was forbidden in cds-compiler v4, but re-introduced in v5.5. Users wanting to migrate from cds-compiler v3 to v4 can use this option for easier migration. - [cds.java@3.9.1] Fixed a bug, causing wrapping services with typed service interfaces to fail when service interfaces are defined in a separate dependency.
- [cds.java@3.9.1] Fixed a bug, causing ORD EDMX metadata endpoints to fail, when services contain a dot.
- [cds.java@3.9.1] Fixed a bug, causing Kafka SSL configuration to access corrupted keystore files.
- [cds.java@3.9.1] Fixed a bug, causing Event Mesh multitenancy subscription or upgrades to fail silently.
- [cds.java@3.9.0] Fixed a bug, causing lost commits, when starting readonly transactions through Spring APIs inside of a ChangeSetContext.
- [cds.java@3.9.0] Fixed a bug in OData v4 adapter, causing duplicated entries in response payload for
@open
types. - [cds4j@3.9.1] Fix queries with filtered path over runtime views
- [cds@8.9.2]
forUpdate
will not considerwait
ifignoreLocked
is set - [cds@8.9.2] Do not crash in case of custom
DraftAdministrativeData
table - [cds@8.9.1]
cds.env
merging fornull
values - [cds@8.9.1] Best-effort mechanisms for lambda support on OData V2 remote services (usage of functions in lambda expressions)
- [cds@8.9.1] Use extended model in
enterprise-messaging
inbound handlers - [cds@8.9.1] Compat flag
cds.features.draft_compat
for handler registration in draft scenarios - [cds-mtxs@2.7.2] Inaccurate warnings about outdated configuration are removed.
- [cds-mtxs@2.7.2] Improved resilience in handling corrupted metadata entries stored in the tenant database table.
- [cds-mtxs@2.7.1] Input validation annotations (e. g.
@assert.range
) with default values in extensions are now correctly checked. - [cds-mtxs@2.7.1] Event 'activated' is now only triggered for successfully completed extension activation.
- [cds-mtxs@2.7.1] Binding parameters configured for subscription are now correctly passed to the Service Manager.
March 2025
Added
[cds-dk@8.9.0]
cds import
now adds Cloud SDK dependencies to package.json if an OData service is imported.[cds-dk@8.9.0]
cds deploy --to hana --on k8s
is now supported.[cds-dk@8.9.0]
cds up
automates freezing dependencies, building, and deploying your application.[cds-dk@8.9.0]
cds pull
includes existing extensions if the server is configured accordingly.[cds-dk@8.8.0]
cds add xsuaa
lets you pass a--plan
option, e.g. forcds add xsuaa --plan broker
.[cds-dk@8.8.0]
cds add workzone
andcds add workzone-standard
support for Kyma.[cds-dk@8.8.0]
cds add typer
now adds abefore:cds-watch
script to run cds-typer before startingcds watch
.[cds-dk@8.8.0]
cds watch
supports abefore:cds-watch
npm script in yourpackage.json
, executed once before the initialcds watch
startup.[cds-compiler@5.9.0] compiler:
- Generated entities for compositions of named aspects now have an
include
on the named aspect, inheriting actions from the aspect. This can be disabled via optioncompositionIncludes: false
. - A warning is emitted for selected elements that are explicitly
virtual
, whose behavior will change in cds-compiler v6. - New warning for structures having a scalar default value.
- New warning for localized structures, as they are not fully supported by the compiler.
- The new parser (
newParser: true
) now supports operator==
.
- Generated entities for compositions of named aspects now have an
[cds-compiler@5.9.0] to.cdl:
- Definitions can now be rendered nested in services. A common namespace can be extracted, too. To use it, enabled options
renderCdlDefinitionNesting
andrenderCdlCommonNamespace
. - Annotation array values are pretty-printed to reduce whitespace.
- Definitions can now be rendered nested in services. A common namespace can be extracted, too. To use it, enabled options
[cds-compiler@5.9.0] for.effective: Property
namespace
is no longer part of effective CSN.[cds-compiler@5.9.0] for.sql/hdi:
- [cds-compiler@5.9.0] The new operator
==
is rendered asIS NOT DISTINCT FROM
or an equivalent expression. - [cds-compiler@5.9.0] Using option
booleanEquality
, operator!=
is rendered asIS DISTINCT FROM
or an equivalent expression.
- [cds-compiler@5.9.0] The new operator
[cds.java@3.8.0] Added support for async mode for Unified Customer Landscape´s (UCL) SPII Tenant Mapping API in
cds-feature-ucl
.[cds.java@3.8.0] Added parameter for token retrieval timeout for determination of service manager JWT token.
[cds.java@3.8.0] Event handler signatures can now accept arguments of type
CqnStatement
or it's specific sub-interfaces andCqnStructuredTypeRef
.[cds.java@3.8.0] The
build
goal of thecds-maven-plugin
now supports execution from project root folder. It also takes a new propertygoals
to specify a custom list of goals for execution.[cds.java@3.8.0] IAS App2App flows can now be configured for a remote service without creating a destination, by using the IAS binding and setting
binding.options.ias-dependency-name
to the respective IAS application dependency.[cds.java@3.8.0] Added support for UI5's State Messages concept to draft-enabled entities, when compiler flag
cdsc.beta.draftMessages
is set totrue
.[cds.java@3.8.0] When using State Messages annotation-based validations such as
@mandatory
or@assert...
are now executed on draft entities.[cds.java@3.8.0] Event Handler methods now support
CqnStatement
or its subtypes andCqnStructuredTypeRef
as arguments.[cds.java@3.8.0] Bound and unbound function parameters now support
@Core.OptionalParameter
annotations.[cds4j@3.9.0] Support referencing origin entity from upsert result:
Row.ref()
[cds4j@3.9.0] Elements that are the target of a
@Common.Text
annotation are now by default searchable[cds4j@3.8.0] Support for [SQL] Window Functions
[cds4j@3.8.0] Support expressions & literals in runtime views
[cds4j@3.8.0] Support match predicates
anyMatch
/allMatch
in infix filters of element refs used in where conditions[cds4j@3.8.0] Support operator
==
in CQN with Boolean logic (same as IS)[cds@8.9.0] Support for parallel multi-instance processing of outbox entries
[cds@8.9.0] Remote services: ensure request correlation by guaranteeing outgoing header
x-correlation-id
[cds@8.9.0] Support for
@odata.bind
to reference foreign keys[cds@8.9.0] Support for plugins in ESM format
[cds@8.9.0] Dependency to
@eslint/js
so thateslint
works w/o the application having to install it.[cds@8.9.0] IAS: In the
client_credentials
flow, the array ofias_apis
(if present) is added to the technical user's roles[cds@8.9.0] Opt-in feature
cds.features.consistent_params
forreq.params
always being an array of objects- That is, no more plain values for single-keyed entities with key
ID
- Will become the default in
@sap/cds^9
- That is, no more plain values for single-keyed entities with key
[cds@8.8.0]
cds.ql
methodSELECT.hints()
which passes hints to the database query optimizer that can influence the execution plan[cds@8.8.0] Schema updates for MTX configuration
[cds@8.8.0] Deprecate
cds.requires.db.database
in JSON schema[cds@8.8.0] Service level restrictions for application service calls can be enforced with
cds.features.service_level_restrictions=true
- With
@sap/cds^9
, this becomes the new default.
- With
[cds@8.8.0] Support implicit function parameters calls with @prefix
[cds@8.8.0]
cds.test
now uses package@cap-js/cds-test
if installed, otherwise prints a hint to install it. With cds 9, this package will be required.[cds@8.8.0] Operation response streaming
- OData: Operations returning
cds.LargeBinary
annotated with@Core.MediaType
may send stream responses. - REST: Operations may send stream responses.
- Annotations
@Core.MediaType
,@Core.ContentDisposition.Filename
and@Core.ContentDisposition.Type
on operation return types will be considered.
- OData: Operations returning
[cds-mtxs@2.7.0] Database deployment of extensions can now be supressed by setting
jsonc"requires": { "cds.xt.ExtensibilityService": { "activate": { "skip-db": true } } }
[cds-mtxs@2.7.0]
cds.xt.ExtensibilityService.pull
now returns csn including existing extensions ifcheck-existing-extensions
is configured (see below)[cds-mtxs@2.7.0] Beta: Event
cds.xt.ExtensibilityService.activated
is sent if an asynchronous call ofcds.xt.ExtensibilityService.activate
is finished.[cds-mtxs@2.6.0]
html5-runtime: true
andhtml5-host: true
are shortcuts incds.requires
to specify SAP BTP HTML5 Repository service SaaS dependencies.[cds-mtxs@2.6.0]
ExtensibilityService
now supports draft extensions, allowing to separately validate and activate extensions.[cds-mtxs@2.6.0]
ExtensibilityService.activate
now allows to pass HDI deployment parameters.[cds-mtxs@2.6.0]
cds.env.odata.containment
is respected when compiling to EDMX.
Changed
- [cds-dk@8.9.0]
cds build
logging is simplified. - [cds-dk@8.9.0]
cds add html5-repo
ignores folders inapp/
starting with.
- [cds-dk@8.8.0] Running
cds deploy
in dry mode with an output file specified will now only produce a warning in stderr and will not exit with an error code. - [cds-dk@8.8.0]
cds deploy --out …
will not generate the specified output file if it would end up empty. - [cds-dk@8.8.0]
cds add workzone
adds a transpilation task for UI5 deployment descriptors in TypeScript projects. - [cds-dk@8.8.0]
cds add workzone
does not use the deprecatedwebide-extension-task-updateManifestJson
task any more. - [eslint-plugin-cds@3.2.0] Rules
@sap/cds/sql-null-comparison
and@sap/cds/no-java-keywords
are moved from theexperimental
rule set toall
. - [vscode-cds@8.8.1] using native Node.js
fetch
for https requests - [vscode-cds@8.8.0] preparation to use new CDS parser
- [vscode-cds@8.8.0] minimum VSCode version is now 1.96.0
- [cds-compiler@5.9.0] Update OData vocabularies: 'Common', 'Hierarchy'
- [cds4j@3.8.0] Changed operator
!=
in CQN to Boolean logic (same as IS NOT) - [cds@8.9.0] Invalid draft requests now have status code 400
- [cds@8.9.0] Allow ESM loading of handler files (
.js
,.ts
) in all situations, incl. test runs with Jest's--experimental-vm-modules
option. - [cds@8.9.0] Application and remote services now throw the error
Target <yourTarget> cannot be resolved for service <yourService>
when the query cannot be resolved to the service entity. Setting the feature flagcds.env.features.restrict_service_scope
to false disables this. - [cds@8.9.0] Accept 2xx status codes set in custom operation handlers
- [cds@8.9.0] Implicit orderby elements are marked as such and are no longer considered for requests to remote services
- [cds@8.8.0] The default index page now shows links to CDS functions with their parameter names but no default values anymore.
Fixed
- [cds-dk@8.9.0]
cds add telemetry
is order-independent with othercds add
commands for Java. - [cds-dk@8.9.0] Build task
mtx-extension
now fails with exit code 1 in case of build errors. - [cds-dk@8.8.2] Bump axios to 1.8.4, fixing CVE-2025-27152
- [cds-dk@8.8.1]
cds init
uses latest Maven Java archetype version 3.8.0 for creating Java projects. - [cds-dk@8.8.1]
cds init --add lint
writes complete eslint.config.mjs. - [cds-dk@8.8.1]
cds import
no longer fails with anEXDEV
error indocker
containers. - [cds-dk@8.8.1]
cds import
json schema now contains correct references. - [cds-dk@8.8.0]
cds add approuter
doesn't create entries forapp
andappconfig
local directories any more. - [cds-dk@8.8.0]
cds add telemetry
for Java doesn't erroneously addcds
configuration ordependencies
to thepackage.json
. - [cds-dk@8.8.0]
cds add sample
adds the workzone-specific configuration ifcds.requires.workzone
istrue
. - [cds-dk@8.8.0]
cds compile -o
uses the correct file suffix if explicitly specified in the file name. - [cds-dk@8.8.0]
cds bind
caches the promise of itscf -v
call to prevent race conditions. - [cds-dk@8.8.0]
cds import --out <folder>
does not fail if executed in a folder with a.
. - [cds-dk@8.8.0]
cds add workzone
has improved support for multitenancy. - [eslint-plugin-cds@3.2.0] Rules
@sap/cds/sql-null-comparison
will not warn about!= null
, as it may be supported by future CDS compiler versions. - [eslint-plugin-cds@3.2.0] Some rules had
docs
meta propertyrecommended: true
, but were not part of the recommended rules list. - [eslint-plugin-cds@3.2.0] When determining a CDS project's root directory, we now consider package.json's with
@sap/cds
asdevDependency
orpeerDependency
- [vscode-cds@8.8.2] Welcome Page was shown after each restart
- [vscode-cds@8.8.1] use lowercase
cdsjsonschema
as protocol for cds schema urls. - [vscode-cds@8.8.1] user setting
cds.useOldParser
did not work correctly - [vscode-cds@8.8.0] removed rendering issues in
CAP Release Notes
view - [vscode-cds@8.8.0]
Generate data model
now also works forschema.cds
files in subfolders. - [cds-compiler@5.9.0] to.odata: Annotation expressions using
LabeledElement
were not correctly rendered into EDMX. - [cds-compiler@5.8.2] for.odata: Generate foreign key elements for events again.
- [cds.java@3.8.1] Fixed a bug, causing Audit log implementation to generate redundant entries with empty attributes for the audit log when entity uses associations as the keys.
- [cds.java@3.8.1] Fixed a bug, causing Audit log implementation to generate messages with duplicated attributes when audited instances expanded multiple times in the same
Select
statement. - [cds.java@3.8.1] Fixed a bug in Cloud SDK integration, causing the IAS app2app flow to accidentally request a token from the provider level IAS tenant in DwC scenarios.
- [cds.java@3.8.1] Fixed a bug, causing draft queries not being optimized and certain queries on runtime views to fail.
- [cds.java@3.8.0] Fixed a bug, causing non-unique "MT_LIB_TENANT-" service instances to be filtered out.
- [cds.java@3.8.0] Fixed a bug in OData V4 adapter, causing
NullPointerException
while processing payload containing complex type array initialized withnull
. - [cds.java@3.8.0] Fixed a bug, causing localized error messages in logs and exception stack traces.
- [cds.java@3.8.0] Fixed a bug, causing invalid property suggestions in IDEs, when editing
application.yaml
. - [cds4j@3.9.0] Fix SQL error on predicates using is (not) on the select list
- [cds4j@3.9.0] Fix exception on computing inline count for queries with a condition evaluating to false
- [cds4j@3.9.0] Fix NPE on expand with inline count for select statements using path expressions in where
- [cds4j@3.9.0] Fix 'Missing value for parameter' error on expand by parent-keys when the parent key is selected with a structuring alias
- [cds4j@3.8.1] Fix expand by 'parent-keys' of associations using literals in on-condition
- [cds4j@3.8.1] Runtime views: ignore expands of entities without persistence
- [cds4j@3.8.0] Consider type casts of refs in orderBy
- [cds@8.9.0] Lean draft: Proper navigation to the service entity of draft-administrative data
- [cds@8.9.0] Unprocessed foreign keys from expressions of semi join conditions in
UPDATE.data
- [cds@8.9.0] Kafka: Each topic will have a dedicated consumer-group id (configurable with
consumerGroup
) - [cds@8.9.0] Foreign-key calculation based on navigation path
- [cds@8.9.0]
cds.env
shortcuts likecds.requires.db === 'hana'
are normalized tocds.requires.db.kind === 'hana'
when combined from multiple sources - [cds@8.9.0] Error handling for invalid access of an entity that does not have a key, by key, through REST
- [cds@8.9.0]
cds.validate
crashed with unknown target - [cds@8.9.0]
cds.parse.expr
parsed SAP HANA native functions likecurrent_utctimestamp
erroneously asref
- [cds@8.9.0]
null
values in logger ifcustom_fields
are configured - [cds@8.9.0] User-provided instances of SAP Cloud Logging should have either tag
cloud-logging
orCloud Logging
- [cds@8.9.0] The
@odata.context
for entities and views with parameters should refer to the EntityType with/Set
at the end e.g.../$metadata#ViewWithParamType(1)/Set
- [cds@8.8.3] Event Mesh: Reconnect in case of error in AMQP connection
- [cds@8.8.2] Consuming REST actions returning anonymous structures
- [cds@8.8.2]
i18n.labels/messages
were occasionally missing - [cds@8.8.1] Requests violating
cds.odata.max_batch_header_size
are terminated with431 Request Header Fields Too Large
instead of400 - Bad Request
- [cds@8.8.1]
cds.parse.<x>
writing directly tostdout
- [cds@8.8.1] Instance-based authorization for programmatic action invocations
- [cds@8.8.1] Implicit function parameter calls with Array or Object values
- [cds@8.8.1] OData: Throw an error by
POST
with payload that contains array of entity representation - [cds@8.8.1]
cds.validate
filters out annotations according to OData V4 spec - [cds@8.8.1] Crash for requests with invalid time data format
- [cds@8.8.1] Add missing 'and' between conditions in object notation of QL
- [cds@8.8.1] Multiline payloads in
$batch
sub requests - [cds@8.8.1] Instance-based authorization for modeling like
$user.<property> is null
- [cds@8.8.1] Respect
cds.odata.contextAbsoluteUrl
in new OData adapter - [cds@8.8.1]
cds.odata.context_with_columns
also applies to singletons - [cds@8.8.0] Order by virtual fields in draft-related requests
- [cds@8.8.0] Erroneous cleansing when draft activation is invoked programmatically
- [cds@8.8.0] Skip validation for mandatory fields in update scenarios for entities in draft activation
- [cds@8.8.0] Simplified default configuration:
cds.requires.messaging = true
- [cds@8.8.0]
cds.connect
called with options erroneously filled incds.services
- [cds@8.8.0] Mocked users won't have a tenant in single-tenant mode
- [cds@8.8.0] Allow usage of latest versions of
chai
andchai-as-promised
on Node >= 23 with the built-in test runner andmocha
. Thejest
runner is not able though to load these ESM modules. - [cds@8.8.0] Reject navigations in expand
- [cds@8.8.0] Activation of drafts for entities using
@cds.api.ignore
- [cds@8.8.0] Prevent uncaught type error during validation of composition entries
- [cds-mtxs@2.7.0] Synchronous calls to
/-/cds/saas-provisioning/upgrade
for non-existing tenants are now handled properly. - [cds-mtxs@2.6.1] Compatibility with cds 7 is enabled again.
- [cds-mtxs@2.6.1] Asynchronous jobs now properly handle errors exceeding 5000 characters.
- [cds-mtxs@2.6.0]
cds.xt.SaasProvisioningService
is still served for Java projects withsubscription-manager
profile.
Removed
- [cds-dk@8.9.0] Removed
before:cds-watch
script.
February 2025
Added
- [cds-compiler@5.8.0] Type definitions can now be projections on other types, i.e.
type Proj : projection on OtherType { elem }
.
Use it to create types based on other types, e.g. by selecting only certain elements.
Only available with the new parser (newParser: true
) - [cds-compiler@5.8.0] Analyze enum symbols like
#ENUM_SYMB
in all (sub) expressions and conditions. It can be validated if the compiler can deduce itsenum
type from its use context:- when the enum symbol is used as
default
value,select
column expression, argument when navigating along an association to an entity with a parameter, or argument of acast
function call, or - when the enum symbol is compared to a reference or
cast
function call; we consider the operators=
,<>
,!=
,in
,not in
and also analyze enum symbols aswhen
operands if thecase
operand is a reference/cast
. - We not only consider simple enum symbols, but also lists of enum symbols (on the right side of
in
/not in
), and acase … end
(sub) expression with enum symbols after thethen
s and/or theelse
. - An enum symbol can be validated if the deduced type is a direct or indirect
enum
type, or an managed association with one foreign key having anenum
type. - For the effects in the compiler, IDE and backends, see the changelog entry for v5.7.0. Hint: the deprecated hdbcds backend does not support enum symbols.
- Remark: the support for enum symbols used as annotation values is still limited.
- when the enum symbol is used as
- [cds-compiler@5.8.0] to.sql.migration: Allow extending
precision
ofcds.Decimal
and allow extendingscale
ifprecision
is increased by at least the same amount. - [cds-compiler@5.8.0] to.edm(x):
@assert.range
now supports "exclusive" values by writing values in parentheses such as[ (1), (2) ]
, as well as "infinite" by using[ _, _ ]
. - [cds-compiler@5.8.0] for.odata/to.edm(x)/for.seal: Propagate annotation expressions from managed associations to the foreign keys
Changed
- [cds-compiler@5.8.0] Top-level CSN property
csnInteropEffective
is ignored and no longer warned about. - [cds-compiler@5.8.0] Update OData vocabularies: 'Analytics', 'Common', 'Hierarchy', 'UI'
Fixed
- [cds-dk@8.7.3]
cds compile -o
fixes the output file name in-o <service>.json
. - [cds-dk@8.7.3]
cds lint
won't stumble over scalar config objects anymore. - [cds-dk@8.7.3]
cds init
uses latest Maven Java archetype version 3.7.2 for creating Java projects. - [cds-dk@8.7.3]
cds deploy --to hana --dry
doesn't exit with aTypeError
if there are no models. - [cds-dk@8.7.3]
cds add ias
fixes a few scenarios in combination with multitenancy. - [cds-dk@8.7.2]
cds compile -o
with a file name such ascds c srv/cat-service.cds -o srv/cat-service.json
. - [cds-dk@8.7.2]
cds compile
without-o
doesn't print the file name header for single services any more. - [cds-dk@8.7.2]
cds add workzone
in combination with multitenancy doesn't throw an error any more. - [cds-dk@8.7.2]
cds import --from rfc
stores the input file again insrv/external/<destination>/...
instead ofsrv/external/...
. - [cds-dk@8.7.2]
cds import --name
no longer crashes with aTypeError
. - [cds-dk@8.7.2]
cds import --out <filename>
no longer crashes with aError: EEXIST
. - [cds-dk@8.7.2]
BuildError
no longer cuts off its stack. - [cds-dk@8.7.2]
cds bind -a
doesn't concurrently try to check the Cloud Foundry version or OAuth token. - [cds-dk@8.7.2]
cds import
now resolves target of association/composition correctly for multiple schema files. - [cds-dk@8.7.1]
cds add mta
now setsparameters.instances
explicitly to1
in Java projects, same as for Node.js projects. - [cds-dk@8.7.1]
cds add mta
does not add thereadiness-health-check-type
andreadiness-health-check-http-endpoint
properties to themta.yaml
any more. - [cds-dk@8.7.1]
cds add -p
correctly parses plugin-contributed options. - [cds-dk@8.7.1]
cds watch
correctly escapes its default ignored directories on Windows. - [cds-dk@8.7.1]
cds compile
correctly uses--service=all
as its default. - [cds-dk@8.7.1]
cds add ias
correctly writes MTX sidecar config in combination withcds add multitenancy
. - [cds-compiler@5.8.0] New CDL parser: parse all entity definitions using
projection on
without a terminating;
if they had been accepted by the old parser, i.e. for compatibility, we gave up the idea of removing the existing special handling in this case. - [cds-compiler@5.8.0] Old and new parser: issue a warning for an ignored filter on the result of a function or method call.
- [cds-compiler@5.8.0] CSN annotation expressions with value
true
for=
were not checked. - [cds-compiler@5.8.0] Annotation
@Core.Computed
was not set for select items that are paths into structured parameters. - [cds-compiler@5.8.0] Annotation expression path rewriting has been improved.
- Paths on foreign keys are rewritten.
- [cds-compiler@5.8.0] for.seal:
- References into structured parameters were incorrectly flattened.
- Set
@cds.persistence.name
only on persistence-relevant things.
- [cds-compiler@5.7.4] New CDL Parser (option
newParser: true
)- Improve code completion
- Fix further edge cases in error recovery
- [cds.java@3.7.2] Fixed performance problem in
cds-feature-change-tracking
whenUpdate
orUpsert
statements are inspected for change-tracked elements. - [cds.java@3.7.2] Fixed a bug, causing statements using paths in the source to fail when deep authorization is enabled.
- [cds.java@2.10.7] Fixed a bug in
cds-feature-change-tracking
causing the changed values for targets of associations not to be logged when the same type was referenced multiple times. - [cds.java@2.10.7] Fixed performance problem in
cds-feature-change-tracking
whenUpdate
orUpsert
statements are inspected for change-tracked elements. - [cds4j@3.7.2] Fixed a bug, causing deep updates on projections with aliased keys to fail
- [cds4j@2.10.7] SAP HANA HEX mode: fixed fallback to non-hex SQL on "HEX enforced but cannot be selected" errors on HANA QRC 4/2024
- [cds4j@2.10.7] Fixed deep updates on projections with aliased keys
- [cds4j@2.10.7] Fixed missing foreign key propagation in deep updates and upserts
- [cds@8.7.2] Strip
Z
suffix of values ofcds.Timestamp
with OData typeEdm.DateTime
- [cds@8.7.2] Skip validation for mandatory fields in update scenarios for entities in draft activation
- [cds@8.7.2]
cds.compile.to.yaml
escapes strings including colons if necessary - [cds@8.7.1] Loading of CAP Plugins implemented in Typescript
- [cds@8.7.1]
Location
header if read after write returns empty result due to missing read authentication - [cds@8.7.1] Enable accessing
req.params
when handling requests on parameterized views - [cds@8.7.1]
cds.connect.to(class {...})
did not call theinit
function - [cds@8.7.1] Generic Paging/Sorting was run twice for non-draft requests
- [cds@8.7.1] Service implementation loaded from
node_modules
January 2025
Added
[cds-dk@8.7.0]
cds watch
supports--exclude
and--include
options to specify additional paths to include or exclude. Alternatively, setcds.watch.[include|exclude]
in your CDS config.[cds-dk@8.7.0]
cds import
now updates configuration for Java projects (inapplication.yaml
etc.)[cds-dk@8.7.0]
cds import --config
now also accepts a string with flat key-value pairs (like--config "credentials.destination=foo"
), which is easier to write than the current JSON string (--config "{\"credentials\": {\"destination\": \"foo\"}}"
).[cds-dk@8.7.0]
cds debug
now supports Java applications, both local and remote.[cds-dk@8.7.0]
cds import
can now import an odata-V4 file with external dependencies(odata-V4 file). Dependencies has to be provided with -d/--dependencies option and must not have any external dependencies.[cds-compiler@5.7.0] Analyze enum symbols like
#ENUM_SYMB
; support starts at the following places:- used as sole
default
value orselect
column expression if the element/column has a specified enum type, or - used as sole value (in parentheses) of an annotation assignment if there is a definition for that annotation having an enum type;
- effects in compiler: complain if enum symbol is undefined
- effects in the IDE with an upcoming version of cds-lsp when compiler option
newParser
is set: offer code completion and hover information, - effects in backends like
to.sql
(and potentially runtimes): enum symbol is replaced by corresponding string/integer value when appropriate.
- used as sole
[cds-compiler@5.7.0] for.seal: Process foreign key annotations similar to to.edm(x)
[cds.java@3.7.1] Instance based authorization can now reject CREATE/UPDATE with 400 via option
cds.security.authorization.instance-based.check-input-data
[cds.java@3.7.0] Added possibility to enable default translations for validation error messages by setting
cds.errors.defaultTranslations.enabled
totrue
. These translated error messages avoid references to technical entity or element names and solely rely on the message's target.[cds.java@3.7.0] If
cds.security.authorization.instance-based.customEvents
is disabled, instance based authorization can now rejectdraftEdit
events with 403 instead of filtering via optioncds.security.authorization.instance-based.reject-selected-unauthorized-entity
as well.[cds.java@3.7.0] Added debug logs when calculating object key for Kafka messages.
[cds.java@3.7.0] The goal
add
of thecds-maven-plugin
supports adding ORD integration to a CAP Java project.[cds.java@3.7.0] The exposed ORD endpoint of the CAP Java application is now also shown on the index page.
[cds.java@3.7.0] The dev-dashboard can now list all registered event handlers for application services.
[cds.java@3.7.0] Added capabilities to selectively remove messages from the current RequestContext's message container with the new method
Messages.removeIf(Predicate<Message>)
.[cds.java@3.7.0] OData V4 protocol adapter now supports implicit parameter aliases for function calls.
[cds.java@3.7.0] The goal
add
of thecds-maven-plugin
supports adding a CAP Java Plugin, a Maven dependency and a Remote Service configuration to a CAP Java project.[cds.java@3.7.0] Default outboxes can now be disabled per service by setting
cds.messaging.services.<key>.outbox.enabled
tofalse
.[cds4j@3.7.0] Allow to use predicates in the select list
[cds4j@3.7.0] Support typed refs via
CQL.entity(ENTITY, ref)
[cds4j@3.7.0] Model reader: Support
$enclosed
property of associations[cds4j@3.7.0] Support expanding filtered associations/compositions in runtime views
[cds@8.7.0] Allow usage of tar library (https://www.npmjs.com/package/tar) as a workaround to solve remaining issues by extension build on Windows. The tar library should be installed by app developers.
[cds@8.7.0]
cds.ql
supports limit with an optional offset, e.g.limit(10, 5)
[cds@8.7.0] Basic support for new built-in type
cds.Map
[cds@8.7.0] Normalization of DateTime and Timestamp payloads in new OData adapter
[cds-mtxs@2.5.0] Running jobs time out after 90 minutes by default. This is configurable using
cds.requires.multitenancy.jobs.heartbeatAge
andcds.requires.multitenancy.jobs.heartbeatInterval
.[cds-mtxs@2.5.0] Extension linter now optionally checks extensions including existing extensions. This can be enabled using
jsonc"requires": { "cds.xt.ExtensibilityService": { "check-existing-extensions": true } }
This is not available for the extension project build.
[cds-mtxs@2.5.0] Warning when using legacy options in
cds.mtx
.
Changed
- [cds-dk@8.7.0]
cds add mta
sets backend and MTXparameters.instances
to a default of1
for improved discoverability. - [cds-dk@8.7.0]
cds add sample
generates sample .ts files if the project is a TypeScript project - [cds-dk@8.7.0]
cds import
now doesn't need beta flag to populate default value for optional action and function parameters as compiler now supports default value for @Core.OptionalParameters. - [cds-dk@8.7.0]
cds add portal
now uses a more generic sample translated title instead of "Bookshop". - [cds-compiler@5.7.0] CDL parser: it is now recommended to set the option
newParser
to make the compiler use a CDL parser with a significantly smaller footprint (among other things). New features might only work if this option is set, see above. - [cds4j@3.7.0]
Modifier.selectListValue
(beta) now takes anSelectableValue
instead of aValue
- [cds4j@3.7.0] In-Predicate (
Value.in
) now takes aCollection
instead of aList
- [cds@8.7.0] Cleanse immutable values in draft modifications
- [cds@8.7.0] Do not use compatibility mode of @sap/xssec 4, can be reverted with
cds.env.features.xssec_compat = true
- [cds@8.7.0]
cds.Float
is now correctly deprecated incds.builtin.types
. - [cds@8.7.0] Input provided via protocol adapter for elements annotated with
@cds.api.ignore
are rejected. Previously, they were ignored.
Fixed
- [cds-dk@8.7.0]
cds add mta
in combination withcds add ias
correctly adds all routes to the backend module. - [cds-dk@8.7.0]
cds add mta
adds the DB deployer module without prior installation of@cap-js/hana
. - [cds-dk@8.7.0]
cds add mta
adds the npm-ci builder for nodejs modules to use fixed package-lock versions for dependency vendoring. - [cds-dk@8.7.0]
cds build --ws
will no longer require adb/
folder in the root directory of the project. - [cds-dk@8.7.0]
cds import
doesn't throw error while importing odata-V4 file with com.sap.vocabularies. - [cds-compiler@5.7.2] Fix edge case in error recovery of the new CDL parser (option
newParser: true
) - [cds-compiler@5.7.0] CDL parser: doc comment parser was susceptible to ReDos
- [cds-compiler@5.7.0] to.sql/hdi: Paths inside calculated elements that are simple functions were not properly rewritten.
- [cds-compiler@5.7.0] for.odata: Re-add foreign keys in property
targetAspect
in the OData CSN. - [cds-compiler@5.7.0] to.edm(x): In annotation translation, by default map
SemanticObjectMappingAbstract
toSemanticObjectMappingType
to avoid regressions. - [cds-compiler@5.7.0] to.cdl: Fix quoting of identifier
many
inComposition of
/Association to
- [cds-compiler@5.7.0] for.seal: Allow annotation paths to end in
many
-elements, not just scalar, like we allow in for.odata - [cds.java@3.7.1] Fixed a bug in Event Mesh feature, causing a wrong webhook url registration when property
cds.messaging.webhooks.url
starts withhttps://
- [cds.java@3.7.1] Fixed a bug in Kafka feature, causing issues when a Kafka cluster has been created with public endpoints.
- [cds.java@3.7.1] Bound function calls with implicit parameter aliases now support arguments with names equal to the names of the system query options without the
$
. They must be prefixed with@
. - [cds.java@3.7.0] Fixed a bug in OData V4 adapter, causing
NullPointerException
when serializing complex types for requests containing$select=*
. - [cds.java@3.7.0] Fixed a bug in OData V2 adapter, causing incorrect statements generation for analytical view requests, containing measures in
$orderby(<measure>)
not present in$select
. - [cds.java@3.7.0] Fixed a bug, causing a message's longTextUrl to be lost, when converting the message to an exception.
- [cds.java@3.7.0] Fixed a bug that caused a critical inconsistency to be accepted where tenants had multiple HDI containers.
- [cds.java@3.7.0] Fixed a bug with DB connection pools which caused connection errors when a tenant is moved to another HANA instance.
- [cds.java@3.7.0] Fixed a bug, causing handler annotations with type filters to prevent registration of the handler method if the type is not an interface and the service is outboxed.
- [cds.java@3.7.0] Fixed a bug, causing
ApplicationService
calls within@Before
handlers (e.g. originating from@assert.target
) to unexpectedly throw an exception, if error messages were written before. - [cds.java@3.7.0] Fixed a bug in
cds-feature-change-tracking
causing the changed values for targets of associations not to be logged when the same type was referenced multiple times. - [cds.java@3.7.0] Deep authorization checks are not performed on filtered compositions anymore
- [cds4j@3.7.0] SAP HANA HEX mode: fixed fallback to non-hex SQL on "HEX enforced but cannot be selected" errors on HANA QRC 4/2024
- [cds4j@3.7.0] Fixed missing foreign key propagation in deep updates and upserts
- [cds@8.7.0] Narrowed down peer dependency version of
express
to^4
- [cds@8.7.0] OData, REST: Responses are only written in case that the response object is not already closed, which allows responding to requests directly in custom handlers.
- Note: Responses sent directly are not transactionally safe! Further, subsequent errors can no longer be communicated to the client!
- Note: Only respond directly in non-
$batch
requests!
- [cds@8.6.2] Crash during requests to actions with parameter
array of <type>
- [cds@8.6.2] Instance based restriction using
is null
- [cds@8.6.2] Filtering of grouped result on default aggregate
- [cds@8.6.2] Multipart batch response for failed changesets
- [cds@8.6.2] Handling of invalid parentheses in OData property access
- [cds@8.6.2] Resolve view: Mixins are not in elements of projection target
- [cds@8.6.2] Input provided via protocol adapter for elements annotated with
@cds.api.ignore
can be rejected withcds.features.reject_ignored: true
. - [cds@8.6.1] find draft root in authorization checks when entity has recursive compositions
- [cds@8.6.1]
default-env.json
was not loaded anymore when in production mode. - [cds@8.6.1] i18n texts like
1
ortrue
were returned as numbers, or booleans instead of strings - [cds@8.6.1] CSN files produced by
cds build
now again contain information to resolve handler files. That was broken in case of reflected/linked models set by e.g. plugins. - [cds@8.6.1]
average
aggregation used with draft enabled entities - [cds-mtxs@2.5.1] Schema evolution for the
t0
tenant withlazyT0: true
- [cds-mtxs@2.5.1] Parallel extension requests for different tenants are now handled correctly.
- [cds-mtxs@2.5.0] Better resilience when deleting tenants.
- [cds-mtxs@2.5.0] HANA encryption parameters are now properly supported also for applications using Subscription Manager.
- [cds-mtxs@2.5.0] Limit check for field extensions now correctly sums up all separately added fields.