Search

    Changelog

    July 2021

    Added

    • [cds-dk@4.3.0] cds import now supports OData V4 edmx files.
    • [cds-dk@4.3.0] cds-ts executable starts cds CLI with ts-node to allow JIT compilation of Typescript
    • [cds-dk@4.3.0] cds CLI will give you a best guess if a command cannot be found, e.g. in case of a typing mistake.
    • [cds-dk@4.3.0] cds.import as API alternative to cds import command to convert edmx files to csn [beta]
    • [cds-dk@4.3.0] cds.compile.to.openapi as API alternative to cds compile --to openapi to convert CDS models to OpenAPI definitions
    • [cds-dk@4.2.0] cds add data creates csv files with basic header lines for the entities in the project. --for option allows for selecting individual entities or namespaces.
    • [vscode-cds@4.1.1] This is a quality release focusing on performance for large models. There are new user settings and some have changed their defaults. Best performance is achieved with default settings, except cds.contributions.enablement.odata which should be switched off to speed up compilation, unless feature is needed.

      Additional hints to increase performance:

      • Within SAP Business Application Studio: close CAP Data Models and Services view. Otherwise it will ask for all workspace symbols at every change.
      • Settings: Cds › Contributions › Enablement: Odata: switch off as already mentioned above
      • Settings: Editor › Goto Location: Alternative Definition Command: do not select goToReferences. Otherwise being already on a definition will trigger find references which requires all dirty models to be recompiled.
      • Settings: Workbench › Editor › Limit: Enabled: switch on
      • Settings: Workbench › Editor › Limit: Value: lower the number. If open editors have using dependencies, a change in one editor will lead to a recompile of related editors.
      • Commands Go to References / Find All References will recompile all models that might have changed due to a change in a depending model. If there are index models it often means the complete workspace is being recompiled. Until a further change, reference calculation is reasonably fast.
      • Command Go to Symbol in Workspace will recompile the complete workspace once, then it is reasonable fast.
      • Changing settings in CDS section will currently perform a complete workspace invalidation, i.e. required indexes will lead to recompilations on-demand as described above.
      • Changing certain cds.env settings, for example, folder configurations will invalidate the workspace as well.
    • [cds-compiler@2.4.4] to.edm(x):
      • Warn if an edm:Property has no Type attribute.
      • Warn about using the protected names ‘Edm’, ‘odata’, ‘System’, ‘Transient’ as edm:Schema Namespace values.
      • Allow $edmJson inline annotations in edm:Collection and nested annotations.
    • [cds-compiler@2.4.4] to.hdi/sql/hdbcds: Transform a exists <association> into a exists <subselect>, where the subselect selects from the target of <association> and establishes the same relation as <association> would via the WHERE clause. Infix-filters of <association> are added to the WHERE clause.
    • [cds-compiler@2.4.4] cdsc got a new option --fallback-parser <cdl|csn> that is used if an unknown or no file extension is used.
    • [cds-compiler@2.4.4] to.hdi/sql: Allow association publishing in UNIONs - this was previously forbidden, but this limitation only applies to HANA CDS.
    • [cds-compiler@2.4.4] to.edm(x): Support dynamic expressions as $edmJson inline code
    • [cds@5.3.2] enterprise-messaging: Experimental support to send messages via HTTP (emitPerHTTP: true)
    • [cds@5.3.0] cds serve and cds deploy now also load .ts Typescript files if started with ts-node
    • [cds@5.3.0] Log formatter for Kibana (beta) via cds.env.features.kibana_formatter
    • [cds@5.3.0] First version of the AuditLogService (beta)
      • Supported events: dataAccessLog, dataModificationLog, configChangeLog, and securityLog
      • Usage: const AuditLogService = await cds.connect.to('audit-log'); await AuditLogService.emit/send('<event>', <data>)
      • Out-of-the-box audit logging for modification of personal data and access to sensitive personal data via cds.env.features.audit_personal_data
    • [cds@5.3.0] Support for deep updates with compositions of one in UPDATE(...).with(...)
    • [cds@5.3.0] Support for logical events in composite-messaging
    • [cds@5.3.0] Initial support for generating OData V2 queries
    • [cds@5.3.0] Preserve DraftAdministrativeData_DraftUUID if OData v2 client (indicated by @sap/cds-odata-v2-adapter-proxy)
    • [cds@5.3.0] Use placeholder values for numbers with cds.env.features.parameterized_numbers (alpha)
    • [cds@5.3.0] Support for argument-less SQL functions (for example, current_date)
    • [cds@5.3.0] Performance optimization: Resolve localized texts for $search queries at runtime (alternative to localized views resolution) to avoid the performance overhead of the SQL coalesce function in filter operations. To enable this experimental feature for SAP HANA, you can set the cds.env.features.optimized_search environment variable to true.
    • [cds@5.3.0] Performance optimization: Optimize $search queries using the CONTAINS predicate instead of the LIKE predicate in the WHERE clause of a SELECT statement. To enable this experimental feature for SAP HANA, you can set the cds.env.features.optimized_search environment variable to true.
    • [cds@5.3.0] OData lambda expressions in $filter:
      • Basic support of structured types (cds.env.odata.flavor = x4) on SAP HANA
      • Support of navigation paths on SAP HANA, for example, GET /Books?$filter=author/books/all(d:d/stock gt 10)
    • [cds.java@1.17.0] OData V4 now supports GET, POST, PUT and DELETE requests on primitive and complex collections.
    • [cds.java@1.17.0] OData V4 analytical queries now support filtering grouped data by aggregated values.
    • [cds.java@1.17.0] The values AVG and COUNT are now supported in @Aggregation.default annotations.
    • [cds.java@1.17.0] The @Core.ContentDisposition.Filename annotation is now supported in OData V4 to provide media data as an attachment download.
    • [cds.java@1.17.0] Queries that use group by are now implicitly sorted by all group by elements. Earlier these queries were never implicitly sorted, as they couldn’t be sorted implicitly by keys.
    • [cds.java@1.17.0] Aliases in projections used for remote OData queries are now supported.
    • [cds.java@1.17.0] The IN operator is now supported in remote OData queries. It is transformed into multiple comparisons concatenated by OR.
    • [cds.java@1.17.0] Requests to remote OData services now forward the X-Correlation-Id header, if it is present in the ParameterInfo of the currently active RequestContext.
    • [cds.java@1.17.0] Added initial alpha support for feature toggles.
    • [cds.java@1.17.0] Messaging Services now leverage the outbox by default when emitting events. To disable the usage of the outbox set outbox.enabled: false on the messaging service’s configuration.
    • [cds.java@1.17.0] Enhanced interface EventContext with method keySet() to expose a set with all parameter keys.
    • [cds.java@1.17.0] The TenantProviderService can now also handle SaaS registry service bindings of plan service.
    • [cds.java@1.17.0] CdsLockTimeoutExceptions are now transformed into ServiceExceptions and mapped to error code 409007.
    • [cds.java@1.17.0] As part of the update to Spring Boot 2.5 the archetype now uses spring.sql.init.mode instead of spring.datasource.initialization-mode.
    • [cds.java@1.17.0] The cds-maven-plugin provides the new goal build, which performs the goals cds and generate on the current project together in one execution.
    • [cds.java@1.17.0] The cds-maven-plugin provides the new goal watch, which starts the CAP Java SDK Spring Boot application and watches for changes in the CDS model. When changes are detected, the build goal is executed and the application is restarted.
    • [cds.java@1.17.0] The cds-maven-plugin now enables JavaDoc generation based on comments in the CDS model by default when generating accessor interfaces.
    • [cds.java@1.17.0] The SAP proprietary locale 3Q (en-US-x-saprigi) is now handled correctly.
    • [cds4j@1.21.0] Allow to use path expressions based on $outer references in an EXISTS subquery
    • [cds4j@1.21.0] Support CDS doc comments in code generation
    • [cds4j@1.21.0] Allow to modify CqnContainmentTest (contains, startsWith, endsWith) via Modifier.containment
    • [cds-mtx@2.1.2] Tenant creation and deletion is now called via CDS service TenantPersistenceService that applications can add handlers for:
      @protocol:'rest'
      service TenantPersistenceService {
        type JSON {
            // any json
        }
      
        action createTenant(tenantId: UUID, subscriptionData: JSON) returns String;
        action deleteTenant(tenantId: UUID);
      }
      
    • [cds-mtx@2.1.2] The global meta tenant creation in cds.mtx.in can now be disabled by setting the MTX_DISABLE_META_TENANT_CREATION environment variable
    • [cds-mtx@2.1.2] Allow array as configuration for mandatory scopes for subscription and update
      mtx: {
        security: {
            "subscription-scope": ["myApp.subscription","myApp.superadmin"],
            "deployment-scope": ["myApp.deployment", "myApp.superadmin"]
        }
      }
      
    • [cds-mtx@2.1.2] Internal on- and offboarding API for sidecar usecase: POST /mtx/v1/internal/provisioning/subscribe and POST /mtx/v1/internal/provisioning/unsubscribe with payload { “subscribedTenantId”: , "async": <true/false> }
    • [cds-mtx@2.0.2] Internal on- and offboarding API for sidecar usecase: POST /mtx/v1/internal/provisioning/subscribe and POST /mtx/v1/internal/provisioning/unsubscribe with payload:
      {
      "subscribedTenantId": <tenant id>,
      "async": <true/false>
      }
      
    • [cds-mtx@2.0.1] It’s now possible to provide BTP dependencies in the mtx settings in your .cdsrc.json instead of implementing a custom handler, by setting mtx.dependencies accordingly.
    • [sap/ux-cds-odata-language-server-extension@1.2.3] code completion, diagnostic, and go to definition for string properties CollectionPath and ValueListProperty in @Common.ValueList annotation defined on the service level
    • [sap/ux-cds-odata-language-server-extension@1.2.3] semantic highlighting in OData annotations

    Changed

    • [cds-dk@4.3.1] New version of @sap/eslint-plugin-cds
    • [cds-dk@4.3.0] cds init uses latest Maven Java archetype version 1.16.3 for creating Java projects.
    • [cds-dk@4.3.0] cds init generates dependency entry for hdb instead of @sap/hana-client.
    • [cds-dk@4.3.0] Reworked templates for cds linter.
    • [vscode-cds@4.1.1] consume cds-lsp 5.1.1
    • [vscode-cds@4.1.1] consume cds-compiler 2.4.4
    • [vscode-cds@4.1.1] new performance relevant user settings
      • cds.workspace.debounceFastChanges: skip intermediate compilations when typing - enabled by default
      • cds.workspace.scanDependentModules: skip scanning of node_modules - enabled by default, speeds up start-up time

        Note:

        • When using code completion for global identifiers (see cds.completion.workspaceSymbols.minPrefixLength) this option needs to be enabled.
        • For code completion of import paths in using statements this option needs to be enabled.
        • To include definitions from nodejs dependent modules in workspace symbols this option needs to be enabled.
    • [vscode-cds@4.1.0] consume cds-lsp 5.1.0
    • [vscode-cds@4.1.0] consume cds-compiler 2.3.2
    • [vscode-cds@4.1.0] user settings
      • cds.workspaceValidationMode new default: OpenEditorsOnly
      • cds.workspace.scanCsn new settings with default switch off (before implicitly on)
      • cds.quickfix.importArtifact new setting with default off (before implicitly on)
    • [vscode-cds@4.1.0] command Install CDS Development Kit (@sap/cds-dk) globally will now show a progress dialog as long as it is running
    • [vscode-cds@4.0.4] uses @sap/cds-lsp@5.0.5
    • [vscode-cds@4.0.4] new user option cds.env.fetch to dynamically fetch cds.env when using non-default i18n file/folder names
    • [vscode-cds@4.0.2] uses @sap/cds-lsp@5.0.3
    • [vscode-cds@4.0.2] uses @sap/cds-compiler@2.2.4
    • [cds-compiler@2.4.4] Do not inherit @cds.persistence.skip when @cds.persistence.table is set on entity.
    • [cds-compiler@2.4.4] to.cdl: Opening and closing braces of empty services and contexts are now on the same line.
    • [cds-compiler@2.4.4] Type DecimalFloat is no longer proposed for code-completion.
    • [cds-compiler@2.4.4] Non-string enums without values for their enum elements are warned about.
    • [cds-compiler@2.4.4] OData CSN is no longer sorted by definition names
    • [cds-compiler@2.4.4] to.edm(x): Update OData vocabularies ‘Aggregation’, ‘Analytics’, ‘CodeList’, ‘Common’, ‘Measures’, ‘Session’, ‘UI’
    • [cds@5.3.2] Aligned Node.js and Java auditlog APIs
    • [cds@5.3.2] enterprise-messaging: No topic manipulation for outbound events beginning with a different namespace
    • [cds@5.3.1] Task @sap/cds-runtime/lib/messaging/deploy.js moved to @sap/cds/tasks/enterprise-messaging-deploy.js after module merge
    • [cds@5.3.1] Parse OData lambda expression on collection of scalars with equals operator (i.e., .../any(d:d = "<val>")) to CQN with contains (pegjs-based parser only)
    • [cds@5.3.0] Custom build tasks are no longer restricted to @SAP namespace.
    • [cds@5.3.0] CDS build tasks of type fiori are no longer copying files located in the UI module folder into the deployment staging folder.
    • [cds@5.3.0] Leaner error messages for unsuccessful remote service call
    • [cds@5.3.0] Incoming messages now contain a privileged user
    • [cds@5.3.0] SELECT.where(...) generates CQN with list of values for in operator
    • [cds@5.3.0] Always use flag u during input validation via @assert.format
    • [cds@5.3.0] Intermediate CQN format for lambda expressions with preceding navigation path
    • [cds.java@1.17.0] Solely virtual elements are not considered readonly anymore. By default the CDS Compiler adds @Core.Computed: true to virtual elements, which makes them readonly by default. By adding explicitly to the virtual element, you can now create a virtual element that is not readonly.
    • [cds.java@1.17.0] Interfaces for features contributing SQL DataSources have been refined and moved to public API. It is now possible to either implement a DataSourceDescriptorFactory, which can provide standard JDBC connection information, or for more flexibility a DataSourceFactory, which can directly create DataSource instances.
    • [cds.java@1.17.0] Interface implementations loaded via Java’s ServiceLoader (e.g. ServletAdapterFactory or DataSourceFactory) can now get access to the CdsRuntime directly after construction by implementing the CdsRuntimeAware interface. The CdsRuntime is no longer explicitly passed in methods of these interfaces.
    • [cds.java@1.17.0] Centralized factories required to separate API from implementation into a CoreFactory interface. Application code should use existing static create methods on the respective interfaces (e.g. UserInfo, EventContext, etc.) instead of directly using the CoreFactory instance.
    • [cds.java@1.17.0] Using autowired Messages in a Spring bean outside of a RequestContext now results in an error. Earlier Messages written like this were unnoticeably lost immediately.
    • [cds.java@1.17.0] Queries that don’t use a limit (top/skip) are not implicitly sorted anymore to improve performance of these queries. By default OData V2 or V4 requests always either define an explicit limit by the client or an implicit limit through server-driven paging.
    • [cds.java@1.17.0] The enterprise-messaging feature can now auto-detect multitenancy-capable service bindings through the instancetype reuse. The previously used kind enterprise-messaging-mt has been removed.
    • [cds4j@1.20.0] Improve performance of to-many expands
    • [cds4j@1.20.0] Improve performance of upserts in deep updates
    • [cds-mtx@2.1.2] File system APIs are now asynchronous
    • [cds-mtx@2.1.2] A failed offboarding will now throw a TenantOffboardingError, instead of just logging the error.

    • [cds-sidecar-client@1.1.21] Replace vulnerable ‘Got’ dependency with ‘Axios’.
    • [cds-sidecar-client@1.1.21] To facilitate debugging, display a few start and end characters of certain secrets in DEBUG output (applies to params that are not user-generated, i.e. short-lived and/or comprising many characters).
    • [cds-sidecar-client@1.1.21] On SAP Business Application Studio, disable keyring storage as it is unsupported (switch to plain-text automatically)
    • [cds-sidecar-client@1.1.21] Hide secret data in token-request URL from log output
    • [sap/ux-cds-odata-language-server-extension@1.2.3] updated comprised OData vocabularies to include HTML5 vocabulary server

    Fixed

    • [cds-dk@4.3.0] cds import fix for tag in OData V2 and tag in OData v4
    • [cds-dk@4.3.0] cds import now sets the kind attribute in package.json to the correct odata-v2 value for OData v2 services.
    • [cds-dk@4.3.0] cds import now maps edm.DateTime to cds.DateTime for OData V2.
    • [cds-dk@4.3.0] cds compile --to edmx-v2/edmx-v4 now uses correct file naming when compiling a single CDS service.
    • [cds-dk@4.2.1] cds deploy w/o any file arguments now works again and no longer fails with No cds models found at/in ''.
    • [cds-dk@4.2.0] cds deploy called with multiple sources ignored all but the first one
    • [cds-dk@4.2.0] cdd add mta now sets a buildpack for the server modules (Node.js or Java). This improves deploy performance and avoids issues with buildpack priorities, leading to potentially wrong build packs selected.
    • [cds-dk@4.2.0] On drag and drop of an edmx file, cds watch now imports it in the proper working dir
    • [cds-dk@4.2.0] cds import now moves the edmx file again to srv/external instead of copying it.
    • [vscode-cds@4.0.4] asynchronous scanning of workspace blocked and led to high cpu usage (mostly on Linux/macOS)
    • [cds-compiler@2.4.4] Do not remove parentheses around single literals and references on the right-hand side of an in and not in operator.
    • [cds-compiler@2.4.4] cdsc: Option --direct-backend can now be combined with toCsn’s option --with-localized
    • [cds-compiler@2.4.4] The option testSortCsn was erroneously ignored in some compiler backends.
    • [cds-compiler@2.4.4] for.odata: Propagate the virtual attribute correctly while flattening structures.
    • [cds-compiler@2.4.4] If internal relational types are used directly in CDL (e.g. cds.Association), an error is emitted. In CSN, all artifacts of relational types need a target (/targetAspect) as well.
    • [cds-compiler@2.4.4] In Association to Join translation don’t produce a JOIN node for exposed (transitive) associations in combination with their exposed foreign keys. Also resolve foreign keys correctly against the target entity allowing to expose renamed foreign keys when aliased.
    • [cds-compiler@2.4.4] The option testSortCsn (--test-sort-csn in cdsc) can be used to sort CSN definitions alphabetically. This option is only intended for tests. This will restore the pre-v2.3.0 ordering in EDMX.
    • [cds-compiler@2.4.4] to.sql:
      • for SQL-dialect sqlite, render the string-format-time function (strftime())
        • $at.from with date-format: '%Y-%m-%dT%H:%M:%S.000Z'
        • $at.to with date-format: '%Y-%m-%dT%H:%M:%S.001Z' (+1ms compared to $at.from)
      • for SQL-dialect hana wrap SESSION_CONTEXT('VALID-TO') and SESSION_CONTEXT('VALID-FROM') in TO_TIMESTAMP(..) function
    • [cds-compiler@2.4.4] to.hdbcds:
      • Wrap SESSION_CONTEXT('VALID-TO') and SESSION_CONTEXT('VALID-FROM') in TO_TIMESTAMP(..) function
    • [cds-compiler@2.4.4] Correct auto-exposure in model with unscoped projection on deep scoped entity (from managed aspect compositions: component in component, like they are common in ODM).
    • [cds-compiler@2.4.4] Internal types cds.Association and cds.Composition are no longer proposed for code-completion.
    • [cds-compiler@2.4.4] Fix various issues with Association to Join translation:
      • Substitute $self.alias expressions and respect prefix paths in foreign key accesses.
    • [cds-compiler@2.4.4] to.hdbcds: In naming mode “hdbcds”, correctly resolve $self backlinks with aliased foreign keys.
    • [cds-compiler@2.4.4] to.cdl:
      • Correctly traverse subelements when rendering annotations for them.
      • Quote element names (if required) in annotate with statements.
    • [cds-compiler@2.4.4] for.odata: Fix regression with detecting collision when generating foreign keys.
    • [cds-compiler@2.4.4] to.edmx: Correctly render final base types in EDMX V2 when called with transformed OData CSN for V4.
    • [cds-compiler@2.4.4] Fix regression: also for associations defined in a service, try to implicitly redirect the provided model target.
    • [cds-compiler@2.4.4] to.edmx(x):
      • The reverted change “array of elements are now allowed for OData V2, too.” introduced with v2.2.0 has caused regressions in various scenarios that used OData V4 processed CSN for OData V2 EDMX rendering. Therefore the error has been lowered to a ‘odata-spec-violation-array-of’ warning.
      • The fix ‘Render constraints only if all principal keys are used in association’ introduced with v2.2.2 has caused regressions in mocking scenarios. With option --odata-v2-partial-constr partial constraint generation can be reactivated. A ‘odata-spec-violation-constraints’ warning is raised.
    • [cds-compiler@1.50.8] to.hdi.migration: Don’t generate ALTER for type change from association to composition or vice versa (if the rest stays the same), as the resulting SQL is identical.
    • [cds.java@1.17.0] Fixed a bug causing incorrect deserialization of request payloads with content-type application/json and text/plain for file upload requests on media type properties in OData V4.
    • [cds.java@1.17.0] Fixed a bug causing the OData V2 artificial ID field ID__ of aggregated entities to appear in CQN statements in case it was explicitly selected in $select.
    • [cds.java@1.17.0] Fixed a bug causing multi-segment service paths to be handled incorrectly in OData V2.
    • [cds.java@1.17.0] Expanded elements in remote OData V2 queries are now explicitly listed in $select in addition, if $select is used to reduce the selection set. This is due to the OData V2 behaviour that $select takes precedence over $expand.
    • [cds.java@1.17.0] Fixed a bug causing incorrect authorization configurations in case base paths of different protocol adapter overlapped.
    • [cds.java@1.17.0] Fixed a bug causing HTTP requests to SaaS Registry or Message Brokers to fail with premature close errors.
    • [cds4j@1.21.0] Resolve naming conflict in generated interfaces
    • [cds4j@1.21.0] Fix setting references for forward mapped to-one associations in insert/upsert
    • [cds4j@1.21.0] Fix search for aliased localized elements behind associations
    • [cds4j@1.21.0] Make CqnBoolLiteral immutable
    • [cds4j@1.21.0] Fix exception on to-many expands with parameters in where clause
    • [cds4j@1.21.0] Fix code generation for types with structured elements
    • [cds4j@1.21.0] Fix code generation for compositions of aspects with structured elements
    • [cds4j@1.21.0] Remove unrecognized warning for doc property in simple types
    • Improved error message in case custom server.js doesn’t export a function
    • [cds@5.3.2] Call init() and register custom handlers for every new cds.ApplicationService created in extensibility scenarios
    • [cds@5.3.2] Structured keys for deep operations in OData flavor x4
    • _[cds@5.3.2]_Wrong user in messaging requests coming from webhooks
    • [cds@5.3.2] Improvements in log formatter for Kibana:
      • Remove redundant metadata information
      • Add information from req.headers
      • Treat error-like objects like errors
      • Custom fields (alpha)
    • _[cds@5.3.2]_Minor fix for optimized search on SAP HANA
    • [cds@5.3.1] Kibana formatter: stacktrace as array of strings
    • _[cds@5.3.1]_Bootstrapping for feature toggles
    • _[cds@5.3.1]_Deep operations for certain composition constellations
    • _[cds@5.3.1]_Aliasing on SQL layer for OData ne operator
    • [cds@5.3.1] Fixed scope issues in manual deployment for messaging
    • [cds@5.3.1] Projections with infix filters and cardinality changes are safely ignored during CREATE/UPDATE
    • [cds@5.3.1] Resolving of views if underlying projection has explicit aliases
    • [cds@5.3.0] Deep operations for certain composition constellations
    • [cds@5.3.0] Projecting data works also for projections where one field maps to multiple entries
    • [cds@5.3.0] SELECT queries without user-specified columns only modify draft columns if the entity is draft-enabled.
    • [cds@5.3.0] Generated index.html erroneously showed entries for contained entities from managed compositions.
    • [cds@5.3.0] Use OData simple identifier format for links to entity sets in generated index.html.
    • [cds@5.3.0] cds build logged duplicate compilation errors for the identical .cds file, but with different relative path names.
    • [cds@5.3.0] cds serve no longer tries to redirect SAP Fiori URLs starting with $ to service URLs.
    • [cds@5.3.0] cds build now supports HANA Table data properties files in SaaS applications. These files have not been copied into the sidecar folder.
    • [cds@5.3.0] cds deploy --dry generates DROP/CREATE DDL statements with an order that also H2 can handle, i.e. with dependent views dropped before basic views.
    • [cds@5.3.0] cds build now correctly handles symbolic links for nodejs projects on Windows.
    • [cds@5.3.0] cds build now correctly filters CDS source files when building SaaS applications.
    • [cds@5.3.0] Deploy endpoint for messaging artifacts includes the needed roles
    • [cds@5.3.0] Detection of mocked services and forced resolving of views
    • [cds@5.3.0] POST/PATCH/PUT requests on Composition of many with association as key and custom on conditions
    • [cds@5.3.0] $expand on entities with . in name
    • [cds@5.3.0] Filter on external service when using ne null
    • [cds@5.3.0] Primitive property access of Singletons defined without keys via URL like /Singleton/name
    • [cds@5.3.0] Expand and navigation in draft-enabled entity with composition of aspects
    • [cds@5.3.0] @Core.ContentDisposition.Filename instead of @Core.ContentDisposition
    • [cds@5.3.0] Select query with $count with combination with $search
    • [cds@5.3.0] Parsing of Timestamp, DateTime and Date values in OData request when using beta URL to CQN parser (cds.env.features.odata_new_parser)
    • [cds@5.3.0] Reset temporal session contexts
    • [cds@5.3.0] Caching of runtime aspects
    • [cds@5.3.0] Handling of foreign keys as well as an input validation when using nested associations as keys
    • [cds@5.3.0] Transaction handling in case of multiple changesets
    • [cds@5.3.0] SAP HANA procedure call with output parameter
    • [cds@5.3.0] Skip foreign key propagation if target is annotated with @cds.persistence.skip
    • [cds@5.3.0] Values misidentified as operators in $search
    • [cds@5.3.0] Ensure UTC values are written to database
    • [cds@5.3.0] ETag handling in case of action with $select
    • [cds@5.3.0] Fix draft-related issues in odata2cqn
    • [cds@5.3.0] Where clause in @restrict gets duplicated if $search query option is used
    • [cds@5.2.0] Virtual fields are not filtered out before application service handlers
    • [cds@5.2.0] Clarification: the minimum required Node.js version is 12.18. Versions < 12.18 might not work.
    • [cds@5.2.0] cds build supports validation of extension-allowlist, which is replacing entity-whitelist or service-whitelist with cds-mtx 2.0. Warnings are no longer returned if neither entity-whitelist nor service-whitelist is defined.
    • [cds@5.2.0] cds compile -2 sql/edmx erroneously wrote excessive compiler output to stderr
    • [cds@5.2.0] Resolve the correct enterprise-messaging-shared credentials from VCAP_SERVICES by default
    • [cds@5.2.0] cds compile --to sql now completes the last SQL statement with a proper semicolon
    • [cds-mtx@2.1.2] More error types and semantic HTTP status codes have been added
    • [cds-mtx@2.1.2] Setting MTX_ROLLBACK_CORRUPTED_TENANT to true will now also delete and recreate an HDI container if its bindings are missing
    • [cds-mtx@2.1.2] MTX Bootstrap has been adapted so that application service handlers can access mtx services again
    • [cds-mtx@2.1.2] Logging is now consistently using cds.log
    • [cds-mtx@2.1.2] A caching problem with the metadata persistence factory is fixed
    • [cds-mtx@2.0.2] A failed offboarding will now throw a TenantOffboardingError, instead of just logging the error.
    • [cds-sidecar-client@1.1.21] Fix subdomain determination with CF-CLI v7
    • [cds-sidecar-client@1.1.21] Fix sending username and password for basic auth
    • [cds-sidecar-client@1.1.21] Fix various requests
    • [cds-sidecar-client@1.1.21] Interpret various HTTP responses properly.
    • [cds-sidecar-client@1.1.21] Token is now correctly obtained.
    • [cds-sidecar-client@1.1.21] Include compiled sources in published cds-sidecar-client package.
    • [cds-sidecar-client@1.1.21] Compatibility with CF-CLI v7: automatic determination of running apps and relevant CF space for login
    • [cds-sidecar-client@1.1.21] Error on login with username and password (basic auth)
    • [cds-sidecar-client@1.1.21] Error due to NPM binary not being found on Windows
    • [cds-odata-v2-adapter-proxy@1.7.6] Prevent exception on handling entities without keys

    Removed

    • [cds-compiler@2.4.4] to.hdbcds: Association publishing in subqueries is not supported by HANA CDS - an error is raised during compile time, instead of waiting for a deployment error.

    May 2021

    Added

    • [cds-dk@4.1.0] cds watch --open opens the app in the browser with a given URL (part)
    • [cds-compiler@2.2.0] The compiler now takes the “definition scope” of associations and compositions into account when implicitly redirecting the target and auto-exposing entities.
    • [cds-compiler@2.2.0] OData: The warning enum-value-ref is no longer reclassified to an error. However, references to other enum values are still not supported.
    • [cds@5.1.5] cds build adds engines.node version to package.json if not present, in order to match the minimum required node version of CDS.
    • [cds@5.1.5] Generate an invocation context identifier (cds.context.id) if none can be derived
    • [cds@5.1.0] Custom error handler via srv.on('error', function (err, req) { ... }) (beta)
      • Synchronous modification of passed error only
    • [cds@5.1.0] cds.log.format() for custom log formatting
    • [cds.java@1.16.0] The OData V4 adapter now supports reading stream properties.
    • [cds.java@1.16.0] Uploading streamed content to @Core.MediaType annotated properties is now supported in OData V4.
    • [cds.java@1.16.0] The OData V2 adapter now provides all query parameters in the ParameterInfo interface.
    • [cds.java@1.16.0] CSV files with locale ending are now supported for text tables of localized entities (for example, Books.texts_de.csv) when initializing in-memory databases.
    • [cds.java@1.16.0] H2 databases are now automatically detected as embedded databases, ensuring that CSV files are automatically initialized.
    • [cds.java@1.16.0] The datasource auto-configuration based on service bindings can now be disabled explicitly by using cds.dataSource.autoConfig.enabled: false.
    • [cds.java@1.16.0] Added new property section cds.sql to configure the CQN to SQL transformation provided by CDS4j.
    • [cds.java@1.16.0] Added a new ExtensibilityService, which allows to register on an event triggered when the CDS model is changed. The metadata caches listen to this event and proactively refresh their cache entry.
    • [cds.java@1.16.0] Improved the error handling behaviour of the Deploy main class in case the deployment fails for a single tenant. The command now returns an error in that case.
    • [cds4j@1.20.0] - Deprecate CQL.literal() and add CQL.constant() and CQL.val() for constant and non-constant values
    • [cds4j@1.20.0] Allow using the SQL functions current_date, current_time and current_timestamp
    • [cds4j@1.20.0] Allow to specify max age in meta data access to bypass cache
    • [cds4j@1.20.0] Reflection API: Support type references
    • [cds4j@1.20.0] Add CqnAnalyzer.isCountQuery(cqn) to check if a CQN statement is a count query
    • [cds-runtime@3.1.1] Downport of “Support for reading single draft-enabled entities via service API (srv.read(<entity>, { ..., IsActiveEntity: true/false }))”
    • [cds-runtime@3.1.1] Computed values are preserved during draft activate with cds.env.features.preserve_computed = true
      • Preserving computed values will be the default behavior in @sap/cds^5.4
    • [cds-runtime@3.1.0] Support for declared events with annotations @topic, @source, and @type
    • [cds-runtime@3.1.0] Support for declared events in composite messaging
    • [cds-runtime@3.1.0] Extended managed data (@cds.on.insert, @cds.on.update):
      • Pseudo variable $uuid
      • Pseudo variable $user.<attr>
      • Static values, for example @cds.on.insert: 'foo'
    • [cds-runtime@3.1.0] READ support for associations with custom on condition with form <association>.<backlink> = $self and <association>.<property> = '<value>'
    • [cds-runtime@3.1.0] Support for default values in views with more than one parameter
    • [cds-runtime@3.1.0] Support of input validation for arrayed elements
    • [cds-runtime@3.1.0] QL fluent API orderBy() convenience options orderBy('<column> <order?>'), orderBy('...', ...), orderBy('..., ...'), and orderBy([...])
    • [cds-runtime@3.1.0] Use new, beta URL to CQN parser during read requests when serving to OData via cds.env.features.odata_new_parser
    • [cds-runtime@3.1.0] Beta version of new CQN to URL parser
      • Use during service consumption via cds.env.features.remote_new_parser
    • [cds-runtime@3.1.0] Draft-specific columns are considered in $select if OData validation is skipped
    • [cds-runtime@3.1.0] Support for cardinality in ref
    • [cds-runtime@3.1.0] Support for nested expressions in where conditions
    • [cds-runtime@3.1.0] Invoke custom error handler (beta) in OData and REST adapters if necessary
    • [cds-runtime@3.0.9] Downport of “Private <entity>._dependents made non-enumerable to avoid circular references”
    • [cds-runtime@3.0.7] CSRF-token handling in service consumption via @sap-cloud-sdk/core with cds.env.features.fetch_csrf = true files.
    • [cds-mtx@2.0.1] Internal on- and offboarding API for sidecar use case: POST /mtx/v1/internal/provisioning/subscribe and POST /mtx/v1/internal/provisioning/unsubscribe with payload (beta)
      {
      "subscribedTenantId": <tenant id>,
      "async": <true/false>
      }
      
    • [cds-mtx@2.0.1] It’s now possible to provide SAP BTP dependencies in the mtx settings in your .cdsrc.json instead of implementing a custom handler, by setting mtx.dependencies accordingly.
    • [cds-mtx@2.0.0] SaaS provisioning operations GET, PUT, and DELETE on API /mtx/v1/provisioning/tenant/ now require scope mtcallback. Upgrade calls on API /mtx/v1/model/upgrade/ and /mtx/v1/model/upgradeAsync/ now require scope mtdeployment. This is now aligned with the mandatory scope check required for the java runtime.
      To adapt the scope names to the java runtime scope configuration, the scope names can be changed using the following cds configuration:
      mtx: {
        security: {
            "subscription-scope": "myApp.subscription",
            "deployment-scope": "myApp.deployment"
        }
      }
      
    • [cds-mtx@2.0.0] Support cds build API throwing BuildError instead of CompilationError.
    • [cds-mtx@2.0.0] Undeployment of extensions can now be done using a simplified API: /mtx/v1/model/deactivate with payload containing the extension sources to be removed.
      {
      "extension_files": [
        "db/ext3.cds"
      ],
      "tenant": "<tenant id>"
      }
      
    • [cds-mtx@2.0.0] Support automatic roll-back for corrupted tenants when MTX_ROLLBACK_CORRUPTED_TENANT is set to true. This should never be used in production, but only for integration tests.
    • [cds-mtx@1.2.1] - Size of job queue can now be configured via cds env:
      mtx: {
      jobqueue: {
        size: 10
      }
      

      or parameter CDS_MTX_JOBQUEUE_SIZE=10

    Changed

    • [cds-dk@4.1.0] If cds watch encounters a port that is already in use, it now just runs on an arbitrary port instead of a trying to search the next port available.
    • [cds-dk@4.1.0] cds init uses latest Maven Java archetype version 1.15.3 for creating Java projects.
    • [cds-dk@4.0.7] Bumped versions of @sap/cds, @sap/cds-compiler
    • [cds-dk@4.0.6] Bumped versions of @sap/cds, @sap/cds-runtime, @sap/cds-compiler
    • [cds-dk@4.0.5] Bumped version of @sap/eslint-plugin-cds
    • [cds-dk@4.0.4] cds init uses latest Maven Java archetype version 1.15.0 for creating Java projects.
    • [vscode-cds@4.0.2] uses @sap/cds-lsp@5.0.2
    • [vscode-cds@4.0.2] uses @sap/cds-compiler@2.2.2
    • [vscode-cds@4.0.1] now requires Visual Studio Code >=1.54
    • [vscode-cds@4.0.1] entry Preview as hdbtable replaces Preview as hana in CDS Preview menu
    • [vscode-cds@4.0.1] uses @sap/cds-lsp@5.0.1, which includes fixes for namespace handling
    • [cds-compiler@2.2.4] Remove special handling for implicit redirection to auto-exposed entity; consistently do not overwrite user-specified target in a service anymore, also in this special case.
    • [cds-compiler@2.2.4] Structured/Arrayed types for enums are now an error and not just a warning.
    • [cds-compiler@2.2.4] to.cdl: Keywords in annotation paths are no longer escaped
    • [cds@5.1.5] Better support for UI tools to get metadata for projects with both a Node.js and Java server
    • [cds@5.1.0] Clean up obsolete compiler option snapi.
    • [cds@5.1.0] cds build is no longer validating Node.js custom service handlers that have been registered using service @impl annotation.
    • [cds@5.0.5] Internal errors are no longer decorated with Please report this. People interpreted the text as to only include the stack trace in error reports and to omit other valuable context information.
    • [cds.java@1.16.0] OData V4 PUT requests on properties of non-existing entities now properly return a 404 response, instead of upserting the entity.
    • [cds.java@1.16.0] Messages written during ETag validations on OData actions are now discarded.
    • [cds.java@1.16.0] All requests or changesets are now executed in an OData V2 $batch request, even if one of the requests or changesets fails. This is in accordance with the OData V2 specification and the expectation of SAPUI5.
    • [cds.java@1.16.0] The CloudFoundry platform feature is now enabled in case either VCAP_SERVICES or VCAP_APPLICATION is present. Earlier both environment variables had to be present.
    • [cds.java@1.16.0] The statically available LocalizedMessageProvider has been moved into the CdsRuntime. In Spring Boot this allows to configure custom LocalizedMessageProvider implementations as Spring beans.
    • [cds4j@1.20.0] Improve performance of to-many expands
    • [cds4j@1.20.0] Improve performance of upserts in deep updates
    • [cds4j@1.19.2] Improve performance of upserts in deep updates
    • [cds-runtime@3.1.0] Model-based processing instruction cache attached to service for SaaS extensibility
    • [cds-runtime@3.1.0] Removed compatibility feature flag cds.env.features.skip_expand_assoc
    • [cds-runtime@3.1.0] Input-related details of assertion error added to error message, for example Value 4 is not in specified range [1,3]
    • [cds-runtime@3.1.0] $search query option is parsed into .search instead of like expressions in .where
    • [cds-runtime@3.1.0] Integrity checks are skipped if @sap/cds-compiler’s foreign key generation (beta!) is active
    • [cds-runtime@3.1.0] Private <entity>._dependents made non-enumerable to avoid circular references
    • [cds-runtime@3.1.0] null values for virtual properties added during post processing (previously done during serialization in odata-server)
    • [cds-runtime@3.0.9] Downport of “Private <entity>._dependents made non-enumerable to avoid circular references”
    • [cds-mtx@2.0.0] The global data meta tenant (GLOBAL_DATA_META_TENANT) is now created on the first application startup, instead of the first onboarding
    • [cds-mtx@2.0.0] @sap/hdi-deploy and @sap/instance-manager are now directly required by @sap/cds-mtx. Therefore, they can be left out of your package.json dependencies
    • [cds-mtx@2.0.0] Job IDs are now generated using the uuid package
    • [cds-mtx@2.0.0] The default behavior of the extension-allowlist has changed. If extension-allowlist is not configured, it is not allowed to apply any extension.
      Extensions can be easily enabled for all entities and services by adding the following to the configuration.
      mtx: {
      "extension-allowlist" = [
          {
              "for": ["*"]
          }
      ]
      

    Fixed

    • [cds-dk@4.1.5] An issue with opening URLs on Windows
    • [cds-dk@4.1.5] cds CLI no longer adds cds.compile.to.openapi generically into all commands. This turned out to load cds configuration from wrong folders, introducing subtle side effects. Now, only the cds compile command adds cds.compile.to.openapi. If you use cds.compile.to.openapi in other flows, like at runtime, use cds compile --to openapi instead.
    • [cds-dk@4.1.5] Include @sap/cds 5.1.5
    • [cds-dk@4.1.5] Include @sap/cds-runtime 3.1.1
    • [cds-dk@4.1.5] Include @sap/cds-compiler 2.2.8
    • [cds-dk@4.1.5] Include @sap/eslint-plugin-cds 1.1.4
    • [cds-dk@4.1.4] Include @sap/cds 5.1.4
    • [cds-dk@4.1.4] Include @sap/cds-compiler 2.2.6
    • [cds-dk@4.1.4] Include @sap/eslint-plugin-cds 1.1.3
    • [cds-dk@4.1.3] Include @sap/cds 5.1.3
    • [cds-dk@4.1.2] Include @sap/cds 5.1.2
    • [cds-dk@4.1.1] Include @sap/cds 5.1.1
    • [cds-dk@4.1.0] cds compile --to hdbtable, hdbcds no longer creates duplicate file extensions.
    • [cds-dk@4.0.7] Lookup for eslint during cds add lint
    • [cds-compiler@2.2.8] Fix regression: also for associations defined in a service, try to implicitly redirect the provided model target.
    • [cds-compiler@2.2.6] to.edmx(x):
      • The reverted change “array of elements are now allowed for OData V2, too.” introduced with v2.2.0 has caused regressions in various scenarios that used OData V4 processed CSN for OData V2 EDMX rendering. Therefore, the error has been lowered to a ‘odata-spec-violation-array-of’ warning.
      • The fix ‘Render constraints only if all principal keys are used in association’ introduced with v2.2.2 has caused regressions in mocking scenarios. With option --odata-v2-partial-constr partial constraint generation can be reactivated. A ‘odata-spec-violation-constraints’ warning is raised.
    • [cds-compiler@2.2.6] Usually reserved names like in in references used as annotation values can now really be provided without delimited identifiers (if the name is not true, false, or null).
    • [cds-compiler@2.2.6] Fixed the implicit redirection of associations to scoped targets (like texts entities).
    • [cds-compiler@2.2.6] Fix regression: Allow virtual structured elements.
    • [cds-compiler@2.2.6] to.edm(x):
      • OData V2:
        • Remove warning about scalar return types.
        • Render constraints only if all principal keys are used in association.
      • OData V4: Don’t remove @Capabilities annotations from containee.
      • Allow @Core.MediaType on all types and raise a warning for those (scalar) types that can’t be mapped to Edm.String or Edm.Binary.
    • [cds-compiler@2.2.4] to.cdl: Also handle subelement-annotations by rendering a annotate X with Y.
    • [cds-compiler@2.2.4] to.hdi/sql/hdbcds: Fixed the database name (with naming mode quoted/hdbcds) and the to.hdi file name of scoped definitions (like texts entities) in services.
    • [cds-compiler@2.2.4] Empty enums no longer result in a syntax error.
    • [cds-compiler@2.2.4] Do not omit indirectly annotated or redirected sub elements during propagation of expanded sub elements.
    • [cds-compiler@2.2.4] Also auto-expose composition targets of projected compositions, not just those targets, which were used at the original definition of the composition.
    • [cds-compiler@2.2.4] Improve checks for keys, which are array of or of SAP HANA spatial type (ST_POINT & ST_GEOMETRY) with checking also inside of used user-defined structured type.
    • [cds-compiler@2.2.4] to.edm(x):
      • V2: OnDelete=Cascade was set on dependent instead on principal role.
      • V4: ReferentialConstraints Property and ReferencedProperty for managed composition to one were swapped.
    • [cds-compiler@2.1.6] Do not unjustified complain about $self comparisons.
    • [cds-compiler@2.1.6] Auto-exposed entities are represented as projections in the CSN.
    • [cds-compiler@2.1.6] to.sql/to.hdi:
      • Revert change “Default values are no longer propagated from the principal to the generated foreign key element.” from version 2.1.0
      • Fix regression where localized convenience views for temporal entities used keys in the from clause that did not exist on the texts-entity
      • Mixin associations are properly removed and are not rendered into views anymore
    • [cds-compiler@2.1.6] to.hdi(.migration): Ensure filenames for .hdbindex files stay compatible to V1
    • [cds-compiler@2.1.6] for.odata: An association as a type of action’s parameter or return type now signals an error
    • [cds-compiler@2.1.6] to.edm(x):
      • @Capabilities annotations remain on the containees entity type
      • In containment mode, don’t render foreign keys of the containment constituting ‘up’ association in the containee as primary key refs.
      • Revert change “Default values are no longer propagated from the principal to the generated foreign key element.” from version 2.1.0
      • Allow --odata-proxies and/or --odata-x-service-refs in combination with --odata-format=flat and --version=v4
    • [cds-compiler@1.50.6] to.edm(x):
      • OData V2: Render constraints only if all principal keys are used in association.
      • OData V4: Don’t remove @Capabilities annotations from containee.
      • Allow @Core.MediaType on all types and raise a warning for those (scalar) types that can’t be mapped to Edm.String or Edm.Binary.
    • [cds@5.1.5] Match locales in all upper-case (for example ZH-CN instead of zh-CN)
    • [cds@5.1.5] Key elements got lost in cds.linked when using type refs referring to other key elements
    • [cds@5.1.5] Tree shaking erroneously removed types Foo when only referred to by type refs like bar : Foo:bar
    • [cds@5.1.5] Fixed an error in transaction handling, that lead to database connections not released in rare cases
    • [cds@5.1.5] SQL names option gets properly propagated
    • [cds@5.1.5] No longer erroneously exclude entities explicitly marked with cds.persistence:{table, skip:false}, as in cap/samples/suppliers
    • [cds@5.1.4] - Error when using complex type references, as in:
      entity Foo { bar: Tic:tac.toe; }
      entity Tic { tac: Composition of { toe:String } }
      
    • [cds@5.1.3] cds does not check for the min. required Node.js on SAP Business Application Studio, for now
    • [cds@5.1.2] cds compile --for odata now honors the OData version again
    • [cds@5.1.2] cds compile --for odata now honors the SQL naming mode (sql.names) again
    • [cds@5.1.2] cds serve does not run in an infinite bootstrap loop if cds.server() is called in server.js
    • [cds@5.1.1] cds build is now always adding .hdbview, .hdbtable, .hdbconstraint or .hdbindex plugin mappings to .hdiconfig to avoid that deployment is failing in case such files exist in an already deployed container, but are no longer generated.
    • [cds@5.1.1] cds compile --dest <dir> no longer crashes creating the destination folder
    • [cds@5.1.0] cds build now correctly handles message.properties files used for Nodejs runtime messages if these files have been defined in an i18n content folder located at project root.
    • [cds@5.1.0] Nodejs custom handlers are now correctly resolved if a dedicated destination folder has been configured for the build task.
    • [cds@5.1.0] Now, the .csv file reader correctly closes open file descriptors to avoid memory leaks during cds build.
    • [cds@5.0.7] Internal test stabilizations
    • [cds@5.0.6] cds build no longer fails with TypeError: x.startsWith is not a function in some situations
    • [cds@5.0.5] cds build now correctly creates the deployment layout for multitenant applications (sdc folder contents) that have dedicated folder paths configured for db, srv, and app modules.
    • [cds@5.0.5] cds deploy --to sqlite now ignores a _texts.csv file again if there is a language-specific file like _texts_en.csv present
    • [cds@5.0.5] cds env no longer fails to parse .env files with JSON values containing = characters
    • [cds@4.6.6] Now, the .csv file reader correctly closes open file descriptors to avoid memory leaks during cds build.
    • [cds@4.6.6] Fixed i18n handling causing cds build to fail with error message bundle is not iterable.
    • [cds@4.6.6] Node.js custom handlers are now correctly resolved if a dedicated destination folder has been configured for the build task.
    • [cds.java@1.16.0] Fixed a bug that caused issues when using the PersistenceService Spring bean during application startup, for example in a @PostConstruct initialization method.
    • [cds.java@1.16.0] Fixed a bug that caused issues when using associations as keys in draft-enabled entities.
    • [cds.java@1.16.0] Fixed a bug causing incorrect values for the OData-Version header in a parent $batch response.
    • [cds.java@1.16.0] Fixed a bug causing incorporation of an empty JWT into the authorization header of a rest call to mtx-sidecar
    • [cds.java@1.16.0] Fixed a bug concerning missing fields in the payload of subscribe and unsubscribe endpoints
    • [cds.java@1.15.4] Adopted fixes of cds4j 1.9.3
    • [cds.java@1.15.3] Fixed a bug that caused a CdsDataStoreException when trying to create a draft via a path A(<id>)/B(<id>)/C where entity A has an association B to a draft-enabled entity, which in turn has a composition C.
    • [cds.java@1.15.3] Fixed a bug that caused a CQNValidationException when defining associations as keys in draft-enabled entities
    • [cds.java@1.15.3] Fixed a bug causing a SQLException due to invalid SQL generated for aggregating OData v2 requests when properties were neither values nor dimensions.
    • [cds.java@1.15.3] Adopted fixes of cds4j 1.9.2
    • [cds.java@1.15.2] Fixed a bug that caused $metadata requests with Accept-Language header or sap-language query parameter to fail, in case the mtx-sidecar was used.
    • [cds.java@1.15.1] Fixed a bug that caused modifying statements to fail on draft-enabled entities on the Persistence Service, in case the data included values for draft elements such as IsActiveEntity, HasActiveEntity, or HasDraftEntity.
    • [cds.java@1.15.1] Fixed a bug that caused literal 0 or 1 in OData V2 filter expressions to be handled as String instead of Integer.
    • [cds.java@1.15.1] Fixed a bug that caused invalid SQL statements for OData V2 queries, when the result was ordered by an aggregated measure.
    • [cds4j@1.20.0] Fix upserts with uppercase UUID keys
    • [cds4j@1.19.2] Support update via association with custom mapping
    • [cds4j@1.19.2] Remove json-path (CVE-2021-27568)
    • [cds4j@1.19.2] Use LIKE instead of CONTAINS when searching over views with calculated fields
    • [cds4j@1.19.1] Fix exception during interface generation for inner definitions without namespace
    • [cds-runtime@3.1.2] Downport of “Escape CDL keywords when used in URL path”
    • [cds-runtime@3.1.1] Downport of “Attempt to calculate time delta with unresolved target crashes server”
    • [cds-runtime@3.1.0] Ambiguous columns in having clause
    • [cds-runtime@3.1.0] The generic read handler for drafts now correctly returns an object if the key of the entity is provided, before it was an array
    • [cds-runtime@3.1.0] Improved handling of unique constraint violation error during create and update
    • [cds-runtime@3.1.0] Better error logs for integrity checks
    • [cds-runtime@3.1.0] Leading and trailing whitespaces are allowed in OData expressions
    • [cds-runtime@3.1.0] Release database client if begin fails
    • [cds-runtime@3.1.0] auto-expand of generated foreign keys in OData x4 flavor (cds.env.odata.flavor = x4) when actions return entities
    • [cds-runtime@3.1.0] Consider not null annotations on inline structured types in OData x4 flavor (cds.env.odata.flavor = x4)
    • [cds-runtime@3.1.0] Temporal data in OData batch requests
    • [cds-runtime@3.1.0] Deep update/delete with static on conditions by composition to many
    • [cds-runtime@3.1.0] Draft: Alias of entity projection is incorrectly considered as key.
    • [cds-runtime@3.1.0] Support of arbitrary requests in service consumption if no external service model is provided
    • [cds-runtime@3.1.0] Use unfolded model if transaction was initiated in messaging
    • [cds-runtime@3.1.0] Infinite loop in restriction processing when user attribute is null
    • [cds-runtime@3.0.9] Downport of “Use unfolded model if transaction was initiated in messaging”
    • [cds-runtime@3.0.8] Timeout issues in enterprise-messaging-shared in reconnect
    • [cds-runtime@3.0.8] Queries with a simultaneous use of $expand and $orderby, when the latter is using functions
    • [cds-runtime@3.0.8] Preserve non-error messages to client during failing draft activation
    • [cds-runtime@3.0.7] Timeout issues in enterprise-messaging-shared
    • [cds-runtime@3.0.6] Allow to return primitive properties instead of entities in REST adapter
    • [cds-runtime@3.0.6] Normalize time data on SQLite to support data type TIMESTAMP_TEXT files.
    • [cds-mtx@2.0.0] No more duplicate log entries in model upgrade result.
    • [cds-mtx@2.0.0] Scope check for extension undeployment (ExtendCDSDelete) is enabled again
    • [cds-mtx@1.2.1] - Undeployment for model upgrade via advancedOptions working again files.
    • [cds-mtx@1.2.1] - Undeployment of base model artifacts via ‘undeploy.json’ is working again files.
    • [cds-mtx@1.2.1] - Unallowed @cds.persistence.journal annotations in extensions are now checked
    • [cds-sidecar-client@1.1.16] Bug where keytar module path was not correctly determined
    • [cds-sidecar-client@1.1.15] Compatibility with CF-CLI v7
    • [cds-odata-v2-adapter-proxy@1.6.2] Merge headers and body of POST and PUT media entity upload calls
    • [cds-odata-v2-adapter-proxy@1.6.2] Handle error case in PUT media entity upload call
    • [cds-odata-v2-adapter-proxy@1.6.1] Handle authorization header correctly in media upload

    Removed

    • [cds-compiler@2.2.4] Consistently reject references to auto-exposed entities except for annotate (it might have worked before, depending on the sequence of definitions); expose an entity manually if you want to refer to it.
    • [cds-compiler@2.2.4] to.edm(x): Revert change “array of elements are now allowed for OData V2, too” made in cds-compiler@2.1.0. Array of elements are not allowed for OData V2. Supporting this was an error, because this is forbidden by the OData V2 specification.

    March 2021

    Added

    • [cds-dk@4.0.0] cds watch is now a live reload server, allowing for automatic page refreshes in browsers whenever a file has changed.
    • [vscode-cds@4.0.0] semantic highlighting - to be enabled via user setting cds.semanticHighlighting.enabled
    • [vscode-cds@4.0.0] new API for annotation handler to support semantic highlighting
    • [vscode-cds@3.4.0] preliminary support for cds-compiler 2.x
    • [cds-compiler@2.1.0] Inferred sub elements of a referred structure type can be individually annotated.
    • [cds-compiler@2.1.0] All primitive types except for binary are now allowed as enum value types.
    • [cds-compiler@2.1.0] Allow users to define A.B even if there is a definition A, which is not a context or service.
    • [cds-compiler@2.1.0] You can now provide almost all annotation assignments without delimited identifiers: the use of ., @, and # is fine for annotation names, property names of structures, and in references used as annotation values.
    • [cds-compiler@2.1.0] for.odata:
      • All the artifacts that have localized fields get a $localized: true property.
      • Allow the user to define draft actions for annotation purposes
        • draftPrepare(SideEffectsQualifier: String) returns <ET>,
        • draftActivate() returns <ET>,
        • draftEdit(PreserveChanges: Boolean) returns <ET>
    • [cds-compiler@2.1.0] to.edm(x):
      • Warn about nonapplicable annotations.
      • Render property default values (only OData V4).
      • Option odataProxies exposes association targets outside of the current service. These EntityTypes do only expose their primary keys have no accompanying EntitySet. The added navigation targets are exposed under their namespace or if not available under namespace root. odataProxies is only available with --format=structured.
      • Option odataXServiceRefs renders an edm:Reference to the service for those navigation targets that are defined in another service. odataXServiceRefs is only available with --format=structured.
      • Duplicate EntityContainer entries with same name will raise an error.
      • array of elements are now allowed for OData V2, too.
        Addendum this change is reverted in cds-compiler@2.2.4, as it violates the OData v2 specification.
    • [cds-compiler@2.1.0] to.sql/hdi/hdbcds: Explicitly render the implicit alias for functions without arguments, e.g. current_date.
    • [cds-compiler@2.1.0] to.sql:
      • Sort the SQL statements according to the deployment order.
      • New sql dialect plain, which now is the default. synchronously.
    • [cds-compiler@2.1.0] API:
      • compileSync() is now compatible to compile(): the function can also receive a file cache and will resolve all usings
      • New API functions parse.cql (prefer it to deprecated parseToCqn) and parse.expr (prefer it to deprecated parseToExpr)
      • function getArtifactCdsPersistenceName now accepts a CSN as a third parameter (used to be a namespace). With a CSN provided, the name can be correctly constructed for naming modes quoted and hdbcds. Without a CSN, the name is possibly wrong if it contains dots. If the CSN is not provided or the third parameter is not a CSN, the old, deprecated, implementation is used.
    • [cds-compiler@2.1.0] cdsc and other client tools:
      • Added --with-localized to the command toCsn, which adds convenience views for localized entities to the output.
      • A script bin/cds_update_identifiers.js was added. You can use it to update the delimited identifier style in your CDS sources.
      • A script bin/cdscv2m.js was added. It’s command ria adds @cds.redirection.target: false annotate statements for all ambiguous redirection errors.
    • [cds-compiler@2.1.0] Added deprecated options; setting any of them disables all beta options.
    • [cds@5.0.2] Ensure correlation ID and set intermediate cds.context in default server.js
    • [cds@5.0.1] cds.load.properties and cds.parse.properties to load and parse content in .properties format
    • [cds@5.0.1] cds.load.csv and cds.parse.csv to load and parse csv content
    • [cds@5.0.1] CDL, CQL, and CXL as new global methods for tagged template strings generating CSN, CQN, or CXN objects
    • [cds@5.0.1] Fluent API classes provided through cds.ql also support tagged template strings now in these methods: SELECT, SELECT.from, SELECT.where, UPDATE, UPDATE.with, UPDATE.where, INSERT.into, DELETE.from, DELETE.where Example:
      let Authors = SELECT `ID` .from `Authors` .where `name like ${'%Brontë%'}`
      let Books = SELECT `ID,title` .from `Books` .where `author_ID in ${Authors}`
      await
      
    • [cds@5.0.0] MTX APIs are now automatically served when cds.requires.multitenancy exists. This renders an application-level server start script for multitenancy unnecessary.
    • [cds@5.0.0] Auto-connect to a live reload server started by cds watch.
    • [cds@5.0.0] cds.parse now offers tagged template strings. For example, const {CDL,CQL,CXL} = cds.parse; CQLSELECT from Books where stock > 111.
    • [cds@5.0.0] cds.log now supports config options for Loggers and log levels via cds.env.log.
    • [cds@5.0.0] cds.entity.draft as a stable way to read from draft data
    • [cds@5.0.0] cds.linked now correctly links, events, action params and results, which were not linked before
    • [cds@5.0.0] cds.env.features.skip_unused = 'all' removes all definitions from CSN, which are not reachable by defined services. Especially, when using comprehensive reuse models, like One Domain Model, this significantly reduces both, memory consumption as well as excess tables and views in databases.
    • [cds.java@1.15.0] The method throwIfError() has been added to the Messages interface. You can use this method to throw a ServiceException based on the error messages collected in the Messages container. With this API, you can avoid duplicating errors or to define a general top-level error message.
    • [cds.java@1.15.0] OData V2 and V4 adapters now support entity names that contain a dot in their CDS definition, for example Books.texts.
    • [cds.java@1.15.0] Direct modifications on primitive properties using PUT or DELETE are now supported in OData V4, for example PUT /Books(4711)/title.
    • [cds.java@1.15.0] CQN Select queries on remote OData services now support excluding.
    • [cds.java@1.15.0] Simple projections reducing the select list (without aliases) can now be used with queries on remote OData services.
    • [cds.java@1.15.0] The TenantProviderService is now capable of retrieving subscribed tenants from the SaaS registry, if a corresponding service binding is available. If not, it still falls back to retrieving subscribed tenants from the service manager.
    • [cds.java@1.15.0] Added sending of event messages to multitenant-aware SAP Event Mesh services.
    • [cds4j@1.19.0] Reflection API:
      • Support aspects with compositions of aspects
      • Support dots in events, aspects, structured types, actions, and functions
    • [cds4j@1.19.0] Generator:
      • Support dots in entity names, events, structured types, aspects, actions, and functions
      • Support composition of aspects
    • [cds-runtime@3.0.3] Support for application/*+json when parsing events through webhooks
    • [cds-runtime@3.0.2] Support for {xpr:...} as argument of a function in SQL Builder
    • [cds-runtime@3.0.2] Aliased parameters of a function call using an OData inline parameter syntax are provided as a request payload in req.data.
    • [cds-runtime@3.0.2] Skip conversion to UTC on SAP HANA during insert via .rows(), .values(), or .as() with cds.env.features.preserve_timestamps = true.
    • [cds-runtime@3.0.2] Beta version of new URL to CQN parser
      • Use during read requests when serving to REST via cds.env.features.rest_new_parser
      • Known limitations:
        • Falsy key path segments in navigations, for example, GET /Books/0/author
        • ne operator in $filter does not match NULL
        • Nested functions, for example, contains(toupper(...))
        • $select not filtered for duplicates, for example, $select=ID,* -> columns: ['ID', 'ID', ...]
      • Not supported when serving to REST:
        • Deep navigations, for example, GET /Books/1/author/books
        • /$count
        • $apply
    • [cds-runtime@3.0.1] PUT primitive properties via OData
    • [cds-runtime@3.0.1] Optimistic concurrency control for primitive properties
    • [cds-runtime@3.0.1] Data for virtual properties filtered out on write to draft tables
    • [cds-runtime@3.0.1] Annotation @odata.draft.enclosed
    • [cds-runtime@3.0.0] SAP Event Mesh: Webhook support
    • [cds-runtime@3.0.0] SAP Event Mesh: Webhook support in multitenancy
    • [cds-runtime@3.0.0] Messaging: Remove obsolete topics on queue creation
    • [cds-runtime@3.0.0] Additional convenience look-ups of messages.properties files next to models
    • [cds-runtime@3.0.0] Support for the @cds.search annotation to allow a different set of searchable elements in the $search OData query option and to extend the search to associated entities (currently not supported)
    • [cds-runtime@3.0.0] Additional credentials look-up with label service-manager in SAP HANA pool
    • [cds-runtime@3.0.0] Support for new “Locked by Another User” request of draft choreography
    • [cds-runtime@2.9.8] Database pool teardown in case of failed db connection attempt
    • [cds-runtime@2.9.6] Pass tcpKeepAliveIdle to hdb (available with hdb^18) via environment variable HDB_TCP_KEEP_ALIVE_IDLE
    • [cds-runtime@2.9.6] Database pool teardown in case of credentials become invalid scenario extended by unreachable database
    • [cds-mtx@2.0.0] No more duplicate log entries in model upgrade result.
    • [cds-mtx@1.2.0] Multitenant applications now support extensions of entities using schema evolution based on .hdbmigrationtable files.
    • [cds-mtx@1.2.0] It is now possible to specify limits for the number of extension fields per entity. If no limit is specified, the number of extension fields is not limited.
      If this list exists, only entities and services contained in this list can be extended.
      "mtx" : {
      "extension-allowlist": [
        {
            'for': ['my.bookshop.Authors', 'my.bookshop.Books'],
            'new-fields': 2
        },
        {
            'for': ['CatalogService']
        }
      ]
      }
      
    • [cds-sidecar-client@1.1.14] Compatibility with CDS Compiler v2.
    • [cds-odata-annotations@1.1.7] Go To References /Peek References / Show All References for the aggregated properties defined with the @Analytics.AggregatedProperties annotation. You can now navigate to the place where the aggregated property is referenced.
    • [cds-odata-annotations@1.1.5] Code completion, diagnostics, and quick info for applying selected client-side OData functions:
      • odata.concat
      • odata.fillUriTemplate
      • odata.uriEncode
    • [cds-odata-annotations@1.1.5] Peek References/ Go To References for annotations referenced in other annotations. You can now see if and where the annotation is referenced. Limitation: references in propagated annotations might be not included.

    Changed

    • [cds-dk@4.0.3] cds compile --to xsuaa, edmx-v2, and edmx-v4 have moved from @sap/cds to @sap/cds-dk.
    • [cds-dk@4.0.2] cds init uses latest Maven Java archetype version 1.14.3 for creating Java projects.
    • [cds-dk@4.0.2] npm-shrinkwrap.json format version 2 is now used, produced by npm 7
    • [cds-dk@4.0.2] npm-shrinkwrap.json now contains integrity hashes
    • [cds-dk@4.0.0] cds init uses latest Maven Java archetype version 1.14.0 for creating Java projects.
    • [cds-dk@4.0.0] cds watch has dropped its fallback support for nodemon through the CDS_USE_NODEMON configuration.
    • [cds-dk@4.0.0] cds add hana now sets hdbtable as deployment format for SAP HANA
    • [cds-dk@3.5.1] Bump version of @sap/cds to 4.6.5
    • [vscode-cds@4.0.0] consume cds-compiler 2.1.4
    • [vscode-cds@3.4.0] now requires Visual Studio Code >=1.53
    • [vscode-cds@3.4.0] uses @sap/cds-lsp@4.4.1
    • [vscode-cds@3.4.0] uses @sap/cds-compiler@1.50.0
    • [cds-compiler@2.1.0] CSN representation:
      • CSN Version is set to 2.0
      • CSN definitions are not sorted anymore
      • $syntax is non-enumerable
      • increase the use of JS numbers in the CSN for numbers in CDL, especially noticeable in annotation values
      • Annotation definitions are to be found in the top-level property vocabularies.
      • Introduce kind: 'aspect' to replace kind: 'type', $syntax: 'aspect' and kind: 'entity', abstract: true (the deprecated variants are still accepted as input).
      • Projections are rendered via projection instead of query.SELECT.
      • Parentheses are represented structurally and unnecessary parentheses are omitted.
      • Use . instead of _ for the name suffix of generated texts entities and the calculated entity for managed compositions.
      • The CSN returned by compile() does not include localized convenience views anymore.
    • [cds-compiler@2.1.0] Core engine (function compile):
      • An assignment @Foo.Bar is always @Foo.Bar, we do not try to search anymore for a local definition of Foo probably having a different full name.
      • Localized convenience views are no longer generated by the core compiler but added by the for.odata and to.sql/hdi/hdbcds processing on demand.
      • Minimize name clashes when calculating names for autoexposed entities, extends the v1 option dependentAutoexposed to sub artifacts of entities (see “Added”).
      • Ambiguities when redirecting associations now always lead to compile errors; you might want to use the new annotation @cds.redirection.target to solve them.
      • The association up_ in the calculated entity for managed compositions is now managed.
        Limitation: Nested managed compositions are not activatable via to.hdbcds --names=hdbcds.
      • Bound actions and functions are no longer propagated from the main query source to the resulting view or projection.
      • Remove annotation @cds.autoexpose from generated .texts entity
      • Require order by references to start with a table alias when referring to source elements.
      • Infer the type of a select item from the type of a top-level cast.
    • [cds-compiler@2.1.0] Localized convenience views now also contain masked elements of the original artifact.
    • [cds-compiler@2.1.0] for.odata:
      • Even with --format: structured, (flat) foreign keys for managed associations are generated.
      • An entity or an aspect defined outside the current service cannot be used as action parameter or return types.
      • Structured elements are expanded in-place.
      • Foreign keys for managed associations are created in-place.
    • [cds-compiler@2.1.0] to.edm(x):
      • An Edm.TypeDefinition is rendered for a derived scalar type and used as type reference instead of rendering the final scalar type, including the array of/many predicates.
      • enum type definition as service member is rendered as edm:TypeDefinition instead of edm:EnumType.
      • Set default source cardinality of compositions to exact one. This is observable in V2 EDM only.
      • Key must not be nullable=true, this includes all sub elements of used structured types.
      • Default values are no longer propagated from the principal to the generated foreign key element.
      • array of array is rejected, nested Collections Collection(Collection(...)) are illegal.
      • Temporal rendering:
        • @cds.valid.from is not Edm.KeyRef anymore.
        • @cds.valid.key is rendered as @Core.AlternateKeys.
      • Downgrade message “<Term> is not applied” from warning to info.
      • Update Vocabularies ‘Aggregation’, ‘Capabilities’, ‘Core’, ‘Validation’.
    • [cds-compiler@2.1.0] to.sql/to.hdi/to.hdbcds:
      • Reject using associations or compositions in query elements starting with $self or $projection.
      • Virtual elements are not rendered.
      • Structured elements are expanded in-place.
      • Foreign keys for managed associations are created in-place.
      • Implicit/CDL-style casts are not rendered as SQL CASTs.
      • All association usages in queries are always translated into JOIN expressions (except for to.hdbcds --names=hdbcds).
    • [cds-compiler@2.1.0] to.sql/to.hdi:
      • Downgrade message to-many-no-on from error to warning.
      • Default values are no longer propagated from the principal to the generated foreign key element.
    • [cds-compiler@2.1.0] to.sql:
      • Changed type mappings for --dialect=sqlite:
        • cds.Date –› DATE_TEXT
        • cds.Time –› TIME_TEXT
        • cds.Timestamp –› TIMESTAMP_TEXT
        • cds.DateTime –› TIMESTAMP_TEXT
        • cds.Binary –› BINARY_BLOB
        • cds.hana.Binary –› BINARY_BLOB
      • Don’t check missing type facets.
    • [cds-compiler@2.1.0] to.hdbcds:
      • References to derived, primitive types are replaced by their final type. The derived type definitions are not rendered anymore for hdbcds naming mode.
      • Don’t check missing type facets in views.
    • [cds-compiler@2.1.0] to.cdl:
      • Render maximum cardinality as ‘to one’ or ‘to many’.
      • Return at most two files. The first one (named model.cds) contains all definitions, rendered in order, without namespaces or using. Contexts and services are NOT nested. The second file (named <namespace>.cds) represents the CSN namespace property, simply defining such a namespace and requiring the first file.
    • [cds-compiler@2.1.0] API changes:
      • The API functions compile() and compileSync() return a CSN and not an XSN, compactModel() returns the first argument.
      • If options does not provide a messages property, all messages are printed to standard error.
      • The options.messages is kept throughout the compiler and contains all messages from the compiler and all backends.
      • Messages are not sorted anymore; use the API function sortMessages to have it sorted.
    • [cds@5.0.1] Minimum required Node.js version is now 12. Support for Node.js v10 is dropped.
    • [cds@5.0.0] Upgraded major version of dependency @sap/cds-compiler
    • [cds@5.0.0] cds.requires.db.multiTenant is deprecated. Multitenancy can now be enabled by adding a cds.requires.multitenancy configuration.
    • [cds@5.0.0] cds deploy --to hana no longer adds a driver for SAP HANA to package.json. This can be done with cds add hana.
    • [cds@5.0.0] cds deploy --to hana no longer adds configuration for SAP HANA to package.json. This can be done with cds add hana.
    • [cds@5.0.0] cds deploy --to hana drops support for the classic CAP Java runtime, that means, longer writes credentials for SAP HANA to connection.properties.
    • [cds@5.0.0] Fiori preview now loads and shows data initially in its list page
    • [cds@5.0.0] i18n template strings now are replaced in EDMX documents such that they retain their surrounding string. For example, the "{i18n>key1} - {i18n>key2}" template results in "value1 - value2", while previously the first match replaced the entire string, leading to "value1". This is helpful for the Template strings of UI.ConnectedFields.
    • [cds@5.0.0] CDS drops compiler v2 support for classic CAP Java runtime projects. cds build returns an error if compiler version 2 is used. For further details regarding migration to CAP Java SDK runtime, see https://cap.cloud.sap/docs/java/migration.
    • [cds@5.0.0] req.timestamp is a Date object now; was a UNIX epoch integer before, i.e., Date.now()
    • [cds.java@1.15.0] Added the new interface CqnService, which will gradually replace CdsService. The benefits of the new interface will be that it avoids name clashes with CdsService from the Reflection API and captures the intent of the interface better. In a future release CdsService might be deprecated. To avoid warnings in your code, consider renaming usages of CdsService to CqnService.
    • [cds.java@1.15.0] When switching to the privileged user in a new Request Context using privilegedUser(), the current tenant context is automatically propagated to the privileged user.
    • [cds.java@1.15.0] Unknown topic events are no longer auto-completed in Messaging Services.
    • [cds.java@1.15.0] The goals clean and generate of the cds-maven-plugin adopting the naming convention for properties and add prefix cds.<goalname> to all their properties.
    • [cds.java@1.15.0] The cds-services-archetype doesn’t set a Node.js version in pom.xml anymore, which means that the default version provided by the cds-maven-plugin is used. If required it is still possible to set the Node.js version property in a project.
    • [cds-runtime@3.0.2] Minimum required Node.js version is now 12. Support for Node.js v10 is dropped.
    • [cds-runtime@3.0.2] Draft handlers registered via cds.ApplicationService.registerFioriHandlers(), which gets called in cds.ApplicationService.init()
    • [cds-runtime@3.0.2] OData validation is skipped by default. It can be explicitly turned on by setting cds.odata.skipValidation config to false
    • [cds-runtime@3.0.1] Grants of @restrict in draft are derived from the CRUD vocabulary
    • [cds-runtime@3.0.1] Unnecessary @restrict checks for actions on drafts are skipped (“in process by user” check remains)
    • [cds-runtime@3.0.1] Drafts are deleted after the active version was created/ updated
    • [cds-runtime@3.0.1] Skip “with parameters” clause if no order by clause or all columns in the order by clause are not strings
    • [cds-runtime@3.0.0] By default, only elements typed as string are searchable via the $search OData query option to improve performance
    • [cds-runtime@3.0.0] Deprecate @Search.defaultSearchElement annotation in favor of the @cds.search annotation
    • [cds-runtime@3.0.0] Ignore not null annotation on nested structured types in OData x4 flavor (cds.env.odata.flavor = x4) if its parent structure is optional
    • [cds-runtime@3.0.0] Smart quoting based on database-specific keywords exported by @sap/cds-compiler
      • Deactivate during two-month grace period via compatible feature flag cds.env.features.compiler_keywords = false
    • [cds-odata-annotations@1.1.7] Vocabulary description and long description for restricted String values are now displayed in Quick Info window of the completion lists.

    Fixed

    • [cds-dk@4.0.3] cds init now works if started in file paths with spaces
    • [cds-dk@4.0.2] Allow blanks in cds-dk installation path when running cds init.
    • [cds-dk@4.0.1] Many things in linter
    • [cds-dk@4.0.0] cds watch no longer runs in an endless restart loop if started in the user’s home dir.
    • [cds-compiler@2.1.4] The postinstall step now never fails with an exit code != 0. As the postinstall step is optional, it should not break any npm install steps.
    • [cds-compiler@2.1.2] ensure postinstall script is part of the shipped package.json
    • [cds-compiler@2.1.0] Core engine (function compile):
      • Managed compositions in sub elements are now properly redirected, even if the sub structure comes from a referred type.
      • Do not dump with sub queries in the on condition of joins.
      • Properly report that managed aspect composition inside types and as sub elements are not supported yet.
      • Make sure that including elements with managed aspect compositions only use the provided target aspect, but not the generated target entity.
      • Properly handle the extra keywords in the third argument of the SAP HANA SQL function round.
    • [cds-compiler@2.1.0] to.edm(x):
      • Return all warnings to the user.
      • Don’t render references and annotations for unexposed associations.
      • Rendering of @Validation.AllowedValue for elements of type enum annotated with @assert.range:
        • Add @Core.Description, if the enum symbol has a @Core.Description, @description or document comments.
      • Primary key aliases are now the path base names, colliding aliases are numbered.
      • Fix a bug in constraint calculation if principal has no primary keys.
      • Illegal OData identifiers, which are not exposed in the generated edmx schema are not causing errors anymore.
      • Improve non-enum value handling on term definitions based on an enum type by raising a warning and rendering the value with appropriate scalar EDM type.
      • Render annotation qualifier in JSON format.
    • [cds-compiler@2.1.0] to.sql/hdi/hdbcds:
      • Reject structured view parameters for SAP HANA.
      • Types are not rendered anymore for SAP HANA in quoted mode.
      • Structured elements in subqueries are now properly expanded.
      • Actions, functions, annotations, and events do not have database specific checks run on them, as they will not be part of the resulting artifacts anyways
      • With --names=quoted or hdbcds, some . in artifact names are turned into _. In general, this happens when part of the name prefix is “shadowed” by a non-context/service; any . after that point is turned into _. This change also affects the filenames and the @cds.persistence.name annotation in the CSN returned by to.hdi.migration and for.odata.
    • [cds-compiler@2.1.0] to.sql/hdi:
      • Fixed a bug, which led to an exception if elements were referenced as types.
      • For the SQLite dialect, date, time, and timestamp are rendered as simple string literals instead of function calls.
      • For naming mode “plain”, date, time, and timestamps are rendered as SQL-compliant literals.
    • [cds-compiler@2.1.0] to.sql/hdbcds: Fix issue, which led to wrong ON conditions for naming mode hdbcds.
    • [cds-compiler@2.1.0] to.sql:
      • SRID of SAP HANA spatial type (ST_POINT & ST_GEOMETRY) is not rendered as the length of CHAR for SQL-dialects other than hana. The resulting CHAR has a default length of 2,000.
    • [cds-compiler@2.1.0] to.hdbcds:
      • Nullability constraints on view parameters are not rendered anymore.
      • CDS and SAP HANA CDS types inside cast expressions are mapped to their SQL-counterparts, as the CDS types can’t be used in a cast.
    • [cds-compiler@2.1.0] to.cdl: Correctly render event typed as projection.
    • [cds-compiler@2.1.0] to.hdi.migration: Don’t generate ALTER for type change from association to composition or vice versa (if the rest stays the same), as the resulting SQL is identical.
    • [cds-compiler@1.50.4] to.hdbcds: CDS and SAP HANA CDS types inside cast expressions are mapped to their SQL-counterparts, as the CDS types can’t be used in a cast.
    • [cds-compiler@1.50.2] Correct calculation of dependent autoexposed entity name (fixing a potential regression with v1.50.0)
    • [cds-compiler@1.50.2] to.hdi.migration: Correctly handle “temporal” and other cases when rendering expressions
    • [cds-compiler@1.50.2] to.edm(x):
      • Improve non-enum value handling on Oasis enum term definitions by raising a warning and rendering the value with appropriate scalar EDM type.
      • Render annotation qualifier in JSON format.
    • [cds-compiler@1.50.2] Update OData vocabularies ‘Aggregation’, ‘Analytics’, ‘Capabilities’, ‘CodeList’, ‘Common’, ‘Communication’, ‘Core’, ‘Graph’, ‘HTML5’, ‘ODM’, ‘PersonalData’, ‘Session’, ‘UI’
    • [cds@5.0.4] cds build no longer fails with a task.apply is not a function error when used in an npm script.
    • [cds@5.0.3] cds.compile got thoroughly cleaned up and enhanced as the single API to compile models
    • [cds@5.0.3] cds.compile.to.cdl was missing in 5.0.2
    • [cds@5.0.3] cds build no longer uses reflected CSN which caused odata and EDMX transformation to fail. As a consequence language specific EDMX files were missing.
    • [cds@5.0.2] cds build no longer aborts for CAP Java SDK based projects with compiler v2 not supported message.
    • [cds@5.0.1] Fixed race conditions in cds.serve leading to broken services
    • [cds@5.0.1] Fixed typos in API type definitions
    • [cds@5.0.1] Fixed cds.reflect.forall for CSN extensions
    • [cds@5.0.1] Fixed orphaned _texts proxies, causing init from CSV to fail with “no such table” errors
    • [cds@5.0.0] cds.connect.to no longer returns undefined in concurrent cases where connect is called again while a datasource is about to be connected.
    • [cds@5.0.0] cds.log formerly wrote log and debug output to stderr, now writes that to stdout
    • [cds@5.0.0] cds.server now accepts port 0 as a number
    • [cds@5.0.0] Race conditions in cds.serve and cds.connect lead to wrong Service instances to lost handler registrations
    • [cds@4.6.5] cds build now correctly parses .hdbtablemigration files on Windows
    • [cds@4.6.5] compile --to serviceinfo no longer crashes for Spring configuration in multi-root yaml files
    • [cds.java@1.15.0] Fixed a bug, that could create a mismatch between the tenant in the Request Context and the tenant used by the database transaction. This bug could only occur, when explicitly changing the tenant context in the Request Context after already starting a database transaction. This situation is now detected with an exception and dedicated database transactions or ChangeSet Contexts must be opened for each tenant.
    • [cds.java@1.15.0] Fixed a bug that caused issues with associations as keys in draft-enabled entities.
    • [cds.java@1.15.0] Fixed a bug that caused the creation date instead of the last changed date of a draft entity to be considered during the draft garbage collection.
    • [cds.java@1.15.0] Fixed a bug that caused getDefinition() of ApplicationService and RemoteService to return the service definition from the tenant-independent model.
    • [cds.java@1.15.0] Fixed a bug that caused serialization issues in OData V4 when directly reading a Edm.Decimal property (for example, /browse/Books(4711)/price).
    • [cds.java@1.15.0] Fixed a bug that caused invalid OData V4 EDMX files to be loaded due to external references defined in the EDMX.
    • [cds.java@1.15.0] Fixed a bug that caused message targets to miss on the OData V2 error response.
    • [cds.java@1.15.0] Fixed a bug that caused guid keys in message targets to be rendered incorrectly in OData V2.
    • [cds.java@1.15.0] Fixed a bug that rejected requests (HTTP return code 403 Forbidden) to public actions and functions, which accept parameters.
    • [cds.java@1.15.0] Fixed a bug that caused an incorrect authentication auto-configuration in case the base path of an adapter was configured to /.
    • [cds.java@1.15.0] Fixed a bug, that caused no CSV data to be initialized during startup, in case an error was present in one of the CSVs. Every CSV file is now inserted in a dedicated transaction.
    • [cds.java@1.15.0] Fixed a bug in cds-maven-plugin, where using command line argument -Dskip=true skips the goals install-node, install-cdsdk, cds, and npm at once. Now, each of these goals has it’s own skip property: cds.cds.skip, cds.install-cdsdk.skip, cds.install-node.skip, and cds.npm.skip.
    • [cds.java@1.14.1] Fixed a bug that prevented authorized users to read draft metadata or texts of a draft entity (for example, /<draft-entity>/DraftAdministrativeData or /<draft-entity>/texts). The requests were rejected with HTTP response code 403 (Forbidden) in case the entity is protected with a @restrict-clause that has a where-condition.
    • [cds.java@1.13.2] Fixed a bug that prevented mock user configuration in case there was an XSUAA-binding in default-env.json but XSUAA-configuration has been turned off explicitly.
    • [cds.java@1.13.2] Fixed a bug that caused the field length validation to fail on arrayed string elements (for example, many String(10)).
    • [cds4j@1.19.0] Fix bulk upsert with empty list
    • [cds4j@1.19.0] Support inline/anonymous defined type as return type for actions/functions
    • [cds4j@1.19.0] Fix cascading delete fallback for path with infix filters
    • [cds4j@1.18.1] Fix bulk upsert with empty list
    • [cds4j@1.18.1] Fix cascading delete fallback for path with infix filters
    • [cds4j@1.18.1] Render all LIMIT clauses as literal values
    • [cds.java@1.13.2] Updated CDS4j to 1.17.2
    • [cds-runtime@3.0.5] Side effects on @sap/hana-client’s streaming extension
    • [cds-runtime@3.0.4] Empty inserts for nested composition of one
    • [cds-runtime@3.0.4] Preserve children if multiple compositions to same target
    • [cds-runtime@3.0.3] Navigation properties in $select inside of $expand query option
    • [cds-runtime@3.0.2] Accept header matching during media stream
    • [cds-runtime@3.0.2] Time delta for Date type in temporals
    • [cds-runtime@3.0.2] Function calls using an OData inline parameter syntax with aliased parameters of primitive types
    • [cds-runtime@3.0.2] Path navigation in $orderby expressions when using SAP HANA functions
    • [cds-runtime@3.0.1] Reading SiblingEntity via navigation of a draft enabled entity
    • [cds-runtime@3.0.1] Inline defined return types of custom actions/functions in REST
    • [cds-runtime@3.0.1] Multiple integrity errors in one changeset
    • [cds-runtime@3.0.1] @Capabilities.NavigationRestrictions considers “deep” navigation paths
    • [cds-runtime@3.0.1] Add ETags to result based on @odata.etag in CSN alone
    • [cds-runtime@3.0.1] Reading media stream with accept header
    • [cds-runtime@3.0.0] Using path navigations in $filter for SAP HANA-based services configured with cds.odata.flavor = x4
    • [cds-runtime@3.0.0] Only messaging will deal with domain-level events
    • [cds-runtime@3.0.0] Read access using nondraft enabled projections on draft children
    • [cds-runtime@3.0.0] Debug message when metadata size exceeds cache limit
    • [cds-runtime@3.0.0] Order by using functions in combination with group by
    • [cds-runtime@3.0.0] Streaming by navigation
    • [cds-runtime@3.0.0] Alignment of temporal data with compiler v2 format
    • [cds-runtime@3.0.0] Calculate DraftIsCreatedByMe and DraftIsProcessedByMe properties of DraftAdministrativeData by reading drafts
    • [cds-runtime@2.9.7] Reserved keywords for smart quoting
    • [cds-runtime@2.9.7] Datetime conversion for SAP HANA in case of INSERT...as(SELECT...)
    • [cds-runtime@2.9.5] Relative error target on draft activation for SAP Fiori Elements with OData V2
    • [cds-runtime@2.9.4] Support for version 2 of the @sap/xssec package, as it is deprecated. Now, only version 3 of the package is supported.
    • [cds-runtime@2.9.3] Check whether current request is a bound action
    • [cds-runtime@2.9.2] Result payload by expand of grandchild entity, when the child data that is null
    • [cds-runtime@2.9.2] Delete composition of one via navigation
    • [cds-runtime@2.9.2] Use extended model in structured processing
    • [cds-mtx@1.1.5] Connection handling has been improved. Errors of type TimeoutError: Acquiring client from pool timed out are reduced.
    • [cds-mtx@1.1.5] The extension API /mtx/v1/content now returns a correct JSON if a collection is requested with any version of @sap/cds used by the application. The cds extend command was returning (intermediate result) is not iterable because of an incorrect server response.
    • [cds-mtx@1.1.3] mtx/v1/model/status now returns the job status again
    • [cds-odata-v2-adapter-proxy@1.6.0] Final CDS v5 compatibility version
    • [cds-odata-v2-adapter-proxy@1.5.11] CDS 5 compatibility (>= 1.6.0 needed for CDS v5)
    • [cds-odata-v2-adapter-proxy@1.5.11] Support ‘content-disposition’ header in media entity upload
    • [cds-odata-v2-adapter-proxy@1.5.11] Introduction of element annotation @cov2ap.headerDecode to decode header values
    • [cds-odata-v2-adapter-proxy@1.5.10] Fix crash for bound action without return type
    • [cds-odata-v2-adapter-proxy@1.5.10] Consider bound action binding parameter for messages targets

    Removed

    • [cds-compiler@2.1.0] Core engine (function compile):
      • Referential integrity issues now always lead to compile errors.
      • The type of operator (without : in the reference) cannot be used for parameters and inside queries anymore.
      • Using "…" for delimited identifiers leads to a compile error.
      • Issue an error for “smart artifact references”, that means, when using Definition.elem instead of Definition:elem
      • The definition of annotations is no longer allowed in contexts and services.
      • Providing an alias name without as leads to a compile error or warning.
      • Providing unexpected kind of definitions for type or other references lead to a compile error.
      • The ancient CSN 0.1.0 format generation has been removed.
      • The compiler does no longer look for modules whose file extension is .csn.json, both .csn and .json is still checked.
    • [cds-compiler@2.1.0] for.odata:
      • With --format: structured, the property $generatedFieldName in keys of managed associations has been removed.
      • Artificially exposed types that are required to make a service self contained are removed from the OData processed CSN.
      • Localized convenience views are no longer part of the OData CSN.
    • [cds-compiler@2.1.0] API changes:
      • The deprecated XSN based transformers forHana, forOdata, toSwagger, toSql, toCsn, toCdl have now been removed from the code base.
      • Remove collectSources() as well as options.collectSources.
      • A CompilationError usually does not have the property model anymore, to avoid potential memory issues.
      • CSN compiler messages no longer have a location property. Use $location instead.
    • [cds-compiler@2.1.0] The following cdsc options have been removed:
      • --old-transformers.
      • --hana-flavor with all corresponding rudimentary implemented language constructs.
      • --new-resolve (the new resolver is now the default).

    The following undocumented, internal functions have been removed. In case you spotted and used them, replace as given below.

    • [cds@5.0.3] cds.compile.cdl → use cds.compile instead
    • [cds@5.0.3] cds.compile.to.parsed.csn → use cds.parse instead
    • [cds@5.0.3] cds.compile.to.xtended.csn → use cds.compile instead
    • [cds@5.0.3] cds.compile.to.inferred.csn → use cds.compile instead
    • [cds@5.0.3] cds.compile.to.hdi → use cds.compile.to.hdbtable instead
    • [cds@5.0.3] cds.compile.to.hana → use cds.compile.to.hdbcds instead
    • [cds@5.0.3] cds.compile.to.xsuaa → still available in CLI thru cds compile -2 xsuaa
    • [cds@5.0.3] cds.compile.to.serviceinfo → still available in CLI thru cds compile -2 serviceinfo
    • [cds@5.0.3] cds.compile.to['edmx-v2'] → still available in CLI thru cds compile -2 edmx-v2
    • [cds@5.0.3] cds.compile.to['edmx-v4'] → still available in CLI thru cds compile -2 edmx-v4
    • [cds@5.0.3] cds.compile.to['edmx-w4'] → still available in CLI thru cds compile -2 edmx-w4
    • [cds@5.0.3] cds.compile.to['edmx-x4'] → still available in CLI thru cds compile -2 edmx-x4

    • [cds@5.0.0] Compiler non-snapi support → see cds.env.features.snapi option
    • [cds@5.0.0] In recent releases we added methods cds.compile.to.hdbtabledata and cds.compile.to.hdbmigration, intentionally undocumented, as they were meant to be private. Nobody should ever have used these methods, hence nobody should be affected by their removal.
    • [cds-runtime@3.0.2] Blind path-level logs by odata-server
    • [cds-runtime@3.0.0] Support for version 2 of the @sap/xssec package, as it is deprecated. Now, only version 3 of the package is supported.

    February 2021

    Added

    • [cds-compiler@1.50.0] Introduce annotation @cds.redirection.target. With value false, the projection isn’t considered an implicit redirection target; with value true, is considered a “preferred” redirection target.
    • [cds@4.6.3] [beta] cds build for SAP HANA now provides schema evolution support for multitenant application extensions.
    • [cds@4.6.1] [beta] cds build for SAP HANA now supports the generation of hdbmigrationtable design-time artifacts for large volume tables allowing for schema evolution capabilities. Model entities annotated with @cds.persistence.journal will be deployed as hdbmigrationtable artifacts instead of hdbtable.
    • [cds.java@1.14.0] Enhanced the index page to list both OData V4 and OData V2 endpoints, in case one or both adapters are present. As part of this change the properties to configure the index page were moved from cds.odataV4.indexPage to cds.indexPage.
    • [cds.java@1.14.0] OData V4 $expand now supports using inner $top and $skip query options.
    • [cds.java@1.14.0] Improved the changeset and error handling in the OData V2 adapter to align the behaviour more closely to OData V4.
    • [cds.java@1.14.0] The privileged user is now allowed to read the drafts of all entities and users.
    • [cds.java@1.14.0] Action and function calls returning a structured type can now be executed on remote OData services.
    • [cds4j@1.18.0] CQL.matching to build a Query-by-Example style predicate
    • [cds4j@1.18.0] Support path expressions in Update and Delete
    • [cds4j@1.18.0] Introduce a global switch to disable WITH PARAMETERS in SQL statements on SAP HANA
    • [cds4j@1.18.0] Support removing values in CDS data through CdsDataProcessor converters
    • [cds4j@1.18.0] Reflection API:
      • Support composition of Aspects
      • Support dots in entity names
    • [cds-runtime@2.9.0] Support for cds.LargeString in queries for remote services
    • [cds-runtime@2.9.0] Support for tenant-aware emit in AMQP messaging
    • [cds-runtime@2.9.0] Metadata (for example, __count or @odata.count for OData V2 and OData V4, correspondingly) of an external service result are uniformly normalized (for example, to $count) and propagated with the result by the rest-client
    • [cds-runtime@2.9.0] Improved support for managed composition of one
    • [cds-runtime@2.9.0] Support for cascade DELETE for composition of one
    • [cds-runtime@2.9.0] Smart quoting in SQL statements
    • [cds-runtime@2.9.0] Improved memory consumption of integrity checks
    • [cds-runtime@2.9.0] Result payload includes ETag values of composition targets
    • [cds-runtime@2.9.0] Custom metadata in OData result (alpha)
    • [cds-runtime@2.9.0] Support for canonical URL to $metadata in @odata.context of a response: use cds.env.odata.contextAbsoluteUrl = true to get a service URL (default) or cds.env.odata.contextAbsoluteUrl = 'http://example.com/yourService/' to set your own URL
    • [cds-runtime@2.8.4] Database pool teardown in case credentials becomes invalid
    • [cds-runtime@2.8.4] Idle timeout added to default database pool configuration
    • [cds-mtx@1.1.2] Multitenant applications without tenant-specific extensions now support schema evolution based on .hdbmigrationtable files.
    • [cds-mtx@1.1.2] Provisioning parameters for the container creation can now also be set through cds environment mtx.provisioning.container or environment variable CDS_MTX_PROVISIONING_CONTAINER.\ Provisioning parameters that are set in the subscription request to mtx/v1/provisioning/tenant override the values from the environment.
    • [cds-mtx@1.1.2] Dedicated hdi deployment options can now be set through environment variable HDI_DEPLOY_OPTIONS, for example, HDI_DEPLOY_OPTIONS="{\"trace\": true }". See section Deployment Options in HDI for more details.
    • [cds-mtx@1.0.28] It’s now possible to pass hdi deployment parameters undeploy and path-parameter with the model upgrade (mtx/v1/model/upgrade and mtx/v1/model/asyncUpgrade)
    • [cds-sidecar-client@1.1.13] Include original server error message in case of HTTP errors.

    Changed

    • [cds-dk@3.5.0] cds init creates projects with latest version of sqlite3 again.
    • [cds-dk@3.5.0] cds add mta now creates a mta.yaml file that correctly handles spring boot .jar and .war archives.
    • [cds-dk@3.4.2] cds init uses latest Maven Java archetype version 1.13.1 for creating Java projects.
    • [cds-dk@3.4.2] Bump version of @sap/cds to 4.5.3
    • [cds-dk@3.4.1] Bump version of @sap/cds to 4.5.2
    • [cds-dk@3.4.1] Bump version of @sap/cds-runtime to 2.8.6
    • [cds-dk@3.4.1] Bump version of @sap/cds-compiler to 1.49.2
    • [cds.java@1.14.0] The cds-maven-plugin now enforces a minimum @sap/cds-dk version of 3.0.0.
    • [cds.java@1.14.0] Service entity DraftAdministrativeData is read-only now. Direct requests are rejected (for example, /Service/DraftAdministrativeData). Read requests via navigation to this entity (for example, /Service/Entity(id)/DraftAdministrativeData) are allowed for authorized users.
    • [cds.java@1.14.0] In case property cds.security.openUnrestrictedEndpoints isn’t configured explicitly, the Spring security configuration in the runtime authenticates all endpoints in multitenant scenario. In single tenant mode, the endpoints are still authenticated according to the restrictions in the CDS model.
    • [cds.java@1.14.0] The signature of the error messages 400002, 400012, 400015, 400018, 400019, 409006 and 428002 was changed to not expose request data in error messages.
    • [cds4j@1.18.0] Elements with type UUID are not searched by default any longer
    • [cds4j@1.18.0] Improve Performance of cascading delete for acyclic delete graphs
    • [cds4j@1.18.0] Use batch delete in upserts
    • [cds4j@1.18.0] Suppress WITH PARAMETERS for simple CQL statements on SAP HANA
    • [cds-runtime@2.9.0] The default implementation of SAP Event Mesh (enterprise-messaging) is now multitenant aware. Currently only emit is implemented. The old, shared variant is available through enterprise-messaging-shared.
    • [cds-runtime@2.9.0] Skip localization on pure count queries
    • [cds-runtime@2.9.0] Managed properties of base entity are updated if any composition target is updated
    • [cds-runtime@2.9.0] Deactivate during two-month grace period via compatible feature flag cds.env.features.update_header_item = false
    • [cds-runtime@2.9.0] Default text templates for element assertions don’t contain an element name as a parameter anymore
    • [cds-runtime@2.9.0] Custom authorization header can now be set in service consumption
    • [cds-runtime@2.9.0] Managed associations-to-one aren’t expanded in the result of a POST request in case of cds.odata.flavor = v4
    • [cds-runtime@2.9.0] Deactivate during two-month grace period via compatible feature flag cds.env.features.skip_expand_assoc = false
    • [cds-runtime@2.9.0] Implicit auto exposed entities inherit authorization restrictions from parent
    • [cds-runtime@2.9.0] Modifying an entity without authorization results in HTTP code 403 instead of 404
    • [cds-runtime@2.9.0] Instance-based @restrict.where clauses are ignored during CREATE (instead of rejecting the request)
    • [cds-runtime@2.9.0] Deactivate during two-month grace period through compatible feature flag cds.env.features.skip_restrict_where = false

    Fixed

    • [cds-dk@3.5.0] cds env does not longer fail with an exception for unknown commands
    • [cds-dk@3.4.2] cds init now refers to the latest HDI deployer, which supports Node.js v14
    • [cds-dk@3.4.1] cds watch now shuts down its child process properly, so that EADDRINUSE errors in SAP Business Application Studio are gone
    • [cds-compiler@1.50.0] to.edm(x): Illegal OData identifiers, which aren’t exposed in the generated edmx schema aren’t causing errors anymore.
    • [cds-compiler@1.50.0] to.cdl: Annotations are now rendered with the new delimited Identifier syntax
    • [cds-compiler@1.50.0] to.sql/hdi:
      • Fixed a bug, which led to an exception if elements were referenced as types.
      • For the SQLite dialect, date, time, and timestamp are rendered as simple string literals instead of function calls.
      • For naming mode “plain”, date, time, and timestamps are rendered as SQL-compliant literals.
    • [cds@4.6.4] Fix call to to.hdi.migration compiler API
    • [cds@4.6.4] cds build for SAP HANA now correctly passes sql_mapping options to new hdimigration compiler API.
    • [cds@4.6.3] cds compile --to serviceinfo returns better results for Java projects
    • [cds@4.6.3] cds.connect.to('srv-missing') called twice with srv-missing not configured, would have failed with an error on the first call, but got stuck in the Promise chain for all subsequent calls.
    • [cds@4.6.3] .after handlers are called with result based on request, e.g., array for collection and object for entity, instead of always array
      • Deactivate during two-month grace period via compatible feature flag cds.env.features.arrayed_after = true
    • [cds@4.5.3] cds deploy and build now refer to the latest HDI deployer, which supports Node.js v14
    • [cds@4.5.2] cds serve --with-mocks now also works in production environment if cds.features.mocked_bindings is true. Previously, mocks were always disabled in production.
    • [cds@4.5.2] cds serve now only fires the listening event once
    • [cds@4.5.2] cds build redacts cds configuration data in log messages
    • [cds.java@1.14.0] Fixed a bug that caused null values to miss in expanded entities in OData V2 responses.
    • [cds.java@1.14.0] Fixed a bug that caused null values in remote OData V2 function parameters to be handled incorrectly.
    • [cds.java@1.14.0] Fixed a bug that caused results of remote OData V2 actions or functions calls returning a single entity response to be handled incorrectly.
    • [cds.java@1.14.0] Fixed a bug that caused the cds-maven-plugin to try to use an invalid Node.js installation.
    • [cds.java@1.14.0] Fixed a bug that caused the cds-maven-plugin to omit the execution of cds commands.
    • [cds.java@1.14.0] Fixed a bug that prevented mock user configuration in case there was an XSUAA-binding in default-env.json but XSUAA-configuration has been turned off explicitly.
    • [cds4j@1.18.0] Support handling null as a default value
    • [cds4j@1.18.0] Fix search in draft entities on SAP HANA
    • [cds4j@1.18.0] Fix return types in FLUENT style EventContext interfaces
    • [cds4j@1.18.0] Fix SQL exception on SAP HANA when using FALSE as predicate
    • [cds4j@1.18.0] Draft: Remove cascade annotations from draft entities
    • [cds-runtime@2.9.1] Namespace lookup in EDM for OData configuration
    • [cds-runtime@2.9.1] Find previous entity for inherited authorization restrictions
    • [cds-runtime@2.9.1] Use extended model in generic CRUD post-processing
    • [cds-runtime@2.9.1] Clone headers before sanitizing for logs
    • [cds-runtime@2.9.0] req.diff for deep hierarchies
    • [cds-runtime@2.9.0] DateTime conversion for INSERT statements using .columns and .values/.rows on SAP HANA
    • [cds-runtime@2.9.0] OData V4 error response target for bound actions
    • [cds-runtime@2.9.0] Requests using $search query option on draft enabled active entities
    • [cds-runtime@2.9.0] Path navigations in $filter aren’t considered as aggregated away when used in combination with $apply
    • [cds-runtime@2.9.0] Draft: Entities with expired draft can now be deleted
    • [cds-runtime@2.9.0] Edm.Time, Edm.DateTime, and Edm.DateTimeOffset serialization issues when using external OData V2 service
    • [cds-runtime@2.9.0] Primitive property access of Singletons via URL like /Singleton/name
    • [cds-runtime@2.9.0] Path navigation in $orderby expressions for draft-enabled services on SAP HANA
    • [cds-runtime@2.8.6] Handling of OData query option $skiptoken when URL is encoded (that is, %24skiptoken)
    • [cds-runtime@2.8.5] Handling of OData query option $skiptoken
    • [cds-runtime@2.8.4] Crash on bad remote service credentials
    • [cds-runtime@2.8.4] Wrong case order during query generation in service consumption
    • [cds-mtx@1.1.2] Fix job-status handling.
    • [cds-mtx@1.1.2] Persist job errors, so they can be revealed even after MTX restart.
    • [cds-odata-v2-adapter-proxy@1.5.9] Improve TypeScript typings
    • [cds-odata-v2-adapter-proxy@1.5.8] Update @sap/logging dependency
    • [cds-odata-v2-adapter-proxy@1.5.7] Restore backwards compatibility with CDS 3
    • [cds-odata-v2-adapter-proxy@1.5.6] Convert response message targets

    Removed

    • [cds-runtime@2.9.0] Redundant key generation

    January 2021

    Added

    • [cds-lsp@4.3.0] asynchronous initialization for annotation plugins
    • [cds-lsp@4.3.0] find references for annotation plugins
    • [cds-lsp@4.3.0] revalidates workspace after an initial annotation plugin installation
    • [cds-compiler@1.49.0] to.hdi/sql:
      • Updated the list of reserved keywords for SAP HANA and SQLite
      • Use “smart quoting” for naming mode “plain” - automatically quote reserved keywords
    • [cds-compiler@1.49.0] to.hdi.migration:
      • Supports various kinds of entity changes: entity addition/deletion/change (the latter including element additions/deletions/type changes).
      • Provides option to render any element type change as ALTER TABLE DROP to prevent deployment issues due to incompatible data (default for length reductions or association/composition changes).
    • [cds-compiler@1.49.0] to.cdl: Smart artifact references are now rendered explicitly via : notation
    • [cds@4.5.0] cds.server provides an option to switch off automatically generated index.html served at /: Do that in a custom server.js:
      const cds = require('@sap/cds')
      // ...
      module.exports = (o) => cds.server({ ...o, index:false })
      
    • [cds@4.5.0] The default index.html now honors the system’s setting for dark mode.
    • [cds@4.5.0] Former package @sap/cds-reflect is now embedded in @sap/cds
    • [cds.java@1.13.0] The serve configuration of application services now allows to explicitly configure which services are served by which protocol and even allows to use different service paths for different protocols. This is enabled by the new annotations @protocols and @endpoints, which adds to the already existing @path annotation. The same can now also be configured in configuration files in the cds.application.services.<key>.serve section.
    • [cds.java@1.13.0] Added a new artifact cds-feature-k8s, which implements service binding support for Kubernetes & Kyma. By default service bindings are expected as secrets under /etc/secrets/sapcp/<service name>/<service instance name>, using key-value based secrets files. Additional service bindings with arbitrary secrets paths can be specified under the cds.environment.k8s.serviceBindings property.
    • [cds.java@1.13.0] OData V2/V4 PATCH or PUT requests now put key values from the URL into the data map. This ensures that keys are immutable and makes key values available directly in POJO arguments of event handlers.
    • [cds.java@1.13.0] OData V2 now provides __deferred links for unexpanded navigation properties.
    • [cds.java@1.13.0] OData V2 now supports reading parameterized views.
    • [cds.java@1.13.0] Added the possibility to create and configure remote services. Going forward, these services are used to represent local CQN-based service clients to remote OData APIs. They can be configured by using the property cds.remote.services.
    • [cds.java@1.13.0] CQN Selects on remote OData services now support inline count.
    • [cds.java@1.13.0] Pseudo variables like $user.locale are now handled in CQN statements to remote OData services.
    • [cds.java@1.13.0] CQN statements using byId() can now be executed on remote OData services.
    • [cds.java@1.13.0] CQN statements using contains are now using substringof when executing them against remote OData V2 services.
    • [cds.java@1.13.0] CQN statements using parameters can now be executed on remote OData services.
    • [cds.java@1.13.0] CQN statements using batched updates or batched deletes can now be executed on remote OData services.
    • [cds.java@1.13.0] Batched or parameterized CQN statements that result in multiple OData requests are now executed as a $batch request on remote OData services. All those requests are combined into a single changeset to ensure atomicity.
    • [cds.java@1.13.0] Action and function calls can now be executed on remote OData services.
    • [cds.java@1.13.0] Added a first draft of an Outbox Service API.
    • [cds.java@1.13.0] Simplified the $batch access log line to omit host, port and service path, which is the same in every request of the batch.
    • [cds.java@1.13.0] Added a new API to retrieve authentication information, for example the JWT token of the current user. It can be accessed from the CdsRuntime using getProvidedAuthenticationInfo. The new API replaces the former internal AuthenticatedUserClaimProvider.
    • [cds.java@1.13.0] The cds-services-archetype now supports the creation of new CAP Java projects with OData V2 support. Add command line argument -DodataVersion=v2 to choose OData V2 support.
    • [cds.java@1.13.0] The goal addIntegrationTest of the cds-maven-plugin automatically detects the OData version of the CAP Java project and adds the corresponding integration test class.
    • [cds.java@1.13.0] The goal install-cdsdk of the cds-maven-plugin provides a new command line argument cds.install-cdsdk.force=true to force a new installation of @sap/cds-dk.
    • [cds.java@1.13.0] The goal cds of the cds-maven-plugin validates the version of the installed @sap/cds-dk against a minimum required version. If the required version isn’t fulfilled the build fails.
    • [cds4j@1.18.0] Add CDS Data Processor API (beta) to validate, convert, and generate CDS data
    • [cds4j@1.18.0] Add Indexed parameters as replacement for deprecated positional parameters
    • [cds4j@1.18.0] Add @cds.java.name annotation to define custom names for elements when generating Java interfaces
    • [cds4j@1.18.0] Add UniqueConstraintException
    • [cds4j@1.18.0] Add NotNullConstraintException
    • [cds4j@1.18.0] Reflection API: Support for Events referencing other Events, Entities, and Structured Types
    • [cds4j@1.18.0] Reflection API: Support for Aspects
    • [cds4j@1.18.0] Reflection API: Add setCqn method in the generated EventContext Interface & overload create method
    • [cds-runtime@2.8.0] Support for OData proxies (beta)
    • [cds-runtime@2.8.0] Support for OData cross-service references (beta)
    • [cds-runtime@2.8.0] Support upsert for to-one containment with foreign key in parent
    • [cds-runtime@2.8.0] Support for case-insensitive bearer prefix when forwarding token in service consumption
    • [cds-runtime@2.8.0] Support for filter on null values in service consumption
    • [cds-runtime@2.8.0] Server-side pagination for REST services
    • [cds-runtime@2.8.0] Input validation for typed parameters of actions/functions
    • [cds-runtime@2.8.0] Format assertion exception for UUIDs in MTX’s ProvisioningService.tenant (old SAP Cloud Platform subaccount IDs aren’t UUIDs)
    • [cds-runtime@2.8.0] Draft scenario all active is extended
    • [cds-runtime@2.8.0] Skip integrity checks via:
      • @assert.integrity: false on entity and service level (was only on association level)
      • cds.env.features.assert_integrity = false as global config (private cds.runtime.skipIntegrity will be removed)
    • [cds-runtime@2.8.0] Skip SAP HANA’s localization feature (WITH PARAMETERS ('LOCALE' = '<locale>')) via cds.env.features.with_parameters = false
    • [cds-runtime@2.8.0] Deprecation warning for req.run
    • [vscode-cds@3.3.0] finds references for annotations

      Changed

    • [cds-dk@3.4.0] cds init uses latest Maven Java archetype version 1.12.1 for creating Java projects.
    • [cds-dk@3.4.0] cds init allows _ in project name and leaves conversion to Maven Java archetype.
    • [cds-dk@3.4.0] cds init --add notebook and cds add notebook now use a Python venv and offer a default Jupyter Notebook viewer.
    • [cds-dk@3.4.0] Multitarget Node.js applications can now be initialized with multitenancy support by running cds init --add mta,mtx. (beta)
    • [cds-dk@3.3.5] Bump versions of @sap/cds
    • [cds-dk@3.3.4] Bump versions of @sap/cds and axios
    • [vscode-cds@3.3.0] extension is now called SAP CDS language support
    • [vscode-cds@3.3.0] uses axios@0.21.1
    • [vscode-cds@3.3.0] uses @sap/cds-lsp@4.3.0 (see corresponding changelog for details)
    • [vscode-cds@3.3.0] uses @sap/cds-compiler@1.49.0
    • [vscode-cds@3.3.0] new user options for where-used requests
      until now this functionality was enabled by default and now needs to be enabled via user options:
      • generic annotations - where a certain annotation ‘class’ or ‘namespace’ is used
      • strings literals - where same string literals are used
    • [cds-lsp@4.3.0] new user options for where-used request
      until now this functionality was enabled by default and now needs to be enabled via user options
      • generic annotations - where a certain annotation ‘class’ or ‘namespace’ is used
      • strings literals - where same string literals are used
    • [cds-lsp@4.3.0] consumes cds-compiler 1.49.0
    • [cds-lsp@4.3.0] compatibility with early versions of cds-compiler 2.x
    • [cds-lsp@4.3.0] simplified consumption of CDS textmate grammar for Jetbrain IDEs
    • [cds-compiler@1.49.0] OData/EDMX: Change the EntityType precedence of the OData term definition AppliesTo= attribute. If AppliesTo contains both EntityType and EntitySet, the annotation was assigned to the entity type. Extending an AppliesTo=[EntitySet] with EntityType would be OData compliant but incompatible for clients, which still expect the annotation at the set and don’t perform the full lookup. With this change, EntitySet and EntityType are treated individually, effectively annotating the type and (if available) the set. This fixes both extendability and client behavior.
    • [cds-compiler@1.49.0] to.hdbcds/hdi/sql: Reject using associations or compositions in query elements starting with $self or $projection.
    • [cds-compiler@1.49.0] OData: Update vocabularies ‘Common’, ‘PersonalData’, ‘UI’.
    • [cds-compiler@1.49.0] Update vocabularies ‘Aggregation’, ‘Common’
    • [cds@4.5.0] SAP Fiori preview is now disabled if NODE_ENV is production, to avoid any runtime overhead there. You can enable it with configuration cds.features.fiori_preview: true.
    • [cds@4.4.10] cds build for SAP HANA now only filters CSV files if it’s needed, for example, if they contain comment lines.
    • [cds.java@1.13.0] Entities annotated with @cds.autoexpose are now read-only, if they’re auto-exposed by the CDS compiler (@cds.autoexposed), regardless if they’re accessed directly or through a path navigation. Composition children of such entities inherit the read-only attributes of their parents now. This ensures that auto-exposed value helps (and, for example, their localized texts) are protected from write operations.
    • [cds.java@1.13.0] Composition child entities (@cds.autoexposed, but not @cds.autoexpose) are now forbidden as the root of a path, regardless if they’re also the target of the path or not. They should always be accessed through a path navigation starting from their parent entity. Draft-enabled entities continue to be an exception to this rule.
    • [cds.java@1.13.0] The DraftAdministrativeData structure is only created once for a single draft document (root draft entity with all of its composition children). Earlier a dedicated DraftAdministrativeData structure was created for each entity in the draft document. This fixes issues where the user, who changed the draft last, or the last changed timestamp weren’t consistent across the draft document.
    • [cds.java@1.13.0] Temporal timestamps from sap-valid-at, sap-valid-from, and sap-valid-to query parameters are now truncated to microseconds, as this is the general granularity of timestamps in CDS.
    • [cds.java@1.13.0] The error messages for Constraint Violation errors have been improved, by distinguishing not null constraint violations from unique constraint violations. With that the previous general error code 409001 (CONSTRAINT_VIOLATED) has been deprecated and is replaced by the more specific error codes 409003 (VALUE_REQUIRED) and 409006 (UNIQUE_CONSTRAINT_VIOLATED).
    • [cds.java@1.13.0] Renamed send methods in MessagingService to emit to avoid confusions with function names in Node.js.
    • [cds.java@1.13.0] Renamed property cds.datasource.serviceName to cds.datasource.binding (previous name is deprecated, but still available)
    • [cds.java@1.13.0] Renamed property cds.security.xsuaa.serviceName to cds.security.xsuaa.binding (previous name is deprecated, but still available)
    • [cds4j@1.18.0] Fix projection resolvement of aliased to-many associations
    • [cds4j@1.18.0] Fix SQL exception on updates having only key values as data
    • [cds4j@1.18.0] Fix NoSuchElementException when using binary elements in where condition
    • [cds-reflect@2.13.5] Sunset. Code is now in @sap/cds package.
    • [cds-runtime@2.8.0] ETag added for expanded entities
    • [cds-runtime@2.8.0] Use cds.log() throughout (incl. odata-server)
    • [cds-runtime@2.8.0] Replace text keys with default text (that is, w/o locale) before logging error
    • [cds-runtime@2.8.0] Read after write on draft activate doesn’t read deep
    • [cds-runtime@2.8.0] On http error (status >= 400) during remote service consumption: log details and throw gateway error
    • [cds-runtime@2.8.0] accept=application/json,text/plain is used as default accept header for remote service calls
    • [cds-runtime@2.8.0] Improved custom error message in case acquiring a client from the pool timed out
    • [cds-runtime@2.8.0] Metadata endpoints are protected by default if respective service is protected. Deactivate metadata endpoint protection via cds.env.odata.protectMetadata = false.
    • [cds-runtime@2.8.0] Streamlined module names used in logging

    Fixed

    • [vscode-cds@3.3.0] temporary folder for CDS Preview commands is no longer part of project to avoid files being checked in
    • [vscode-cds@3.3.0] re-validates workspace after an initial annotation plugin installation to show annotation errors w/o the need of manual code edit
    • [cds-lsp@4.3.0] dependency analysis for compilation: if a changed file has dependencies to the roots, but the root models don’t cover it, no longer it will compile multiple times
    • [cds-lsp@4.3.0] translation code action wasn’t shown in the context of annotations
    • [cds-lsp@4.3.0] code completion for annotations had a trailing @
    • [cds-lsp@4.3.0] annotation assignment spanned beyond semantical end
    • [cds-lsp@4.3.0] code formatting of brackets enclosing multiple elements in annotations had wrong indentation
    • [cds-lsp@4.3.0] indexing of on condition for elements was broken
    • [cds-lsp@4.3.0] update regex to highlight one and many keywords properly
    • [cds-compiler@1.49.0] Structured foreign key and forward association reference paths used in ON condition definitions are now translatable into the correct short form ON condition paths in Association to Join translation.
    • [cds-compiler@1.49.0] to.hdbcds: Aliased mixin-associations are now handled correctly
    • [cds-compiler@1.49.0] Using a hex literal like x'D028' (in a CSN input) could lead to an error.
    • [cds-compiler@1.49.0] for.odata:
      • Fix a bug in constraint calculation if principal has no primary keys.
      • Don’t overwrite user-defined @Core.Computed annotation.
    • [cds-compiler@1.49.0] to.hdi/sql/hdbcds: Fixed a bug during processing of skipped/otherwise not db-relevant artifacts.
    • [cds-compiler@1.49.0] to.hdbcds/hdi/sql:
      • Types aren’t rendered anymore for SAP HANA in quoted mode.
      • Aliases are now respected when resolving $self
      • Association clones are now prepended with three underscores (_) instead of two to prevent shadowing of context names or usages
    • [cds@4.5.1] Update @sap/cds-runtime dependency
    • [cds@4.5.0] cds build now correctly supports multitenant applications defining multiple database modules, for example, one database for tenant-related data and one for shared data.
    • [cds@4.5.0] cds deploy --to hana does no longer fail with an invalid service name error if ‘.’ is used in the MTA ID.
    • [cds@4.4.9] cds build for SAP HANA no longer fails sporadically with ENOENT when writing CSV files.
    • [cds@4.4.8] Add missing setter for user.locale.
    • [cds.java@1.13.0] Fixed a bug that caused OData V4 to handle results of min functions on date elements incorrectly.
    • [cds.java@1.13.0] Fixed a bug that caused properties mapped to null to miss in JSON responses to OData V4 requests using $apply
    • [cds.java@1.13.0] Fixed a bug that caused multiple OData V2 expands with common navigation properties to be handled incorrectly.
    • [cds.java@1.13.0] Fixed a bug that caused OData V2 function imports returning empty result sets to fail with an error.
    • [cds.java@1.13.0] Fixed a bug that prevented element values to be changed to null, when saving an edited draft.
    • [cds.java@1.13.0] Fixed a bug that could cause inconsistent states after a draft GC. The draft GC is now only triggered on the root entity of a draft-document, which ensures that either the whole document or nothing is garbage-collected. This aligns with the change around DraftAdministrativeData.
    • [cds.java@1.13.0] Improved the logged error message in case deletion of a draft during the draft GC failed.
    • [cds.java@1.13.0] Fixed a bug that caused frequent Missing type information warnings in the log, when accessing draft-enabled entities.
    • [cds.java@1.13.0] Fixed a bug that caused immutable fields of draft-enabled entities to be handled incorrectly when new child entities are created.
    • [cds.java@1.13.0] Fixed a bug that caused errors, when Microsoft JavaScript Dates with offsets (for example, /Date(1601359314168-0100)/) were returned from a remote OData V2 API.
    • [cds.java@1.13.0] Fixed a bug that caused incorrect result structures when a remote OData V2 API returned __deferred links.
    • [cds.java@1.13.0] Fixed a bug that caused 404 errors received from requests on remote OData collection endpoints to be silently ignored.
    • [cds.java@1.13.0] Fixed a bug that caused precision loss in floating point numbers returned from remote OData services.
    • [cds.java@1.13.0] Fixed a bug that caused the DataSource pool to be initialized multiple times in case the DataSource is configured based on service bindings.
    • [cds.java@1.13.0] Removed the misleading term “secondary” from log lines, indicating which database services have been auto-configured.
    • [cds.java@1.13.0] Fixed a bug that caused project URLs in the pom.xml to be invalid.
    • [cds.java@1.13.0] Fixed a bug that caused issues with loading EDMX files in Maven test executions on Windows.
    • [cds.java@1.12.1] Fixed a bug that caused the ETag header to miss in a OData V4 response, when the request header Prefer: return=minimal was set.
    • [cds.java@1.12.1] Fixed a bug that caused tenant-specific extensions (MTX) to be ignored in the OData V2 adapter.
    • [cds.java@1.12.1] Fixed a bug that caused the asynchronous tenant unsubscription to be incomplete, if the tenant HDI container was explicitly not deleted.
    • [cds4j@1.18.0] Deprecate positional parameters in favor of indexed and named parameters
    • [cds4j@1.18.0] Draft: Deletion isn’t cascaded anymore to the DraftAdministrativeData of a non-root draft entity, because one deep draft document shares a single DraftAdministrativeData entity now.
    • [cds4j@1.18.0] Reflection API: Refactor CdsEvent to inherit CdsStructuredType
    • [cds4j@1.18.0] Deprecate ConstraintViolationException
    • [cds4j@1.18.0] Improve performance of Deep Update: execute update statements in batches
    • [cds4j@1.18.0] Search: The SQL rendering for search on SQL backends has been changed for localized elements: besides in the user’s language texts are now additionally searched in the default language. On SAP HANA the performance of search over large data sets has been improved. This optimization is requires the association localized to the texts entity.
    • [cds-runtime@2.8.3] No pagination while reading single entity
    • [cds-runtime@2.8.3] SELECT.limit.offset.val should be a number
    • [cds-runtime@2.8.2] @mandatory annotation of typed parameters of actions/functions
    • [cds-runtime@2.8.1] Skip input validation for arrayed types as parameter of actions/functions
    • [cds-runtime@2.8.1] Log error stack when serving to REST
    • [cds-runtime@2.8.1] @assert.range doesn’t imply @mandatory
    • [cds-runtime@2.8.0] Aggregated-away properties in $select, $expand, and $filter now behave correctly
    • [cds-runtime@2.8.0] Exception when accessing texts for a renamed localized draft entity
    • [cds-runtime@2.8.0] Deep Update wrongly tried to create entries in case of nested to-one compositions
    • [cds-runtime@2.8.0] Navigation on singleton
    • [cds-runtime@2.8.0] Localized error messages if no authentication used
    • [cds-runtime@2.8.0] Fix draft with expand when ordering by draft-specific columns
    • [cds-runtime@2.8.0] Incorrect content type in batch response if no Accept header is provided
    • [cds-runtime@2.8.0] Input validation for enums using falsy values
    • [cds-runtime@2.8.0] Insert via navigation throws an error if the root of navigation doesn’t exist
    • [cds-runtime@2.8.0] Filter virtual fields from columns and expand by READ
    • [cds-runtime@2.8.0] auto-expand of generated foreign keys when functions/actions return entities
    • [cds-runtime@2.8.0] Custom headers are normalized to lower case
    • [cds-runtime@2.8.0] Post-processing of arrayed elements in Database Service
    • [cds-runtime@2.8.0] Duplicated key condition in DELETE CQN
    • [cds-runtime@2.8.0] To be checked data for DELETE integrity checks in actions was wrong
    • [cds-runtime@2.8.0] Fixed missing != comparator for query generation of remote services
    • [cds-runtime@2.8.0] CSN modification during resolve view
    • [cds-runtime@2.8.0] Clash of language-code-like namespaces (e.g. de. or fr.) with localized entities
    • [cds-runtime@2.8.0] hdb’s error event invalidates client
    • [cds-runtime@2.7.10] Downport of fix “CSN modification during resolve view”.
    • [cds-runtime@2.7.9] Don’t crash if release called without client.
    • [cds-runtime@2.6.11] Downport of fix “CSN modification during resolve view”.
    • [cds-mtx@1.0.27] Extensions via extend projection are now checked correctly by the linter.
    • [cds-mtx@1.0.27] Cross HDI container access is now supported properly. See section Deployment Options in HDI in SAP HANA Platform documentation for more details.
    • [cds-mtx@1.0.27] When usinghdb as driver for the database, the tenant updates are now logged properly
    • [cds-odata-v2-adapter-proxy@1.5.5] Align determination of locale including sub tags (for example, zh-TW)
    • [cds-odata-v2-adapter-proxy@1.5.4] Support action/function array parameter types
    • [cds-odata-v2-adapter-proxy@1.5.4] Introduce proxy option for body parser size limit
    • [cds-odata-v2-adapter-proxy@1.5.3] Improve TypeScript typings
    • [cds-odata-v2-adapter-proxy@1.5.2] Add TypeScript typings for proxy constructor
    • [cds-odata-v2-adapter-proxy@1.5.1] Normalize service root path in service root xml to include trailing slash
    • [cds-odata-v2-adapter-proxy@1.5.0] Update minor version
    • [cds-odata-v2-adapter-proxy@1.4.63] Fix that file upload error message doesn’t return with 500 status code
    • [cds-odata-v2-adapter-proxy@1.4.61] Fix accept header for binary data retrieval to include ‘application/json’
    • [cds-odata-v2-adapter-proxy@1.4.60] Respect offset for Edm.DateTimeOffset, and default to UTC offset (+0000)
    • [cds-odata-v2-adapter-proxy@1.4.60] Fix ticks and offset calculation for type DateTimeOffset to handle offset as minutes
    • [cds-odata-v2-adapter-proxy@1.4.60] Update README for custom bootstrap to give proxy() priority over cds.serve (as with cds run)
    • [cds-odata-v2-adapter-proxy@1.4.60] Make authorization header parsing more robust
    • [cds-odata-v2-adapter-proxy@1.4.60] Provide __metadata type information for function/action result
    • [cds-odata-v2-adapter-proxy@1.4.60] Data format of type cds.Time (Edm.Time) is switchable to ISO 8601 with proxy option ‘isoTime’ or entity annotation ‘@cov2ap.isoTime’
    • [cds-odata-v2-adapter-proxy@1.4.60] Data format of type cds.Date (Edm.DateTime) is switchable to ISO 8601 with proxy option ‘isoDate’ or entity annotation ‘@cov2ap.isoDate’
    • [cds-odata-v2-adapter-proxy@1.4.60] Data format of type cds.DateTime / Edm.DateTimeOffset is switchable to ISO 8601 with proxy option ‘isoDateTime’ or entity annotation ‘@cov2ap.isoDateTime’
    • [cds-odata-v2-adapter-proxy@1.4.60] Data format of type cds.Timestamp / Edm.DateTimeOffset is switchable to ISO 8601 with proxy option ‘isoTimestamp’ or entity annotation ‘@cov2ap.isoTimestamp’
    • [cds-odata-v2-adapter-proxy@1.4.60] Process DateTimeOffset always as UTC information (with ‘Z’)

    Removed

    • [cds-runtime@2.8.1] Reconnect for hdb
    • [cds-runtime@2.8.0] Usage of deprecated req.run
    • [cds-runtime@2.8.0] Support for deprecated config cds.auth.passport. Use cds.requires.auth instead.
    • [cds-runtime@2.8.0] Default $format query option in case of GET requests to remote OData services

    Changelog 2020

    Changelog 2019

    Changelog 2018

    Show/Hide Beta Features