Mercurial > prosody-modules
annotate mod_pubsub_get/mod_pubsub_get.lua @ 6403:13c61a068c71
mod_pubsub_serverinfo: Include hostname in default pubsub node name
This change ensures that every host publishes to a unique node by default,
which is important when publishing info about multiple hosts.
The old default node name was "serverinfo"
The new default node name is in the format "serverinfo/example.com" where
example.com is automatically replaced by the publishing host's name.
This affects existing deployments in the following ways:
- If you already configured pubsub_serverinfo_node explicitly in your config,
then nothing will change, your current configuration will still be used.
- If you did not specify it in your config (i.e. used the default) then the
module will switch to publishing to the new node. If your configuration is
correct this shouldn't be noticed, because the new node will automatically
be created and configured by the module. If you want, you can clean up the
old 'serverinfo' node using:
prosodyctl shell pubsub delete_node pubsub.example.com serverinfo
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 11 Feb 2026 09:40:30 +0000 |
| parents | 119c0eb65bf3 |
| children |
| rev | line source |
|---|---|
|
6176
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
1 module:depends("http") |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
2 local pubsub_service = module:depends("pubsub").service |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
3 local json = require "util.json" |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
4 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
5 function handle_GET(event) |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
6 local request, response = event.request, event.response |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
7 local query = request.url.query |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
8 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
9 if query:sub(1, 5) ~= "node=" then return 400 end |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
10 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
11 local node = query:sub(6) |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
12 local ok, items = pubsub_service:get_items(node, true) |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
13 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
14 if not ok then return 404 end |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
15 response.status_code = 200 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
16 return json.encode(items) |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
17 end |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
18 |
|
119c0eb65bf3
mod_pubsub: new module to fetch pubsub items via HTTP GET
nicoco <nicoco@nicoco.fr>
parents:
diff
changeset
|
19 module:provides("http", {route = {GET = handle_GET}}) |
