All Versions
17
Latest Version
Avg Release Cycle
73 days
Latest Release
83 days ago

Changelog History
Page 1

  • v3.7.0

    May 20, 2020

    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 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
      • Type of outgoing pools (#2657)
      • Stanza count (#2672)
    • 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)
    • 0️⃣ 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:

  • v3.6.2

    February 20, 2020

    🚀 MongooseIM 3.6.2 - 2020-02-20

    Highlights

    • 📦 Tooling and packages improvements

    All changes

    🔄 Changed

    • 🛠 Fix a bug in mongooseimctl run as a different user as the current one (#2631)
    • 🏗 .deb and .rpm build and test scripts improvements (#2629, #2633)

    🔀 Commits, merged PRs and closed issues

  • v3.6.1

    February 11, 2020

    Highlights

    • 📦 Tooling and packages improvements

    All changes

    🔄 Changed

    • 👉 Use runuser instead of sudo 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

  • v3.6.0

    January 29, 2020

    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.0
      • cowboy: 2.7.0
      • epgsql: 4.3.0
      • mysql: 1.5.1
      • cache_tab: 1.0.20
      • stringprep: 1.0.17
      • erlcloud: 3.2.13
      • jwerl: 1.1.0
      • observer_cli: 1.5.3
      • amqp_client: 3.8.0
      • wpool: 4.0.1
    • SASL mechanism management simplification (#2519)
    • MUCLight room config simplification and unification (#2536)
    • 🐎 Performance improvements:
      • jid parsing in NIF (#2544)
      • use built-in base64 encoding (#2547)
      • C/C++ optimisations (#2604)
    • 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 and redis pools to use the incompatible available 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:

  • v3.5.0

    October 03, 2019

    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:
      • clusterSize, as seen by each MIM node individually (#2322)
      • tcpPortsUsed (#2359, #2374)

    🔄 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:
      • OTP older than 21.2 (#2465)
      • XEP-0313 Message Archive Management v0.3 (#2466)
      • TLS older than 1.2 (#2377)
    • ⚡️ Dependencies update (#2351)
      • lager: 3.7.0
      • cowboy: 2.6.3
      • jiffy: 1.0.1
      • uuid: 1.7.5
      • fast_tls: 1.1.1
      • mysql: 1.5.0
      • cache_tab: 1.0.19
      • stringprep: 1.0.16
      • meck: 0.8.13
      • recon: 2.5.0
      • erlcloud: 3.2.7
      • observer_cli: 1.5.0
      • amqp_client: 3.7.15
      • eredis: 1.2.0
      • riakc: 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 to mongoose_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 when rooms_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

    🔀 Commits, merged PRs and closed issues

    Special thanks to our contributors:

  • v3.5.0-2

    October 09, 2019
  • v3.4.1

    September 13, 2019

    🛠 Fixed

    • Vulnerability related to erlang:binary_to_existing_atom with latin1 encoding (#2445)
  • v3.4.0

    June 26, 2019

    Highlights

    • GDPR data retrieval and removal

    All changes

    ➕ Added

    🔄 Changed

    • When a session gets replaced, the new one waits longer for the old one to close before reporting an error (#2054)
    • Authentication backends no longer use a store_type/1 function (#2254)
    • 0️⃣ Default certificates are now generated faster (#2305)

    🛠 Fixed

    • Some race conditions in Stream Management (#2049)
    • faulty script execution of xep_tools (#2252)
    • MUC messages are now archived without an empty to attribute (#2220)
    • "Offline" classic MUC rooms are now properly reported in disco results (#2238)
    • Inbox responses are now properly routed to the original requester (#2276)
    • Resolved issues with TLS on OTP 20.x (#2332)

    Other

    🔀 Commits, merged PRs and closed issues

    Special thanks to our contributors:

  • v3.3.0

    March 12, 2019

    Highlights

    • Finalised RDBMS implementation for PubSub
    • MongooseIM integration with RabbitMQ
    • PKI authentication improvements

    All changes

    ➕ Added

    • PubSub improvements
      • RDBMS backend for pubsub_node table (#2145)
      • mod_pubsub_cache_rdbms implementation (#2144)
      • RDBMS support for subscription options in PubSub (#2165)
      • Generic metrics measuring number of errors and execution time for different PubSub actions based on sent IQs (#2178)
      • Setting subscription options for flat_node (#2165)
    • RabbitMQ layer (#2127, #2216)
      • RabbitMQ backend for event_pusher
      • rabbit worker pool (that can be used for any interaction with RabbitMQ)
      • mongoose_amqp module that deals with AMQP protocol layer
    • ➕ Address best practices for using SASL EXTERNAL as defined by XEP-0178 (#2204, #2223, #2231)
    • Upsert API for RDBMS (#2153)
    • gen_mod:opts_for_module/2 which allows you to selectively retrieve opts passed through config to a given module (#1027)
    • Backend functions get a new metric: number of function calls (#2177)
    • mod_vcard calls optional tear_down callback on the backend module (#2152)

    🔄 Changed

    ⚡️ Update dependencies:

    - nkpacket f7c5349 (#2147)

    PubSub changes

    • Extract mnesia operations around pubsub_node table to the backend module (#2141)
    • Optimize the way a pubsub node is removed (#2136)
    • Remove pubsub_subscription module, refactor opts forms processing and integrate option storage logic into DB backends (#2148)
    • mnesia cache backend for pubsub_last_item extracted to a separate cache backend module (#2144)
    • Simplified pubsub_index API, removed free function (#2156)
    • Backend modules call pubsub_index when the id is not passed (#2156)
    • Use RDBMS autoincrementing index in place of pubsub_index (#2160)
    • Replace Mnesia's transaction and sync_dirty calls in the RDBMS backend with proper RDBMS equivalents (#2191)
    • Return the index when the node is created (#2160)
    • Parallelised PubSub message broadcast (#2206)

    - Spawn a new process in mod_pubsub:broadcast_stanza/9

    Change stop_module_keep_config/2 and stop_module/2 to return module opts (#1027)

    ⚡️ Update snippet to register users (#2181)

    👉 Use map syntax to pass ranch transport options (#2188)

    🔄 Change the name of the metric responsible for the number of backend function calls (#2193)

    Replace jsx with jiffy (#2199)

    👉 Make HTTP headers lowercase to avoid HTTP/2 connection errors (#2211)

    🛠 Fixed

    • Add mod_pubsub_db_backend:add_item to the tracked functions (#2193)
    • erlcloud_sns:publish content format (#2176)
    • infinity mapped to 0 in the matches option in mod_vcard_ldap (#2179)
    • mod_vcard_ldap ignored ldap_uids formed as {"attribute"} and only parsed {"attribute", "format"} correctly (#2180)
    • Return MAM item-not-found IQ result when a nonexistent message ID is asked for (#2166)
    • 🛠 Fix mongooseimctl debug command to use correct hostnames (#2201)
    • 🐳 Use mongooseim-docker with a name flag and nodename fixes (#2205)
    • 🛠 Fix compilation errors when the compilation directory has whitespaces in it (#2203)
    • 0️⃣ Default inbox backend is set to rdbms (#2236)
    • mod_vcard_ldap:eldap_pool_search/6 empty list handling (#2226)
    • lowercase HTTP headers in mod_bosh for HTTP/2 compliance (#2211)

    Other

    • 🏗 Run Travis builds on newer (not newest) Ubuntu LTS version Xenial (16.04) (#2151)
    • ⚡️ Update mongooseim-docker to cc7326bfd0129943206a67e57dd861ff19c403c7 (#2190)
    • ♻️ Test improvements and refactoring (#2165, #2162, #2164, #2170, #2127, #2142, #2146, #2147)
    • 🛠 Fix broken or remove outdated links in docs (#2183)
    • 🚀 Install the most up to date package builder epel-release for centos 7 (#2154)
    • 👷 Stabilize the ldap job on travis (#2140)
    • ⚡️ Update find-hooks.awk (#2225, #2232)
    • ⚡️ Update escalus to 8911491 (#2224)
    • 📚 Update documentation (#2155, #2163, #2167, #2233, #2227)

    🔀 Commits, merged PRs and closed issues

    Special thanks to our contributors:

  • v3.2.0

    November 20, 2018

    Highlights

    • Client Certificate authentication for Websockets and BOSH
    • Inbox improvements (push notifications integration)
    • Unified outgoing connections pools

    All changes

    ➕ Added

    • 👌 Improvements in mod_inbox:
      • User can show only active/all conversations (#2017)
      • Inbox IQ result stanza provides a total unread messages count and an active conversation count (#2047, #2056)
      • If an inbox query is malformed, a descriptive error is returned (#2052)
      • mod_inbox is integrated with mod_event_pusher, so push notifications now include an unread messages count (#2078)
    • SASL EXTERNAL may be used with WebSockets and BOSH (#2093)
    • mongoose_wpool abstraction layer (#2060, #2099, #2117)
    • rdbms, redis, riak, cassandra, http ,generic and elasticsearch pools are started via outgoing_pools config option (#2077, #2079, #2084, #2087, #2101)
    • Self-signed certificates may be used with fast_tls driver (#2102)
    • mongoose_bin module unifies random strings generation API (#2000)
    • Modules may specify "optional" dependencies to enforce the startup order (but not the startup itself) (#2029)
    • Switchable RDBMS backend for mod_pubsub - experimental (#2122, #2113, #2129, #2131, #2134)
    • 🔧 Changing MUC Light room configurations is possible via REST API (#2030)
    • 🆕 New Message Archive Management metrics for async writers (#2023)
    • 🆕 New Makefile target to check code style with Elvis (#2111)

    🔄 Changed

    • ejabberd.cfg is renamed to mongooseim.cfg
    • 👍 OTP versions older than 19.0 are no longer supported (#2002)
    • "ODBC" usage has been clarified and it has been renamed to RDBMS where relevant (#2053)
    • Mongoose accumulator v2.0 is more difficult to abuse and has less implicit logic (#2076)
    • 👍 Pre 1.0 XML streams are no longer supported (so is non-SASL authentication) (#1998)
    • Improvements in http backend of mod_event_pusher (#2100)
    • 👷 Cassandra layer uses a standard MIM worker pool instead of a custom one (#2043)
    • Deprecated gen_fsm is replaced by gen_fsm_compat (#1996)
    • ⚡️ Updated dependencies:
    • Implementation of MUC Light user affiliation logic is more developer-friendly (#1934)
    • 🔌 Generation of codecov-compatible coverage report is extracted to rebar3_codecov plugin (#2073)
    • mod_muc uses maps instead of dictionaries ( #1986)
    • 👷 Shaper workers are organised under dedicated supervisor (#2130)

    🛠 Fixed

    • Config reload in cluster had broken verification logic (#2051)
    • fusco clients are now properly closed in mod_revproxy (#2118)
    • Backend proxy modules are loaded only once (#1438)
    • Node cleaners are no longer crashing (#2135)
    • ✅ Test runner
      • Tests are counted properly on macOS (#2004)
      • Appropriate error is returned, when there are no test nodes. (#2004)
      • Improved test specs generation and autocompletion (#2036)
    • 🛠 Minor fixes (#2010, #2046, #2069, #2086, #2123)
    • 🚀 rebar3 release generation with OTP 21 (update to 3.6.1) (#2037)
    • 🔧 NkSERVICE cache dir configuration works as expected now (#2058)
    • 👷 Dialyzer job on Travis runs with Erlang/OTP 21 and returns no errors (#2075)

    Other

    🔀 Commits, merged PRs and closed issues

    Special thanks to our contributors: @getong @igors @justinba1010 !