Software /
code /
prosody-modules
Changeset
3100:0422fb55cc37
mod_pubsub_post: Add a README
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 03 Jun 2018 14:12:15 +0200 |
parents | 3099:c88f91626e07 |
children | 3101:a14a573d43ff |
files | mod_pubsub_post/README.md |
diffstat | 1 files changed, 53 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_pubsub_post/README.md Sun Jun 03 14:12:15 2018 +0200 @@ -0,0 +1,53 @@ +# Introduction + +Lets you easily publish data to PubSub using a HTTP POST request. The +payload can be Atom feeds, arbitrary XML, or arbitrary JSON. The type +should be indicated via the `Content-Type` header. + +``` {.bash} +curl http://localhost:5280/pubsub_post/princely_musings \ + -H "Content-Type: application/json" \ + --data-binary '{"musing":"To be, or not to be: that is the question"}' +``` + +# Configuration + +## Authentication + +Authentication can be handled in two different ways. + +### None + +``` {.lua} +pubsub_post_actor = "superuser" +``` + +The module uses an internal actor that has all privileges and can always +do everything. It is strongly suggested that you do not expose this to +the Internet. *Maybe* it shouldn't be the default... + +### IP + +``` {.lua} +pubsub_post_actor = "request.ip" +``` + +Uses the IP address from the HTTP request as actor, which means this +pseudo-JID must be given a 'publisher' affiliation. This should work +nicely with the `autocreate_on_publish` setting, where the first actor +to attempt to publish to a non-existant node becomes owner of it, which +includes publishing rights. + +Prosodys PubSub module does not currently support [setting affiliations +via XMPP](https://xmpp.org/extensions/xep-0060.html#owner-affiliations), +but this is planned. + +It can however be done from another plugin: + +``` {.lua} +local mod_pubsub = module:depends("pubsub"); +local pubsub = mod_pubsub.service; + +pubsub:create("princely_musings", true); +pubsub:set_affiliation("princely_musings", true, "127.0.0.1", "publisher"); +```