This endpoint allows triggering a refresh of the notification targets' state, e.g., to prevent OAuth2 refresh tokens from expiring.
Signed-off-by: Arthur Bied-Charreton <[email protected]> --- PVE/API2/Cluster/Notifications.pm | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/PVE/API2/Cluster/Notifications.pm b/PVE/API2/Cluster/Notifications.pm index a45a15b2..f993817d 100644 --- a/PVE/API2/Cluster/Notifications.pm +++ b/PVE/API2/Cluster/Notifications.pm @@ -321,6 +321,40 @@ __PACKAGE__->register_method({ }, }); +__PACKAGE__->register_method({ + name => "refresh_targets", + path => 'refresh-targets', + protected => 1, + method => 'POST', + description => 'Refresh state for all targets', + permissions => { + check => [ + 'and', + ['perm', '/mapping/notifications', ['Mapping.Modify']], + [ + 'or', + ['perm', '/', ['Sys.Audit', 'Sys.Modify']], + ['perm', '/', ['Sys.AccessNetwork']], + ], + ], + }, + parameters => { + additionalProperties => 0, + properties => {}, + }, + returns => { type => 'null' }, + code => sub { + eval { + my $config = PVE::Notify::read_config(); + $config->refresh_targets(); + }; + + raise_api_error($@) if $@; + + return; + }, +}); + __PACKAGE__->register_method({ name => 'test_target', path => 'targets/{name}/test', -- 2.47.3
