- PR #235 - Support parsing ServiceInterfaceClient session id form http header
- PR #234 - Lower "type not found" log level from error -> warn
- PR #233 - Allow charset in ServiceInterface content-type
- PR #231 - Extract class: ServiceInterfaceClientSession
- PR #228 - Add bin/server.js to package.json bin
- PR #229 - Initialize Sentry id with Server id
0.21.1 - known bad, do not deploy
- PR #223 - Return Server#ready promise from Server#attach
- PR #222 - Forward sentry events on server
- PR #221 - Disable eslint in codeclimate
- PR #219 - Avoid blocking iteration on large collections
- PR #218 - Skip message on ClientSession#send if ClientSession is ended
- PR #217 - Log when missing transport on ClientSession.prototype.send
- PR #204 - Implement SessionManager
- PR #203 - HTTP ServiceInterface
- PR #202 - Add memory leak regression tests for ClientSessions
- PR #200 - Cleanup package.json
- PR #201 - Spruce up the readme a bit
Switched to http://standardjs.com/ style
- #195, #197 - format for standard
- #199 - Extract server setup into components
- #198 - Encapsulate socket in client (add ClientSession class)
- #193 - Cleanup - reorganize Resources files
- #194 - Support incoming BatchMessage in server
- #196 - Fix typo when soft limiting
Introduce middleware runner.
Use ./middleware/quota_manager.js as a middleware example.
Extract rate/quota management into QuotaManager middleware (disabled by default)
Extract legacy authorization into LegacyAuthManager middleware (disabled by default)
After upgrading to 0.17.0, current authorization and quota limiting code will be be disabled. To enable it, you will have to explicitely add the specific functionality, like this:
var Radar = require('radar'), LegacyAuthManager = Radar.middleware.LegacyAuthManager, server; server = new Radar(); server.use(new LegacyAuthManager()); // For legacy authentication. server.attach(...);
- Pin dependencies in package.json
- Upgrade to email@example.com
- Add ability to log abuse on subscriptions without preventing it.
- Disable client state save on Redis.
- Changes to fix storeData bug in client.js
- Fix client store data by not storing the full messages on redis.
- Replace resource "name" with "to" for naming consistency
- Disable client state save
- Stamp incoming and outgoing messages
- Stop including 'alive' attribute on sentry keep-alive messages
- Remove loadData from server-side client init
- Added better logging of incoming and outgoing messages.
- require persistence >= 1.0.3
- remove auto pub
- reimplement Sentry so it doesn't rely on pubsub for updates and down events.
- stamp messages with id, sentryId and clientId.
- Responde with an error when a message with an unknown type is received.
- Emit events on new resource allocation, and on esch incoming/outgoing message processed by resources.
- Presence resource can set online and include client data (to be broadcasted as part of the client_online and client_updated events).
- Fix Radar pushed using old npm version (no code changes).
- Fix Server counts SYNC like SUBSCRIBE when rate limiting.
- Fix RateLimiter#remove to avoid 'Cannot convert null to object'.
- Allow Server and RateLimiter to emit events related to the former.
- Load from persistence client data on receipt of the nameSync message
- apply subscriptions and presences from the restored client data
- this is related to code release in 0.14.0
- Fix configuration not being passed back properly after setting up persistence connection.
- Remove .node-version included by mistake.
- Add new configuration support.
- Configuration can be specified from configuration.js file (legacy),
environment and cli. Run
node server --helpto see supported options.
- Configuration can be specified from configuration.js file (legacy), environment and cli. Run
- Update Changelog.md to be current
- Bumped version of radar now matches that of radar_client
- Update dev dependency for radar_client to * (from 0.14.0) (Note: Changelog.md was not current in the 0.14.1 release)
- Add server side client state
- Initial code refactoring
- do not use the naked _me reference
- Identify APIs as public/private by
- prefixing with _ (e.g. _handleClientMessage) where appropriate
- regrouping of APIs in source files into public/private groups
- rename APIs where needed (all private APIs)
- expand comments minimally to clarify purpose of APIs
- Change Auth to work on messages rather than on resources
- Add Client module
- Add nameSync message
- Persist client data on the server, with client data TTL
- Additional refactoring of server/server.js
- Add use of semver
- In many places, replace old client with socket for the sake of clarity
- Initial code refactoring
- Code cleanup
- comment capitalization, comment line length, code line length
- minor code standardization, minor test code cleanup
- Set(online) for presence no longer subscribes to the resource.
- This is a breaking change if the client assumes this behavior
- Fix error where sentryDownForClient sometimes fails on undefined store reference
- Expose details of sentry down in the listener
- Replace tight loops in clientsForSEntry with chained calls, for sentry down
- Update Sentry to contain host/port members
- Log name, host, port when Sentry is down
- Presence: sentry down does not publish presence offlines to redis
- This should prevent large number of redis messages when a sentry fails
- Use radar_client 0.12.1
- Use engine.io 1.4.2, use radar_client 0.12.0
- Presence: UserExpiry timeout is now configurable based on resource type
- Stream resource
- Uses an underlying list (with auto incrementing id) abstraction
- push: add a message
- get(from: x) - get all messages from id x
- subscribe(from: x) - get all messages from id x as notifications
- Bugfix: Fix immediate disconnects after set(online) causing incorrect online messages
- Rewrite all presence tests to be simpler/readable by extracting asserts into a helper
- Add several new edgecase tests
- use latest radar_client with async message emits
- Perform a prepublish check for dirty working tree or outdated dependencies
- Fix crash: an unsubscribe after sync may cause issues
- Handle cleanup of redis reply correctly
- upgrade engine.io to 1.3.1
- radar_client @ 0.9.1
- bad tag
- Unlimited listeners for sentry down event
- Fix userData for user_online
- Bugfix - Sync (v1/v2) needs to send notifications
- Make v2 primary test targe
- Fix tests so that redis hash order does not fail us
- Presence refactor; checkout readme file in core/lib/resources/presence
- Logging is streamlined.
- More integration tests around remote radar server messages
- Test with persistence 0.3.0
- Use latest persistence always (currently @0.2.0)
- Use minilog 2.0.5
- use radar_client 0.3.1
- Makes redis methods easily exposed
- extract persistence into separate package
- revert async loops from v0.5.0
- #76 - Bugfix: Do not fallback to localhost:6379 when reading redis host/port
- #74 - Fix configuration.js parsing, fail on unexpected config
- #72 - Use simple_sentinel for starting sentinel for testing
- #71 - Use redis-sentinel-client @0.1.5 (Forward pmessages always)
- Redis client update to 0.10.1
- Trust redis to queue subscriptions
- Clear persistence in tests
- Prevent more blocking forEach loops
- Do not wait for subscription callback from redis client
- Subscribe to redis channels only when needed
- Support for new configuration.js
- reduce verbosity of Persistence.js
Use appropriate file for API require
- Never send a null value in a get response for a status
- Workaround minilog bug (stop printing objects with circular references)
- Harmonize the auth mechanism around the use of an authProvider
- Bugfix: remove audit.js module to eliminate memory leak
- Updated sentinel configuration: multiple sentinel hosts/ports
- Bugfix: use sentinel for pubsub as well
- Initial support for sentinel using redis-sentinel-client
- Code refactor