From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 1A7711FF2AF for ; Mon, 22 Jul 2024 09:37:23 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E5AD41D1B5; Mon, 22 Jul 2024 09:37:53 +0200 (CEST) Message-ID: Date: Mon, 22 Jul 2024 09:37:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox VE development discussion , Max Carrara , Proxmox Backup Server development discussion References: <20240712112755.123630-1-l.wagner@proxmox.com> <20240712112755.123630-8-l.wagner@proxmox.com> Content-Language: de-AT, en-US From: Lukas Wagner In-Reply-To: X-SPAM-LEVEL: Spam detection results: 0 AWL 0.007 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [pbs-devel] [PATCH manager v2 07/12] api: add routes for webhook notification endpoints X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" On 2024-07-17 17:36, Max Carrara wrote: > On Fri Jul 12, 2024 at 1:27 PM CEST, Lukas Wagner wrote: >> These just call the API implementation via the perl-rs bindings. >> >> Signed-off-by: Lukas Wagner >> --- >> PVE/API2/Cluster/Notifications.pm | 263 +++++++++++++++++++++++++++++- >> 1 file changed, 262 insertions(+), 1 deletion(-) >> >> diff --git a/PVE/API2/Cluster/Notifications.pm b/PVE/API2/Cluster/Notifications.pm >> index 10b611c9..eae2d436 100644 >> --- a/PVE/API2/Cluster/Notifications.pm >> +++ b/PVE/API2/Cluster/Notifications.pm >> @@ -108,6 +108,7 @@ __PACKAGE__->register_method ({ >> { name => 'gotify' }, >> { name => 'sendmail' }, >> { name => 'smtp' }, >> + { name => 'webhook' }, >> ]; >> >> return $result; >> @@ -144,7 +145,7 @@ __PACKAGE__->register_method ({ >> 'type' => { >> description => 'Type of the target.', >> type => 'string', >> - enum => [qw(sendmail gotify smtp)], >> + enum => [qw(sendmail gotify smtp webhook)], >> }, >> 'comment' => { >> description => 'Comment', >> @@ -1094,6 +1095,266 @@ __PACKAGE__->register_method ({ >> } >> }); >> >> +my $webhook_properties = { >> + name => { >> + description => 'The name of the endpoint.', >> + type => 'string', >> + format => 'pve-configid', >> + }, >> + url => { >> + description => 'Server URL', >> + type => 'string', >> + }, >> + method => { >> + description => 'HTTP method', >> + type => 'string', >> + enum => [qw(post put get)], >> + }, >> + header => { >> + description => 'HTTP headers to set. These have to be formatted as' >> + . ' a property string in the format name=,value=', >> + type => 'array', >> + items => { >> + type => 'string', >> + }, >> + optional => 1, >> + }, >> + body => { >> + description => 'HTTP body, base64 encoded', >> + type => 'string', >> + optional => 1, >> + }, >> + secret => { >> + description => 'Secrets to set. These have to be formatted as' >> + . ' a property string in the format name=,value=', >> + type => 'array', >> + items => { >> + type => 'string', >> + }, >> + optional => 1, >> + }, >> + comment => { >> + description => 'Comment', >> + type => 'string', >> + optional => 1, >> + }, >> + disable => { >> + description => 'Disable this target', >> + type => 'boolean', >> + optional => 1, >> + default => 0, >> + }, >> +}; >> + >> +__PACKAGE__->register_method ({ >> + name => 'get_webhook_endpoints', >> + path => 'endpoints/webhook', >> + method => 'GET', >> + description => 'Returns a list of all webhook endpoints', >> + protected => 1, >> + permissions => { >> + check => ['perm', '/mapping/notifications', ['Mapping.Modify']], >> + check => ['perm', '/mapping/notifications', ['Mapping.Audit']], >> + }, >> + parameters => { >> + additionalProperties => 0, >> + properties => {}, >> + }, >> + returns => { >> + type => 'array', >> + items => { >> + type => 'object', >> + properties => { >> + %$webhook_properties, > > Would prefer `$webhook_properties->%*` here (postfix dereferencing) - > even though not explicitly stated in our style guide, we use that kind > of syntax for calling subroutines behind a reference, e.g. > `$foo->($arg)` instead of `&$foo($arg)`. > I kinda prefer the brevity of the prefix variant in this case. Are there any pitfalls/problems with the prefix that I'm not aware of? If not, I'd prefer to keep this as is, I used the syntax in many other spots in this file ;) -- - Lukas _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel