mirror of
https://git.proxmox.com/git/proxmox
synced 2025-06-03 23:55:38 +00:00

This shifts notification routing into the matcher-system. Every notification has associated metadata (key-value fields, severity - to be extended) that can be match with match directives in notification matchers. Right now, there are 2 matching directives, match-field and match-severity. The first one allows one to do a regex match/exact match on a metadata field, the other one allows one to match one or more severites. Every matcher also allows 'target' directives, these decide which target(s) will be notified if a matcher matches a notification. Since routing now happens in matchers, the API for sending is simplified, since we do not need to specify a target any more. The API routes for filters and groups have been removed completely. The parser for the configuration file will still accept filter/group entries, but will delete them once the config is saved again. This is needed to allow a smooth transition from the old system to the new system, since the old system was already available on pvetest. Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
27 lines
829 B
Rust
27 lines
829 B
Rust
use proxmox_schema::api_types::{SAFE_ID_FORMAT, SINGLE_LINE_COMMENT_FORMAT};
|
|
use proxmox_schema::{Schema, StringSchema};
|
|
|
|
pub const EMAIL_SCHEMA: Schema = StringSchema::new("E-Mail Address.")
|
|
.format(&SINGLE_LINE_COMMENT_FORMAT)
|
|
.min_length(2)
|
|
.max_length(64)
|
|
.schema();
|
|
|
|
pub const USER_SCHEMA: Schema = StringSchema::new("User ID including realm, e.g. root@pam.")
|
|
.format(&SINGLE_LINE_COMMENT_FORMAT)
|
|
.min_length(2)
|
|
.max_length(64)
|
|
.schema();
|
|
|
|
pub const BACKEND_NAME_SCHEMA: Schema = StringSchema::new("Notification backend name.")
|
|
.format(&SAFE_ID_FORMAT)
|
|
.min_length(3)
|
|
.max_length(32)
|
|
.schema();
|
|
|
|
pub const ENTITY_NAME_SCHEMA: Schema = StringSchema::new("Name schema for targets and matchers")
|
|
.format(&SAFE_ID_FORMAT)
|
|
.min_length(2)
|
|
.max_length(32)
|
|
.schema();
|