Kim Alvefur <zash@zash.se> [Sat, 14 Oct 2023 21:40:20 +0200] rev 5674
mod_storage_s3: Handle signing of request ?query part
Kim Alvefur <zash@zash.se> [Sat, 14 Oct 2023 17:31:06 +0200] rev 5673
mod_storage_s3: Beginnings of an experimental S3 storage driver
Tested against MinIO
Kim Alvefur <zash@zash.se> [Fri, 06 Oct 2023 18:34:39 +0200] rev 5672
mod_measure_modules: Report module statuses via OpenMetrics
Someone in the chat asked about a health check endpoint, which reminded
me of mod_http_status, which provides access to module statuses with
full details. After that, this idea came about, which seems natural.
As noted in the README, it could be used to monitor that critical
modules are in fact loaded correctly.
As more modules use the status API, the more useful this module and
mod_http_status becomes.
Kim Alvefur <zash@zash.se> [Fri, 06 Oct 2023 16:49:57 +0200] rev 5671
mod_http_health: Provide a health check HTTP endpoint
Someone in the chat asked about a health check endpoint, which reminded
me of mod_http_status, which was simplified to produce this module.
Kim Alvefur <zash@zash.se> [Sun, 01 Oct 2023 16:39:48 +0200] rev 5670
mod_rest/rest.sh: Restore default read-only behavior and the -rw flag
Kim Alvefur <zash@zash.se> [Thu, 28 Sep 2023 16:38:29 +0200] rev 5669
mod_http_oauth2: Include 'amr' claim in ID Token
This essentially just says "password authentication was used". This
field could later be used to indicate whether e.g. MFA was used.
Stephen Paul Weber <singpolyma@singpolyma.net> [Thu, 21 Sep 2023 18:47:27 -0500] rev 5668
mod_push2: restore offline message hook
Filtering is mostly handled in handle_notify_request now
Stephen Paul Weber <singpolyma@singpolyma.net> [Wed, 20 Sep 2023 23:05:29 -0500] rev 5667
mod_push2: Need to include the public key with the JWT
Stephen Paul Weber <singpolyma@singpolyma.net> [Tue, 19 Sep 2023 21:39:14 -0500] rev 5666
mod_push2: Add note about luaossl patch
Stephen Paul Weber <singpolyma@singpolyma.net> [Tue, 19 Sep 2023 21:36:13 -0500] rev 5665
mod_push2: Fix unbalanced quote in readme
Stephen Paul Weber <singpolyma@singpolyma.net> [Tue, 19 Sep 2023 21:33:40 -0500] rev 5664
mod_push2: Add back body truncation logic
Stephen Paul Weber <singpolyma@singpolyma.net> [Tue, 19 Sep 2023 21:21:17 -0500] rev 5663
Initial work on Push 2.0
Kim Alvefur <zash@zash.se> [Tue, 19 Sep 2023 15:03:01 +0200] rev 5662
mod_muc_adhoc_bots: Fix unbalanced quote in metadata section
Kim Alvefur <zash@zash.se> [Tue, 19 Sep 2023 14:55:56 +0200] rev 5661
mod_muc_members_json: Fix potential error when removing old affiliations
Found this uncommitted change on a production server...
The affiliation data may been `nil` at some point, triggering an error?
Kim Alvefur <zash@zash.se> [Tue, 19 Sep 2023 13:22:00 +0200] rev 5660
mod_http_muc_log: Correctly handle changed or retracted reactions
Since per XEP-0444 each reaction should overwrite all previous reactions
on a particular message from a particular occupant.
Previously repeated reactions would be counted again and retractions
were not handled.
Kim Alvefur <zash@zash.se> [Mon, 18 Sep 2023 18:34:55 +0200] rev 5659
mod_muc_members_json: Demonstrate support for more than one JID per list
Kim Alvefur <zash@zash.se> [Mon, 18 Sep 2023 18:33:01 +0200] rev 5658
mod_muc_members_json: Fix invalid JSON in README
Stephen Paul Weber <singpolyma@singpolyma.net> [Mon, 18 Sep 2023 08:24:19 -0500] rev 5657
Merge
Stephen Paul Weber <singpolyma@singpolyma.net> [Mon, 18 Sep 2023 08:22:07 -0500] rev 5656
mod_muc_adhoc_bots: add module
Stephen Paul Weber <singpolyma@singpolyma.net> [Sat, 06 May 2023 19:42:08 -0500] rev 5655
mod_pubsub_subscription: support subscribing from a bare JID
Allow subscribing from a bare JID on the component instead of only the component
host, useful for subscribing to whitelist access model nodes that want to see
a particular JID in the from.
Stephen Paul Weber <singpolyma@singpolyma.net> [Sat, 06 May 2023 19:40:23 -0500] rev 5654
merge
Stephen Paul Weber <singpolyma@singpolyma.net> [Wed, 22 Feb 2023 22:47:45 -0500] rev 5653
mod_muc_restrict_avatars: Block MUC participant avatars for non-members
Kim Alvefur <zash@zash.se> [Sun, 17 Sep 2023 13:36:30 +0200] rev 5652
misc/mtail: Start of an mtail config
Stashing it here in case anyone wants to continue working on it.
Currently it's only counting log messages by level.
Due to the permissions set by systemd on Prosody logs, mtail never
managed to start correctly until permissions were manually relaxed.
Kim Alvefur <zash@zash.se> [Mon, 11 Sep 2023 18:03:18 +0200] rev 5651
mod_muc_moderation: Mention that it works with mod_storage_xmlarchive (thanks Menel)
Kim Alvefur <zash@zash.se> [Mon, 11 Sep 2023 10:48:31 +0200] rev 5650
mod_http_oauth2: Apply refresh token ttl to refresh token instead of grant
The intent in 59d5fc50f602 was for refresh tokens to extend the lifetime
of the grant, but the refresh token ttl was applied to the grant and
mod_tokenauth does not change it, leading to the grant expiring
regardless of refresh token usage.
This makes grant lifetimes unlimited, which seems to be standard
practice in the wild.
Kim Alvefur <zash@zash.se> [Mon, 11 Sep 2023 10:19:38 +0200] rev 5649
mod_client_management: Show grant expiry in shell command
I want to know when my OAuth2 grant expires and that it really is
extended by refreshing.
Kim Alvefur <zash@zash.se> [Sat, 09 Sep 2023 22:51:25 +0200] rev 5648
mod_http_oauth2: Tweak wording in README to point out that this is an AS
Kim Alvefur <zash@zash.se> [Sat, 09 Sep 2023 21:42:24 +0200] rev 5647
mod_http_oauth2: Allow 'login_hint' as a substitute for OIDC 'select_account' prompt
If the OIDC 'prompt' parameter does not contain the 'select_account'
then it wants us to skip account selection, which means we have to
figure which account to authenticate somehow. One way could be have
this stored in a cookie from a previous successful login. Another way
would be to have the account passed as a hint, which is what we add
here.
Kim Alvefur <zash@zash.se> [Sun, 27 Aug 2023 09:49:35 +0200] rev 5646
mod_http_oauth2: Remove broken in-CSS templating
Because util.interpolation with a "%b{}" pattern only matches the outer
brackets, so variables inside them would not work unless the pattern is
changed (also considered).
Kim Alvefur <zash@zash.se> [Sun, 27 Aug 2023 15:33:14 +0200] rev 5645
mod_bidi: Really extra finally fix auto-linking to mod_s2s_bidi
Kim Alvefur <zash@zash.se> [Sun, 27 Aug 2023 15:31:46 +0200] rev 5644
mod_bidi: Fix README again
Kim Alvefur <zash@zash.se> [Sun, 27 Aug 2023 15:30:00 +0200] rev 5643
mod_bidi: Fix autolink syntax
Thanks pandoc ... not
Kim Alvefur <zash@zash.se> [Sun, 27 Aug 2023 15:28:53 +0200] rev 5642
mod_bidi: Add warning about use with 0.12
Kim Alvefur <zash@zash.se> [Sat, 26 Aug 2023 14:49:45 +0200] rev 5641
mod_rest/rest.sh: Silence shellcheck SC1091
Stops it from trying and failing to read the config file, since the path
uses variables.
Kim Alvefur <zash@zash.se> [Sat, 26 Aug 2023 14:37:04 +0200] rev 5640
mod_rest/rest.sh: Update to use httpie-oauth2 plugin
This bash implementation of OAuth2/OIDC was growing to the point where
it needed a massive refactor, which made me look into alternatives where
I finally settled on implementing oauth2 in a plugin for HTTPie.
Kim Alvefur <zash@zash.se> [Sat, 26 Aug 2023 01:40:23 +0200] rev 5639
mod_http_oauth2: Specify language in templates
Might be used as hint to translation systems.
Maybe one day we'll have i18n built in, but this is not that day!
Kim Alvefur <zash@zash.se> [Thu, 17 Aug 2023 08:34:17 +0200] rev 5638
mod_http_oauth2: Remove duplicated word in README introduced in 734788d8bfc3
Kim Alvefur <zash@zash.se> [Wed, 16 Aug 2023 23:56:40 +0200] rev 5637
mod_http_oauth2: Allow omitting application type for native apps
This derives "application_type":"native" from the first redirect URI
when registering a client, so that it can be omitted without the default
value of "web" causing the very same redirect URIs to be rejected.
Kim Alvefur <zash@zash.se> [Wed, 16 Aug 2023 11:17:28 +0200] rev 5636
mod_client_management: Show timestamp of first client appearance
Kim Alvefur <zash@zash.se> [Tue, 08 Aug 2023 17:04:50 +0200] rev 5635
mod_http_oauth2: Improve templates
XML-ness by avoiding value-less attributes or whatever they're called
Plus some Aria label tweaks
Kim Alvefur <zash@zash.se> [Mon, 07 Aug 2023 22:52:14 +0200] rev 5634
mod_http_oauth2: Add autocomplete hint to username field
Kim Alvefur <zash@zash.se> [Sun, 06 Aug 2023 12:07:05 +0200] rev 5633
mod_http_oauth2: Make storage of various code more consistent
I'm not sure how any of this worked at all.
Kim Alvefur <zash@zash.se> [Fri, 04 Aug 2023 01:11:01 +0200] rev 5632
mod_http_oauth2: Bail on invalid or expired device flow state token
Kim Alvefur <zash@zash.se> [Mon, 31 Jul 2023 07:28:09 +0200] rev 5631
mod_http_oauth2: Tweak method of centering the UI
The percentage here was relative to the viewport width, which on some
very wide screens may put the UI slightly outside of the view, requiring
scrolling to see.
By using a unit relative to the height of the viewport, this is avoided
and should work better. But no guarantees, it's still possible to resize
the browser or adjust font sizes so that the UI goes out of view.
Kim Alvefur <zash@zash.se> [Mon, 31 Jul 2023 02:07:58 +0200] rev 5630
mod_http_oauth2: Optionally enforce authentication on revocation endpoint
But why do OAuth require this? If a token leaks, why couldn't anyone
revoke it?
Kim Alvefur <zash@zash.se> [Mon, 31 Jul 2023 02:07:24 +0200] rev 5629
mod_http_oauth2: Present errors in HTML <dialog>
Nice semantic things that don't require JavaScript
Kim Alvefur <zash@zash.se> [Mon, 31 Jul 2023 02:05:49 +0200] rev 5628
mod_http_oauth2: Move site name into <header>
Because it's the site header
Kim Alvefur <zash@zash.se> [Mon, 31 Jul 2023 02:04:05 +0200] rev 5627
mod_http_oauth2: Conform to XHTML in templates
Mostly because pedantic. Seems appropriate.
Nice to be able to use an XML parser.
Kim Alvefur <zash@zash.se> [Thu, 27 Jul 2023 15:04:38 +0200] rev 5626
mod_s2sout_override: Add support for one-level wildcards (e.g. *.example.net)
Kim Alvefur <zash@zash.se> [Thu, 27 Jul 2023 15:00:26 +0200] rev 5625
mod_s2sout_override: Add support for a catch-all target
Kim Alvefur <zash@zash.se> [Wed, 26 Jul 2023 16:23:13 +0200] rev 5624
mod_invites_page: Produce URL without config from prosodyctl in trunk
Requires Prosody trunk rev 5884d58707fa or later.
Kim Alvefur <zash@zash.se> [Tue, 25 Jul 2023 11:01:58 +0200] rev 5623
mod_http_oauth2: Don't use new time period API just yet
Mistake in commit splitting, this was meant for later.
On the other hand, this is trunk only anyway.
Kim Alvefur <zash@zash.se> [Mon, 24 Jul 2023 01:26:41 +0200] rev 5622
mod_http_oauth2: Clean cache less frequently
Seems unlikely that enough unused and expired codes accumulate to
warrant an hourly job.
Kim Alvefur <zash@zash.se> [Mon, 24 Jul 2023 01:30:14 +0200] rev 5621
mod_http_oauth2: Shorten default token validity periods
With refresh tokens, short lifetime for access tokens is not a problem.
The arbitrary choice of one hour seems reasonable. RFC 6749 has it as
example value.
One week for refresh tokens matching the default archive retention
period. This means that a client that remains unused for one week will
have to sign in again. An actively used client will continually push
that forward with each used refresh token.
Kim Alvefur <zash@zash.se> [Sun, 23 Jul 2023 02:56:08 +0200] rev 5620
mod_http_oauth2: Implement refresh token rotation
Makes refresh tokens one-time-use, handing out a new refresh token with
each access token. Thus if a refresh token is stolen and used by an
attacker, the next time the legitimate client tries to use the previous
refresh token, it will not work and the attack will be noticed. If the
attacker does not use the refresh token, it becomes invalid after the
legitimate client uses it.
This behavior is recommended by draft-ietf-oauth-security-topics
Kim Alvefur <zash@zash.se> [Fri, 21 Jul 2023 00:38:04 +0200] rev 5619
mod_http_oauth2: Hint at future deprecation of resource owner password grant
It is strongly discouraged by all the modern OAuth 2.0 (and 2.1) documents.
Kim Alvefur <zash@zash.se> [Fri, 21 Jul 2023 00:37:34 +0200] rev 5618
mod_http_oauth2: Allow a shorter form of the device grant in config
Long URI is long
Kim Alvefur <zash@zash.se> [Fri, 21 Jul 2023 00:29:24 +0200] rev 5617
mod_http_oauth2: Mention Device flow in list of flows in README
Kim Alvefur <zash@zash.se> [Thu, 20 Jul 2023 10:38:33 +0200] rev 5616
mod_muc_moderation: Stamp XEP-0421 occupant-id for the acting moderator
Gives clients some hint about which moderator it was who did the deed.
The @by attribute does have the nick of the actor, but they could change
their nickname at some point, which is what occupant-id solves.
Ref #1816
Kim Alvefur <zash@zash.se> [Thu, 20 Jul 2023 10:37:27 +0200] rev 5615
mod_muc_moderation: Copy XEP-0421 occupant-id from retracted message
Lets clients correlate the sender of whatever was retracted by
moderators. Behavior limited to Prosody 0.12, otherwise there are no
assurances of the origin of the occupant-id tag.
Ref #1816