Commit graph

134 commits

Author SHA1 Message Date
Matthew Wild
421afd79f4 CHANGES: 13.0.0 release date 2025-03-13 13:11:05 +00:00
Matthew Wild
287349f2eb CHANGES: Fix 13.0.0 version number 2025-03-13 13:10:22 +00:00
Matthew Wild
5b1d83614b CHANGES: Add list of new modules 2025-03-11 18:27:54 +00:00
Kim Alvefur
b8e4d5e840 util.x509: Per RFC 9525, remove obsolete Common Name check 2024-02-11 13:34:13 +01:00
Matthew Wild
1bb0fa47bc moduleapi: Allow soft dependencies via module:depends(mod, true) 2025-02-16 13:29:07 +00:00
Matthew Wild
83e4560a6c mod_http_altconnect: Imported from prosody-modules 6d5a19bdd718 w/changes
Changes from community version:

  - Add options to allow explicit control over whether BOSH/WS is advertised
  - Always serve XML at /host-meta (no guessing based on Accept), least surprising
2025-02-16 13:19:05 +00:00
Matthew Wild
bdc573f17b CHANGES: add 'prosodyctl check features' 2025-02-15 16:48:27 +00:00
Matthew Wild
e3bd013535 CHANGES: List mod_cloud_notify 2025-02-14 14:44:47 +00:00
Matthew Wild
d828183c6a CHANGES: Update with some more 13.0 features 2025-02-12 17:15:49 +00:00
Matthew Wild
2d695b3c01 CHANGES: Update for 13.0.x 2025-02-11 14:57:18 +00:00
Kim Alvefur
654edd37bb util.sql: SQLCipher support
This enables use of encrypted databases if LuaDBI or LuaSQLite3 has been
linked against SQLCipher. Using `LD_PRELOAD` may work as well.

Requires SQLCipher >= 4.0.0 due to the use of UPSERT
2025-01-23 16:38:56 +01:00
Kim Alvefur
41a360ce2a core.configmanager: Add function for getting secrets from separate files
Idea is to enable easily retrieving of secret values from files outside
of the config, e.g. via the method used by systemd credentials.

CREDENTIALS_DIRECTORY is expected to be set by the process manager
invoking Prosody, so being unset and unavailable from prosodyctl is
going to be normal and a warning is reported in that case. Care will
have to be taken to make it clear that prosodyctl check will not work
with such values. An error is thrown if the directory is unavailable
when running under Prosody.
2025-01-16 15:21:34 +01:00
Kim Alvefur
2f37c443b8 core.configmanager: Add ways to read config values from files
Inspired by something MattJ said

Allows retrieving config values from files which are expected to be
relative to the config directory, extending on the ENV_ method of
retrieving config values from outside the config file.

- FileLine retrieves the first line, stripping any trailing newline
- FileContents reads the whole file
- FileLines reads lines into an array
2025-01-16 15:05:00 +01:00
Kim Alvefur
a63544d6cf mod_invites_adhoc: Add password reset command
To support cases where the admin does not have easy access to the
command line to generate a password reset invite for someone who forgot
their password.
2024-10-20 12:11:21 +02:00
Menel
bd90f33e28 Add Info about mod_announce in the CHANGES file of trunk 2024-10-21 17:15:06 +02:00
Matthew Wild
29148cfe9c MUC: Don't default component admins to being room owners
This change has various technical and social benefits. If ownership of a MUC
is really needed, it can be gained using the 'Set affiliation' ad-hoc command
or prosodyctl shell.

Example client incompatibility with the old behaviour:

  - https://github.com/monal-im/Monal/issues/1085
2024-06-18 15:08:30 +01:00
Kim Alvefur
2647c56106 net.server_epoll: Add support for systemd socket activation
Allows creating listening sockets and accepting client connections
before Prosody starts.
This is unlike normal Prosody dynamic resource management, where ports
may added and removed at any time, and the ports defined by the config.

Weird things happen if these are closed (e.g. due to reload) so here we
prevent closing and ensure sockets are reused when opened again.
2024-05-14 17:07:47 +02:00
Kim Alvefur
83ee7e5739 mod_pep: Implement 'roster' (group) access_model
Allows e.g. restricting your vcard4 to only family or similar.

