From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com, pbs-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox-backup 11/12] docs: notification: add webhook endpoint documentation
Date: Wed, 10 Jul 2024 16:53:23 +0200 [thread overview]
Message-ID: <20240710145324.594486-12-l.wagner@proxmox.com> (raw)
In-Reply-To: <20240710145324.594486-1-l.wagner@proxmox.com>
Same information as in pve-docs but translated to restructured text.
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
docs/notifications.rst | 100 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/docs/notifications.rst b/docs/notifications.rst
index 4ba8db86..d059fa76 100644
--- a/docs/notifications.rst
+++ b/docs/notifications.rst
@@ -85,6 +85,106 @@ integrate with different platforms and services.
See :ref:`notifications.cfg` for all configuration options.
+.. _notification_targets_webhook:
+Webhook
+^^^^^^^
+Webhook notification targets perform HTTP requests to a configurable URL.
+
+The following configuration options are available:
+
+* ``url``: The URL to which to perform the HTTP requests.
+ Supports templating to inject message contents, metadata and secrets.
+* ``method``: HTTP Method to use (POST/PUT/GET)
+* ``header``: Array of HTTP headers that should be set for the request.
+ Supports templating to inject message contents, metadata and secrets.
+* ``body``: HTTP body that should be sent.
+ Supports templating to inject message contents, metadata and secrets.
+* ``secret``: Array of secret key-value pairs. These will be stored in
+ a protected configuration file only readable by root. Secrets can be
+ accessed in body/header/URL templates via the ``secrets`` namespace.
+* ``comment``: Comment for this target.
+
+For configuration options that support templating, the
+`Handlebars <https://handlebarsjs.com>`_ syntax can be used to
+access the following properties:
+
+* ``{{ title }}``: The rendered notification title
+* ``{{ message }}``: The rendered notification body
+* ``{{ severity }}``: The severity of the notification (``info``, ``notice``,
+ ``warning``, ``error``, ``unknown``)
+* ``{{ timestamp }}``: The notification's timestamp as a UNIX epoch (in seconds).
+* ``{{ fields.<name> }}``: Sub-namespace for any metadata fields of the
+ notification. For instance, ``fields.type`` contains the notification
+ type - for all available fields refer to :ref:`notification_events`.
+* ``{{ secrets.<name> }}``: Sub-namespace for secrets. For instance, a secret
+ named ``token`` is accessible via ``secrets.token``.
+
+For convenience, the following helpers are available:
+
+* ``{{ url-encode <value/property> }}``: URL-encode a property/literal.
+* ``{{ escape <value/property> }}``: Escape any control characters that cannot
+ be safely represented as a JSON string.
+* ``{{ json <value/property> }}``: Render a value as JSON. This can be useful
+ to pass a whole sub-namespace (e.g. ``fields``) as a part of a JSON payload
+ (e.g. ``{{ json fields }}``).
+
+Example - ntfy.sh
+"""""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://ntfy.sh/{{ secrets.channel }}``
+* Headers:
+
+ * ``Markdown``: ``Yes``
+* Body::
+
+ ```
+ {{ message }}
+ ```
+
+* Secrets:
+
+ * ``channel``: ``<your ntfy.sh channel>``
+
+Example - Discord
+"""""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://discord.com/api/webhooks/{{ secrets.token }}``
+* Headers:
+
+ * ``Content-Type``: ``application/json``
+
+* Body::
+
+ {
+ "content": "``` {{ escape message }}```"
+ }
+
+* Secrets:
+
+ * ``token``: ``<token>``
+
+Example - Slack
+"""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://hooks.slack.com/services/{{ secrets.token }}``
+* Headers:
+
+ * ``Content-Type``: ``application/json``
+
+* Body::
+
+ {
+ "text": "``` {{escape message}}```",
+ "type": "mrkdwn"
+ }
+
+* Secrets:
+
+ * ``token``: ``<token>``
+
.. _notification_matchers:
Notification Matchers
--
2.39.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
WARNING: multiple messages have this Message-ID
From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com, pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox-backup 11/12] docs: notification: add webhook endpoint documentation
Date: Wed, 10 Jul 2024 16:53:23 +0200 [thread overview]
Message-ID: <20240710145324.594486-12-l.wagner@proxmox.com> (raw)
In-Reply-To: <20240710145324.594486-1-l.wagner@proxmox.com>
Same information as in pve-docs but translated to restructured text.
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
docs/notifications.rst | 100 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/docs/notifications.rst b/docs/notifications.rst
index 4ba8db86..d059fa76 100644
--- a/docs/notifications.rst
+++ b/docs/notifications.rst
@@ -85,6 +85,106 @@ integrate with different platforms and services.
See :ref:`notifications.cfg` for all configuration options.
+.. _notification_targets_webhook:
+Webhook
+^^^^^^^
+Webhook notification targets perform HTTP requests to a configurable URL.
+
+The following configuration options are available:
+
+* ``url``: The URL to which to perform the HTTP requests.
+ Supports templating to inject message contents, metadata and secrets.
+* ``method``: HTTP Method to use (POST/PUT/GET)
+* ``header``: Array of HTTP headers that should be set for the request.
+ Supports templating to inject message contents, metadata and secrets.
+* ``body``: HTTP body that should be sent.
+ Supports templating to inject message contents, metadata and secrets.
+* ``secret``: Array of secret key-value pairs. These will be stored in
+ a protected configuration file only readable by root. Secrets can be
+ accessed in body/header/URL templates via the ``secrets`` namespace.
+* ``comment``: Comment for this target.
+
+For configuration options that support templating, the
+`Handlebars <https://handlebarsjs.com>`_ syntax can be used to
+access the following properties:
+
+* ``{{ title }}``: The rendered notification title
+* ``{{ message }}``: The rendered notification body
+* ``{{ severity }}``: The severity of the notification (``info``, ``notice``,
+ ``warning``, ``error``, ``unknown``)
+* ``{{ timestamp }}``: The notification's timestamp as a UNIX epoch (in seconds).
+* ``{{ fields.<name> }}``: Sub-namespace for any metadata fields of the
+ notification. For instance, ``fields.type`` contains the notification
+ type - for all available fields refer to :ref:`notification_events`.
+* ``{{ secrets.<name> }}``: Sub-namespace for secrets. For instance, a secret
+ named ``token`` is accessible via ``secrets.token``.
+
+For convenience, the following helpers are available:
+
+* ``{{ url-encode <value/property> }}``: URL-encode a property/literal.
+* ``{{ escape <value/property> }}``: Escape any control characters that cannot
+ be safely represented as a JSON string.
+* ``{{ json <value/property> }}``: Render a value as JSON. This can be useful
+ to pass a whole sub-namespace (e.g. ``fields``) as a part of a JSON payload
+ (e.g. ``{{ json fields }}``).
+
+Example - ntfy.sh
+"""""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://ntfy.sh/{{ secrets.channel }}``
+* Headers:
+
+ * ``Markdown``: ``Yes``
+* Body::
+
+ ```
+ {{ message }}
+ ```
+
+* Secrets:
+
+ * ``channel``: ``<your ntfy.sh channel>``
+
+Example - Discord
+"""""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://discord.com/api/webhooks/{{ secrets.token }}``
+* Headers:
+
+ * ``Content-Type``: ``application/json``
+
+* Body::
+
+ {
+ "content": "``` {{ escape message }}```"
+ }
+
+* Secrets:
+
+ * ``token``: ``<token>``
+
+Example - Slack
+"""""""""""""""
+
+* Method: ``POST``
+* URL: ``https://hooks.slack.com/services/{{ secrets.token }}``
+* Headers:
+
+ * ``Content-Type``: ``application/json``
+
+* Body::
+
+ {
+ "text": "``` {{escape message}}```",
+ "type": "mrkdwn"
+ }
+
+* Secrets:
+
+ * ``token``: ``<token>``
+
.. _notification_matchers:
Notification Matchers
--
2.39.2
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
next prev parent reply other threads:[~2024-07-10 15:03 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-10 14:53 [pve-devel] [RFC many 00/12] notifications: add support for webhook endpoints Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox 01/12] notify: implement webhook targets Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox 02/12] notify: add api for " Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox-perl-rs 03/12] common: notify: add bindings for webhook API routes Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox-perl-rs 04/12] common: notify: add bindings for get_targets Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH widget-toolkit 05/12] notification: add UI for adding/updating webhook targets Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH manager 06/12] api: notifications: use get_targets impl from proxmox-notify Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH manager 07/12] api: add routes for webhook notification endpoints Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH docs 08/12] notification: add documentation for webhook target endpoints Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox-backup 09/12] api: notification: add API routes for webhook targets Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox-backup 10/12] ui: utils: enable webhook edit window Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
2024-07-10 14:53 ` Lukas Wagner [this message]
2024-07-10 14:53 ` [pbs-devel] [PATCH proxmox-backup 11/12] docs: notification: add webhook endpoint documentation Lukas Wagner
2024-07-10 14:53 ` [pve-devel] [PATCH proxmox-mail-forward 12/12] bump proxmox-notify dependency Lukas Wagner
2024-07-10 14:53 ` [pbs-devel] " Lukas Wagner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240710145324.594486-12-l.wagner@proxmox.com \
--to=l.wagner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.