This project adheres to Semantic Versioning.
- Fixed vulnerability audit by moving to
cookie
0.7.
- Removed Node.js 14 and Node.js 16 support.
- Moved to Logux Core 0.9.
- Added action processing queues (by @VladBrok).
- Added
unauthenticated
event (by @erictheswift).
- Fixed another Node.js 14 regression.
- Fixed Node.js 14 regression.
- Replaced
ip
to fix vulnerability. - Updated dependencies.
- Moved
ip
to2.x
to fix vulnerability.
- Fixed
x/changed
filter 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
since
inload
ofaddSyncMap
(by Nikita Galaiko).
- Fixed
since
ininitial
ofaddSyncMapFilter
(by Nikita Galaiko).
- Dropped Node.js 12 support.
- Moved to Logux Core 0.8.
- Moved to
pino
8. - Added
disableHttpServer
option. - Added
return false
support toload
callback inaddSyncMap
. - Fixed data loading on subscription on
SyncMap
creation.
- Added
addSyncMap()
andaddSyncMapFilter()
. - Added colorization to action ID and client ID (by Bijela Gora).
- Added
TestServer#expectError()
. - Added
since
toTestClient#subscribe()
. - Reduced noise in server log.
- Moved to
pino
7 (by Bijela Gora).
- Fixed test server destroying on fatal error.
- Reduced dependencies.
- Fixed
Promise
support in channel’sfilter
(by Eduard Aksamitov). - Replaced
nanocolors
withpicocolors
.
- Fixed
Server#http()
. - Fixed types (by Eduard Aksamitov).
- Updated
nanocolors
.
- Replaced
colorette
withnanocolors
.
- Fixed
accessAndProcess
on server’s action (by Aleksandr Slepchenkov). - Added warning about circular reference in action.
- Marked
action
andmeta
in callbacks as read-only.
- Fixed channel name parameters parsing (by Aleksandr Slepchenkov).
- Used
LoguxNotFoundError
from@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
unsubscribe
callback toServer#channel
(by @erictheswift). - Added reverted action to
logux/undo
(by Eduard Aksamitov). - Added RegExp support to
BaseServer#type()
(by Taras Vozniuk). - Added
accessAndLoad
andaccessAndProcess
callbacks for REST integration. - Added
LoguxNotFoundError
error foraccessAndLoad
andaccessAndProcess
. - Added request functions and
wasNot403()
for REST integration. - Added
ServerClient#httpHeaders
. - Added support for returning string from
resend
callback. - Added
Server#subscribe()
to sendlogux/subscribed
action. - Added
Server#autoloadModules()
. - Added
fileUrl
option for ESM servers. - Added
Server#logger
for custom log messages. - Added
meta.excludeClients
. - Added
TestServer#expectUndo()
. - Added
TestServer#expectDenied()
. - Added
TestClient#received()
. - Added
TestServer#expectWrongCredentials()
. - Added
TestClient#clientId
andTestClient#userId
. - Added
filter
option toTestClient#subscribe()
. - Added Logux logotype to
GET /
. - Removed
reporter
option (by Aleksandr Slepchenkov). - Removed
yargs
dependency (by Aleksandr Slepchenkov). - Fixed
:
symbol support for channel names. - Fixed types performance by replacing
type
tointerface
.
- 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→load
inServer#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
bunyan
logger withpino
(by Alexander Slepchenkov). - Clean up logger options (by Alexander Slepchenkov).
- Allow to return actions from
load
callback. - Add cookie-based authentication.
- Add
Server#process()
. - Allow to use action creator in
Server#type()
. - Add
LOGUX_SUBPROTOCOL
andLOGUX_SUPPORTS
environment variables support. - Add
Server#autoloadModules()
(by Andrey Berezhnoy). - Add
Context#headers
. - Add argument to
TestServer#connect()
. - Add
auth: false
option toTestServer
. - Fix action double sending.
- Fix infinite reconnecting on authentication error.
- Fix multiple servers usage in tests.
- Fix types.
- Add
BaseServer#options
types.
Context#sendBack
returns Promise until action will be re-send and processed.- Fix
Context#sendBack
typings.
- Fix back-end protocol check in HTTP request receiving.
- Make node IDs in
TestClient
shorter.
- Fix types.
- Call
resend
afteraccess
step in action processing. - Add special reason for unknown action or channel errors.
- Fix
TestClient
error on unknown action or channel. - Allow to show log by passing
reporter: "human"
option toTestServer
. - Fix calling
resend
on server’s own actions. - Fix types (by Andrey Berezhnoy).
- Rename
init
callback toload
inServer#channel()
. - Add
TestServer
andTestClient
to test servers. - Add
filterMeta
helper. - 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_PASSWORD
toLOGUX_CONTROL_SECRET
. - Rename
opts.controlPassword
toopts.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
finally
callback toServer#type()
. andServer#channel()
. - Add
resend
callback 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
preadd
andadd
log events inServer#on()
. - Use
error
as default reason inServer#undo()
. - Set boolean
false
user ID on client IDs likefalse:client:uuid
.
- Add
.env
support.
- 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
unknownAction
andunknownChannel
commands from backend.
- Rename project from
logux-server
to@logux/server
. - Rename
meta.nodeIds
tometa.nodes
. - Rename
Server#clients
toServer#connected
. - Rename
Server#users
toServer#userIds
. - Split subscription to
access
,init
, andfilter
steps. - Add
ctx
to callbacks. - Remove Node.js 6 and 8 support.
Server.loadOptions
now overrides default options.- Change default port from
:1337
to:31337
. - Use Logux Core 0.3.
- Add brute force protection.
- Add built-in proxy mode.
- Add HTTP health check API.
- Answer
logux/processed
after action processing. - Add
ServerClient#clientId
andmeta.clients
. - Add warning about missed action callbacks.
- Use
ws
instead ofuWS
.
- Add protection against authentication brute force.
- Use
uWS
9.x with Node.js 10 support.
- Use
yargs
11.x.
- Allow to have
:
in user ID.
- Use
uWS
9.x.
- Fix
key
option with{ pem: … }
value on Node.js 9.
- Don’t destroy server again on error during destroy.
- Don’t show
unknownType
error on server actions without processor. - Better action and meta view in
human
log.
- Use Logux Protocol 2.
- Use Logux Core 0.2 and Logux Sync 0.2.
- Rename
Client#id
toClient#userId
. - Remove
BaseServer#once
method. - Check action’s node ID to have user ID.
- Use
uws
instead ofws
(by Anton Savoskin). - Use Nano ID for node ID.
- Remove deprecated
upgradeReq
fromClient#remoteAddess
. - Use Chalk 2.0.
- Add
BaseServer#type
method. - Add
BaseServer#channel
method. - Add
BaseServer#undo
method. - Add
BaseServer#sendAction
method. - 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
error
event. - Set
meta.server
,meta.status
andmeta.subprotocol
. - Add
debug
message support (by Roman Fursov). - Add
BaseServer#nodeId
shortcut. - 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
--help
message. - Add security note for server output in development mode.
- Fix custom HTTP server support.
- Initial release.