Changelog 2024/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.
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] Support for [SQL] Window Functions
[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.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.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.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.
December 2024
Added
- [cds-dk@8.6.0]
cds repl
got new option--run
to run a server; also available through.run
command within the REPL. - [cds-dk@8.6.0]
cds repl
got new option--use
to make the features of acds
available as globals. - [cds-dk@8.6.0]
cds repl
got new builtin.inspect
command to inspect object with configurable depth, e.g..inspect cds .depth=1
. - [cds-dk@8.6.0]
cds watch
now detects a TypeScript project and tries to run withtsx
if this is installed locally or globally. Otherwise a warning message is emitted.CDS_TYPESCRIPT=false
can be used to opt out of this behavior. - [cds-dk@8.6.0]
cds import --group
to allow RFC importer to organize imported modules under a logical name. - [cds-dk@8.6.0]
cds init/add
for Java projects automatically create apackage-lock.json
. - [cds-dk@8.6.0]
cds add ias
adds IAS configuration (beta). - [cds-dk@8.6.0]
cds add ams
adds AMS configuration (beta). - [cds-compiler@5.6.0] Allow to refer to draft state element
HasActiveEntity
andHasDraftEntity
via variable$draft
in 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-ord
now 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
generate
of thecds-maven-plugin
executed with option-Dcds.generate.feature=EVENT_HANDLERS
can 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
/allMatch
in infix filters of element refs on the select list. - [cds@8.6.0]
SELECT.from
now supports full-query tagged template literals, e.g.:SELECT.from`Books where ID=${201}`
- [cds@8.6.0]
cds.ql
enhanced by functions to facilitate construction of CQN objects. - [cds@8.6.0]
cds.ql
became a function to turn CQN objects, CQL strings, or tagged template literals into instances of the respectivecds.ql
class. - [cds@8.6.0] New
cds
events to allow multitenant plugins:compile.for.runtime
,compile.to.dbx
,compile.to.edmx
. - [cds@8.6.0]
cds.env
now supports.cdsrc.js
and.cdsrc.yaml
files, also in plugins. - [cds@8.6.0]
cds.env
now supports profile-specific.env
files, e.g..hybrid.env
or.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 init
in 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
newParser
viacds.env
will 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-cdsdk
of thecds-maven-plugin
has been deprecated. - [cds.java@3.6.0] The
cds-services-archetype
generates new CAP Java projects with apacakge.json
andpackage-lock.json
containing a devDependency to@sap/cds-dk
. Thesrv/pom.xml
is generated with the execution ofnpm ci
instead 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
, andCXL
globals are deprecated => use respective functions fromcds.ql
instead. - [cds@8.6.0]
CREATE
, andDROP
globals are deprecated => use respective functions fromcds.ql
instead. - [cds@8.6.0] Zulu time zone information is stripped from
cds.DateTime
properties when querying Odata V2 remote services - [cds@8.6.0] Processing of
@restrict.where
was aligned with CAP Java:- Instance-based authorization on app service calls does not consider custom
WHERE
clauses ofUPDATE
/DELETE
queries- 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 of2xx
with 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 ams
now creates correct dependencies for Java projects. - [cds-dk@8.6.0]
cds add html5-repo
adds anindex.html
aswelcomePage
to thexs-app.json
, if available. - [cds-dk@8.6.0]
cds bind
fixes the recursive call tomergeCredentials
. - [cds-dk@8.6.0]
cds add
won't add a duplicatedSUBSCRIPTION_URL
if it doesn't match the template specification. - [cds-dk@8.6.0]
cds watch
gives a better error message for TypeScript projects started with iftsx
isn't installed. - [cds-dk@8.6.0]
cds build
no longer throws an undefined error when processing build plugin messages. - [cds-dk@8.5.1]
cds build
now 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.elements
yet. - [cds.java@3.6.0] Fixed an issue in
add
goal of thecds-maven-plugin
causing 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.Immutable
are 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_id
andparent_id
for HANA hierarchies - [cds4j@3.6.0] Fixed a bug, causing duplicate elements
node_id
andparent_id
on the select list of a source of a hierarchy - [cds4j@3.6.0] Fixed a bug, causing a wrong value for
IsActiveEntity
in 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
/$count
queries 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.context
in new OData adapter:- Fixed crash for requests to actions/functions when
cds.env.odata.context_with_columns
is enabled - Aggregation functions with
$apply
are now returned whencds.env.odata.context_with_columns
is enabled @odata.context
is now the first property in the response values ofconcat
requests- 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=undefined
for 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-only
no longer tries to load a SQLite database - [cds@8.5.1] Requests with HTTP methods other than
POST
to the/$batch
endpoint 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--body
parameter.
Removed
- [vscode-cds@8.5.1] obsolete support for CAP Notebook urls
November 2024
Added
[cds-dk@8.5.0]
cds debug
lets you debug Node.js applications running locally or in Cloud Foundry.[cds-dk@8.5.0]
cds watch --inspect
andcds watch --inspect-brk
activate the debugger in the same way as the standard Node.js CLI options, i.e. they accept ahost:port
combination and0
as values.[cds-dk@8.5.0] The existing
cds watch --debug
is now an alias tocds watch --inspect
.[cds-dk@8.5.0]
cds add cloud-logging
adds cloud-logging as an alternative for application logging in Kyma.[cds-dk@8.5.0]
cds add cloud-logging --with-telemetry
orcds add telemetry
adds cloud-logging as well as support forcap-js/telemetry
plugin in Kyma.[cds-dk@8.5.0]
cds add handler
now 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 esm
creates ESM-compatible Node.js projects. Sample code added byadd sample
andadd handler
will respect this setting if added afterwards. Existing code will not be adjusted bycds add esm
, though.[cds-dk@8.4.1]
cds deploy --no-build
lets you skip the implicitcds build
.[cds-dk@8.4.1]
cds add data/http
supports new typecds.Map
.[vscode-cds@8.4.3] refactoring
using
statements 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.enabled
andcds.refactoring.files.delete.enabled
)[vscode-cds@8.4.0] Rename or move of CDS files and folders will update all
using
statements to the renamed file[vscode-cds@8.4.0] Deletion of CDS files or folders will show all
using
statements 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
newParser
is 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
ALTER
statements 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-ucl
which 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-ord
which 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.hierarchy
as 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()
forCqnFilterableStatement
as convenience[cds4j@3.5.0] Add support for filters and orderBy of elements in cds.Map (beta)
[cds@8.5.0] New
cds.i18n
module used consistently for both, UI labels and runtime messages.[cds@8.5.0] Enhanced
cds.validate
to support open intervals for:@assert.range:[(0),(Infinity)]
->0 < x < ∞
[cds@8.5.0]
package.json
validation 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=baz
instead 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
stderr
are 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-ID
header is set for requests to Service Manager.[cds-mtxs@2.3.1] Extension projects can now be tested using
cds w
even if the application base model contains@impl
annotations.
Changed
- [cds-dk@8.5.0]
cds import
now 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 typescript
creates projects withcds-tsx
to run apps instead of formercds-ts
. - [cds-dk@8.5.0]
cds deploy
writes error output tostderr
. - [cds-dk@8.5.0]
cds add http
now evaluates mocks users when creatingAuthorization
headers - [cds-dk@8.4.2]
cds init
uses 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.json
andcds-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.clientCertificateHeader
has been deprecated. Use 'cds.security.authentication.clientCertificateHeader' instead. - [cds.java@3.5.0] Property
cds.multiTenancy.security.internalUserAccess.enabled
has been deprecated. Usecds.security.internalUserAccess.enabled
instead. - [cds@8.5.0]
cds-deploy
script has a non-zero exit code on deployment failure - [cds@8.5.0] Properties of type
cds.Binary
in URLs as well as request payload are converted toBuffer
s. Properties of typecds.LargeBinary
in request payload are converted toReadable
s. 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 import
throws proper error message if Annotation element doesn't have Term attribute. - [cds-dk@8.5.0]
cds add approuter
no longer enforces Node.js 22, which is not supporter by current@sap/approuter
version 17. The previous Node.js version 20 is used again. - [cds-dk@8.5.0]
cds add -p
with custom options now works if the entry was not in thepackage.json
beforehand. - [cds-dk@8.5.0]
cds add http
works for actions without parameters. - [cds-dk@8.5.0]
cds add workzone
includes theupdateManifestJson
task on initial generation. - [cds-dk@8.5.0]
cds build --ws
no longer creates migration tables in shared database or wrong workspace. - [cds-dk@8.4.2]
cds add -p/--package
correctly parse plugin-contributed options. - [cds-dk@8.4.2]
cds add side-by-side-extensibility
does not throw an error. - [cds-dk@8.4.2] fix method name in
cds bind
credential handling. - [cds-dk@8.4.2]
cds add --help
no longer has missing line breaks in help text. - [cds-dk@8.4.2]
cds
commands no longer fail with an errorcds.extend is not a function
with very old versions of@sap/cds
. - [cds-dk@8.4.2]
cds add hana
adds therequires.db
entry to.cdsrc.json
for Java projects. - [cds-dk@8.4.2]
cds add data
creates decimal values with correct scale0
if 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 data
handles composition of one correctly. - [cds-dk@8.4.1]
cds add http
creates payloads for unbound actions in services. - [cds-dk@8.4.1]
cds compile --to xsuaa
can now handle annotation expressions inwhere
clauses. - [cds-dk@8.4.1]
cds add http
produces requests for all expected data and no longer relies on existing data on the side. - [cds-dk@8.4.1]
cds add typer
createstsconfig.json
that works withcds-tsx
. - [vscode-cds@8.4.1] Deleting CDS files now also suggests to remove
using
statements 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]
using
path 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.json
files (e.g. frompnpm
lackingname
property) - [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.Map
toJSON_TEXT
to 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-manager
which 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-tracking
causing theStackOverflowError
exception being thrown, when change-tracking entities with references to self. - [cds.java@3.5.0] Fixed a bug in the
version
goal of thecds-maven-plugin
printing 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.Immutable
are 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-tracking
causing theStackOverflowError
exception 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-archetype
causing 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-tracking
to 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-tracking
causing theStackOverflowError
exception being thrown, when change-tracking entities with references to self. - [cds4j@3.5.0] Fix builder interface methods for structured elements by adding
@CdsName
annotations. - [cds4j@3.5.0]
@cds.java.ignore
annotations 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.validate
should not delete readonly keys fromreq.data
- [cds@8.5.0]
cds.validate
should 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.log
with null parameters and JSON format - [cds@8.5.0]
cds.compile.to.sql
proper replacement for sqlite session variables in java projects - [cds@8.5.0]
cds.compile.to.serviceinfo
ignores only theendpoints
property for unknown protocols - [cds@8.5.0]
Preference-Applied
header is returned in OData adapter if requested - [cds@8.5.0] No location header is returned on OData update requests if
minimal
preference is set - [cds@8.5.0] Handling of invalid requests for views with parameters
- [cds@8.4.2]
cds.compile.to.edmx
if 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
DEBUG
output 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 --client
works 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
import
andexport
for auto-completion inpackage.json
and.cdsrc.json
. - [cds-dk@8.4.0]
cds add side-by-side-extensibility
adds configuration for logic extensibility via extension points (Java). - [cds-dk@8.4.0]
cds init --java
can be used as an alias tocds init --add java
. - [cds-dk@8.4.0] Add cds schema for
helm
build plugin. - [vscode-cds@8.3.0] Preview of
mta.yaml
via 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.Map
as empty open complex type with namecds_Map
or if the definition has been assigned@open: false
as empty open complex typecds_Map_closed
in OData V4. - [cds.java@3.4.0] Added support for annotation
@Core.ContentDisposition.Type
incds-adapter-odata-v4
. - [cds.java@3.4.0] Added support for Preference
omit-values=nulls
for OData V4. To omitnull
values in payload the headerPrefer
with valueomit-values=nulls
must be specified. - [cds.java@3.4.0] The goal
add
of thecds-maven-plugin
supports 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.Map
type (beta) - [cds@8.4.0] Set the maximum allowed size of HTTP headers in bytes for
$batch
subrequests via flagcds.env.odata.max_batch_header_size
(default: 64 KiB) - [cds@8.4.0] New OData flag
cds.env.odata.context_with_columns
that adds selected and expanded columns to@odata.context
. Default isfalse
- [cds@8.4.0] New experimental option
--workers
tocds watch/run/serve
that allows running acds.server
cluster (process env variableWORKERS
orCDS_WORKERS
can 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 init
does not put comments in JSON files within.vscode/
. - [cds-dk@8.4.0]
cds import --from asyncapi
now uses CloudEvents type in@topic
annotation. - [cds-dk@8.4.0]
cds deploy
does not fall back to the deprecatedhanatrial
service plan any more. - [eslint-plugin-cds@3.1.1]
no-db-keywords
is 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
.dot
text 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
addTargetPlatform
andaddIntegrationTests
from thecds-maven-plugin
. Both are replaced by goaladd
with corresponding feature parameter. - [cds.java@3.4.0] Dependencies to modules with groupId
com.sap.cloud.mt
have been removed. Classes originating from these dependencies have been directly packaged intocds-feature-mt
and other internal modules. Packagescom.sap.cloud.mt
andcom.sap.cds.mtx
have been renamed tocom.sap.cds.feature.mt
andcom.sap.cds.services.util.lib
. - [cds.java@3.4.0] Classes
ClientCredentialJwtAccess
andClientCredentialJwtReader
have been deprecated. - [cds.java@3.4.0] Minimum version of
com.sap.dwc:util-cap
library for DWC integration into CAP Java has been increased to2.3.15
. - [cds.java@3.4.0] Added property
cds.multiTenancy.security.internalUserAccess.enabled
to control authorization of MT lifecycle endpoints for internal users. In production profile,internal-user
is 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.endpoints
now 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 env
now colors is output honoring settings likeFORCE_COLOR
. - [cds-dk@8.4.0]
cds add
commands correctly detect Java/Node in Microsoft PowerShell. - [cds-dk@8.4.0]
cds add hana
doesn't adddependencies
to.cdsrc.json
any more. - [cds-dk@8.4.0]
cds add cf-manifest
uses the newsap_java_buildpack_jakarta
buildpack. - [cds-dk@8.4.0]
cds build --production
now correctly formats console log output. - [cds-dk@8.4.0]
cds add
correctly handles entries likecds.requires.auth
if the following configuration is scoped in a profile. - [cds-dk@8.4.0]
cds add
plugins can use a shortcut for their options. - [cds-dk@8.4.0]
cds import
fix for no entity schema in OData V2. - [eslint-plugin-cds@3.1.1]
auth-restrict-grant-service
can now handle invalid values for@restrict
- [eslint-plugin-cds@3.1.1]
auth-use-requires
now handlesnull
values for@restrict.grant.to
- [eslint-plugin-cds@3.1.1]
auth-valid-restrict-to
is 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-where
now handles and reports invalid value@restrict: [{where: null}]
- [eslint-plugin-cds@3.1.1]
auth-no-empty-restrictions
now 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.Links
watermark annotation has axmlns
attribute now. - [cds-compiler@5.4.0] for.seal: Remove unapplied extensions from CSN.
- [cds-compiler@5.4.0] to.sql.migration: Handle
ALTER COLUMN
for columns withNOT NULL
and 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
deploymentService
health indicator being enabled by default. - [cds.java@3.3.1] Fixed a bug, causing UI provided by
cds-feature-change-tracking
to 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 deploy
now 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
$apply
will 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_parser
for requests containing$expand=*
and$select
, which selects individual columns and star, e.g.$select=ID,*
- [cds@8.4.0] Referencing new entities in
$batch
with new OData adapter did not work properly when using non integer content IDs in multipart/mixed - [cds@8.4.0]
cds.compile.to.serviceinfo
to ignore unknown protocols - [cds@8.4.0] New OData adapter and
cds.spawn
did 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
quoted
names, overwrite@cds.persistence.name
for 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 --syncTenantList
is now more robust. - [cds-mtxs@2.3.0]
DEBUG=mtx
redacts 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
@mandatory
and@readonly
more accurately. - [cds-mtxs@2.3.0]
cds.xt.JobsService
inserts jobs and tasks in one transaction.
September 2024
Added
[cds-dk@8.3.0]
cds add mta
,cds add helm
andcds add cf-manifest
execute themvn cds:add -Dfeature CF/K8S
under the hood for Java projects.[cds-dk@8.3.0]
cds compile --to mermaid
now supportsmta.yaml
to generate a visualization of your deployment descriptor.[cds-dk@8.3.0]
cds add data
now also generates data for models imported withcds import
.[cds-dk@8.3.0]
cds add data
now also supports structured types.[cds-dk@8.3.0]
cds deploy
now can also write its DDL statements to a separate log file with the--out <file>
parameter.[cds-dk@8.3.0]
cds add dynatrace
is 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-telemetry
andcds add dynatrace
are added to theproduction
profile by default and respect thefor
option.[cds-dk@8.2.0]
cds add dynatrace
adds configuration for Dynatrace.[cds-dk@8.2.0]
cds add cloud-logging
adds configuration for SAP Cloud Logging. Option--with-telemetry
allows for configuration with telemetry.[cds-dk@8.2.0]
cds version
shows version information for@cap-js/db-service
.[cds-dk@8.2.0]
cds add portal
now adds SAP Cloud Portal configuration for Kyma.[cds-dk@8.2.0]
cds add handler
allows to create handler stubs (for Java only, beta)[cds-dk@8.2.0]
cds init --add java --no-db
lets you create a Java project without persistent database.[cds-dk@8.2.0]
cds import
supports plugins.[cds-dk@8.2.0]
cds add containerize
now supports unified-runtime.[cds-dk@8.2.0]
cds add helm
now supports templating in the mountPath in the additionalVolumes.[cds-dk@8.2.0] Experimental support for
tsx
throughcds-tsx
.[cds-dk@8.2.0]
cds bind --to-app-services
now usesvcap.name
to 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.json
file extension.[cds-dk@8.2.0]
cds import --destination
applies destination credentials to existing service configurations.[eslint-plugin-cds@3.1.0] api:
- rules now have a
name
property, containing the rule name - new exported property
parser
- rules now have a
[eslint-plugin-cds@3.1.0] rules: there is now an
experimental
rule 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-grant
now proposes '*' when incorrect@restrict.grant
value 'any' is used[vscode-cds@8.2.0] code completion for artifacts within
using
statements 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 null
without default value is mandatory. - A function parameter declared
null
without default value is mandatory. - An action parameter declared
null
without 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: true
can 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: false
turns 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-views
was added.[cds.java@3.3.0] Introduced a new health indicator
modelProvider
to include the health status of MTX sidecar into the application's/actuator/health
endpoint.[cds.java@3.3.0] Introduced a new setting
strictSetters
for thegenerate
goal 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.version
allows to configure the UI5 version used by the Fiori Preview.[cds.java@3.2.0] The goal
add
of thecds-maven-plugin
supports adding CloudFoundry / Kubernetes support and health checks to a CAP Java project.[cds.java@3.2.0] The goal
generate
of thecds-maven-plugin
supports generation of template handlers for actions and functions from the CDS models.[cds.java@3.2.0]
TenantProviderService.readTenantsInfo
now accepts a set of strings that filters the fields of the retrievedTenantInfo
objects. 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
add
of thecds-maven-plugin
supports adding application logging to a CAP Java project.[cds.java@3.2.0] Deep authorizations now support conditions with paths involving associations in
@restrict
predicates.[cds.java@3.2.0] Support OData hierarchical requests, using
com.sap.vocabularies.Hierarchy.v1.TopLevels
,ancestors
,descendants
transformations. The feature is supported only on SAP HANA and needs to be enabled by settingcds.query.hierarchy.enabled
totrue
.[cds.java@3.2.0] Support
null
values 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.name
can be used as alias with lower priority in all places where@cds.java.this.name
is supported[cds@8.3.0]
cds.deploy
can 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/tenant
andPOST /-/cds/saas-provisioning/subscribe
accept 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 sample
now uses@ui5/cli
version 4. - [cds-dk@8.3.0]
cds import
now throws a warning for OpenAPI files containing recursive data types. - [cds-dk@8.2.0]
cds add hana
writes configuration forcds build/compile
to 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 login
prints shorter messages about refresh tokens. - [cds-dk@8.2.0]
cds init
uses 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
@protocol
annotations 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_compat
because of incompatibility with data validation in new OData adapter. - [cds@8.3.0]
@cds.api.ignore
doesn'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
@restrict
are now enforced and no longer ignored. - [cds@8.3.0]
@cap-js/telemetry
is 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.tgz
will 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
cds
instead ofcds-ts
in 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 add
plugins don't throw aTypeError
ifcds.cli.options
isundefined
. - [cds-dk@8.2.3]
cds watch
no longer ignores*git/
folders, but only.git/
. - [cds-dk@8.2.3]
cds import
updatespackage.json
file insrv
folder if existing. Thesrv
folder name is determined bycds.env.folders.srv
config or parameter--out
. - [cds-dk@8.2.3]
cds import
doesn't change existing service configuration data. Now,destination
credentials are only saved for theproduction
profile. - [cds-dk@8.2.2] BDSA-2024-6188: vulnerability with express.js 4.19.2
- [cds-dk@8.2.2]
cds import --out
copies the given metadata file to the correct output folder. CLI options are propagated to thecds.import
API. - [cds-dk@8.2.2]
cds add sample
no longer creates a irregular whitespace inadmin-service.js
. - [cds-dk@8.2.2]
cds login
now correctly fetches tokens again with client credentials (or hints at invalid credentials). - [cds-dk@8.2.2]
cds add handler
can now also be called from thesrv
dir. - [cds-dk@8.2.1] Update
@sap/hdi-deploy
to fix CVE-2024-4067 withmicromatch
4.0.7 - [cds-dk@8.2.1]
cds add
plugins now correctly parse flags (options withtype: 'boolean'
) if not used as the last argument. - [cds-dk@8.2.0]
cds import
fix for single entity schema in OData V2. - [cds-dk@8.2.0]
cds add portal
correctly sets theappId
in itsCommonDataModel.json
from themanifest.json
app ID. - [cds-dk@8.2.0]
cds add html5-repo
adds the SAP BTP Destination service as a hard dependency again for Kyma projects. - [cds-dk@8.2.0]
cds build --ws-pack
correctly creates tarball archives for workspaces with nestednode_modules
folders. - [cds-dk@8.2.0]
cds import
now shows proper error message in case of bound action collision. - [cds-dk@8.2.0]
cds deploy --to hana
now runs an existinghana
build 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
eslint
on the command line now runsinferred
rules again - [eslint-plugin-cds@3.1.0]
start-entities-uppercase
no longer reports false positives for elements - [eslint-plugin-cds@3.1.0] Typescript errors in
lib/types.d.ts
were fixed - [eslint-plugin-cds@3.1.0] Rule property
hasSuggestions: true
was removed from rules that did not have suggestions - [eslint-plugin-cds@3.1.0] Custom rule tests using
runRuleTester
did not catch errors in files insidevalid/
. Tests can now also be run with other test runners such asmocha
andnode --test
instead 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-where
no longer runs in quadratic time and now handles "expressions as annotation values"auth-no-empty-restrictions
now runs for actions and functions, tooauth-use-requires
will not propose@requires
anymore, if the@restrict
has awhere
conditionauth-valid-restrict-grants
incorrectly proposed to useWRITE
instead of other events; it no longer crashes for invalid value types and now runs on all CSN artifactsauth-valid-restrict-keys
has 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
eslint
orcds 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
NullPointerException
when 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
$metadata
endpoint when special characters are used in the I18N texts. - [cds.java@3.2.0] Fixed a bug, causing
ErrorStatusException
being thrown when auditing accesses to inactive instances of draft-enabled entities. - [cds.java@3.2.0] Fixed a bug, causing failing requests to
/cds
actuator 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.allowMultipleBinding
totrue
so 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
NullPointerException
when processing the associations with elements relevant to Audit Logging. - [cds.java@2.10.4] Fixed a bug, causing incorrect EDMX being returned by the
$metadata
endpoint when special characters are used in the I18N texts. - [cds.java@2.10.4] Fixed a bug, causing
ErrorStatusException
being thrown when auditing accesses to inactive instances of draft-enabled entities. - [cds.java@2.10.4] Fixed a bug, causing failing requests to
/cds
actuator 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
@CdsName
on 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.extends
naming 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
@CdsName
on 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
Cds4jServiceLoader
failing 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
CANCEL
handlers - [cds@8.3.0] Allow to call
CANCEL
on draft entities programmatically - [cds@8.3.0] Encoding of
@odata.nextLink
path - [cds@8.3.0] Computed fields are ignored in projections
- [cds@8.3.0] Consider
id
in aref
step 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
@mandatory
checks - [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-serve
andcds-deploy
now setcds.cli
information - [cds@8.2.2] Erroneous caching in
cds.validate
- [cds@8.2.2] Properly check
$filter
element 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
$batch
parsing with -- as part of payload - [cds-mtxs@2.2.0]
/-/cds/saas-provisioning/dependencies
show 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
build
andbuild:ts
npm scripts that were generated intopackage.json
when adding thetypescript
facet. - [eslint-plugin-cds@3.1.0] api:
genDocs
was removed - [cds@8.3.0] Alpha support for SAP Event Broker-based messaging (kind
event-broker
). Use CDS plugin@cap-js/event-broker
instead.