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.kindsfor websockets and merge config - Pass all
cds.env.websocketconfig to adapter and redis implementation - Streamline
cds.envaccess 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
vcapenvironment 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
userconcept to broadcast event, except to current context user via annotation@websocket.useror@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(kindwsonly) - Allow processing of multiple event contexts by annotating event type elements of
manyorarray oftype - Support for type
dateevent contexts as ISO string representation - Support for type
objectevent 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
contextconcept to broadcast to a client subset via annotation@websocket.contextor@ws.context
- Respect tenant isolation for event broadcasting
- Fix maxListeners issue for
wsimplementation - Refactor middlewares and authorization check
- Change
cds.wsto point to CDS websocket server (not the native implementation, usecds.wssorcds.iofor that)
- Option to disable websockets via env configuration
cds.websocket: false - Add configuration schema for websocket environment via
cds.schemafor CDS plugin
- Change
cdswebsocket env fromcds.requires.websockettocds.websocketaccessible 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.allor@ws.broadcast.all
- Remove Redis broadcast for kind
wson 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