Mercurial > prosody-modules
annotate mod_pubsub_alertmanager/mod_pubsub_alertmanager.lua @ 6082:1a6cd0bbb7ab
mod_compliance_2023: Add 2023 Version of the compliance module, basis is the 2021 Version.
diff --git a/mod_compliance_2023/README.md b/mod_compliance_2023/README.md
new file mode 100644
--- /dev/null
+++ b/mod_compliance_2023/README.md
@@ -0,0 +1,22 @@
+---
+summary: XMPP Compliance Suites 2023 self-test
+labels:
+- Stage-Beta
+rockspec:
+ dependencies:
+ - mod_cloud_notify
+
+...
+
+Compare the list of enabled modules with
+[XEP-0479: XMPP Compliance Suites 2023] and produce basic report to the
+Prosody log file.
+
+If installed with the Prosody plugin installer then all modules needed for a green checkmark should be included. (With prosody 0.12 only [mod_cloud_notify] is not included with prosody and we need the community module)
+
+# Compatibility
+
+ Prosody-Version Status
+ --------------- ----------------------
+ trunk Works as of 2024-12-21
+ 0.12 Works
diff --git a/mod_compliance_2023/mod_compliance_2023.lua b/mod_compliance_2023/mod_compliance_2023.lua
new file mode 100644
--- /dev/null
+++ b/mod_compliance_2023/mod_compliance_2023.lua
@@ -0,0 +1,79 @@
+-- Copyright (c) 2021 Kim Alvefur
+--
+-- This module is MIT licensed.
+
+local hostmanager = require "core.hostmanager";
+
+local array = require "util.array";
+local set = require "util.set";
+
+local modules_enabled = module:get_option_inherited_set("modules_enabled");
+
+for host in pairs(hostmanager.get_children(module.host)) do
+ local component = module:context(host):get_option_string("component_module");
+ if component then
+ modules_enabled:add(component);
+ modules_enabled:include(module:context(host):get_option_set("modules_enabled", {}));
+ end
+end
+
+local function check(suggested, alternate, ...)
+ if set.intersection(modules_enabled, set.new({suggested; alternate; ...})):empty() then return suggested; end
+ return false;
+end
+
+local compliance = {
+ array {"Server"; check("tls"); check("disco")};
+
+ array {"Advanced Server"; check("pep", "pep_simple")};
+
+ array {"Web"; check("bosh"); check("websocket")};
+
+ -- No Server requirements for Advanced Web
+
+ array {"IM"; check("vcard_legacy", "vcard"); check("carbons"); check("http_file_share", "http_upload")};
+
+ array {
+ "Advanced IM";
+ check("vcard_legacy", "vcard");
+ check("blocklist");
+ check("muc");
+ check("private");
+ check("smacks");
+ check("mam");
+ check("bookmarks");
+ };
+
+ array {"Mobile"; check("smacks"); check("csi_simple", "csi_battery_saver")};
+
+ array {"Advanced Mobile"; check("cloud_notify")};
+
+ array {"A/V Calling"; check("turn_external", "external_services", "turncredentials", "extdisco")};
+
+};
+
+function check_compliance()
+ local compliant = true;
+ for _, suite in ipairs(compliance) do
+ local section = suite:pop(1);
+ if module:get_option_boolean("compliance_" .. section:lower():gsub("%A", "_"), true) then
+ local missing = set.new(suite:filter(function(m) return type(m) == "string" end):map(function(m) return "mod_" .. m end));
+ if suite[1] then
+ if compliant then
+ compliant = false;
+ module:log("warn", "Missing some modules for XMPP Compliance 2023");
+ end
+ module:log("info", "%s Compliance: %s", section, missing);
+ end
+ end
+ end
+
+ if compliant then module:log("info", "XMPP Compliance 2023: Compliant ✔️"); end
+end
+
+if prosody.start_time then
+ check_compliance()
+else
+ module:hook_global("server-started", check_compliance);
+end
+
| author | Menel <menel@snikket.de> |
|---|---|
| date | Sun, 22 Dec 2024 16:06:28 +0100 |
| parents | 67190744b1eb |
| children |
| rev | line source |
|---|---|
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 local st = require "util.stanza"; |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 local json = require "util.json"; |
|
4625
f7e26c43a9bc
mod_pubsub_alertmanager: Add TODOs
Kim Alvefur <zash@zash.se>
parents:
4621
diff
changeset
|
3 local filters = { --[[ TODO what's useful? ]] }; |
|
4619
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
4 local render = require "util.interpolation".new("%b{}", tostring, filters); |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 local uuid_generate = require "util.uuid".generate; |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
6 |
|
4625
f7e26c43a9bc
mod_pubsub_alertmanager: Add TODOs
Kim Alvefur <zash@zash.se>
parents:
4621
diff
changeset
|
7 -- TODO alertmanager supports inclusion of HTTP auth and OAuth, worth looking |
|
f7e26c43a9bc
mod_pubsub_alertmanager: Add TODOs
Kim Alvefur <zash@zash.se>
parents:
4621
diff
changeset
|
8 -- into for using instead of request IP |
|
f7e26c43a9bc
mod_pubsub_alertmanager: Add TODOs
Kim Alvefur <zash@zash.se>
parents:
4621
diff
changeset
|
9 |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
10 module:depends("http"); |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 local pubsub_service = module:depends("pubsub").service; |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 |
|
3014
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
14 local error_mapping = { |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
15 ["forbidden"] = 403; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
16 ["item-not-found"] = 404; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
17 ["internal-server-error"] = 500; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
18 ["conflict"] = 409; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
19 }; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
20 |
|
3017
8e48c0b233e0
mod_pubsub_post: Factor out the 'actor' into an argument
Kim Alvefur <zash@zash.se>
parents:
3016
diff
changeset
|
21 local function publish_payload(node, actor, item_id, payload) |
|
3014
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
22 local post_item = st.stanza("item", { xmlns = "http://jabber.org/protocol/pubsub", id = item_id, }) |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
23 :add_child(payload); |
|
3017
8e48c0b233e0
mod_pubsub_post: Factor out the 'actor' into an argument
Kim Alvefur <zash@zash.se>
parents:
3016
diff
changeset
|
24 local ok, err = pubsub_service:publish(node, actor, item_id, post_item); |
|
3014
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
25 module:log("debug", ":publish(%q, true, %q, %s) -> %q", node, item_id, payload:top_tag(), err or ""); |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
26 if not ok then |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
27 return error_mapping[err] or 500; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
28 end |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
29 return 202; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
30 end |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 |
|
5485
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
32 local global_node_template = module:get_option_string("alertmanager_node_template", "{path?alerts}"); |
|
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
33 local path_configs = module:get_option("alertmanager_path_configs", {}); |
|
4621
ebc2c099a11b
mod_pubsub_alertmanager: Allow templating the pubsub node to publish to
Kim Alvefur <zash@zash.se>
parents:
4620
diff
changeset
|
34 |
|
3014
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
35 function handle_POST(event, path) |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
36 local request = event.request; |
|
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
37 |
|
5485
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
38 local config = path_configs[path] or {}; |
|
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
39 local node_template = config.node_template or global_node_template; |
|
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
40 local publisher = config.publisher or request.ip; |
|
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
41 |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
42 local payload = json.decode(event.request.body); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
43 if type(payload) ~= "table" then return 400; end |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
44 if payload.version ~= "4" then return 501; end |
|
3501
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3255
diff
changeset
|
45 |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
46 for _, alert in ipairs(payload.alerts) do |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
47 local item = st.stanza("alerts", {xmlns = "urn:uuid:e3bec775-c607-4e9b-9a3f-94de1316d861:v4", status=alert.status}); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
48 for k, v in pairs(alert.annotations) do |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
49 item:text_tag("annotation", v, { name=k }); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
50 end |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
51 for k, v in pairs(alert.labels) do |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
52 item:text_tag("label", v, { name=k }); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
53 end |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
54 item:tag("starts", { at = alert.startsAt}):up(); |
|
4626
285efde5e8a5
mod_pubsub_alertmanager: Exclude "ends at" timestamp for unresolved alerts
Kim Alvefur <zash@zash.se>
parents:
4625
diff
changeset
|
55 if alert.endsAt and alert.status == "resolved" then |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
56 item:tag("ends", { at = alert.endsAt }):up(); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
57 end |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
58 if alert.generatorURL then |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
59 item:tag("link", { href=alert.generatorURL }):up(); |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
60 end |
|
3255
64d1dfbd1740
mod_pubsub_post: Ensure actor is non-nil (catch inability to determine IP or simliar)
Kim Alvefur <zash@zash.se>
parents:
3254
diff
changeset
|
61 |
|
4621
ebc2c099a11b
mod_pubsub_alertmanager: Allow templating the pubsub node to publish to
Kim Alvefur <zash@zash.se>
parents:
4620
diff
changeset
|
62 local node = render(node_template, {alert = alert, path = path, payload = payload, request = request}); |
|
5485
67190744b1eb
mod_pubsub_alertmanager: Support for per-path config overrides
Matthew Wild <mwild1@gmail.com>
parents:
4627
diff
changeset
|
63 local ret = publish_payload(node, publisher, uuid_generate(), item); |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
64 if ret ~= 202 then |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
65 return ret |
|
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
66 end |
|
3014
72dbc9b66de8
mod_pubsub_post: Change to support arbitrary XML payloads
Kim Alvefur <zash@zash.se>
parents:
3013
diff
changeset
|
67 end |
|
4618
48132b6e1b16
mod_pubsub_alertmanager: Publish Alertmanager alerts into pubsub
Kim Alvefur <zash@zash.se>
parents:
4552
diff
changeset
|
68 return 202; |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
69 end |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
70 |
|
4620
9b253cce7d88
mod_pubsub_alertmanager: Allow configuring template for <body> rendering
Kim Alvefur <zash@zash.se>
parents:
4619
diff
changeset
|
71 local template = module:get_option_string("alertmanager_body_template", [[ |
|
4619
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
72 *ALARM!* |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
73 Status: {status} |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
74 Starts at: {startsAt}{endsAt& |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
75 Ends at: {endsAt}} |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
76 Labels: {labels% |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
77 {idx}: {item}} |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
78 Annotations: {annotations% |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
79 {idx}: {item}} |
|
4620
9b253cce7d88
mod_pubsub_alertmanager: Allow configuring template for <body> rendering
Kim Alvefur <zash@zash.se>
parents:
4619
diff
changeset
|
80 ]]); |
|
4619
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
81 |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
82 module:hook("pubsub-summary/urn:uuid:e3bec775-c607-4e9b-9a3f-94de1316d861:v4", function(event) |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
83 local payload = event.payload; |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
84 |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
85 local data = { |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
86 status = payload.attr.status, |
|
4627
adda872fa9e1
mod_pubsub_alertmanager: Include status booleans in template input
Kim Alvefur <zash@zash.se>
parents:
4626
diff
changeset
|
87 firing = "firing" == payload.attr.status, |
|
adda872fa9e1
mod_pubsub_alertmanager: Include status booleans in template input
Kim Alvefur <zash@zash.se>
parents:
4626
diff
changeset
|
88 resolved = "resolved" == payload.attr.status, |
|
4619
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
89 annotations = {}, |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
90 labels = {}, |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
91 endsAt = payload:find("ends/@at"), |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
92 startsAt = payload:find("starts/@at"), |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
93 }; |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
94 for label in payload:childtags("label") do |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
95 data.labels[tostring(label.attr.name)] = label:get_text(); |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
96 end |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
97 for annotation in payload:childtags("annotation") do |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
98 data.annotations[tostring(annotation.attr.name)] = annotation:get_text(); |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
99 end |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
100 |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
101 return render(template, data); |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
102 end); |
|
b11001bd915d
mod_pubsub_alertmanager: Add a plain text summary
Kim Alvefur <zash@zash.se>
parents:
4618
diff
changeset
|
103 |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
104 module:provides("http", { |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
105 route = { |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
106 ["POST /*"] = handle_POST; |
|
4621
ebc2c099a11b
mod_pubsub_alertmanager: Allow templating the pubsub node to publish to
Kim Alvefur <zash@zash.se>
parents:
4620
diff
changeset
|
107 ["POST"] = handle_POST; |
|
1619
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
108 }; |
|
43c54a27bab2
mod_pubsub_post: Module to publish to pubsub nodes from a simple HTTP POST
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
109 }); |
