This project adheres to Semantic Versioning.
- Removed Node.js 18 support.
- Removed backend control.
- Moved to number as subprotocol and remove
Context#isSubprotocol(). - Moved to Logux Core 0.10 and Logux Protocol 5.
- Changed custom HTTP listener API.
- Added API to use custom Logux server node class.
- Added
Server#sendOnConnect(). - Reduced dependencies.
- Changed color auto-detection algorithm to
util.styleText. - Fixed brute-force lock issue during tests.
- Fixed vulnerability audit by moving to
cookie0.7.
- Removed Node.js 14 and Node.js 16 support.
- Moved to Logux Core 0.9.
- Added action processing queues (by @VladBrok).
- Added
unauthenticatedevent (by @erictheswift).
- Fixed another Node.js 14 regression.
- Fixed Node.js 14 regression.
- Replaced
ipto fix vulnerability. - Updated dependencies.
- Moved
ipto2.xto fix vulnerability.
- Fixed
x/changedfilter inaddSyncMap(by Eduard Aksamitov).
- Fixed async action’s filter in channel (by Eduard Aksamitov).
- Fixed docs.
- Fixed multiple subscriptions with filters per node (by Eduard Aksamitov).
- Fixed types (by Nikita Galaiko).
- Fixed
sinceinloadofaddSyncMap(by Nikita Galaiko).
- Fixed
sinceininitialofaddSyncMapFilter(by Nikita Galaiko).
- Dropped Node.js 12 support.
- Moved to Logux Core 0.8.
- Moved to
pino8. - Added
disableHttpServeroption. - Added
return falsesupport toloadcallback inaddSyncMap. - Fixed data loading on subscription on
SyncMapcreation.
- Added
addSyncMap()andaddSyncMapFilter(). - Added colorization to action ID and client ID (by Bijela Gora).
- Added
TestServer#expectError(). - Added
sincetoTestClient#subscribe(). - Reduced noise in server log.
- Moved to
pino7 (by Bijela Gora).
- Fixed test server destroying on fatal error.
- Reduced dependencies.
- Fixed
Promisesupport in channel’sfilter(by Eduard Aksamitov). - Replaced
nanocolorswithpicocolors.
- Fixed
Server#http(). - Fixed types (by Eduard Aksamitov).
- Updated
nanocolors.
- Replaced
colorettewithnanocolors.
- Fixed
accessAndProcesson server’s action (by Aleksandr Slepchenkov). - Added warning about circular reference in action.
- Marked
actionandmetain callbacks as read-only.
- Fixed channel name parameters parsing (by Aleksandr Slepchenkov).
- Used
LoguxNotFoundErrorfrom@logux/actions.
- Moved project to ESM-only type. Applications must use ESM too.
- Dropped Node.js 10 support.
- Moved health check to
/health. - Added
Server#http()for custom HTTP processing. - Added
unsubscribecallback toServer#channel(by @erictheswift). - Added reverted action to
logux/undo(by Eduard Aksamitov). - Added RegExp support to
BaseServer#type()(by Taras Vozniuk). - Added
accessAndLoadandaccessAndProcesscallbacks for REST integration. - Added
LoguxNotFoundErrorerror foraccessAndLoadandaccessAndProcess. - Added request functions and
wasNot403()for REST integration. - Added
ServerClient#httpHeaders. - Added support for returning string from
resendcallback. - Added
Server#subscribe()to sendlogux/subscribedaction. - Added
Server#autoloadModules(). - Added
fileUrloption for ESM servers. - Added
Server#loggerfor custom log messages. - Added
meta.excludeClients. - Added
TestServer#expectUndo(). - Added
TestServer#expectDenied(). - Added
TestClient#received(). - Added
TestServer#expectWrongCredentials(). - Added
TestClient#clientIdandTestClient#userId. - Added
filteroption toTestClient#subscribe(). - Added Logux logotype to
GET /. - Removed
reporteroption (by Aleksandr Slepchenkov). - Removed
yargsdependency (by Aleksandr Slepchenkov). - Fixed
:symbol support for channel names. - Fixed types performance by replacing
typetointerface.
- Update
yargs.
- Fixed sending server’s actions to backend.
- Fix using old action’s IDs in
Server#channel→load.
- Do not process actions from
Server#channel→loadinServer#type. - Replace color output library.
- Fix cookie support (by Eduard Aksamitov).
- Reduce dependencies.
- Use WebSocket Protocol version 4.
- Use Back-end Protocol version 4.
- Replace
bunyanlogger withpino(by Alexander Slepchenkov). - Clean up logger options (by Alexander Slepchenkov).
- Allow to return actions from
loadcallback. - Add cookie-based authentication.
- Add
Server#process(). - Allow to use action creator in
Server#type(). - Add
LOGUX_SUBPROTOCOLandLOGUX_SUPPORTSenvironment variables support. - Add
Server#autoloadModules()(by Andrey Berezhnoy). - Add
Context#headers. - Add argument to
TestServer#connect(). - Add
auth: falseoption toTestServer. - Fix action double sending.
- Fix infinite reconnecting on authentication error.
- Fix multiple servers usage in tests.
- Fix types.
- Add
BaseServer#optionstypes.
Context#sendBackreturns Promise until action will be re-send and processed.- Fix
Context#sendBacktypings.
- Fix back-end protocol check in HTTP request receiving.
- Make node IDs in
TestClientshorter.
- Fix types.
- Call
resendafteraccessstep in action processing. - Add special reason for unknown action or channel errors.
- Fix
TestClienterror on unknown action or channel. - Allow to show log by passing
reporter: "human"option toTestServer. - Fix calling
resendon server’s own actions. - Fix types (by Andrey Berezhnoy).
- Rename
initcallback toloadinServer#channel(). - Add
TestServerandTestClientto test servers. - Add
filterMetahelper. - Fix types.
- More flexible types for logger.
- Print to the log about denied control requests attempts.
- Fix server options types.
- Return status code 500 on control requests if server has no secret.
- Use Logux Core 0.5 and WebSocket Protocol 3.
- Use Back-end Protocol 3.
- Use the same port for WebSocket and control.
- Rename
LOGUX_CONTROL_PASSWORDtoLOGUX_CONTROL_SECRET. - Rename
opts.controlPasswordtoopts.controlSecret. - User ID must be always a string.
- Add IP address check for control requests.
- Fix types.
- Keep context between steps.
- Fix re-sending actions back to the author.
- Add ES modules support.
- Add TypeScript definitions (by Kirill Neruchev).
- Move API docs from JSDoc to TypeDoc.
- Fix Nano Events API.
- Fix subscriptions for clients follower.
- Fix JSDoc.
- Add
Context#sendBack()shortcut. - Add
finallycallback toServer#type(). andServer#channel(). - Add
resendcallback toServer#type(). - Use Backend Protocol 2.
- Deny any re-send meta keys from clients (like
channels). - Add singular re-send meta keys support (
channel,client, etc). - Allow to listen
preaddandaddlog events inServer#on(). - Use
erroras default reason inServer#undo(). - Set boolean
falseuser ID on client IDs likefalse:client:uuid.
- Add
.envsupport.
- Update dependencies.
- Improve popular error messages during server launch (by Igor Strebezhev).
- Fix backend proxy version (by Dmitry Salahutdinov).
- Clean up code (by Vladimir Schedrin).
- Fix support for
unknownActionandunknownChannelcommands from backend.
- Rename project from
logux-serverto@logux/server. - Rename
meta.nodeIdstometa.nodes. - Rename
Server#clientstoServer#connected. - Rename
Server#userstoServer#userIds. - Split subscription to
access,init, andfiltersteps. - Add
ctxto callbacks. - Remove Node.js 6 and 8 support.
Server.loadOptionsnow overrides default options.- Change default port from
:1337to:31337. - Use Logux Core 0.3.
- Add brute force protection.
- Add built-in proxy mode.
- Add HTTP health check API.
- Answer
logux/processedafter action processing. - Add
ServerClient#clientIdandmeta.clients. - Add warning about missed action callbacks.
- Use
wsinstead ofuWS.
- Add protection against authentication brute force.
- Use
uWS9.x with Node.js 10 support.
- Use
yargs11.x.
- Allow to have
:in user ID.
- Use
uWS9.x.
- Fix
keyoption with{ pem: … }value on Node.js 9.
- Don’t destroy server again on error during destroy.
- Don’t show
unknownTypeerror on server actions without processor. - Better action and meta view in
humanlog.
- Use Logux Protocol 2.
- Use Logux Core 0.2 and Logux Sync 0.2.
- Rename
Client#idtoClient#userId. - Remove
BaseServer#oncemethod. - Check action’s node ID to have user ID.
- Use
uwsinstead ofws(by Anton Savoskin). - Use Nano ID for node ID.
- Remove deprecated
upgradeReqfromClient#remoteAddess. - Use Chalk 2.0.
- Add
BaseServer#typemethod. - Add
BaseServer#channelmethod. - Add
BaseServer#undomethod. - Add
BaseServer#sendActionmethod. - Take options from CLI and environment variables (by Pavel Kovalyov).
- Add production non-secure protocol warning (by Hanna Stoliar).
- Add Bunyan log format support (by Anton Artamonov and Mateusz Derks).
- Add
errorevent. - Set
meta.server,meta.statusandmeta.subprotocol. - Add
debugmessage support (by Roman Fursov). - Add
BaseServer#nodeIdshortcut. - Add node ID conflict fixing.
- Export
ALLOWED_META. - Better start error description (by Grigory Moroz).
- Show Client ID in log for non-authenticated users.
- Fix docs (by Grigoriy Beziuk, Nick Mitin and Konstantin Krivlenia).
- Always use English for
--helpmessage. - Add security note for server output in development mode.
- Fix custom HTTP server support.
- Initial release.