Mercurial > prosody-modules
diff mod_delegation/README.markdown @ 4709:679f1834dbdb
mod_delegation: update to XEP-0355 v0.5
- namespace bump to "urn:xmpp:delegation:2"
- disco remaining infos now uses the XEP defined "urn:xmpp:delegation:2:bare:disco#info:*"
namespace
- complemeted disco remaining infos implementation for requests made on nodes not already
managed by the server
- bare JID disco items now uses the XEP defined
"urn:xmpp:delegation:2:bare:disco#items:*'" namespace
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 15 Oct 2021 15:10:36 +0200 |
parents | ea6b5321db50 |
children |
line wrap: on
line diff
--- a/mod_delegation/README.markdown Fri Oct 15 11:30:44 2021 +0200 +++ b/mod_delegation/README.markdown Fri Oct 15 15:10:36 2021 +0200 @@ -7,25 +7,24 @@ Introduction ============ -Namespace Delegation is an extension which allows server to delegate -some features handling to an entity/component. Typical use case is an -external PEP service, but it can be used more generally when your -preferred server lack one internal feature and you found an external -component which can do it. +Namespace Delegation is an extension which allows server to delegate some +features handling to an entity/component. Typical use case is an external PEP +service, but it can be used more generally when your preferred server lack one +internal feature, and you found an external component which can do it. Details ======= You can have all the details by reading the -[XEP-0355](http://xmpp.org/extensions/xep-0355.html). Only the admin -mode is implemented so far. +[XEP-0355](http://xmpp.org/extensions/xep-0355.html). Only the admin mode is +implemented so far. Usage ===== -To use the module, like usual add **"delegation"** to your -modules\_enabled. Note that if you use it with a local component, you -also need to activate the module in your component section: +To use the module, like usual add **"delegation"** to your *modules\_enabled*. +Note that if you use it with a local component, you also need to activate the +module in your component section: modules_enabled = { [...] @@ -44,47 +43,57 @@ VirtualHost "yourdomain.tld" delegations = { - ["urn:xmpp:mam:0"] = { + ["urn:xmpp:mam:2"] = { filtering = {"node"}; jid = "pubsub.yourdomain.tld"; }, ["http://jabber.org/protocol/pubsub"] = { jid = "pubsub.yourdomain.tld"; }, + ["http://jabber.org/protocol/pubsub#owner"] = { + jid = "pubsub.yourdomain.tld"; + }, + ["urn:xmpp:delegation:2:bare:disco#info:*"] = { + jid = "pubsub.yourdomain.tld"; + }, + ["urn:xmpp:delegation:2:bare:disco#items:*"] = { + jid = "pubsub.yourdomain.tld"; + }, + } -Here all MAM requests with a "node" attribute (i.e. all MAM pubsub -request) will be delegated to pubsub.yourdomain.tld. Similarly, all -pubsub request to the host (i.e. the PEP requests) will be delegated to -pubsub.yourdomain.tld. +Here all MAM requests with a "node" attribute (i.e. all MAM pubsub request) will +be delegated to pubsub.yourdomain.tld. Similarly, all pubsub request to the host +(i.e. the PEP requests) will be delegated to pubsub.yourdomain.tld. Check the +XEP for the meaning of "urn:xmpp:delegation:2:bare:disco#info:*" and +"urn:xmpp:delegation:2:bare:disco#items:*". -**/!\ Be extra careful when you give a delegation to an entity/component, -it's a powerful access, only do it if you absoly trust the -component/entity, and you know where the software is coming from** +**/!\ Be extra careful when you give a delegation to an entity/component, it's a +powerful access, only do it if you absolutely trust the component/entity, and +you know where the software is coming from** Configuration ============= The configuration is done with a table which map delegated namespace to namespace data. Namespace data MUST have a **jid** (in the form **jid = -"delegated@domain.tld"**) and MAY have an additional **filtering** -array. If filtering is present, request with attributes in the array -will be delegated, other will be treated normally (i.e. by Prosody). +"delegated@domain.tld"**) and MAY have an additional **filtering** array. If +filtering is present, request with attributes in the array will be delegated, +others will be treated normally (i.e. by Prosody). -If your are not a developper, the delegated namespace(s)/attribute(s) -are most probably specified with the external component/entity you want -to use. +If you are not a developer, the delegated namespace(s)/attribute(s) are most +probably specified with the external component/entity you want to use. -The pseudo-namespace `http://jabber.org/protocol/disco#items:*` is used -to delegate remaining disco#items (i.e. items nodes not already handled -by Prosody itself). +The pseudo-namespace `http://jabber.org/protocol/disco#items:*` is used to +delegate remaining disco#items (i.e. items nodes not already handled by Prosody +itself). Compatibility ============= If you use it with Prosody 0.9 and a component, you need to patch -core/mod\_component.lua to fire a new signal. To do it, copy the -following patch in a, for example, /tmp/component.patch file: +core/mod\_component.lua to fire a new signal. To do it, copy the following patch +in a, for example, /tmp/component.patch file: diff --git a/plugins/mod_component.lua b/plugins/mod_component.lua --- a/plugins/mod_component.lua @@ -103,6 +112,7 @@ `patch -p1 < /tmp/component.patch` ----- ---------------------------------------------------- + 0.11 Works 0.10 Works 0.9 Need a patched core/mod\_component.lua (see above) ----- ---------------------------------------------------- @@ -110,5 +120,4 @@ Note ==== -This module is often used with mod\_privilege (c.f. XEP for more -details) +This module is often used with mod\_privilege (c.f. XEP for more details)