Search

Changelog 2019

2019-12-11

Added

  • [cds-services@1.22.0] @sap/cds-ql merged into @sap/cds-services
  • [cds-services@1.22.0] Support for subselects and aliasing for remote service definitions
  • [cds-services@1.22.0] Support for @cds.persistence.table.
  • [cds-services@1.22.0] Actions/functions support $select and $expand query params in odata
  • [cds-services@1.22.0] Support cds annotation on insert and update with ## (e.g @cds.on.update: #user)

Changed

  • [cds-services@1.22.0] Improve error messages for return type validation of custom operations
  • [cds-services@1.22.0] Draft removal is handled in onDraftActivateEvent instead of onDraftActivate
  • [cds-sqlite@1.21.0] Pool options always set to default
  • [cds-hana@1.21.0] Updated version of @sap/cds-sql to 1.21.0

Fixed

  • [cds-services@1.22.0] Check whether service requires authentication
  • [cds-services@1.22.0] Independent passport configs per service
  • [cds-sql@1.21.0] post-processing for columns with function calls
  • [cds-messaging@1.5.0] Receiving chunks can be an array with more than one item

2019-12-03

Added

  • [cds-ql@1.21.1] SELECT.forUpdate to lock columns on a table

Changed

  • [cds-sql@1.20.1] Minor improvements
  • [cds-sqlite@1.20.1] Updated version of @sap/cds-sql to 1.20.1
  • [cds-hana@1.20.1] Updated version of @sap/cds-sql to 1.20.1

Fixed

  • [cds-services@1.21.2] Default values for patch

2019-11-29

Added

  • [cds-services@1.21.1] Authentication strategy debug messages and error messages for erroneous authentication configurations
  • [cds-ql@1.21.0] Acquire now sets session contexts valid-from and valid-to
  • [cds-sqlite@1.20.0] Conversion of hana’s seconds_between function to strftime for sqlite
  • [cds-hana@1.20.0] Method to set session context

Fixed

  • [cds-services@1.21.1] Transform redirect properties in post processing
  • [cds-dk@1.3.0] cds import no longer fails due to Windows paths.
  • [cds-ql@1.21.0] Single ticked entry in function now resolves to val instead of ref
  • [cds-sql@1.20.0] Managed fields were not generated when values are null
  • [cds-sql@1.20.0] Read of active entity with navigation and orderBy with draft specific column (e.g HasActiveEntity)

Removed

  • [cds-messaging@1.4.0] The namespace property of a services does not need to be set anymore

Also see

  • [cds-dk@1.3.0] Changes of @sap/cds 3.20.0
  • [cds-dk@1.3.0] Changes of @sap/cds-sidecar-client 1.1.2

2019-11-27

Added

  • [cds.java@1.1.0] Support Authentication and Authorization by means of @require and @restrict annotations
  • [cds.java@1.1.0] Support mocking application users to use authorization in local development
  • [cds.java@1.1.0] Support Actions and Functions
  • [cds.java@1.1.0] Support @cds.serve.ignore
  • [cds.java@1.1.0] Support @path to specify custom URL paths for CDS services
  • [cds.java@1.1.0] Enable application configuration via application.yml file
  • [cds.java@1.1.0] Improved integration with Spring’s transaction management
  • [cds.java@1.1.0] Support for POST requests via navigations in OData V4
  • [cds.java@1.1.0] Support OData V4 query $filter including correct handling of null, support for path expressions and support for functions “contains”, “startsWith”, “endsWith” and “substring”, “in”, “add”, “sub”, “mul” and “div”

Changed

  • [cds.java@1.1.0] OData V4 is now using OData V4.01 by default
  • [cds.java@1.1.0] afterClose() in ChangeSetListeners is now called after the ChangeSet has been removed from the stack. This enables to open new ChangeSets in the context of this listener method.
  • [cds.java@1.1.0] URLs for services with namespaces are no longer separated into multiple path parts in OData V4
  • [cds.java@1.1.0] The user placeholder in @cds.on.insert / update is now set to the user name instead of the XSUAA user ID
  • [cds.java@1.1.0] Renamed draft activate event to save event. Also introduced draft new, patch and cancel events.
  • [cds.java@1.1.0] Changed the implementation of save event to trigger a create or upsert event, to create/update the active entity.

Fixed

  • [cds.java@1.1.0] Services can now be autowired outside of event handlers
  • [cds.java@1.1.0] Performance improvements in OData V4 adapter code
  • [cds.java@1.1.0] Improved error handling in OData V4 adapter, preventing unnecessary exception logs and improving client-side error messages.
  • [cds.java@1.1.0] Fixed an issue, when the same element was part of the OData V4 $select query and the $expand query.
  • [cds.java@1.1.0] not null can now also be used for fields calculated by the service stack automatically (e.g. @cds.on.insert)
  • [cds.java@1.1.0] Paths to SiblingEntity in draft-enabled entities now work correctly
  • [cds.java@1.1.0] Expand from draft enabled entities to their parent entities now works correctly
  • [cds.java@1.1.0] Activating a draft entity is now only possible on the root draft entity
  • [cds.java@1.1.0] Child draft entities can not be created or updated anymore, if their root draft entity is not in draft-mode
  • [cds.java@1.1.0] Insert and update restrictions are now correctly handled for draft-enabled entities.

2019-11-19

Added

  • [cds-services@1.21.0] Support for reading temporal data on HANA
  • [cds-services@1.21.0] Support ETag at odata-v4
  • [cds-dk@1.2.0] Experimental support for cds init

Changed

  • [cds-ql@1.20.1] Updated version of @sap/cds-sql to 1.19.1
  • [cds-ql@1.20.1] Updated version of @sap/cds-sqlite to 1.19.1
  • [cds-ql@1.20.1] Updated version of @sap/cds-hana to 1.19.1
  • [cds-sqlite@1.19.1] Updated version of @sap/cds-sql to 1.19.1
  • [cds-hana@1.19.1] Updated version of @sap/cds-sql to 1.19.1

Fixed

  • [cds-services@1.21.0] Key generation in deep update
  • [cds-services@1.21.0] Reading DraftAdministrativeData of an active entry without existing draft
  • [cds-sql@1.19.1] Expand adding foreign keys twice

2019-10-30

Changed

  • [cds-services@1.20.1] Updated version of @sap/cds-ql to 1.20.1
  • [cds-ql@1.20.0] Improved UPDATE error messages
  • [cds-sql@1.19.0] Improved deep update

Removed

  • [cds-ql@1.20.0] npm-shrinkwrap.json
  • [cds-sql@1.19.0] npm-shrinkwrap.json
  • [cds-sqlite@1.19.0] npm-shrinkwrap.json
  • [cds-hana@1.19.0] npm-shrinkwrap.json
  • [cds-messaging@1.3.0] npm-shrinkwrap.json
  • [cds-rest@1.3.0] npm-shrinkwrap.json

2019-10-29

Added

  • [cds-services@1.20.0] req.method property which contains the HTTP method
  • [cds-services@1.20.0] Return type validation for custom operations in rest
  • [cds-services@1.20.0] Support for redirected media properties using @Core.IsURL
  • [cds-messaging@1.2.1] headers parameter for .emit

