prosody/CHANGES
2025-03-13 13:11:05 +00:00

247 lines
8.4 KiB
Text

TRUNK
=====
13.0.0
======
**2025-03-13**
## New
## Modules
- mod_account_activity
- mod_cloud_notify
- mod_flags
- mod_http_altconnect
- mod_s2s_auth_dane_in
- mod_server_info
### Administration
- Add 'watch log' command to follow live debug logs at runtime (even if disabled)
- mod_announce: Add shell commands to send messages to all users, online users, or limited by roles
- New mod_account_activity plugin records last login/logout time of a user account
- New 'prosodyctl check features' recommends configuration improvements
### Networking
- Honour 'weight' parameter during SRV record selection
- Support for RFC 8305 "Happy Eyeballs" to improve IPv4/IPv6 connectivity
- Support for TCP Fast Open in server_epoll (pending LuaSocket support)
- Support for deferred accept in server_epoll (pending LuaSocket support)
### MUC
- Component admins are no longer room owners by default. This can be reverted
to the old behaviour with `component_admins_as_room_owners = true`, but this
has known incompatibilities with some clients. Instead, use the shell or
ad-hoc commands to gain ownership of rooms when necessary.
- Permissions updates:
- Room creation restricted to local users (of the parent host) by default
- restrict_room_creation = true restricts to admins, false disables all restrictions
- Persistent rooms can only be created by local users (parent host) by default
- muc_room_allow_persistent = false restricts to admins
- Public rooms can only be created by local users (parent host) by default
- muc_room_allow_public = false restricts to admins
- Commands to show occupants and affiliations in the Shell
- Save 'reason' text supplied with affiliation change
- Owners can set MUC avatars (functionality previously in community module mod_vcard_muc)
### Security and authentication
- Advertise supported SASL Channel-Binding types (XEP-0440)
- Implement RFC 9266 'tls-exporter' channel binding with TLS 1.3
- Implement 'tls-server-end-point' channel binding
- New role and permissions framework and API
- Ability to disable and enable user accounts
- Full DANE support for s2s
- A "grace period" is now supported for deletion requests via in-band registration
- No longer check certificate Common Names per RFC 9525
### Storage
- New 'keyval+' combined keyval/map store type
- Performance improvements in internal archive stores
- Ability to use SQLite3 storage using LuaSQLite3 instead of LuaDBI
- SQLCipher support
### Module API
- Config interface API can require that string values be picked from a provided set
- Acceptable interval can be specified for number options
- Method for parsing time periods / intervals from config
- Method for retrieving integer settings from config
- It is now easy for modules to expose a Prosody shell command, by adding a shell-command item
- Modules can now implement a module.ready method which will be called after server initialization
- module:depends() now accepts a second parameter 'soft' to enable soft dependencies
### Configuration
- The configuration file now supports referring and appending to options previously set
- Direct usage of the Lua API in the config file is deprecated, but can now be accessed via Lua.* instead
- Convenience functions for reading values from files, with variant meant for credentials or secrets
## Changes
- Support sub-second precision timestamps
- mod_blocklist: New option 'migrate_legacy_blocking' to disable migration from mod_privacy
- Moved all modules into the Lua namespace `prosody.`
- Forwarded header from RFC 7239 supported, disabled by default
- mod_http_file_share now uses roles framework, affecting access from e.g. components
- Intervals of mod_cron managed periodic jobs made configurable
- When mod_smacks is enabled, s2s connections not responding to ack requests are closed.
- Arguments to `prosodyctl shell` that start with ':' are now turned into method calls
- Support for Type=notify and notify-reload systemd service type added
- Support for the roster *group* access_model in mod_pep
- Support for systemd socket activation in server_epoll
- mod_invites_adhoc gained a command for creating password resets
- mod_cloud_notify imported from community modules for push notification support
- mod_http_altconnect imported from community modules, simplifying web clients
## Removed
- Lua 5.1 support
- XEP-0090 support removed from mod_time
- util.rfc6724
0.12.0
======
**2022-03-14**
## New
### Modules
- mod_mimicking: Prevent address spoofing
- mod_s2s_bidi: Bi-directional server-to-server (XEP-0288)
- mod_external_services: generic XEP-0215 support
- mod_turn_external: easy setup XEP-0215 for STUN+TURN
- mod_http_file_share: File sharing via HTTP (XEP-0363)
- mod_http_openmetrics for exposing metrics to stats collectors
- mod_smacks: Stream management and resumption (XEP-0198)
- mod_auth_ldap: LDAP authentication
- mod_cron: One module to rule all the periodic tasks
- mod_admin_shell: New home of the Console admin interface
- mod_admin_socket: Enable secure connections to the Console
- mod_tombstones: Prevent registration of deleted accounts
- mod_invites: Create and manage invites
- mod_invites_register: Create accounts using invites
- mod_invites_adhoc: Create invites via AdHoc command
- mod_bookmarks: Synchronise open rooms between clients
### Security and authentication
- SNI support (including automatic certificate selection)
- ALPN support in mod_net_multiplex
- DANE support in low-level network layer
- Direct TLS support (c2s and s2s)
- SCRAM-SHA-256
- Direct TLS (including https) certificates updated on reload
- Pluggable authorization providers (mod_authz_)
- Easy use of Mozilla TLS recommendations presets
- Unencrypted HTTP port (5280) restricted to loopback by default
- require_encryption options default to 'true' if unspecified
- Authentication module defaults to 'internal_hashed' if unspecified
### HTTP
- CORS handling now provided by mod_http
- Built-in HTTP server now handles HEAD requests
- Uploads can be handled incrementally
### API
- Module statuses (API change)
- util.error for encapsulating errors
- Promise based API for sending queries
- API for adding periodic tasks
- More APIs supporting ES6 Promises
- Async can be used during shutdown
### Other
- Plugin installer
- MUC presence broadcast controls
- MUC: support for XEP-0421 occupant identifiers
- `prosodyctl check connectivity` via observe.jabber.network
- STUN/TURN server tests in `prosodyctl check`
- libunbound for DNS queries
- The POSIX poll() API used by server_epoll on \*nix other than Linux
## Changes
- Improved rules for mobile optimizations
- Improved rules for what messages should be archived
- mod_limits: Exempted JIDs
- mod_server_contact_info now loaded on components if enabled
- Statistics now based on OpenMetrics
- Statistics scheduling can be done by plugin
- Offline messages aren't sent to MAM clients
- Archive quotas (means?)
- Rewritten migrator with archive support
- Improved automatic certificate locating and selecting
- Logging to syslog no longer missing startup messages
- Graceful shutdown sequence that closes ports first and waits for
connections to close
## Removed
- `daemonize` option deprecated
- SASL DIGEST-MD5 removed
- mod_auth_cyrus (older LDAP support)
- Network backend server_select deprecated (not actually removed yet)
0.11.0
======
**2018-11-18**
New features
------------
- Rewritten more extensible MUC module
- Store inactive rooms to disk
- Store rooms to disk on shutdown
- Voice requests
- Tombstones in place of destroyed rooms
- PubSub features
- Persistence
- Affiliations
- Access models
- "publish-options"
- PEP now uses our pubsub code and now shares the above features
- Asynchronous operations
- Busted for tests
- mod\_muc\_mam (XEP-0313 in groupchats)
- mod\_vcard\_legacy (XEP-0398)
- mod\_vcard4 (XEP-0292)
- mod\_csi, mod\_csi\_simple (XEP-0352)
- New experimental network backend "epoll"
0.10.0
======
**2017-10-02**
New features
------------
- Rewritten SQL storage module with Archive support
- SCRAM-SHA-1-PLUS
- `prosodyctl check`
- Statistics
- Improved TLS configuration
- Lua 5.2 support
- mod\_blocklist (XEP-0191)
- mod\_carbons (XEP-0280)
- Pluggable connection timeout handling
- mod\_websocket (RFC 7395)
- mod\_mam (XEP-0313)
Removed
-------
- mod\_privacy (XEP-0016)
- mod\_compression (XEP-0138)