All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add
cds.requires.kinds
for websockets and merge config - Pass all
cds.env.websocket
config to adapter and redis implementation - Streamline
cds.env
access in socket and redis implementation - Refactor unit-tests to be grouped by implementation
- Fix access to undefined request user for unauthenticated requests
- Redis lookup via custom
vcap
environment configuration
- First major release
- Exclude a client socket instance via a consumer-defined identifier
- Clear existing redis clients before shutdown
- Call unknown adapter implementations for Socket.IO
- Normalize logging layer
- Add option to activate Redis adapter in other (non-local) environments (e.g. Kyma)
- Fix Redis re-connect behavior to prevent Redis overload
- Pass adapter configurations to Redis client creation
- Allows to provide event emit headers to dynamically control websocket processing without annotations
- Describe the usage of CDS persistent outbox for websocket events
- Introduce optional
user
concept to broadcast event, except to current context user via annotation@websocket.user
or@ws.user
- Allow to suppress CRUD event broadcast via
@websocket.broadcast = 'none'
or@ws.broadcast = 'none'
- Match CRUD broadcast event with CDS service event to filter broadcast data
- Fix leakage of internal processing information to websocket clients
- Allow custom server implementations via
cds.websocket.impl
- Allow custom adapter implementations via
cds.websocket.adapter.impl
(kindws
only) - Allow processing of multiple event contexts by annotating event type elements of
many
orarray of
type - Support for type
date
event contexts as ISO string representation - Support for type
object
event contexts as JSON stringified representation
- Correct version confusion (0.5.1 uses 0.6.0 in package.json)
- Fix message wrapping for Redis distribution (
kind: ws
)
- Provide user context in examples and tests, to verify authorization flow
- Introduce optional
context
concept to broadcast to a client subset via annotation@websocket.context
or@ws.context
- Respect tenant isolation for event broadcasting
- Fix maxListeners issue for
ws
implementation - Refactor middlewares and authorization check
- Change
cds.ws
to point to CDS websocket server (not the native implementation, usecds.wss
orcds.io
for that)
- Option to disable websockets via env configuration
cds.websocket: false
- Add configuration schema for websocket environment via
cds.schema
for CDS plugin
- Change
cds
websocket env fromcds.requires.websocket
tocds.websocket
accessible viacds.env.websocket
npm
- Add overview graphic
- Disable Redis per default locally, option to enable it
- Option to broadcast CRUD post-events to all sockets via
@websocket.broadcast.all
or@ws.broadcast.all
- Remove Redis broadcast for kind
ws
on message receiving
- Broadcast service events without connected sockets via Redis
- Document base websocket server class
- Set websocket default kind to
ws
- Mock request response more complete
- More robust setup and error handling
- Redis off per default
- Refactoring
- Websocket events in non-websocket services
- Support multiple endpoints
- Initial release