Changelog
February 2023
Changed
- [cds-dk@6.5.1]
cds init
uses latest Maven Java archetype version 1.31.0 for creating Java projects.
Fixed
- [cds-dk@6.5.1]
cds deploy
no longer fails to write to apackage.json
file that has nocds
section
January 2023
Added
- [cds-dk@6.5.0]
cds run/serve/migrate --resolve-bindings
now pulls required service credentials if bound viacds bind
. (beta) - [cds-dk@6.5.0]
cds add helm
now supports multitenancy. - [cds-dk@6.5.0]
cds bind
now supports binding ofuser-provided service instances
from SAP BTP’s Cloud Foundry. - [cds-compiler@3.6.0] API: There are new API functions for
to.cdl
:smartId
,smartFunctionId
anddelimitedId
. - [cds-compiler@3.6.0] CDL parser: when defining a parameter for entities, actions or functions,
you can use a regular identifier for its name even if that is a reserved name like
in
. - [cds-compiler@3.6.0] The first parameter of a bound action or function can be typed with
$self
ormany $self
even if no type named$self
exists. - [cds-compiler@3.6.0] If an aspect
sap.common.TextsAspect
exists in thesap.common
context, it will be included in all.texts
entities. This allows to extend.texts
entities via extending the aspect. Example:entity E { key id : Integer; content: localized String; } extend sap.common.TextsAspect with { elem: String; }; // from @sap/cds common.cds aspect sap.common.TextsAspect { key locale: String; }
- [cds-compiler@3.6.0] to.edm(x): Support explicit binding parameter
<id>: [many] $self
for OData V4 only. The explicit binding parameter is rendered as any other parameter and$self
is replaced with the binding type but only if no$self
definition exists in the model. This gives full control over the binding parameter including name, nullability, default value and annotations. The explicit binding parameter is ignored for OData V2 and has precedence over@cds.odata.bindingparameter
. - [cds@6.5.0] New aspect
sap.common.TextsAspect
in common.cds - [cds@6.5.0] New syntax for collection bound entities
- [cds-mtxs@1.5.0] The built-in Service Manager client now caches binding information in-memory.
- [cds-mtxs@1.5.0] The
optimise_file_upload
HDI deployment option is now supported. - [cds-mtxs@1.5.0] MTX migration script now allows to split extensions based on extension file names using regular expressions.
- [cds-mtxs@1.5.0] Now, provisioning supports SaaS applications using extensibility in combination with migration tables. Before, provisioning failed with a HDI deployment error. Note: Extending migration table artifacts is not supported.
- [vscode-cds@6.5.0] Experimental user setting
cds.typeGenerator.enabled
to trigger a globally installed cds type generator when saving a model file. - [cds4j@1.35.0] New
Update.entry(Map<String, ?> entry)
method to improve the API for single updates with key values in update data. - [cds4j@1.35.0] Added generation of builder interfaces for CDS defined events.
- [cds4j@1.35.0] New syntax defining the binding parameter for bound functions and actions is supported.
- [cds4j@1.35.0] Added
top
andskip
methods toModifier
to modify pagination settings - [cds4j@1.35.0] New interfaces
CdsBoundAction
andCdsBoundFunction
represent bound functions and actions of an entity.
Changed
- [cds-mtxs@1.4.4]
cds.xt.DeploymentService
configuration has been flattened. Instead of"hdi": { "create": { "provisioning_parameters": { "database_id": "<ID>" }, "binding_parameters": { "key": "value" } } }
you can now also write
"hdi": { "create": { "database_id": "<ID>" }, "bind": { "key": "value" } }
The old configuration is still supported, but you’re advised to migrate to the new configuration for improved readability.
- [cds-mtxs@1.4.4]
/-/cds/jobs/pollJob
now also returns atenants
field, so tenant-specific tasks don’t have to be polled individually. An example response format looks like this:{ "status": "FAILED", "op": "upgrade", "tenants": { "non-existing-tenant": { "status": "FAILED", "error": "Tenant 'non-existing-tenant' does not exist" }, "existing-tenant": { "status": "FINISHED" } } }
- [cds-dk@6.5.0]
cds push
now runs a build of the extension project to update the pushed extension archive (unless custom archive given). - [cds-dk@6.5.0]
cds init
andcds bind
no longer use a spinner when performing long running operations. - [eslint-plugin-cds@2.6.1] Fixed rule name in ESLint config:all to
@sap/cds/start-elements-lowercase
. - [eslint-plugin-cds@2.6.1] Allow expensive rules to be reported when running from ESLint Cli.
- [eslint-plugin-cds@2.6.1] In auth-valid-restrict-grant, only suggest closely related user roles.
- [eslint-plugin-cds@2.6.1] In auth-valid-restrict-to, only suggest
*
if other entries apart from*
exist. - [cds-compiler@3.6.0] Many messages concerning the CDL and CSN syntax are improved:
affects message ids (
syntax-…
), message texts and the error locations. - [cds-compiler@3.6.0] Duplicate doc-comments are now errors, similar to duplicate annotations.
- [cds-compiler@3.6.0] Update OData vocabularies ‘Aggregation’, ‘Analytics’, ‘Capabilities’,’Common’, ‘ODM’, ‘Offline’, ‘PDF’, ‘Session’, ‘UI’.
- [cds.java@1.30.2] The personal data annotation
@PersonalData.EntitySemantics: 'Other'
now has the same effect on entities like@PersonalData.EntitySemantics: 'DataSubjectDetails
. - [cds.java@1.30.2] Renamed the annotation
@kafka.channel
to@kafka.topic
. - [cds@6.5.0] Successive calls to
SELECT.where()
wraps existing clause in brackets if it containsor
. E.g.SELECT.from `X` .where `x` .or `y` .where `z` //> SELECT from X where (x or y) and z`
- [cds@6.5.0]
cds build
for SAP HANA now adds anengines.node
version to the generateddb/package.json
. This will help in the future when runtime environments change their default to some version higher than the one supported by@sap/hdi-deploy
. - [cds@6.5.0]
cds build
checks the consistency of built-in models for java projects. An error is logged if some model files could not successfully be resolved indicating that a required npm module might be missing. - [cds@6.5.0] Status code of draft actions are set in respective handler instead of protocol adapter
- [cds@6.5.0]
cds deploy --dry
no longer loads thesqlite3
module by mistake. This fixes a regression when building Java projects. As a side effect a file with the nameundefined
was created in the project root folder. - [cds@6.5.0] Internal representation of pseudo roles
internal-user
andsystem-user
- [vscode-cds@6.5.0] CAP notebooks: code cells (
terminal
andshell
) have now their own working directory - [vscode-cds@6.5.0] minimum VSCode version is now 1.73.0
- [cds4j@1.35.0] In SQL statements generated by the runtime CDS identifiers are now always in db-specific casing and delimited.
- [cds4j@1.35.0] Moved generation of
CDS_NAME
constant to builder interfaces of CDS events. - [cds4j@1.35.0] Annotate generated accessor and builder interfaces with
@Generated
from the packagejavax.annotation.processing
only if compiled with Java > 8. - [cds4j@1.35.0] Deprecate interface
CqnModifier
, instead useModifier
- [cap-js/graphql@0.2.0] Register
aliasFieldResolver
during schema generation instead of passing it to the GraphQL server - [cap-js/graphql@0.2.0] The filters
contains
,startswith
, andendswith
now generate CQN function calls instead of generatinglike
expressions directly
Fixed
- [cds-compiler@3.5.4] Allow window functions also with a deprecated flag being set.
- [cds-compiler@3.5.4] to.edm(x): Fix program abort due to malformed error location in EDM annotation preprocessing.
- [cds-compiler@3.5.4] to.sql/hdi/hdbcds: The option
pre2134ReferentialConstraintNames
can be used to omit the referential constraint identifier prefix “c__”. - [cds-mtxs@1.4.4]
cds.xt.SaasProvisioningService
:*
is not allowed as a tenant name any more. - [cds-mtxs@1.4.4] Namespace check for new entities in extensions now also covers new root entities.
- [cds-mtxs@1.4.4] Asynchronous operations now correctly send the callbacks defined via
status_callback
ormtx_status_callback
. - [cds-odata-v2-adapter-proxy@1.9.17] Fix special replacement pattern in $filter conversion
- [cds-dk@6.5.0]
cds import
now generates flattened value for@Common.FieldControl
annotation in the CSN for OData V4 files. - [cds-dk@6.5.0]
cds import
now treats theCollectionKind
property attribute in OData V2 similar toCollection(<data_type>)
in OData V4. - [cds-compiler@3.6.0] If an entity with parameters is auto-exposed, the generated projection now has the same formal parameters and its query forwards these parameters to the origin entity.
- [cds-compiler@3.6.0] to.hdbcds: Aliases for foreign
keys
were not quoted if necessary. - [cds-compiler@3.6.0] to.cdl:
- Aliases for
expand
and foreignkeys
were not quoted if necessary. - Query functions that are CDL keywords were not properly quoted.
- CSN
doc
properties containing*/
resulted in invalid CDL. To avoid compilation issues,*/
is escaped as*\/
.
- Aliases for
- [cds-compiler@3.6.0] to.edm(x): Respect record type hint
$Type
in EDM JSON as a fully qualified@type
URI property. - [cds-compiler@2.15.10] If an entity with parameters is auto-exposed, the generated projection now has the same formal parameters and its query forwards these parameters to the origin entity.
- [cds-compiler@2.15.10] to.edm(x): Respect record type hint
$Type
in EDM JSON as a fully qualified@type
URI property. - [cds.java@1.30.2] Fixed a bug in the
cds-maven-plugin
which caused the goalgenerate
to fail when triggered in IDEs. - [cds.java@1.30.2] Fixed a bug which caused events to be silently dropped by the logical layer if qualified names of CDS-defined events didn’t match, even when using
@topic
. - [cds4j@1.34.1] Move CDS_NAME constant to generated builder interfaces of CDS events
- [cds4j@1.34.1] Fixed
hashCode
ofRow
- [cds4j@1.34.1] Fixed structure of empty results for queries w/ toOne expands that only have nested toMany expands
- [cds4j@1.34.1] Don’t allow to connect a conjunction/disjunction to itself (fixed stack overflow)
- [cds4j@1.34.1] Fixed search on entities w/ virtual String elements
- [cds@6.5.0] Resolve i18n folders from the root directory
- [cds@6.5.0] Types for
cds.test
- [cds@6.5.0] Types for
srv.send
- [cds@6.5.0] Optimized Search: Search queries for localized entities will now use default values, if no localized data is found in the corresponding localized tables on SAP HANA. Corrected aliasing by search queries with navigation.
- [cds@6.5.0] Resolution of
type of
references during minify in bootstrap - [cds@6.5.0] Generation of odata-v2 URL in case of select=* in
urlify()
- [cds@6.5.0] Build resets changed
cds.env
andcds.root
when finished - [cds@6.5.0] Expand error when using infix filters
- [cds@6.5.0] CDS configuration schema validation for
@sap/cds-mtxs
- [cds@6.5.0] Typings for QL API
- [cds@6.5.0] Return types of asynchronous service API
- [cds-mtxs@1.5.0] MTX migration script now detects enabled multitenancy also for a sidecar project setup.
- [cds-mtxs@1.5.0] Improved robustness for MTX migration script, e. g. with inconsistent old metadata tenants.
- [cds-odata-v2-adapter-proxy@1.9.18] Unicode encode messages header
- [cds-dk@6.5.0]
cds import
now generates flattened value for@Common.FieldControl
annotation in the CSN for OData V4 files. - [cds-dk@6.5.0]
cds import
now treatesCollectionKind
property attribute in OData V2 similar toCollection(<data_type>)
in OData V4. - [vscode-cds@6.5.0] workspace/symbols request didn’t include definitions of a file after it was closed.
- [cds4j@1.35.0] temporal data: truncate
validFrom
andvalidTo
to precision supported by DB - [cap-js/graphql@0.2.0] Schema generation crash that occurred if an entity property is named
localized
- [cap-js/graphql@0.2.0] The field
totalCount
could not be queried on its own
Removed
- [vscode-cds@6.5.0]
@cds.doc
annotation, which was marked as deprecated for a long time, is no longer considered in requests like document/hover. Please use doc comments (/** ... */
) instead. The quick fix to migrate from @cds.doc to doc comments is still in place, but is likely to be removed in near future.