Skip to content

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)
  • 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:

Assets 2

@aleklisi aleklisi released this Mar 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:

  • 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)
  • 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:

Assets 2

@fenek fenek released this Nov 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 !

Assets 2

@fenek fenek released this Jul 24, 2018

Highlights - 3.1.x

  • Inbox extension enters beta stage, improved with MUC, timestamps and MSSQL support
  • Test Runner - comprehensive tool for executing tests locally
  • OTP 21 support
  • ElasticSearch backend for message archive

Patch: 3.1.1

  • Updated exml to 3.0.2, fixing an important security issue.

All changes - 3.1.0

Added

  • mod_inbox enters beta stage
    • Timestamps support (#1970)
    • Classic MUC support (#1961)
    • MSSQL support (#1965)
  • Test Runner (#1973, #1989, #1991)
  • OTP 21 support, OTP 18.x is no longer officially supported (#1947)
  • Jingle/SIP tutorial (#1980)
  • ElasticSearch backend for message archive (#1900)
  • Smack-specific properties support in REST API (#1976)
  • reload_cluster command support for ignorable options (#1948)
  • Jingle/SIP Re-INVITE support (#1903)
  • More meaningful HTTP API errors (#1776)
  • MUC hooks for user join and leave (#1898)
  • Support for result limiting options in mod_mam_meta (#1977)

Changed

  • Message archive async writers no longer synchronise on reading operations (#1919)
  • Replaced bundled LDAP driver with an OTP one (#1216)
  • All worker pools are now based on one library: worker_pool (#1955)
  • Mnesia directory is no longer removed in clustering operations (#1951)
  • Inconsistent Mnesia directory names are no longer an error in clustering operations (#1904)
  • MEDIUMBLOB is used for message archive data by default (#1873)
  • Adding children to main supervisor is now more strictly verified (#1905)
  • Updated dependencies:
    • worker_pool 3.1.1 (#1983)
    • lager 3.6.4 (#1992)
    • jiffy 0.15.2 (#1992)
    • idna 1.5.2 (#1992)
    • uuid 1.7.3 (#1992)
    • lasse 1.1.1 (#1992)
    • escalus e7eece237a56560add06127bc9ed47d423e88dcc (#1947)
  • Removed pooler dependency (#1875)
  • Moved some multi-module MongooseIM components to dedicated subdirectories (#1952)
  • conflict_check_failed log severity changed to "warning" (#1981)
  • Decreased severity of some log messages (#1984)

Fixed

  • mongoose_acc server property scope (#1925)
  • mod_inbox_odbc was reporting false errors on MySQL upserts (#1994)
  • Rosters are properly updated on subscription requests (#1931)
  • DB deadlock is now handled properly in message archive preferences (#1897)
  • Handling of terminating receiver process (#1949)
  • mod_jingle_sip startup for multiple hosts (#1960)
  • Record-Route header generation in Jingle/SIP (#1958)
  • MSSQL transactions are now stable in MUC Light (#1917)

Other

Commits, merged PRs and closed issues

Special thanks to our contributors: @SamuelNichols @Beisenbek @GalaxyGorilla @igors !

Assets 2

@fenek fenek released this May 22, 2018 · 1 commit to rel-3.0 since this release

Highlights - 3.0.x

  • exml 3.0.1, much faster and efficient than previous versions, thanks to a new XML parser: RapidXML
  • Inbox extension - a way to display conversations list in chat application

Patch: 3.0.1

  • Updated exml to 3.0.2, fixing an important security issue.

All changes - 3.0.0

Added

  • Inbox extension - experimental (#1783)
  • Acceptor pool for incoming XMPP TCP/UDP connections (#1849)
  • OTP 20 support in mod_jingle_sip (#1825)

Changed

  • MongooseIM uses exml 3.0.1, based on new XML parser: RapidXML (#1729, #1870)
  • Updated fast_tls to a version that avoids extensive usage of stat function (#1806)
  • User sessions are hibernated (e.g. garbage collected) as frequently as possible (#1821)
  • Cassandra connection pool has been refactored (#1847)
  • Removed support for Message Archive Management v0.2 (#1860)
  • policy-violation check is performed in mod_mam(_muc), not in its backends (#1817)
  • Removed unnecessary -part schemas for MySQL (#1845)
  • mod_jingle_sip uses origin_ acc keys instead of custom ones (#1841)

Fixed

  • ODBC support - replaced ODBC library and refactored RDBMS code (#1816, #1838)
  • mod_muc terminated the room when a cancel form was received for a room in normal state (#1798)
  • C2S process now ignores IQ replies addressed to previous process for the same user session (#1803)
  • Metrics skipping (#1819)

Other

Commits, merged PRs and closed issues

Special thanks to our contributor: @igors !

Assets 2
Jul 24, 2018
Release 3.1.0
May 22, 2018
[skip ci] 3.0.0 docs and VERSION update

@fenek fenek released this Apr 17, 2018

Added

  • SASL EXTERNAL authentication method, i.e. auth with certificates (#1735)
  • Jingle/SIP proxy (#1797, #1814)
  • "Hidden" components capability (#1769)
  • Mongoose Services (#1792)
  • Hosts Refresher process for Global Distribution (#1660)
  • advertised_endpoints option for Global Distribution (#1724)
  • Pluggable backends support in mod_muc (#1758)
  • Foreground mode (#1775)
  • Now it is possible to upload test results to Google Drive (#1702)
  • Conditional logging macros (#1707)
  • Extended logging in mod_push_service_mongoosepush (#1777)
  • Extra debug logs in ejabberd_service and mod_websockets (#1697)
  • Extended logging in mod_vcard (#1715)

Changed

  • Refactored MongooseIM header files (#1570)
  • mod_event_pusher and mod_event_pusher_push API has been improved; not backwards compatible (#1796)
  • gen_mod:start,stop no longer allow to start already running and stop already stopped module (#1771)
  • "Big tests" are moved from test.disabled/ejabberd_tests/ to big_tests (#1778)
  • Binary values are now hex-escaped in queries to MySQL (#1678)
  • Updated dependencies: fast_tls @ a166f0e9fe78304e5ca628fd5eff57c850241813 and cache_tab @ 1.0.12 (#1753, #1806)
  • Updated MySQL library to 1.3.2 (#1787)
  • Updated rebar3 to 3.5.0 (#1786)
  • mod_ping no longer pings bare JIDs (#1710)
  • mod_mam no longer uses dynamically compiled module for accessing parameters (#1627)
  • 1-1 messages REST API now uses mongoose_acc structure (#1744)
  • Improved logging in Global Distribution (#1761)

Fixed

  • Under some conditions MongooseIM could enter infinite error routing loop (#1800)
  • mod_mam was handling Unicode data improperly (#1748)
  • mod_event_pusher_push could attempt pushing body-less message (#1726)
  • mod_event_pusher's HTTP backend was escaping data improperly (#1632)
  • A corner case in Global Distribution was present that could lead to broken message order (#1689)
  • Global Distribution was not caching origin info for packets from components (#1695)
  • Race condition was present in outgoing connection pools' initialisation in Global Distribution (#1750)
  • Global Distribution mappings manager sometimes crashed when mongoose_router_external* routers were first in routing chain. (#1763)
  • Admin REST API wasn't working properly with MUC Light + ODBC backend (#1742)
  • mod_mam was calculating complete attribute improperly when paginating backward (#1740)
  • X-OAUTH2 tokens were not deleted properly on user removal (#1746)
  • MAM 0.2 is now properly deprecated (#1807)
  • Received stanza size metric could be highly inaccurate (#1615)
  • Tide address used http instead of https (#1701)
  • MongooseIM could not be deployed in paths with spaces (#1621)

Other

Commits, merged PRs and closed issues

Special thanks to our contributors: @igors @jacksgt @sstrigler @GalaxyGorilla @varnerac!

Assets 2
Apr 17, 2018
Release 2.2.1
Apr 17, 2018
Release 2.2.0
You can’t perform that action at this time.