36 lines
1.2 KiB
MySQL
36 lines
1.2 KiB
MySQL
|
|
-- Migration: Add IP logging to webhook_logs
|
||
|
|
-- Description: Add source_ip and user_agent columns for IP whitelisting
|
||
|
|
|
||
|
|
-- Add source_ip column if it doesn't exist
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM information_schema.columns
|
||
|
|
WHERE table_name = 'webhook_logs' AND column_name = 'source_ip'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE webhook_logs ADD COLUMN source_ip VARCHAR(45);
|
||
|
|
COMMENT ON COLUMN webhook_logs.source_ip IS 'Source IP address of webhook request (IPv4 or IPv6)';
|
||
|
|
END IF;
|
||
|
|
END $$;
|
||
|
|
|
||
|
|
-- Add user_agent column if it doesn't exist
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM information_schema.columns
|
||
|
|
WHERE table_name = 'webhook_logs' AND column_name = 'user_agent'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE webhook_logs ADD COLUMN user_agent TEXT;
|
||
|
|
COMMENT ON COLUMN webhook_logs.user_agent IS 'User agent string from webhook request';
|
||
|
|
END IF;
|
||
|
|
END $$;
|
||
|
|
|
||
|
|
-- Add index on source_ip for efficient IP-based queries
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_logs_source_ip ON webhook_logs(source_ip);
|
||
|
|
|
||
|
|
-- Verify columns were added
|
||
|
|
SELECT column_name, data_type
|
||
|
|
FROM information_schema.columns
|
||
|
|
WHERE table_name = 'webhook_logs'
|
||
|
|
AND column_name IN ('source_ip', 'user_agent');
|