Releases: esl/MongooseIM
Releases · esl/MongooseIM
MongooseIM 4.1.0
Highlights
- Major configuration rework: the TOML format is now the only one supported
- Documentation enhancements
- Performance improvements
All changes
Added
- Full support of TOML configuration format (#2929)
- Prepared queries for
mod_vcard
(#2939) - Humio support (#2952)
- GitHub actions for MongooseIM CI workflow (#2990, #2993)
- Usage of
fast_scram
library (#3003) - Documentation for MongooseIM cluster's rolling upgrade (#3012)
- PEP publish options (#3017)
Removed
- Support of old
*.cfg
configuration format (#2929) - Support of HTTP File Upload 0.2.5 (#2989)
- Unused
katt_helper
(#2999)
Changed
- Moved documentation from readthedocs to gh-pages and its face lifting (#2946, #2960, #2963, #2966, #2969)
- Helper script in small tests uses python3 instead of python2 (#2957)
- Use
tools/wait_for_service.sh
instead ofnetcat
to ensure the mainminio
container is started (#2979) - Reduced stringprepping in roster hooks, privacy modules and
mod_offline
(#2997, #3005, #3009)
Fixed
- The response of locked MUC room to
disco#info
(#2956) ct_mongoose_log_hook
initialization error (#2964)- Catching log formatter errors to avoid death spiral of logging (#2968, #2978)
- The way big tests detect minio in CI (#2998)
- Connection issues with Cassandra (#3006)
Other
- Added
rebar3 clean
call toMakefile
(#2932) - Minor docs improvements (#2945, #2981, #3000, #3013, #3020)
- Parallel loading of
nksip
in tests (#2947) - CI improvements (#2949, #2972)
- Usage of
integer_to_binary/1
instead oflist_to_integer(binary_to_list/1)
(#3008) - Removed
archive_groupchats
warning (#3016)
Commits, merged PRs and closed issues
MongooseIM 4.0.1
Highlights
- A new metric now reports the type of configuration file that is being used. The aim is to determine the adoption of the new config file format.
- Better error messages are reported from wrong TOML configuration files.
All changes
Added
- User-friendly errors for the TOML configuration file (#2903)
- Metric to report the type of config file used (#2918)
Removed
- Removed deprecated
mod_http_notifications
(#2912)
Changed
- TOML documentation improvements (#2896, #2898, #2899, #2901, #2905, #2942)
- Some TOML configuration options have been reformatted (#2909)
- More prepared queries to improve RDBMS performance (#2924, #2928)
- Fixed Ubuntu 18.04 and OTP 23.1 for building docker images (#2926)
- Moving from untyped binaries to proper
jid
structures (#2895, #2920, #2922)
Other
- Dependencies update (#2914)
- REST error handling cleanup (#2908)
nksip
is started only when used (#2937)- RPM package improvements (#2906)
- CI improvements (#2910, #2934)
Commits, merged PRs and closed issues
MongooseIM 4.0.0
Overview
MongooseIM 4.0 is all about putting a friendly face to MongooseIM’s amazing features.
This includes the addition of an Erlang-agnostic configuration allowing a broader pool of developers to benefit from MongooseIM.
Logging and Kubernetes improvements to be more DevOps-friendly and Manager-friendly with load testing enabling managers to see the benefits of MongooseIM easily.
All changes
Added
- A new configuration file format: MongooseIM can now be configured with an entirely revamped TOML configuration file (#2801)
- Pesky bugs have been fixed
- Implementation details have been abstracted away
- Documentation has been improved
- Structured logging: the main idea of structured logging is that if we have properties of an event, let’s log them as they are, without losing their structure, and format it in a way that is most appropriate for the system we’re sending them to.
- Moved to OTP logger from lager (#2810)
- Moved away from lager, towards OTP logger (#2810)
- No more logging of man-made strings, we now log structured reports (#2816)
logfmt
formatter, a log format that's easy to read and write (#2848)JSON
formatter, a fully structured format (#2851)
- XEP-0215 External Service Discovery (#2870)
- A REST endpoint for admin users which accepts any stanza, provided it has
from
andto
attributes (#2858) erl_crash.dump
dumping directory can be explicitly set (#2793)
Changed
- Archiving messages takes input as a map instead of as many parameters (#2749)
- Base16 encoding uses a faster algorithm (#2839)
Other
Commits, merged PRs and closed issues
Special thanks to our contributors:
- @balgillo For the small but many important fixes.
MongooseIM 3.7.1
Highlights
- Integration of the highly performant NIFs to compute the SCRAM challenge from esl/fast_scram
All changes
Changed
- Implementation of the SCRAM challenge algorithm to be NIF-based (#2787)
- Fix a bug during session resumption, where stanzas were not routed to the user (#2780)
- Fix AMP logic regarding storage of messages when delivery failed but archiving was successful (#2757)
Other
Commits, merged PRs and closed issues
MongooseIM 3.7.0
Highlights
- Authentication methods improvements
- Support for
SCRAM-SHA-256
,SCRAM-SHA-512
,SCRAM-SHA-224
,SCRAM-SHA-384
authentication methods - Support for channel binding for all the SCRAM based authentication methods
- Support for
- Support for XEP-0424: Message Retraction
- Support for Proxy Protocol
There were some changes to the database schema so please take a look at the Migration guide when upgrading from a previous version.
All changes
Added
- Support for new
SCRAM
based authentication methods: - Support for XEP-0424: Message Retraction (#2739)
- Support for Proxy Protocol (#2674)
- RDBMS backend for MUC (#2635)
- Possibility to store MUC messages in offline storage (#2640)
- Support for MySQL's new authentication methods (#2644)
- System metrics
- Chat markers cache (#2676)
mongooseimctl bootstrap
command which can be run to execute user defined init scripts (#2692)- Support for templating the config files before MongooseIM starts (#2712)
c2s_remote_hook_call
to run a hook in the context of the c2s process (#2700)mongooseimctl http_upload
command to help debug HTTP file upload configuration (#2708)
Changed
- All hooks have been wrapped in the
mongooseim_hooks
module with proper specs (#2642) - Stream error reporting when the server receives unexpected stanza on a given stream state (#2667)
- Server sent ping scalability improvements (#2531)
- Docker base image to be based on Ubuntu 18.04 with OpenSSL 1.1 (#2693)
- HTTP file upload tests with min.io running in the container (#2696)
- Fixed issue related to passing
x-amz-acl
header to S3 (#2708) - Default format for password storage (#2737)
Removed
- Support for MySQL versions older then
5.7.9
Other
- Fix to push notifications integration making sure all parameters are sent in a request to MongoosePush (#2645)
- Extract
jid
related functionality to an external library (#2654)
Commits, merged PRs and closed issues
Special thanks to our contributors:
- @Neustradamus For pushing us with the extension of SCRAM authentication methods and the small PR #2719
- @alishir #2705
- @jasl #2697
- @tomaszwojcikowski #2690
MongooseIM 3.6.2
MongooseIM 3.6.1
Highlights
- Tooling and packages improvements
All changes
Changed
- Use
runuser
instead ofsudo
in scripts managing MongooseIM (#2617) - Install pid and status directory explicitly (#2618)
- Massive rework of scripts building .deb and .rpm packages (#2626)
- Remove redundant time conversions in shapers (#2545)
Commits, merged PRs and closed issues
MongooseIM 3.6.0
Highlights
- Push notifications improvements
- Possibility to configure push notifications without real PubSub
- Immediate push notifications to disconnected device in resume state
- Gathering of system metrics
- Support for the last two major OTP versions only: 21 and 22
- Performance improvements
There were some changes to the database schema so please take a look at Migration guide when upgrading from a previous version.
All changes
Added
- System metrics gathering (#2523, #2532, #2550, #2571, #2578, #2580, #2586, #2591, #2594, #2598, #2601, #2603, #2607, #2610, #2612)
- MAM disco#info to MUC and MUCLight rooms (#2272)
- Chat markers support for the room's REST API (#2274)
- Possibility to close malicious connections without revealing service details (#2304)
- Ping response time metrics (#2527)
- Emoji support in VCard's nickname field (#2539)
- Swagger documentation hosted by MongooseIM (#2543, #2556)
- Persistent fields from accumulator to offline storage (#2587)
- This requires a new column in RDBMS, see the migration guide
Changed
- Push notifications
- Immediate push notification to a connection in resume state (#2018, #2593)
- RDBMS backend for
mod_event_pusher_push
(#2526) - PubSub-less push notifications (#2554)
- Integration with MongoosePush API v3 (#2549)
- Expired device_id removal (#2555)
- Details from the push enable stanza are stored in session info now (#2568)
- The push notification's priority can be set with enable stanza (#2569)
- An
unacknowledged_message
hook is fired when a session is in resume state and a new message arrives (#2589) - Documentation update and rework (#2611)
- Riak bucket types are now configurable (#2490)
- Dependencies update:
lager
: 3.8.0cowboy
: 2.7.0epgsql
: 4.3.0mysql
: 1.5.1cache_tab
: 1.0.20stringprep
: 1.0.17erlcloud
: 3.2.13jwerl
: 1.1.0observer_cli
: 1.5.3amqp_client
: 3.8.0wpool
: 4.0.1
- SASL mechanism management simplification (#2519)
- MUCLight room config simplification and unification (#2536)
- Performance improvements:
- ejabberd_sm improvements (#2566, #2582)
Removed
get_stactrace
calls (#2494)- Support for MAM v0.3 (#2496)
- Usage of
p1_time_compat
(#2498) mod_push
(#2553)
Other
- Pass the original accumulator when sending out a stanza (#2158, #2528)
- Remove sender related data from the accumulator before passing it further (#2510)
- Do not allow
riak
andredis
pools to use the incompatibleavailable worker
strategy (#2243) - Fix for connection crash when the client enables stream management but it's not available (#2482)
- Fix for REST API crash when user's JID is empty (#2543)
- Return
Bad Request
status when malformed JSON is passed to REST API (#2557) - Possibility to call external HTTP auth backend to get valid user's certificates (#2044)
- Fix for last activity error iq responses (#2570)
- Fix c2s message bouncing issue (#2579)
- Fix for wrong namespace in ringing stanza (#2584)
- Fix warning for .deb packages (#2609)
Commits, merged PRs and closed issues
Special thanks to our contributors:
MongooseIM 3.5.0
Highlights
- Reworked LDAP layer
- New method of resetting Inbox
- OTP < 21.2 support is deprecated
All changes
Added
- A new dedicated stanza for resetting the Inbox (#2452)
- New metrics:
Changed
- Multiple improvements in the LDAP layer (#2388)
- They are now configured like the other outgoing connections.
- LDAP+TLS support.
- LDAP authentication backend may be used with SASL EXTERNAL
- GDPR removal and retrieval do not query disabled backends and modules anymore (#2435)
- Push notifications are no longer sent for messages with empty body (#2394)
- Stream Management implementation has been updated to match XEP-0198 v1.6 (#2468, #2472)
- Deprecations:
- Dependencies update (#2351)
lager
: 3.7.0cowboy
: 2.6.3jiffy
: 1.0.1uuid
: 1.7.5fast_tls
: 1.1.1mysql
: 1.5.0cache_tab
: 1.0.19stringprep
: 1.0.16meck
: 0.8.13recon
: 2.5.0erlcloud
: 3.2.7observer_cli
: 1.5.0amqp_client
: 3.7.15eredis
: 1.2.0riakc
: 2.5.3 - no change here but downloaded from a repo now (#2397)
- Clustering operations are now protected by a global transaction (#2470)
- Client XML namespace is no longer stripped in the messages received from a client (#2423)
mongooseimctl
script is more robust (#2409)scram
module has been renamed tomongoose_scram
(#2401)
Fixed
binary_to_atom
vulnerability (#2444)push
PubSub node implementation had a bug in the affiliation check (#2438)- The unread messages count for push notifications was retrieved improperly and triggered an error (#2481)
- Chat markers were improperly handled by Inbox (#2449)
- It is again possible to configure an idle connection timeout for Websockets (#2480)
- MUC Light role is now properly archived (#2268)
- Chat markers are now properly stored by the MUC archive (#2271)
- Inbox recognises MUC Light system messages more reliably (#2290)
disco#info
request no longer causes a crash whenrooms_in_rosters
is enabled (#2354)- Mnesia backend for PubSub used to break the transaction restart logic in some operations (#2390)
- Some REST commands were unusable due to a bug in REST implementation (#2426)
Other
- Added CircleCI integration (#2372, #2382, #2383, #2414, #2419, #2422, #2439, #2441, #2446, #2447, #2462, #2463)
- CI stabilisation (#2378, #2389, #2392, #2393, #2395, #2396, #2404, #2428, #2429, #2431, #2434, #2437, #2453, #2454, #2455, #2469, #2473, #2474)
- Test improvements and refactoring (#2351, #2381, #2398, #2399, #2403, #2408, #2411, #2417, #2418, #2421, #2424, #2432, #2457, #2458, #2459, #2475)
- Documentation updates (#2247, #2356, #2357, #2376, #2416, #2420, #2436, #2450, #2478, #2479)
- Reduced resource consumption for dev releases (#2400)
- New dev nodes are templated from existing one(s) if possible (#2407)
- Updated
.gitignore
file with new rules for logs (#2385)