Add webhook channel type to notification channels

Introduces 'webhook' as a new channel_type option in the notification_channels table to support custom webhook integrations. Updates migration logic and adds a new migration script for this schema change.
This commit is contained in:
Hosteroid
2025-10-21 13:33:01 +03:00
parent 5e4f9e6704
commit 21eeda7127
3 changed files with 10 additions and 2 deletions

View File

@@ -49,6 +49,7 @@ class InstallerController extends Controller
'016_add_tags_to_domains.sql', '016_add_tags_to_domains.sql',
'017_add_two_factor_authentication.sql', '017_add_two_factor_authentication.sql',
'018_add_user_isolation.sql', '018_add_user_isolation.sql',
'019_add_webhook_channel_type.sql',
]; ];
try { try {
@@ -183,7 +184,8 @@ class InstallerController extends Controller
'015_create_error_logs_table.sql', '015_create_error_logs_table.sql',
'016_add_tags_to_domains.sql', '016_add_tags_to_domains.sql',
'017_add_two_factor_authentication.sql', '017_add_two_factor_authentication.sql',
'018_add_user_isolation.sql' '018_add_user_isolation.sql',
'019_add_webhook_channel_type.sql'
]; ];
} }
@@ -364,6 +366,7 @@ class InstallerController extends Controller
'016_add_tags_to_domains.sql', '016_add_tags_to_domains.sql',
'017_add_two_factor_authentication.sql', '017_add_two_factor_authentication.sql',
'018_add_user_isolation.sql', '018_add_user_isolation.sql',
'019_add_webhook_channel_type.sql',
]; ];
$stmt = $pdo->prepare("INSERT INTO migrations (migration) VALUES (?) ON DUPLICATE KEY UPDATE migration=migration"); $stmt = $pdo->prepare("INSERT INTO migrations (migration) VALUES (?) ON DUPLICATE KEY UPDATE migration=migration");

View File

@@ -182,7 +182,7 @@ CREATE TABLE IF NOT EXISTS user_notifications (
CREATE TABLE IF NOT EXISTS notification_channels ( CREATE TABLE IF NOT EXISTS notification_channels (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
notification_group_id INT NOT NULL, notification_group_id INT NOT NULL,
channel_type ENUM('email', 'telegram', 'discord', 'slack') NOT NULL, channel_type ENUM('email', 'telegram', 'discord', 'slack', 'webhook') NOT NULL,
channel_config JSON NOT NULL, channel_config JSON NOT NULL,
is_active BOOLEAN DEFAULT TRUE, is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

View File

@@ -0,0 +1,5 @@
-- Add 'webhook' to the channel_type ENUM in notification_channels table
-- This allows custom webhook integrations like Mattermost
ALTER TABLE notification_channels
MODIFY COLUMN channel_type ENUM('email', 'telegram', 'discord', 'slack', 'webhook') NOT NULL;