From c6e85826f5432a025f39a27a3c4a24691eb7d846 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Mon, 23 Mar 2026 20:21:21 +0300 Subject: [PATCH] datasource filter rules --- .../admin/datasources/overview.ru.md | 36 ++++++------------- .../documentation/release-notes/v1.4.0.ru.md | 4 +++ 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/content/documentation/admin/datasources/overview.ru.md b/content/documentation/admin/datasources/overview.ru.md index 67237b1..afe1824 100644 --- a/content/documentation/admin/datasources/overview.ru.md +++ b/content/documentation/admin/datasources/overview.ru.md @@ -44,37 +44,21 @@ weight: 10 ### Правила фильтрации -Правила фильтрации позволяют отсеивать по регулярному выражению элементы, которые будут участвовать в дальнейшей обработке. В поле «Источник» указывается поле обрабатываемой структуры в формате [Go template](https://developer.hashicorp.com/nomad/docs/reference/go-template-syntax). В поле «Правило» указывается регулярное выражение для фильтрации. +После получения данных из внешней системы применяются правила фильтрации: каждое следующее правило обрабатывает уже отфильтрованный набор элементов. -В случае наличия нескольких правил фильтрации, для дальнейшей обработки необходимо, чтобы элемент соответствовал каждому из них. В случае отсутствия правил фильтрации обрабатываться будут все элементы, полученные от внешней инфраструктурной системы. +В диалоге редактирования источника данных откройте вкладку «Правила». В блоке «Правила фильтрации» для каждого правила задаются три поля: -Например, при следующем наборе данных, полученном от внешней инфраструктурной системы: +1. Действие — оставить только элементы, у которых значение выбранного поля совпало с регулярным выражением (вариант «Оставить только совпадения»), или убрать из набора такие элементы (вариант «Убрать совпадения»). +1. Источник — путь к полю в структуре данных в формате [Go template](https://developer.hashicorp.com/nomad/docs/reference/go-template-syntax). +1. Условие — регулярное выражение для проверки значения этого поля. -```json -[ - { - "name": "first", - "description": "first" - }, - { - "name": "second", - "description": "second" - } -] -``` +Если правил нет, дальше по цепочке проходят все полученные элементы. Если действие не выбрано, подставляется вариант «Оставить только совпадения». -и следующих правилах фильтрации: +Чтобы оставить только записи с нужным значением поля (например, чтобы в поле `name` значение начиналось с `first`), выберите «Оставить только совпадения». В источнике укажите выражение для этого поля, например `{{ .name }}`, в условии — регулярное выражение для подходящих значений. Чтобы не обрабатывать записи, которые совпадают с шаблоном, выберите «Убрать совпадения» и задайте шаблон в условии. -```json -"filterRules": [ - { - "source": "{{ .name }}", - "pattern": "^first" - } -] -``` - -обработка правилами создания, сопоставления и т.д. будет осуществляться только для первого элемента массива, у которого значение поля `name` соответствует `first`. +{{< alert level="info" >}} +Если в условии указано невалидное регулярное выражение, правило не выполняется; ошибка попадает в лог синхронизации и обработка источника данных продолжается. +{{< /alert >}} ### Правила создания diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index b66103e..5a89ca2 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -57,6 +57,10 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm; **Wait** — добавлено действие для паузы на заданное время ([подробнее](../../admin/actions/types/#wait)). +### Источники данных + +Добавлена поддержка нескольких последовательных **правил фильтрации** и исключения элементов по условию ([подробнее](../../admin/datasources/overview/#правила-фильтрации)). + ### Ролевая модель Добавлен пресет роли «Platform engineer» ([подробнее](../../admin/security/rbac/#пресет-platform-engineer)).