<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-modules/</link>
    <language>en-us</language>

    <title>prosody-modules: mod_auth_oauth_external/mod_auth_oauth_external.lua history</title>
    <description>mod_auth_oauth_external/mod_auth_oauth_external.lua revision history</description>
    <item>
    <title>mod_auth_oauth_external: Minor code cleanup</title>
    <link>http://hg.omfa.de/prosody-modules/log/6241b2f5e92f/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Minor code cleanup<br/>
<br/>
Attempt to reduce differences between SASL PLAIN and OAUTHBERARER code<br/>
paths, which overlap in the validation endpoint interaction and response<br/>
handling.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 May 2026 17:11:49 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Raise error when configured without at least one endpoint</title>
    <link>http://hg.omfa.de/prosody-modules/log/1216f6befbe7/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Raise error when configured without at least one endpoint<br/>
<br/>
Module does not work if both are unset.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 May 2026 16:13:35 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Reorder and comment on settings</title>
    <link>http://hg.omfa.de/prosody-modules/log/05d66fe6b289/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Reorder and comment on settings<br/>
<br/>
Trying to group settings a bit more.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 May 2026 16:10:48 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Pass on storage error from account info</title>
    <link>http://hg.omfa.de/prosody-modules/log/cab284eaeb81/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Pass on storage error from account info<br/>
<br/>
In case the storage driver has a problem, that problem is reported<br/>
instead of &quot;Account not available&quot;]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 18 Feb 2026 16:30:18 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Implement user deletion</title>
    <link>http://hg.omfa.de/prosody-modules/log/42866d42e267/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Implement user deletion<br/>
<br/>
However, unless the user is also deleted from the OAuth provider, this<br/>
merely resets the account.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jan 2026 05:16:25 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Record existence of users</title>
    <link>http://hg.omfa.de/prosody-modules/log/9c110fbecd86/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Record existence of users<br/>
<br/>
This allows iterating over users as well as existence checks.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jan 2026 05:14:25 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Inherit default HTTP client settings (thanks nils)</title>
    <link>http://hg.omfa.de/prosody-modules/log/97a9f939d472/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Inherit default HTTP client settings (thanks nils)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 07 Aug 2024 17:59:14 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Fix typo</title>
    <link>http://hg.omfa.de/prosody-modules/log/6592c444e85c/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Fix typo]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 25 Nov 2023 01:09:01 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Enable experimental http connection pooling</title>
    <link>http://hg.omfa.de/prosody-modules/log/0207fd248480/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Enable experimental http connection pooling<br/>
<br/>
Connection pooling may provide a performance boost since it does a few<br/>
requests per authentication.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 12 Nov 2023 02:35:34 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Also do XEP-0106 escaping in SASL OAUTHBEARER</title>
    <link>http://hg.omfa.de/prosody-modules/log/4e79f344ae2f/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Also do XEP-0106 escaping in SASL OAUTHBEARER<br/>
<br/>
For consistency.<br/>
<br/>
The mangling should be made configurable in the future.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 19:33:37 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Stub not implemented auth module methods</title>
    <link>http://hg.omfa.de/prosody-modules/log/7480dde4cd2e/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Stub not implemented auth module methods<br/>
<br/>
Not providing some of these may trigger errors on use, which is<br/>
something that would be nice to fix on the Prosody side, one day.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 19:11:25 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Allow different username in PLAIN vs final JID</title>
    <link>http://hg.omfa.de/prosody-modules/log/82a14082be3f/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Allow different username in PLAIN vs final JID<br/>
<br/>
Mastodon for example having email addresses usernames in login, but a<br/>
different username in the service itself.<br/>
<br/>
Thanks to @tcit@social.tcit.fr for the pointer to a usable validation<br/>
endpoint for Mastodon, allowing this to be tested.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 13:52:31 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Remove untested JID mapping</title>
    <link>http://hg.omfa.de/prosody-modules/log/721f79ac88d8/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Remove untested JID mapping<br/>
<br/>
This should probably be opt-in.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 13:45:28 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Remove untested role mapping</title>
    <link>http://hg.omfa.de/prosody-modules/log/53f34e17d590/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Remove untested role mapping<br/>
<br/>
This ... broke things. If brought back, it would need additional<br/>
validation.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 13:43:59 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Expect XEP-0106 escaped username in PLAIN</title>
    <link>http://hg.omfa.de/prosody-modules/log/49306afbf722/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Expect XEP-0106 escaped username in PLAIN<br/>
<br/>
This allows entering an email address as username in some clients by<br/>
escaping the @ as \40, enabling authentication against Mastodon]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 12:55:13 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Make 'scope' configurable in password grant request</title>
    <link>http://hg.omfa.de/prosody-modules/log/e7d99bacd0e8/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Make 'scope' configurable in password grant request<br/>
<br/>
Needed by some OAuth servers, tested here with Mastodon]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 May 2023 12:39:05 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Add setting for client_secret</title>
    <link>http://hg.omfa.de/prosody-modules/log/b3e7886fea6a/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Add setting for client_secret<br/>
<br/>
Whether this is needed may vary by OAuth provider. Mastodon for example<br/>
requires it.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 08 May 2023 20:12:43 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Work without token validation endpoint</title>
    <link>http://hg.omfa.de/prosody-modules/log/92ad8f03f225/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Work without token validation endpoint<br/>
<br/>
In this mode, only PLAIN is possible and the provided username is<br/>
assumed to be the XMPP localpart.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 08 May 2023 20:01:34 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Fix missing import of util.jid</title>
    <link>http://hg.omfa.de/prosody-modules/log/b40299bbdf14/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Fix missing import of util.jid]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 08 May 2023 19:57:10 +0200</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Allow setting identity instead of discovery URL</title>
    <link>http://hg.omfa.de/prosody-modules/log/d9bc8712a745/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Allow setting identity instead of discovery URL<br/>
<br/>
Shorter and the .well-known part is, well, well-known.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 16 Mar 2023 13:04:13 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Support PLAIN via resource owner password grant</title>
    <link>http://hg.omfa.de/prosody-modules/log/3390bb2f9f6c/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Support PLAIN via resource owner password grant<br/>
<br/>
Might not be supported by the backend but PLAIN is the lowest common<br/>
denominator, so not having it would lock out a lot of clients.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 16 Mar 2023 12:45:52 +0100</pubDate>
</item>
<item>
    <title>mod_auth_oauth_external: Authenticate against an OAuth 2 provider</title>
    <link>http://hg.omfa.de/prosody-modules/log/0a6d2b79a8bf/mod_auth_oauth_external/mod_auth_oauth_external.lua</link>
    <description><![CDATA[mod_auth_oauth_external: Authenticate against an OAuth 2 provider<br/>
<br/>
But suddenly unsure whether this constitutes an OAuth &quot;client&quot; or<br/>
something else?  Resource server maybe?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 16 Mar 2023 12:45:22 +0100</pubDate>
</item>

  </channel>
</rss>