Changed

  • [cds-ql@1.19.2] .run handles arrays in a Promise.all fashion
  • [cds-sqlite@1.18.1] Updated version of @sap/cds-sql to 1.18.1
  • [cds-hana@1.18.1] Updated version of @sap/cds-sql to 1.18.1

Fixed

  • [cds-services@1.20.0] Requests to $metadata
  • [cds-dk@1.1.3] cds watch now uses the same lookup paths for models as cds run
  • [cds-sql@1.18.1] Problems with deep update of a composition of one
  • [cds-sql@1.18.1] Unhandled promise rejections by expand

Removed

  • [cds-services@1.20.0] npm-shrinkwrap.json
  • [cds-services@1.20.0] req._.isPatch

Also see

  • [cds-dk@1.1.3] Changes of @sap/cds 3.18.3

2019-10-16

Added

  • [cds-dk@1.1.0] Added dependencies to express and sqlite3 to ease development
  • [cds-rest@1.2.0] If JWT token provided in context, it is forwarded to Cloud SDK

Changed

  • [cds-services@1.19.1] Improved error messages
  • [cds-dk@1.1.0] Improved cds watch
  • [cds-ql@1.19.0] Updated version of @sap/cds-sql to 1.18.0
  • [cds-ql@1.19.0] Updated version of @sap/cds-sqlite to 1.18.0
  • [cds-ql@1.19.0] Updated version of @sap/cds-hana to 1.18.0
  • [cds-sqlite@1.18.0] Updated version of @sap/cds-sql to 1.18.0
  • [cds-hana@1.18.0] Updated version of @sap/cds-sql to 1.18.0
  • [cds-messaging@1.2.0] Minor improvements
  • [cds-rest@1.2.0] Version of @sap/cloud-sdk-core to 1.10.0
  • [cds-rest@1.2.0] Version of @sap/cloud-sdk-util to 1.10.0

Fixed

  • [cds-services@1.19.1] Empty user attributes in where conditions
  • [cds-services@1.19.1] Queries in custom handler executed twice
  • [cds-ql@1.19.1] Default mainkind in case of compound service (messaging and rest)
  • [cds-sql@1.18.0] Problems with backlinks with custom on condition

Also see

  • [cds-dk@1.1.0] Changes of @sap/cds 3.18.0
  • [cds-dk@1.1.0] Changes of @sap/edm-converters 1.0.19
  • [cds-dk@1.1.0] Changes of @sap/generator-cds 2.8.3
  • [cds-dk@1.1.0] Changes of @sap/cds-sidecar-client 1.1.1

2019-10-02

Added

  • [cds-services@1.19.0] Check of source for navigation-to-one in not Draft case
  • [cds-services@1.19.0] log function in default logger
  • [cds-rest@1.1.3] Dependency to @sap/cloud-sdk-util

Changed

  • [cds-services@1.19.0] Improved error messages
  • [cds-services@1.19.0] Use @sap/odata-server@1.3.8
  • [cds-dk@1.0.6] Updated version of @sap/cds to 3.17.8
  • [cds-dk@1.0.5] Updated version of @sap/cds to 3.17.7
  • [cds-dk@1.0.4] Updated version of @sap/cds to 3.17.6
  • [cds-dk@1.0.3] Updated version of @sap/cds to 3.17.5
  • [cds-dk@1.0.2] Updated version of @sap/cds to 3.17.4

Fixed

  • [cds-services@1.19.0] Draft service having column names from draft admin table
  • [cds-services@1.19.0] POST and PUT on views with renaming and excluding
  • [cds-services@1.19.0] Draft with custom oncond in backlink
  • [cds-services@1.19.0] Batch with multitenancy
  • [cds-rest@1.1.2] npm-shrinkwrap.json containing wrong versions

2019-09-19

Added

  • [cds-messaging@1.1.1] File-based-messaging: If you set the file to true or “default”, the default file name is chosen
  • [cds-rest@1.1.1] Support where, columns and one properties in SELECT

Changed

  • [cds-services@1.18.2] Use @sap/odata-server@1.3.7
  • [cds-dk@1.0.1] Updated version of @sap/cds to 3.17.2
  • [cds-ql@1.18.2] Improved error messages
  • [cds-sql@1.17.1] Improved error messages
  • [cds-sql@1.17.1] Improves SQL Builder for .where clauses
  • [cds-sqlite@1.17.1] Updated version of @sap/cds-sql to 1.17.1
  • [cds-messaging@1.1.1] File-based-messaging: Default file location ist set to /cds-message-box
  • [cds-messaging@1.1.1] File-based-messaging: File configuration is moved to credentials block
  • [cds-messaging@1.1.1] For external (cloud-event-based) services, the data property is now in message.data (before it was message.data.data)
  • [cds-rest@1.1.1] Enforce JSON format in OData
  • [cds-rest@1.1.1] Clean up OData V2 responses

Fixed

  • [cds-ql@1.18.2] Disconnect in multi tenancy scenario
  • [cds-hana@1.17.1] Issue in streaming while using hana-client

2019-09-18

