Netpulse_SasS/server/migrations/0025_template_rules_per_tenant.sql
byrsapty d1c9d450f2
Some checks are pending
CI / web (push) Waiting to run
CI / server (push) Waiting to run
CI / agent (push) Waiting to run
Інтерфейс: правила у вкладці, кнопки не виділяються, панель згортається
«Правила» пішли з бічної панелі у вкладку поруч з «Алертами»: тригери
переїхали в шаблони, а окремий пункт меню й далі пропонував заводити
правила там, звідки їх прибрали.

Кнопки перестали бути виділюваним текстом — у них типово
user-select: auto, і в підпис можна було поставити блимаючий курсор.

Бічна панель згортається у значки, стан у localStorage.

Дорогою закрито дірку: вбудований шаблон нікого не сповіщав. Тригери
стають правилами лише при збереженні шаблону, а вбудований нікому не
належить і не зберігається — хост із icmp-basic збирав пінг і мовчав
про недоступність. Плюс індекс правил з 0024 не враховував тенанта,
через що другий кабінет із тим самим вбудованим шаблоном отримав би
помилку унікальності.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 14:52:09 +03:00

17 lines
1.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =====================================================================
-- NetPulse :: 0025_template_rules_per_tenant.sql
-- Правило з тригера шаблону унікальне В МЕЖАХ ТЕНАНТА, а не глобально.
--
-- 0024 зробив індекс за парою (template_id, template_trigger_key). Для
-- власних шаблонів цього досить: шаблон належить одному тенанту. Для
-- вбудованих — ні: вони спільні для всіх, і другий тенант, який
-- призначив «icmp-basic» своєму хосту, отримав би помилку унікальності
-- замість правила. Виглядало б це як «алерти не працюють у нових
-- кабінетах» — тобто найдорожча з можливих форм цієї помилки.
-- =====================================================================
DROP INDEX IF EXISTS alr.alr_rules_from_template_uniq;
CREATE UNIQUE INDEX alr_rules_from_template_uniq
ON alr.rules (tenant_id, template_id, template_trigger_key)
WHERE template_id IS NOT NULL;