Notes: This does not include roster groups in the configuration form,
so the client will have to get them from the actual roster.
2023-12-03 23:19:27 +01:00
Kim Alvefur
502b8d3998 util.startup: Support systemd Type=notify service type
This lets Prosody report its lifecycle status to systemd, so it knows
when Prosody has completed its startup, when it's reloading and shutting
down.

Both Type=notify and Type=notify-reload is supported

Example systemd .service configuration snippet:

[Service]
Type=notify
2024-04-04 19:00:27 +02:00
Kim Alvefur
ddd479afe2 util.rfc6724: Remove, unused since introduction of Happy Eyeballs
It was mainly used to determine whether to try IPv6 or IPv4 first,
following the rules for this in the RFC.

Now we always try IPv6 and IPv4 at roughly the same time, thus there no
need to carry these rules.
2024-02-22 19:46:52 +01:00
Kim Alvefur
cb66977bd4 MUC: Record reason for affiliation changes and return in list (fixes #1227) 2021-08-08 18:07:17 +02:00
Kim Alvefur
637025fc78 CHANGES: Mention new prosodyctl shell method behavior 2023-12-09 16:41:37 +01:00
Matthew Wild
1b3971dd62 CHANGES: Document some of the recent changes and features in trunk 2023-12-08 15:46:32 +00:00
Kim Alvefur
e5aa2c3385 mod_s2s: Close connection on smacks timeout
This merges the mod_s2s_smacks_timeout behavior from prosody-modules

This event is fired by mod_smacks when the connection has not responded
to an ack-request for a period of time defaulting to 30 seconds,
indicating that the connection has become stuck or non-responsive.
Closing it prevents routing further messages via this connection and
frees resources. A stuck connection may otherwise remain until for a
time determined by the OS TCP subsystem, which can be quite long.
2023-12-02 20:20:05 +01:00
Kim Alvefur
6c0ba09487 mod_s2s_auth_dane_in: DANE support for s2sin
Complements the DANE support for outgoing connections included in
net.connect
2023-11-01 22:49:56 +01:00
Kim Alvefur
7b882e4405 mod_cron: Make task frequencies configurable in overly generic manner
Requested feature for many modules, notably MAM and file sharing.
2023-10-22 18:58:02 +02:00
Kim Alvefur
ade700b2d6 CHANGES: Mention 'tls-server-end-point' 2023-10-22 19:00:24 +02:00
Kim Alvefur
df4bde023b mod_http_file_share: Switch to the new authz API (BC)
Behavior change: It becomes up to the authorization module whether to
allow requests. The default, mod_authz_internal, will allow users on the
*parent* host only, breaking use by some components.

Remaining question is whether to deprecate the `http_file_share_access`
setting or leave as a way to complement/bypass access control?
2023-09-16 14:23:08 +02:00
Kim Alvefur
210f608086 moduleapi: Add :get_option_integer()
Many options in Prosody that are treated as numbers don't make sense as
floats, e.g. sizes and limits measured in bytes.

Simplified implementation based on an earlier attempt dating back to 2020
2023-07-17 00:09:41 +02:00
Kim Alvefur
3c4dc9a754 core.moduleapi: Add :get_option_period for parsing time intervals
E.g. for use in mod_mam and others that take an amount of time before
some (usually cleanup) action is taken.
2023-07-16 19:49:12 +02:00
Kim Alvefur
924064a30a core.moduleapi: Allow specifying an acceptable range for number options 2021-10-05 15:36:38 +02:00
Kim Alvefur
c4abd68e92 moduleapi: Add enum config option method
For when a setting has a few fixed values it can take
2021-01-16 20:40:14 +01:00
Kim Alvefur
1e8743a681 CHANGES: Move line about LuaSQLite3 to Storage section 2023-07-12 22:50:24 +02:00
Kim Alvefur
64c2ec4835 CHANGES: Mention performance improvements for internal archives
Specifically the index and more efficient delete.

These are however still in need of testing.
2023-07-12 22:48:10 +02:00
Kim Alvefur
16381e754d mod_http: Make RFC 7239 Forwarded opt-in for now to be safe
Supporting both methods at the same time may open to spoofing attacks,
whereby a client sends a Forwarded header that is not stripped by a
reverse proxy, leading Prosody to use that instead of the X-Forwarded-*
headers actually sent by the proxy.

By only supporting one at a time, it can be configured to match what the
proxy uses.

Disabled by default since implementations are sparse and X-Forwarded-*
are everywhere.
2023-06-03 21:53:20 +02:00
Kim Alvefur
8c92b32b7a mod_http: Use RFC 7239 Forwarded header to find original client IP
Prefer over X-Forwarded-* since it has an actual specification.

Main practical difference is that Forwarded may carry more properties
than only the IP address since it is a structured header.

Since we parse it into an array, it is easier to do the logical thing
and iterate backwards trough proxies until an untrusted one is
encountered. Compare the handling of X-Forwarded-For.

The 'secure' field now accounts for the full chain of proxies, which
must be secure all the way to be considered secure.
2023-06-03 17:10:04 +02:00
Kim Alvefur
738df041ac CHANGES: The Great Rename-ning completed! #1223 2023-03-17 19:38:39 +01:00
Matthew Wild
8c25001712 CHANGES: Add keyval+ 2023-03-21 18:59:19 +00:00
Kim Alvefur
087ffc7f32 CHANGES: Mention new ability to disable and enable user accounts 2023-02-23 18:11:15 +01:00
Kim Alvefur
08a730746c mod_admin_shell: Add muc:affiliations(room) command to list memberships
Easier than going trough muc:room():each_affiliation() since you have to
do fiddly things to reach the print() function.
2023-01-29 17:53:21 +01:00
Kim Alvefur
2b0584d2ee mod_admin_shell: Add muc:occupants(room) command to list occupants
Easier than going trough muc:room():each_occupant() since you have to do
fiddly things to reach the print() function.
2023-01-29 17:41:08 +01:00
Kim Alvefur
4c14111c76 mod_storage_sql: Support SQLite3 without LuaDBI 2023-01-19 16:56:12 +01:00
Kim Alvefur
2269035c0d mod_blocklist: Add option 'migrate_legacy_blocking' to disable migration from mod_privacy
Tiny performance improvement for new users by skipping this check. Most
servers should have gone trough the migration for all active users long
ago.

As a suitable first step of phasing out this code, we make it possible
to disable it first. Later it can be disabled by default, before finally
the code is deleted.
2022-10-17 15:20:06 +02:00
Matthew Wild
dfd1e396bb CHANGES: Update with MUC permission changes 2022-09-29 12:57:05 +01:00
Matthew Wild
227f6c0336 CHANGES: Add role auth 2022-08-22 13:03:10 +01:00
Kim Alvefur
2294d8b8e0 mod_time: Remove obsolete XEP-0090 support
Deprecated even before Prosody even started, obsolete for over a decade.
2022-08-15 16:35:14 +02:00
Kim Alvefur
c85c18b03a util.datetime: Add support for sub-second precision timestamps
Lua since 5.3 raises a fuss when time functions are handed a number with
a fractional part and the underlying C functions are all based on
integer seconds without support for more precision.
2022-08-14 16:57:31 +02:00
Kim Alvefur
8db7cdc713 mod_saslauth: Implement RFC 9266 'tls-exporter' channel binding (#1760)
Brings back SCRAM-SHA-*-PLUS from its hiatus brought on by the earlier
channel binding method being undefined for TLS 1.3, and the increasing
deployment of TLS 1.3.

See 1bfd238e05ad and #1542

Requires future version of LuaSec, once support for this key material
export method is merged.

See https://github.com/brunoos/luasec/pull/187
2022-06-01 15:06:59 +02:00
Kim Alvefur
c8a49ad144 CHANGES: Lua 5.1 support removed (closes #1600) 2022-07-05 14:59:47 +02:00
Kim Alvefur
2048a7a762 mod_saslauth: Advertise channel bindings via XEP-0440
This is useful when there's more than one channel binding in
circulation, since perhaps there will be varying support for them.
2020-12-06 22:04:43 +01:00