Added

  • [cds-services@1.18.1] Support of authorization restrictions with simple static where clauses (e.g. $user.level = 3) for actions/functions
  • [cds-dk@1.0.0] Initial implementation
  • [cds-dk@1.0.0] cds watch
  • [cds-dk@1.0.0] cds import
  • [cds-sqlite@1.17.0] Streaming into sqlite
  • [cds-messaging@1.1.0] Queue name can be specified by setting the queue property
  • [cds-messaging@1.1.0] You can now use srv.on('my/custom/topic', ()={...}) to register on topics and srv.emit('my/custom/topic, {...}) to emit messages with topics (If your topic contains only one segment, you must write topic:myCustomTopic)
  • [cds-rest@1.1.0] Auto-generate destinations env variable if NODE_ENV !== 'production

Changed

  • [cds-ql@1.18.0] Improved error messages for statements
  • [cds-ql@1.18.0] No more model loading, model needs to be passed now
  • [cds-hana@1.17.0] Updated version of @sap/cds-sql to 1.17.0
  • [cds-messaging@1.1.0] The hashes in generated topic or queue names now only consist of 4 characters
  • [cds-messaging@1.1.0] Default file name of ‘file-based-messaging’ is /message_box

Fixed

  • [cds-services@1.18.1] Draft activation by multiple views
  • [cds-services@1.18.1] Binary processing in rest adapter
  • [cds-ql@1.18.1] Model loading
  • [cds-ql@1.18.0] Nested functions as strings in statements
  • [cds-ql@1.18.0] Options in connect combined with env variables
  • [cds-sql@1.17.0] Expand-to-one in draft context
  • [cds-sql@1.17.0] Expand with multiple orderby elements using window function
  • [cds-sql@1.17.0] UUID generation for INSERT statements
  • [cds-messaging@1.1.0] Special characters in topic and queue names are now omitted
  • [cds-messaging@1.1.0] Non-JSON payloads are now ignored
  • [cds-messaging@1.1.0] OAuthToken request occacionally fails

Removed

  • [cds-ql@1.18.0] Workaround for onCond that used custom object notation
  • [cds-messaging@1.1.0] srv.on.topic and srv.emit.to.topic

2019-09-17

Added

  • [cds.java@1.0.1] Support OData V4 query option $count
  • [cds.java@1.0.1] Support sap-language query parameter to specify the user’s locale

Changed

  • [cds.java@1.0.1] @sap/cds is no longer put into devDependencies on projects generated by the archetype

Fixed

  • [cds.java@1.0.1] Fixed handling of @mandatory and not null on structured data
  • [cds.java@1.0.1] Fixed handling of CqnUpsert statements on services, that also contain draft-enabled entities

2019-09-09

Added

  • [cds-services@1.18.0] Support for @assert.enum annotation
  • [cds-services@1.18.0] Support for media content-type provided as property
  • [cds-services@1.18.0] Support for binary encoding in rest
  • [cds-ql@1.17.0] options.kind can also be an object
  • [cds-ql@1.17.0] Service related functions create, insert, read, update and delete to transaction
  • [cds-ql@1.17.0] Http related functions get, post, put, patch and delete to transaction
  • [cds-messaging@1.0.0] Initial implementation
  • [cds-rest@1.0.0] Initial implementation

Changed

  • [cds-services@1.18.0] Use @sap/odata-server@1.3.5
  • [cds-ql@1.17.0] .transaction(...).run can be used with an array of queries
  • [cds-sqlite@1.16.0] Signature of the Client’s constructor
  • [cds-hana@1.16.0] Signature of the Client’s constructor
  • [cds-messaging@1.0.1] Package ‘@sap/xb-msg-amqp-v100’ is only dev dependency

Fixed

  • [cds-services@1.18.0] READ with @cds.api.ignore annotation
  • [cds-services@1.18.0] Navigation on Entities with multiple keys did not work correctly
  • [cds-services@1.18.0] UPDATE and UPSERT requests with @cds.on.update and @cds.on.insert annotations
  • [cds-services@1.18.0] Logging of missing permissions if no authentication strategy is detected
  • [cds-ql@1.17.0] Update with binary property
  • [cds-sql@1.16.0] Missing sub-select columns in case of UNIONs (e.g. when expanding on the DraftAdminTable)
  • [cds-sql@1.16.0] UUID generation in custom built deep inserts/updates
  • [cds-rest@1.0.2] npm-shrinkwrap.json containing wrong versions

2019-09-05

Added

  • [cds.java@1.0.0] Serving CRUDQ operations via OData V4
  • [cds.java@1.0.0] Support standard OData V4 query options ($top, $skip, $orderby, $select, $expand)
  • [cds.java@1.0.0] Support OData V4 batch requests
  • [cds.java@1.0.0] Added an index page to list entities and services served via OData V4
  • [cds.java@1.0.0] Support Fiori Drafts
  • [cds.java@1.0.0] Auto-generating UUID-based primary keys
  • [cds.java@1.0.0] Support for localized data
  • [cds.java@1.0.0] Support for the managed aspect and @cds.on.insert and @cds.on.update annotations
  • [cds.java@1.0.0] Support for @readonly annotations and similar variants
  • [cds.java@1.0.0] Support for @mandatory and not null
  • [cds.java@1.0.0] Support SQLite databases for local development
  • [cds.java@1.0.0] Support HANA databases for production deployments
  • [cds.java@1.0.0] Support reading database services from default-env.json or VCAP_SERVICE environment variable
  • [cds.java@1.0.0] Event Handler registration with flexible method signatures
  • [cds.java@1.0.0] Maven archetype to boostrap new projects

2019-08-21

Added

  • [cds-services@1.17.0] Error handling for streaming
  • [cds-services@1.17.0] Limited support for CREATE requests via navigations
  • [cds-services@1.17.0] Method .transaction to local client
  • [cds-sql@1.15.0] getDraftCompositionTree to get draft specific composition tree
  • [cds-sqlite@1.15.0] Support multi tenancy for file based database

Changed

  • [cds-services@1.17.0] CREATE with WHERE restriction is supported only with static checks, otherwise rejected
  • [cds-services@1.17.0] Extended error logs from custom handlers
  • [cds-services@1.17.0] next() returns the result of the subsequent handler
  • [cds-services@1.17.0] Use @sap/cds-messaging for sending/receiving events between services
  • [cds-ql@1.16.0] Updated version of @sap/cds-sql to 1.15.0
  • [cds-ql@1.16.0] Updated version of @sap/cds-sqlite to 1.15.0
  • [cds-ql@1.16.0] Updated version of @sap/cds-hana to 1.15.0

Fixed

  • [cds-services@1.17.0] Expand entity with where restriction when clause references a user attribute with multiple values
  • [cds-services@1.17.0] Navigations in get requests using cds.String as key type
  • [cds-services@1.17.0] Deletion of active entries during draft activation
  • [cds-services@1.17.0] Checking security annotations in service and in entities
  • [cds-services@1.17.0] UUID generation for deep inserts/updates
  • [cds-services@1.17.0] Combination of localized data and $count=true in OData requests
  • [cds-services@1.17.0] req.query in case of bound actions and reached via navigation
  • [cds-sql@1.15.0] Deep Operations with custom on-Condition without backlink
  • [cds-sqlite@1.15.0] Streaming supports null values
  • [cds-hana@1.15.0] @sap/hana-client streaming extension is used only if necessary
  • [cds-hana@1.15.0] Streaming supports null values

2019-07-23

Added

  • [cds-services@1.16.0] Batch Update in REST Adapter using an Array as request body
  • [cds-services@1.16.0] Content-Type for streaming using annotation
  • [cds-services@1.16.0] DELETE requests on an entity property sets the property to null
  • [cds-services@1.16.0] Integrity check for DELETE requests
  • [cds-ql@1.15.0] Enhanced statements to be compatible to specification
  • [cds-ql@1.15.0] Support for views with parameters
  • [cds-sqlite@1.14.0] Named binding parameters
  • [cds-sqlite@1.14.0] Support files as db in tenant manager

Changed

  • [cds-services@1.16.0] Behaviour of mock authentication according to documentation
  • [cds-services@1.16.0] cds.env is used by authentication if passport not provided in options
  • [cds-hana@1.14.0] Updated version of @sap/cds-sql to 1.13.0

Fixed

  • [cds-services@1.16.0] Draft actions for localized entities
  • [cds-services@1.16.0] Write localized data via deep update/insert
  • [cds-sql@1.14.0] Combination of expand with instance-based authorization

Removed

  • [cds-ql@1.15.0] generateUUID function and uuiddependency
  • [cds-ql@1.15.0] usage of xsenv for authorization (is provided by cds.env)

2019-07-09

Added

  • [cds-services@1.15.0] Support for views with parameters
  • [cds-services@1.15.0] Support for filter transformation in $apply
  • [cds-services@1.15.0] Support for /$value on primitive properties
  • [cds-sql@1.13.0] Struct Mapper checks subselect for matching columns

Changed

  • [cds-services@1.15.0] Rest adapter accepts non-modelled data fields in the request payload and exposes them in req.data; the fields are ignored in the generic handlers
  • [cds-services@1.15.0] Replaced @sap/cds-ql dependency with uuid
  • [cds-sqlite@1.13.0] Updated version of @sap/cds-sql to 1.13.0
  • [cds-hana@1.13.0] Updated version of @sap/cds-sql to 1.13.0

Fixed

  • [cds-services@1.15.0] Custom handlers by extended tenants
  • [cds-services@1.15.0] Generic handler lookup if multiple services in one .cds file
  • [cds-services@1.15.0] $expand with instance-based authorization
  • [cds-services@1.15.0] result parameter in AfterHandler has correct format (not always an array)
    • [cds-services@1.15.0] CREATE: the created entity
    • [cds-services@1.15.0] UPDATE: the updated entity
    • [cds-services@1.15.0] DELETE: undefined
    • [cds-services@1.15.0] for actions and functions it is the defined return type
  • [cds-services@1.15.0] @cds.on.insert and @cds.on.update could not be used at the same time
  • [cds-services@1.15.0] @cds.on.insert and @cds.on.update in deep insert / update
  • [cds-ql@1.14.0] Bug with nested types in update
  • [cds-ql@1.14.0] Improved logging of SQLs when DEBUG=true is provided

2019-06-24

Added

  • [cds-services@1.14.0] Alternative mock strategy config
  • [cds-services@1.14.0] Support for value ranges annotations for REST adapter
  • [cds-services@1.14.0] Multiple authentication strategies

Changed

  • [cds-services@1.14.0] Handling of deep insert / update for associations
  • [cds-services@1.14.0] Use @sap/odata-server@1.3.4
  • [cds-ql@1.13.0] updated generic-pool to 3.7.1

Fixed

  • [cds-services@1.14.0] Bound actions for draft-enabled entities
  • [cds-services@1.14.0] Combination of $apply with other query parameters

Removed

  • [cds-services@1.14.0] Caching of metadata as odata already does it

2019-06-07

Added

  • [cds-services@1.13.0] Method diff to calculate the actual changes in a CUDrequest or while saving a draft
  • [cds-services@1.13.0] Support authorization annotations for actions and functions
  • [cds-services@1.13.0] Support for default sort order using @cds.default.order or @odata.default.order
  • [cds-services@1.13.0] Support for writing binary stream through odata

Changed

  • [cds-sql@1.12.0] Deep insert/update for to-many associations is not allowed
  • [cds-sqlite@1.12.0] Updated version of @sap/cds-sql to 1.12.0
  • [cds-hana@1.12.0] Updated version of @sap/cds-sql to 1.12.0

Fixed

  • [cds-sql@1.12.0] Property mapper now works for fully-specified columns in SELECT statements

Removed

  • [cds-ql@1.12.0] Removed superficial cache for services

2019-05-24

Added

  • [cds-services@1.12.0] Support for localized in generic handlers (no compositions / associations)
  • [cds-services@1.12.0] Handler registration by path for autoexposed and redirected entities
  • [cds-services@1.12.0] Support for Rest parametric functions and actions

Changed

  • [cds-services@1.12.0] Renamed Service.with to Service.impl
  • [cds-ql@1.11.1] Updated version of @sap/cds-sql to 1.11.1
  • [cds-ql@1.11.1] Updated version of @sap/cds-sqlite to 1.11.1
  • [cds-ql@1.11.1] Updated version of @sap/cds-hana to 1.11.1
  • [cds-sqlite@1.11.1] Updated version of @sap/cds-sql to 1.11.1
  • [cds-hana@1.11.1] Updated version of @sap/cds-sql to 1.11.1

Fixed

  • [cds-services@1.12.0] falsy values as default value
  • [cds-services@1.12.0] req.info in case of draft actions
  • [cds-services@1.12.0] Scopes are checked before custom before handlers
  • [cds-sql@1.11.1] Cases with multiple brackets during onCond generation

2019-05-16

Changed

  • [cds-services@1.11.1] service.options is now a public property (previously private as service._options)
  • [cds-sqlite@1.11.0] Bulk inserts are now traced
  • [cds-hana@1.11.0] Improved performance by reducing calls to process.nextTick()

Fixed

  • [cds-sql@1.11.0] Annotate elements with both @cds.on.insert and @cds.on.update

2019-05-15

Added

  • [cds-services@1.11.0] read-only field annotations validation
  • [cds-services@1.11.0] Deactivate ResourceJsonSerializer in production
  • [cds-services@1.11.0] Validation for content type in rest adapter
  • [cds-services@1.11.0] Support for OData request path expressions à la Authors/1

Changed

  • [cds-services@1.11.0] Use @sap/odata-server@1.3.3

Fixed

  • [cds-ql@1.10.2] service.deploy

2019-05-08

Added

  • [cds-services@1.10.2] Support for @Capabilities annotations

Changed

  • [cds-services@1.10.2] Improved performance by reducing calls to process.nextTick()
  • [cds-ql@1.10.1] More resilience towards setting the model manually in service

Fixed

  • [cds-services@1.10.2] Unbound actions and functions in REST

2019-05-07

Added

  • [cds-services@1.10.1] error handling in case mtx errors
  • [cds-ql@1.10.0] Functions create, insert, read, update and delete added to service
  • [cds-ql@1.10.0] Streaming support via service.stream()
  • [cds-sql@1.10.0] Support for composition to-one using $self
  • [cds-sql@1.10.0] Service functions update, read, insert, delete and create
  • [cds-sqlite@1.10.0] Mitigation for loosely typed columns and imported data
  • [cds-sqlite@1.10.0] service related functions
  • [cds-sqlite@1.10.0] Streaming support via client.stream()
  • [cds-hana@1.10.0] Service related functions

Changed

  • [cds-services@1.10.1] Handler registration using .with (as done in reuse scenarios)
  • [cds-ql@1.10.0] instanceof replaced with typeof in some cases

Fixed

  • [cds-services@1.10.1] Using $select=association in odata-v4 adapter
  • [cds-sql@1.10.0] Expand with compound keys and orderby where order column is not requested
  • [cds-sql@1.10.0] Deeply nested expands

2019-05-03

Added

  • [cds-services@1.10.0] Support for reading streams in odata v4
  • [cds-services@1.10.0] Support for batch create in REST adapter
  • [cds-services@1.10.0] Support for combination of scopes and instance based authorization checks
  • [cds-services@1.10.0] Fiori Draft event SAVE as alias for CREATE and UPDATE
  • [cds-ql@1.8.0] Support for transactions on multiple data sources
  • [cds-ql@1.8.0] Service.stream() provided for cds.stream()
  • [cds-ql@1.7.0] Added more transaction functions (tx.foreach, tx.commit, tx.rollback)
  • [cds-ql@1.5.1] Support for sql functions lower, upper, trim, length in $filter and $orderby
  • [cds-ql@1.5.1] Support .and for where conditions
  • [cds-ql@1.2.0] Allow Arrays in UPDATE.set()
  • [cds-ql@1.1.0] Support for full join in SELECT
  • [cds-ql@1.1.0] Support for inline
  • [cds-ql@1.0.0] tenantId can be specified at disconnect
  • [cds-ql@1.0.0] model property can specified at connect
  • [cds-ql@1.0.0] entities and model of connection can be accessed
  • [cds-ql@0.12.0] .where supports object notation with arrays of and/or
  • [cds-ql@0.11.0] Support of string values bei fluid usage in .where
  • [cds-ql@0.10.0] Auto lookup of db service if no configuration given at connect but is available at environmental VCAP_SERVICES
  • [cds-ql@0.10.0] Support of an array as argument in .where
  • [cds-ql@0.9.0] Added support for .columns() in SELECT
  • [cds-ql@0.9.0] where/or/having support fluid API based on the first argument
  • [cds-ql@0.9.0] init.js at reuse model can be used by deploy and may export an async function
  • [cds-ql@0.8.0] Pool and Pool resources are evicted by default
  • [cds-ql@0.8.0] .from, .where and .having support partial CQN
  • [cds-ql@0.8.0] Inline support at CQN of where and columns in Select
  • [cds-ql@0.8.0] Functions .values and .entries at INSERT
  • [cds-ql@0.8.0] Support of .run().then.run() shortcut
  • [cds-ql@0.8.0] Debug is printed in case environmental variable DEBUG=true is set
  • [cds-ql@0.8.0] SELECT(, ).from(<table>)
  • [cds-ql@0.8.0] SELECT.from(<table>).where({: CQN})
  • [cds-ql@0.8.0] Support for unary and binary expressions in contains
  • [cds-ql@0.8.0] Support for expand with string/array notation in SELECT.columns (e. g. SELECT.from(‘Books’, [‘author’, [‘name’]]))
  • [cds-ql@0.8.0] Support for excluding in service projection
  • [cds-ql@0.6.0] Multi tenancy support
  • [cds-ql@0.5.0] support .deploy to automatically set up database artifacts
  • [cds-ql@0.5.0] support of SQL functions lower and contains in .where
  • [cds-ql@0.5.0] support for navigation over entities with multiple keys
  • [cds-ql@0.5.0] SELECT allows partial CQNs as columns
  • [cds-ql@0.5.0] .run can execute blocks of statements
  • [cds-ql@0.4.0] support DROP statements
  • [cds-ql@0.4.0] connection pool validates resources before provisioning
  • [cds-ql@0.4.0] support .foreach
  • [cds-ql@0.4.0] cds used via injection
  • [cds-ql@0.4.0] support fluid usage of .where and .having in DML statements
  • [cds-ql@0.3.0] allow CQN as parameter in SELECT.from
  • [cds-ql@0.3.0] support CREATE statements
  • [cds-ql@0.2.0] support for SELECT.one
  • [cds-ql@0.2.0] usage of npm-shrinkwrap
  • [cds-sql@1.7.0] Support for ‘list’ in function arguments
  • [cds-sql@1.7.0] Support for from: { ref: [] } in DeleteBuilder
  • [cds-sql@1.7.0] Support for Compositions with custom on condition (no and/or)
  • [cds-sql@1.6.0] Support for ‘func’ as defined in cqn spec
  • [cds-sql@1.6.0] Support for ‘list’ in expressions
  • [cds-sql@1.6.0] Support for deep insert with recursive entities
  • [cds-sql@1.5.1] Support for sql functions lower, upper, trim, length in $filter and $orderby
  • [cds-sql@1.5.0] Support for INSERT into ... SELECT ...
  • [cds-sql@1.4.0] Construct SQLs from CQN which includes placeholder
  • [cds-sql@1.4.0] Support draft scenario ‘Locked by another user’
  • [cds-sql@1.3.0] Support for compound keys
  • [cds-sql@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents
  • [cds-sql@1.2.0] Reversed cascade delete
  • [cds-sql@1.1.0] Support Deep Document CQNs
  • [cds-sql@1.1.0] Support for inline
  • [cds-sql@1.1.0] Post processing with CQN that uses select *
  • [cds-sql@0.11.0] Expanding of drafts entries at list pages
  • [cds-sql@0.11.0] Expanding of drafts entries at object pages
  • [cds-sql@0.10.0] Support of now/user annotations in structured type
  • [cds-sql@0.10.0] Support of expand in combination with contains at where
  • [cds-sql@0.10.0] Support of LIMIT/OFFSET, ORDER BY and WHERE at expanded items
  • [cds-sql@0.10.0] Custom types on top of associations
  • [cds-sql@0.10.0] Support columns: [‘*’] at CQN
  • [cds-sql@0.9.2] SQL generation for SELECT statements that include UNION
  • [cds-sql@0.8.0] Support for exists in combination with expand
  • [cds-sql@0.8.0] Support column annotations ‘@cds.on.insert’, ‘@cds.on.update’, ‘@odata.on.insert’ and ‘@odata.on.update’
  • [cds-sql@0.8.0] Post processing of complex and structured types
  • [cds-sql@0.8.0] Support for unary and binary expressions in contains
  • [cds-sql@0.8.0] Support for CQN partials at .where
  • [cds-sql@0.7.0] CREATE supports type cds.Composition
  • [cds-sql@0.7.0] Expand supports type cds.Composition
  • [cds-sql@0.7.0] Support for structured elements <!- [cds-sql@0.6.0]- Was never documented publicly: - Shortcut for running queries with run().then.run() –>
  • [cds-sql@0.5.0] custom builders can now be provided via options in SQL Builder
  • [cds-sql@0.5.0] support create with views
  • [cds-sql@0.5.0] added SQL Error to hide the internal information from other errors
  • [cds-sql@0.5.0] support structured elements
  • [cds-sql@0.5.0] support for complex types in Create Builder
  • [cds-sql@0.5.0] BaseClient has method .deploy to easily create database artifacts from csn model
  • [cds-sql@0.5.0] support for SQL function contains by converting it using like
  • [cds-sql@0.5.0] support execution of blocks of statements
  • [cds-sql@0.4.0] BaseClient has methods .run & .foreach & .isValid
  • [cds-sql@0.3.0] support CREATE statements
  • [cds-sql@0.2.0] usage of npm-shrinkwrap
  • [cds-sqlite@1.8.0] Support for odata method functions
  • [cds-sqlite@1.4.0] .execute supports placeholders in CQN
  • [cds-sqlite@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents
  • [cds-sqlite@1.1.0] Support Deep Document CQNs
  • [cds-sqlite@1.0.3] credentials.database can be used instead of parameters host and url
  • [cds-sqlite@0.6.0] cds.Timestamp and cds.DateTime converted into ISO time format when reading
  • [cds-sqlite@0.6.0] Support for abstract placeholders #now and #user
  • [cds-sqlite@0.5.0] support execution of blocks of statements
  • [cds-sqlite@0.5.0] support plain mode of SQL name mapping
  • [cds-sqlite@0.3.0] support CREATE statements
  • [cds-sqlite@0.2.0] usage of npm-shrinkwrap
  • [cds-hana@1.9.0] client.stream() for streaming large binaries
  • [cds-hana@1.4.0] validate_certificate and hostname_in_certificate to override certificate validation in local development mode
  • [cds-hana@1.4.0] .execute supports placeholders in CQN
  • [cds-hana@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents
  • [cds-hana@1.1.0] Support Deep Document CQNs
  • [cds-hana@0.7.0] Fallback in case certificate is used instead of ca at connect options
  • [cds-hana@0.6.0] Full SQL including eventual parameters to stack trace error message
  • [cds-hana@0.6.0] Support for abstract placeholders #now and #user
  • [cds-hana@0.6.0] Support for unary and binary expressions in contains
  • [cds-hana@0.5.0] Hana specific SQL generation for DROP statements
  • [cds-hana@0.5.0] Hana specific SQL generation for SELECT statements in case of ‘contains’
  • [cds-hana@0.5.0] Added SQL Error to hide the internal information from other errors
  • [cds-hana@0.5.0] support execution of blocks of statements
  • [cds-hana@0.5.0] support plain mode of SQL name mapping
  • [cds-hana@0.3.0] usage of npm-shrinkwrap

Changed

  • [cds-services@1.10.0] Improved performance
  • [cds-ql@1.9.0] Select.one now adds property one instead of limit to CQN
  • [cds-ql@1.9.0] Transactions can be created (i.e. are not promisified) although initial model loading is not yet finished
  • [cds-ql@1.8.0] Entities can be accessed via short name (if only one service in model)
  • [cds-ql@1.7.1] Updated version of @sap/cds-hana to 1.7.1
  • [cds-ql@1.7.0] Prevent app crash if tenant cannot connect
  • [cds-ql@1.7.0] Service hands over model to clients
  • [cds-ql@1.6.0] Updated version of @sap/cds-sql to 1.6.0
  • [cds-ql@1.6.0] Updated version of @sap/cds-sqlite to 1.6.0
  • [cds-ql@1.6.0] Updated version of @sap/cds-hana to 1.6.0
  • [cds-ql@1.5.0] Minimum node version 8.9.0
  • [cds-ql@1.4.0] Use latest version of @sap/cds-sql
  • [cds-ql@1.3.0] Use latest version of uuid and @sap/cds-sql
  • [cds-ql@1.0.0] Connect option driver is renamed to kind
  • [cds-ql@1.0.0] Connect options regarding connecting moved to ‘credentials’ property instead of one flat object
  • [cds-ql@0.12.0] Refactoring and changes due to updated dependencies
  • [cds-ql@0.9.1] Improved npm-shrinkwrap
  • [cds-ql@0.9.0] any object filter combination of @sap/xsenv can be used to search the db service
  • [cds-ql@0.8.1] Require submodules on demand
  • [cds-ql@0.8.0] .where and .having can be used multiple times instead of .where.and or .having.and
  • [cds-ql@0.8.0] .or can be used directly: Instead of calling where.or you can call or.or
  • [cds-ql@0.5.0] support for latest CQN spec changes
  • [cds-ql@0.5.0] renamed .hasPool to .hasSession
  • [cds-ql@0.4.0] connect options aligned to spec
  • [cds-ql@0.4.0] support for latest CQN spec changes
  • [cds-ql@0.4.0] refactored .connect to return undefined instead of Promise
  • [cds-ql@0.4.0] refactored .acquire to wait for .connect before providing a client
  • [cds-ql@0.2.0] made generateUUID synchronous
  • [cds-sql@1.8.0] Minor improvements
  • [cds-sql@1.8.0] alphabetical aliases instead of md5 in case of expand
  • [cds-sql@1.5.0] Minimum node version 8.9.0
  • [cds-sql@1.5.0] Improve expand performance
  • [cds-sql@1.3.0] Improve inline detection
  • [cds-sql@1.0.3] Throw root cause instead of CqnParseError
  • [cds-sql@1.0.3] Throw root cause instead of SqlError
  • [cds-sql@0.9.2] Improved npm-shrinkwrap
  • [cds-sql@0.9.0] .getColumns includes annotations
  • [cds-sql@0.9.0] .deploy of BaseClient uses CDS-Compiler to do database setup
  • [cds-sql@0.8.1] Require submodules on demand
  • [cds-sql@0.8.0] Renamed SELECT.elements to SELECT.columns
  • [cds-sql@0.8.0] SQL Error provides info about the executed query and values in logs
  • [cds-sql@0.5.0] quotation in SQL generation is now configurable (default is plain)
  • [cds-sql@0.5.0] support for latest CQN spec changes
  • [cds-sql@0.4.0] support for latest CQN spec changes
  • [cds-sql@0.2.0] improved performance for expand in case of one-to-many relations
  • [cds-sqlite@1.9.0] Updated version of @sap/cds-sql to 1.9.0
  • [cds-sqlite@1.7.0] Updated version of @sap/cds-sql to 1.7.0
  • [cds-sqlite@1.6.0] Updated version of @sap/cds-sql to 1.6.0
  • [cds-sqlite@1.5.1] Updated version of @sap/cds-sql to 1.5.1
  • [cds-sqlite@1.5.0] Minimum node version 8.9.0
  • [cds-sqlite@1.5.0] Improve expand performance
  • [cds-sqlite@1.3.0] Use latest version of @sap/cds-sql
  • [cds-sqlite@1.0.3] Throw db error instead of wrapping it in Sql Error
  • [cds-sqlite@1.0.3] Throw an error if database is not defined instead of fallback to memory
  • [cds-sqlite@0.9.0] Updated version of @sap/cds-sql to 0.11.0
  • [cds-sqlite@0.7.1] Improved npm-shrinkwrap
  • [cds-sqlite@0.7.0] API documentation updated
  • [cds-sqlite@0.6.1] Require submodules on demand
  • [cds-sqlite@0.5.0] Added SQL Error to hide the internal information from other errors
  • [cds-sqlite@0.4.0] connect options aligned to spec
  • [cds-sqlite@0.4.0] support for latest CQN spec changes
  • [cds-sqlite@0.2.0] improved performance
  • [cds-hana@1.9.0] Make hdb default driver
  • [cds-hana@1.8.0] Updated version of @sap/cds-sql to 1.8.0
  • [cds-hana@1.7.1] Updated version of @sap/cds-sql to 1.7.0
  • [cds-hana@1.6.0] Updated version of @sap/cds-sql to 1.6.0
  • [cds-hana@1.5.1] Updated version of @sap/cds-sql to 1.5.1
  • [cds-hana@1.5.0] Minimum node version 8.9.0
  • [cds-hana@1.5.0] Improve expand performance
  • [cds-hana@1.3.0] Use latest version of @sap/cds-sql
  • [cds-hana@1.0.3] Throw db error instead of wrapping it in Sql Error
  • [cds-hana@1.0.3] Use options.credentials instead of options directly
  • [cds-hana@0.8.0] Updated version of @sap/cds-sql to 0.10.0
  • [cds-hana@0.7.1] Improved npm-shrinkwrap
  • [cds-hana@0.7.0] API documentation updated
  • [cds-hana@0.6.1] Require submodules on demand
  • [cds-hana@0.6.0] Increased default option of max. db connection clients to 100
  • [cds-hana@0.4.0] connect options aligned to spec
  • [cds-hana@0.4.0] support for latest CQN spec changes
  • [cds-hana@0.3.0] improved performance for expand in case of one-to-many relations

Fixed

  • [cds-ql@1.5.1] Use .entities from reflected models
  • [cds-ql@1.0.0] Read drafts with $filter/$search
  • [cds-ql@0.11.0] Promise rejection in Service.run
  • [cds-ql@0.8.0] Issue with service renaming attributes
  • [cds-ql@0.8.0] Issue with ‘exists’ in object mode
  • [cds-ql@0.7.0] Race condition at running block statements in transactional mode
  • [cds-ql@0.7.0] Brackets are only added to where or having if needed
  • [cds-ql@0.5.0] CQL navigation on entity
  • [cds-ql@0.5.0] CDS injection
  • [cds-ql@0.5.0] .where with nested ORs and ANDs if provided as object input parameter
  • [cds-ql@0.4.1] Issue with postinstall script in package.json
  • [cds-sql@1.9.0] Cascading Delete CQN generation in case of transitive model
  • [cds-sql@1.7.0] Expanding of on active draft documents lists without $filter
  • [cds-sql@1.7.0] Expand of entities with compound key might return duplicate results
  • [cds-sql@1.6.0] Recursion in composition tree
  • [cds-sql@1.6.0] Added brackets in oncond
  • [cds-sql@1.6.0] Fixed is null / is not null in oncond
  • [cds-sql@1.6.0] Falsy values at expanded elements
  • [cds-sql@1.6.0] Fixed expand with selected column ‘IsActiveEntity’
  • [cds-sql@1.1.0] Expand in combination with left outer joins
  • [cds-sql@1.0.3] Binary generated wrong SQL
  • [cds-sql@1.0.3] Complex CQN with draft and expand for Hana
  • [cds-sql@1.0.3] Expand modifies copy instead of original CQN
  • [cds-sql@1.0.3] Expand with missing columns
  • [cds-sql@1.0.3] Expand in combination with limit
  • [cds-sql@1.0.3] Post processing of DateTime and Boolean
  • [cds-sql@0.9.2] Postprocessing breaks without CSN
  • [cds-sql@0.9.0] SQL generation in case of CREATE statements using structured elements containing managed associations
  • [cds-sql@0.9.0] Postprocessing of expand to many in plain mode
  • [cds-sql@0.8.0] Deep expands with more than 10 levels
  • [cds-sql@0.8.0] Expand to composition and further to one association
  • [cds-sql@0.8.0] Structured types at expand could lead to ambiguity
  • [cds-sql@0.6.0] SQL generation in case of combination of navigation and expand in SELECT statements
  • [cds-sql@0.5.0] column generation for managed associations
  • [cds-sql@0.5.0] CREATE statement with managed association as key
  • [cds-sql@0.5.0] resolve $self for expand
  • [cds-sql@0.5.0] 1:1 associations can be null
  • [cds-sql@0.3.0] auto-generated columns in expand=* requests
  • [cds-sql@0.2.0] ambiguous column name when having multiple expands on same entity
  • [cds-sqlite@1.0.3] Bulk Insert with $user / $now
  • [cds-sqlite@1.0.3] Post processing of Binary, Boolean, DateTime and Integer64
  • [cds-sqlite@0.8.0] CQN queries with contains and expand (limitation: expanded columns cannot be part of contains)
  • [cds-sqlite@0.6.0] SQL error hides internal error messages and provides details in log
  • [cds-sqlite@0.5.0] CDS injection
  • [cds-hana@1.0.3] Post processing of Binary, Boolean and Integer64
  • [cds-hana@0.9.0] limit and order when expanding a to many association
  • [cds-hana@0.6.0] SQL error hides internal error messages and provides details in log
  • [cds-hana@0.5.1] Escaping of special characters in case of ‘contains’
  • [cds-hana@0.5.0] CDS injection

Removed

  • [cds-ql@0.8.0] .and for .where/.having
  • [cds-ql@0.7.0] Statement blocks cannot be run with “sequential” pragma anymore (use “serialized” instead)
  • [cds-hana@1.7.0] Hana specific SQL generation for SELECT statements in case of ‘contains’

2016-04-16

Added

  • [cds-services@1.9.0] ‘mock’ strategy accepts any user credentials if none configured
  • [cds-services@1.9.0] Support for pseudo role ‘system-user’
  • [cds-services@1.9.0] Additional cases at security annotations
  • [cds-services@1.9.0] sap-statistics=true as query or header parameter will yield performance statistics
  • [cds-services@1.9.0] $top and $skip at rest adapter

Changed

  • [cds-services@1.9.0] Handlers for failed events must only have the error object as an argument
  • [cds-services@1.9.0] Handlers for succeeded and done events must have no argument at all
  • [cds-services@1.9.0] used new function notation in generated CQN
  • [cds-services@1.9.0] Reduction of round trips to data source by not using transactional blocks at reading requests

Fixed

  • [cds-services@1.9.0] Deep operations in REST adapter
  • [cds-services@1.9.0] Draft edit in case one composition has no entries

2019-04-03

Added

  • [cds-ql@1.8.0] Support for transactions on multiple data sources
  • [cds-ql@1.8.0] Service.stream() provided for cds.stream()
  • [cds-sqlite@1.8.0] Support for odata method functions

Changed

  • [cds-ql@1.8.0] Entities can be accessed via short name (if only one service in model)
  • [cds-sql@1.8.0] Minor improvements
  • [cds-sql@1.8.0] alphabetical aliases instead of md5 in case of expand
  • [cds-hana@1.8.0] Updated version of @sap/cds-sql to 1.8.0

Fixed

  • [cds-services@1.8.1] Events are populated through req.event

2019-03-29

Added

  • [cds-services@1.8.0] after handlers using each or row also work with keyword async

Changed

  • [cds-services@1.8.0] Generic onCommit or onRollback handlers end the transaction of potentially multiple db sessions in the request context
  • [cds-services@1.8.0] Merged client adapter into service

Fixed

  • [cds-services@1.8.0] Errors not of type Error are not recognized
  • [cds-services@1.8.0] req.target in case of a READ request of the DraftAministrativeData entity

2019-03-25

Added

  • [cds-services@1.7.2] Element/Field annotated with @mandatory or @FieldControl.Mandatory is treated as not null
  • [cds-services@1.7.2] Added ‘mock’ strategy for passport
  • [cds-services@1.7.2] Complex cases at security annotations
  • [cds-services@1.7.2] When registering custom handlers for transactional draft events the target property of the req parameter now points to the draft

2019-03-20

Added

  • [cds-ql@1.7.0] Added more transaction functions (tx.foreach, tx.commit, tx.rollback)
  • [cds-sql@1.7.0] Support for ‘list’ in function arguments
  • [cds-sql@1.7.0] Support for from: { ref: [] } in DeleteBuilder
  • [cds-sql@1.7.0] Support for Compositions with custom on condition (no and/or)

Changed

  • [cds-ql@1.7.1] Updated version of @sap/cds-hana to 1.7.1
  • [cds-ql@1.7.0] Prevent app crash if tenant cannot connect
  • [cds-ql@1.7.0] Service hands over model to clients
  • [cds-sqlite@1.7.0] Updated version of @sap/cds-sql to 1.7.0
  • [cds-hana@1.7.1] Updated version of @sap/cds-sql to 1.7.0

Fixed

  • [cds-services@1.7.1] Passport is registered correctly in case of cds.serve('all')
  • [cds-services@1.7.1] User is now set before it is needed
  • [cds-sql@1.7.0] Expanding of on active draft documents lists without $filter
  • [cds-sql@1.7.0] Expand of entities with compound key might return duplicate results

Removed

  • [cds-hana@1.7.0] Hana specific SQL generation for SELECT statements in case of ‘contains’

2019-03-19

Added

  • [cds-services@1.7.0] req.event contains the type or name of the incoming request
  • [cds-services@1.7.0] Support for specifying a target in req.error and req.reject
  • [cds-services@1.7.0] req.info to collect info messages in odata-v4. Eventually, they result in the sap-messages header.
  • [cds-services@1.7.0] Annotation @Search.fuzzinessThreshold to configure Fuzzy Search
  • [cds-services@1.7.0] Support for Extensibility
  • [cds-services@1.7.0] Event handlers for events succeeded, failed and done can be registered at the service event context
  • [cds-services@1.7.0] Support for OData Arithmetic Functions, Date and Time Functions, String Functions
  • [cds-sql@1.6.0] Support for ‘func’ as defined in cqn spec
  • [cds-sql@1.6.0] Support for ‘list’ in expressions
  • [cds-sql@1.6.0] Support for deep insert with recursive entities

Changed

  • [cds-services@1.7.0] before handlers are executed in parallel
  • [cds-services@1.7.0] req.error returns a generic error with all collected errors in .details
  • [cds-services@1.7.0] passport method is extracted to the package interface
  • [cds-ql@1.6.0] Updated version of @sap/cds-sql to 1.6.0
  • [cds-ql@1.6.0] Updated version of @sap/cds-sqlite to 1.6.0
  • [cds-ql@1.6.0] Updated version of @sap/cds-hana to 1.6.0
  • [cds-sqlite@1.6.0] Updated version of @sap/cds-sql to 1.6.0
  • [cds-hana@1.6.0] Updated version of @sap/cds-sql to 1.6.0

Fixed

  • [cds-services@1.7.0] No SQL error in case key is generated by DB like done with sequences
  • [cds-sql@1.6.0] Recursion in composition tree
  • [cds-sql@1.6.0] Added brackets in oncond
  • [cds-sql@1.6.0] Fixed is null / is not null in oncond
  • [cds-sql@1.6.0] Falsy values at expanded elements
  • [cds-sql@1.6.0] Fixed expand with selected column ‘IsActiveEntity’

2019-02-25

Added

  • [cds-services@1.6.0] Support for Lambda operators

Fixed

  • [cds-services@1.6.0] CUD operation with association as key of entity

2019-02-13

Added

  • [cds-services@1.5.2] Support for sql functions lower, upper, trim, length in $filter and $orderby
  • [cds-ql@1.5.1] Support for sql functions lower, upper, trim, length in $filter and $orderby
  • [cds-ql@1.5.1] Support .and for where conditions
  • [cds-sql@1.5.1] Support for sql functions lower, upper, trim, length in $filter and $orderby

Changed

  • [cds-services@1.5.2] Sync functions at before and after handler are not wrapped in promise anymore
  • [cds-services@1.5.2] req.reject does not throw anymore
  • [cds-services@1.5.2] @sap/audit-logging only used in case the service is provided via VCAP_SERVICES
  • [cds-services@1.5.2] Unknown query parameters are not longer rejected at REST adapter
  • [cds-sqlite@1.5.1] Updated version of @sap/cds-sql to 1.5.1
  • [cds-hana@1.5.1] Updated version of @sap/cds-sql to 1.5.1

Fixed

  • [cds-services@1.5.2] OData version for $metadata
  • [cds-services@1.5.2] Multiple atomicity groups should not share same transaction block
  • [cds-services@1.5.2] Brackets in $filter now work correctly
  • [cds-ql@1.5.1] Use .entities from reflected models

2019-02-12

Changed

  • [cds-services@1.5.1] @sap/audit-logging only used in case the service is provided via VCAP_SERVICES

Fixed

  • [cds-services@1.5.1] No integrity checks when running without db connection

2019-02-07

Added

  • [cds-services@1.5.0] Set foreign keys for POST via navigation-to-many and modeled with $self
  • [cds-services@1.5.0] Support content id placeholders in odata v4 batch requests
  • [cds-services@1.5.0] Support complex cases at security annotations
  • [cds-sql@1.5.0] Support for INSERT into ... SELECT ...
  • [cds-sql@1.4.0] Construct SQLs from CQN which includes placeholder
  • [cds-sql@1.4.0] Support draft scenario ‘Locked by another user’
  • [cds-sqlite@1.4.0] .execute supports placeholders in CQN
  • [cds-hana@1.4.0] validate_certificate and hostname_in_certificate to override certificate validation in local development mode
  • [cds-hana@1.4.0] .execute supports placeholders in CQN

Changed

  • [cds-services@1.5.0] Referential integrity checks do not run for associations with specified on conditions
  • [cds-services@1.5.0] Rest adapter now ignores query parameters
  • [cds-services@1.5.0] Minimum node version 8.9.0
  • [cds-services@1.5.0] .data and .query can be overwritten
  • [cds-ql@1.5.0] Minimum node version 8.9.0
  • [cds-ql@1.4.0] Use latest version of @sap/cds-sql
  • [cds-sql@1.5.0] Minimum node version 8.9.0
  • [cds-sql@1.5.0] Improve expand performance
  • [cds-sqlite@1.5.0] Minimum node version 8.9.0
  • [cds-sqlite@1.5.0] Improve expand performance
  • [cds-hana@1.5.0] Minimum node version 8.9.0
  • [cds-hana@1.5.0] Improve expand performance

Fixed

  • [cds-services@1.5.0] Insert with excluded properties having default values
  • [cds-services@1.5.0] Delete active documents in a draft-enabled service without a draft
  • [cds-services@1.5.0] Path segment /$count respects $filter

2019-01-22

Added

  • [cds-services@1.4.0] When registering service handlers, entities can be given as a list
  • [cds-services@1.4.0] Support requests to /SiblingEntity in draft
  • [cds-services@1.4.0] Annotation @cds.integrity.skip to disable reference integrity checks (experimental!)
  • [cds-sql@1.3.0] Support for compound keys

Changed

  • [cds-services@1.4.0] Replaced @sap/odata-v4 by @sap/odata-server
  • [cds-ql@1.3.0] Use latest version of uuid and @sap/cds-sql
  • [cds-sql@1.3.0] Improve inline detection
  • [cds-sqlite@1.3.0] Use latest version of @sap/cds-sql
  • [cds-hana@1.3.0] Use latest version of @sap/cds-sql

2019-01-11

Added

  • [cds-services@1.3.0] Authorization filtering and user attributes as lists
  • [cds-services@1.3.0] Referential integrity checks
  • [cds-ql@1.2.0] Allow Arrays in UPDATE.set()
  • [cds-sql@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents
  • [cds-sql@1.2.0] Reversed cascade delete
  • [cds-sqlite@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents
  • [cds-hana@1.2.0] Set default values in case of CREATE, UPSERT and adding a child in deep documents

Fixed

  • [cds-services@1.3.0] No fallback for user identifier in case the user object is empty
  • [cds-services@1.3.0] Reading draft administrative data