From 21637e625fdc1dc03254d834ede4a79daecc3c59 Mon Sep 17 00:00:00 2001 From: "pavel.korolkov" Date: Thu, 26 Feb 2026 18:08:35 +0500 Subject: [PATCH 01/22] docs: Add Bitbucket provider to widget repository viewer --- .../admin/external-services.ru.md | 16 ++++++++++++ .../documentation/admin/widgets/types.ru.md | 25 +++++++++++++------ .../documentation/release-notes/v1.3.0.ru.md | 2 +- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index e58d941..80795b7 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -143,6 +143,22 @@ Private-Token: <ваш-gitlab-token> Подробнее о том, как получить GitLab token можно узнать в [официальной документации](https://docs.gitlab.com/api/rest/authentication/). +### Bitbucket + +**Тип авторизации:** Bearer Token (Personal Access Token) + +**Заголовки:** + +| Заголовок | Формат значения | +|-----------------|------------------| +| `Authorization` | `Bearer <токен>` | + +**Пример:** + +```sh +Authorization: Bearer <ваш-bitbucket-personal-access-token> +``` + ### Harbor **Тип авторизации:** Basic Authentication diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index a4553bd..7b0ea31 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -372,26 +372,37 @@ title: Типы виджетов ## Просмотр репозитория -Виджет позволяет просматривать структуру и содержимое файлов в репозитории. - -{{< alert level="info" >}} -В текущей версии виджет работает только с репозиториями GitLab. -{{< /alert >}} +Виджет позволяет просматривать структуру и содержимое файлов в репозитории. Поддерживаются репозитории **GitLab** и **Bitbucket**. ### Авторизация -Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/#gitlab). +Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/): + +* [GitLab](../external-services/#gitlab) +* [Bitbucket](../external-services/#bitbucket) ### Конфигурация | Название | Опциональность | Описание | Значение по умолчанию | |--------------|-----------------|------------------------------------------------------------------|-----------------------| | Провайдер | **обязательно** | Провайдер репозитория | - | -| ID проекта | **обязательно** | ID проекта в GitLab. Пример: `12345` | - | | Ветка / Тег | опционально | Название ветки, тег или SHA коммита | main | | Путь | опционально | Путь к директории в репозитории (оставьте пустым для корня) | - | | Рекурсивно | опционально | Получать файлы рекурсивно из поддиректорий | false | +### Конфигурация для провайдера GitLab + +| Название | Опциональность | Описание | Значение по умолчанию | +|--------------|-----------------|--------------------------------------------------|-----------------------| +| ID проекта | **обязательно** | Идентификатор проекта в GitLab. Пример: `12345` | - | + +### Конфигурация для провайдера Bitbucket + +| Название | Опциональность | Описание | Значение по умолчанию | +|---------------------------|-----------------|--------------------------------------------------------------------------|-----------------------| +| Ключ проекта | **обязательно** | Ключ проекта в Bitbucket. Пример: `MYPROJ` | - | +| Идентификатор репозитория | **обязательно** | Идентификатор репозитория в Bitbucket. Пример: `my-repo` | - | + ## Jenkins. Пайплайны Виджет отображает данные о пайплайнах в Jenkins и позволяет управлять сборками. diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 979eaef..6b0003d 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -17,7 +17,7 @@ weight: 940 Добавлены новые виджеты: -- **Просмотр репозитория** — для просмотра структуры и содержимого файлов в репозиториях ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). +- **Просмотр репозитория** — для просмотра структуры и содержимого файлов в репозиториях. Поддерживаются провайдеры GitLab и Bitbucket ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). - **Jenkins. Пайплайны** — для управления сборками в Jenkins ([подробнее](../../admin/widgets/types/#jenkins-пайплайны)). - **Jira. Задачи** — для просмотра задач в Jira ([подробнее](../../admin/widgets/types/#jira-задачи)). - **Vault. Секреты** — для просмотра секретов в HashiCorp Vault или Deckhouse Stronghold ([подробнее](../../admin/widgets/types/#vault-секреты)). From 37a1d2a50fe486b0313a5fcad243c645a371bc0e Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Fri, 27 Feb 2026 00:24:17 +0300 Subject: [PATCH 02/22] docs: add ux improvements to release notes (#101) * docs: add ux improvements to release notes * corrected the phrasing * fix typos * fix typos --------- Co-authored-by: Nikita Velgin --- .../documentation/release-notes/v1.0.0.ru.md | 18 +++++++++--------- .../documentation/release-notes/v1.3.0.ru.md | 7 ++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/content/documentation/release-notes/v1.0.0.ru.md b/content/documentation/release-notes/v1.0.0.ru.md index d3f0006..bfbf031 100644 --- a/content/documentation/release-notes/v1.0.0.ru.md +++ b/content/documentation/release-notes/v1.0.0.ru.md @@ -13,7 +13,7 @@ weight: 1000 #### Kaiten виджеты -Добавлены два виджета для интеграции с платформой управления проектами Kaiten, ([подробнее](../../admin/widgets/types/#kaiten-карточки-пространства)). +Добавлены два виджета для интеграции с платформой управления проектами Kaiten ([подробнее](../../admin/widgets/types/#kaiten-карточки-пространства)). - **Kaiten. Карточки пространства** — просмотр задач в пространстве: - Многоуровневое отображение структуры «Доска → Карточки». @@ -28,7 +28,7 @@ weight: 1000 #### Kafka виджеты -Расширены возможности работы с Kafka, ([подробнее](../../admin/widgets/types/#kafka-acls)). +Расширены возможности работы с Kafka ([подробнее](../../admin/widgets/types/#kafka-acls)). - **Действия для виджета Kafka Topics**: - Создание и удаление топиков. @@ -44,17 +44,17 @@ weight: 1000 Добавлены новые возможности для работы с GitLab. -- **Редактор пайплайна** — редактирование `.gitlab-ci.yml`, ([подробнее](../../admin/widgets/types/#gitlab-редактор-пайплайна)): +- **Редактор пайплайна** — редактирование `.gitlab-ci.yml` ([подробнее](../../admin/widgets/types/#gitlab-редактор-пайплайна)): - Редактирование конфигурации пайплайнов. - Просмотр различий между версиями. - Создание Merge Requests с изменениями. -- **Статистика пайплайнов** — аналитика по пайплайнам, ([подробнее](../../admin/widgets/types/#gitlab-статистика-пайплайнов)): +- **Статистика пайплайнов** — аналитика по пайплайнам ([подробнее](../../admin/widgets/types/#gitlab-статистика-пайплайнов)): - Общие метрики (количество, процент успеха/неудач, средняя длительность). - Распределение по статусам и источникам. - Статистика по участникам и веткам. -Расширены функции виджета **Запросы слияния**, ([подробнее](../../admin/widgets/types/#gitlab-запросы-слияния)): +Расширены функции виджета **Запросы слияния** ([подробнее](../../admin/widgets/types/#gitlab-запросы-слияния)): - **Действия виджета** — добавлена возможность выполнения действий с Merge Requests (MR): - Слияние и закрытие MR. - Изменение статуса черновика. @@ -62,7 +62,7 @@ weight: 1000 #### S3 bucket виджет -Добавлен виджет для работы с S3-совместимыми хранилищами, ([подробнее](../../admin/widgets/types/#s3-bucket)): +Добавлен виджет для работы с S3-совместимыми хранилищами ([подробнее](../../admin/widgets/types/#s3-bucket)): - Просмотр содержимого бакета. - Поиск объектов по префиксу. - Загрузка файлов из бакета. @@ -71,7 +71,7 @@ weight: 1000 #### Виджет статистики событий -Виджет для анализа событий сущностей в системе, ([подробнее](../../admin/widgets/types/#статистика-событий)): +Виджет для анализа событий сущностей в системе ([подробнее](../../admin/widgets/types/#статистика-событий)): - График событий по типам за выбранный период. - Топ сущностей по количеству событий. - Настраиваемая группировка по времени. @@ -90,7 +90,7 @@ weight: 1000 #### Nexus -Добавлены действия для работы с репозиториями Nexus, ([подробнее](../../admin/actions/types/#createnexusrepository)): +Добавлены действия для работы с репозиториями Nexus ([подробнее](../../admin/actions/types/#createnexusrepository)): - **CreateNexusRepository** — создание репозиториев любого поддерживаемого типа (maven, docker, npm и др.) в Nexus Repository Manager 3. - **DeleteNexusRepository** — удаление репозиториев из Nexus Repository Manager 3. @@ -108,7 +108,7 @@ weight: 1000 #### Внешние сервисы -Добавлен механизм внешних сервисов, ([подробнее](../../admin/external-services/)): +Добавлен механизм внешних сервисов ([подробнее](../../admin/external-services/)): - Централизованная настройка подключений к инфраструктурным сервисам. - Переиспользование настроек подключений для виджетов, действий, источников данных и проверок статуса. diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 6b0003d..c7179d4 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -38,7 +38,12 @@ weight: 940 Добавлен новый тип параметра **Enum** ([подробнее](../../user/properties/#enum)). +## Улучшения интерфейса + +- Пункты верхнего и боковых меню теперь можно открыть в новой вкладке: щёлкните по пункту колесиком мыши или с зажатыми Ctrl (Windows/Linux) / Cmd (macOS). +- Карточки в разделе «Самообслуживание» теперь открываются в новой вкладке при нажатии колесиком мыши по карточке или при щелчке с зажатыми Ctrl / Cmd. + ## Исправленные проблемы -- Решена проблема с отображением команды-владельца на карточках раздела «Самообслуживание». +- Решена проблема с отображением команды-владельца в карточках раздела «Самообслуживание». - Исправлено удаление линий в редакторе процессов. From 0fb28de5b58eb6c392a2c10ed8d727930b99cd9d Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Fri, 27 Feb 2026 00:24:42 +0300 Subject: [PATCH 03/22] docs: autogenerated parametes (#100) * add docs about auto generated parametes * corrected the phrasing * corrected the phrasing * corrected the phrasing --------- Co-authored-by: Nikita Velgin --- .../admin/datasources/overview.ru.md | 29 ++++++++++++++++++- .../documentation/release-notes/v1.3.0.ru.md | 3 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/content/documentation/admin/datasources/overview.ru.md b/content/documentation/admin/datasources/overview.ru.md index fb4ac06..36156a5 100644 --- a/content/documentation/admin/datasources/overview.ru.md +++ b/content/documentation/admin/datasources/overview.ru.md @@ -113,7 +113,34 @@ metadata: ### Правила обновления -Правила обновления определяют, какие параметры сущности стоит автоматически заполнять на основе спецификации соответствующего ресурса из внешней системы. Сущность, параметры которой необходимо заполнить, определяется на основе правил сопоставления. +Правила обновления определяют, какие параметры сущности необходимо автоматически заполнять на основе спецификации соответствующего ресурса из внешней системы. Сущность, параметры которой необходимо заполнить, определяется на основе правил сопоставления. + +#### Импорт из спецификации + +{{< alert level="info" >}} +Экспериментальный функционал +{{< /alert >}} + +С использованием механизма импорта, правила обновления и параметры обновляемого ресурса можно сформировать автоматически по JSON, YAML или OpenAPI-спецификации данных. + +##### Где настраивается + +В диалоге редактирования источника данных откройте вкладку **«Правила»**. В блоке «Правила обновления» нажмите кнопку **«Импортировать из спецификации»**, предварительно на вкладке **«Основная информация»** должен быть выбран ресурс, к которому будет привязан источник данных. + +##### Шаги по настройке + +1. **Загрузка данных** — выберите формат (автоопределение, JSON, YAML, OpenAPI 3.x, Swagger 2.0) и вставьте содержимое спецификации в поле «Данные». Если в спецификации несколько схем, на следующем шаге в поле «Выберите схему для импорта» можно выбрать схему для маппинга. +2. **Настройка маппинга** — в таблице отображаются столбцы «Путь в данных», «Тип в источнике», «Идентификатор параметра», «Название параметра», «Тип параметра». Можно редактировать идентификатор, название и тип параметра, отметить галочками строки для применения. Строки, для которых в ресурсе уже есть параметр с таким идентификатором или названием, помечаются меткой «Существует». +3. **Применение** — нажмите «Применить»: в блок «Правила обновления» источника данных добавятся сформированные правила. Новые параметры ресурса будут созданы при сохранении источника данных. + +##### Что происходит при импорте + +1. **Автосоздание параметров ресурса** — для полей спецификации, по которым в ресурсе ещё нет параметра, предлагаются новые параметры; они добавляются в ресурс при сохранении источника данных. +2. **Автозаполнение правил обновления** — по каждому выбранному полю создаётся правило: источник задаётся выражением [Go template](https://developer.hashicorp.com/nomad/docs/reference/go-template-syntax) по пути в данных (например, `{{ .metadata.name }}`), параметр — идентификатор параметра ресурса. После нажатия «Применить» эти правила появляются в блоке «Правила обновления» на вкладке «Правила» источника данных. + +##### Поддерживаемые форматы + +Автоопределение, JSON, YAML, OpenAPI 3.x, Swagger 2.0. Типы из спецификации (string, integer, array, object и т.д.) сопоставляются с типами параметров DDP; при необходимости тип можно изменить на шаге «Настройка маппинга». ### Правила создания связей diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index c7179d4..0ad7e91 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -11,7 +11,8 @@ weight: 940 ### Источники данных -Добавлены подсказки при настройке параметров источников данных ([подробнее](../../admin/datasources/overview/#параметры-источников-данных)). +- Добавлены **подсказки при настройке параметров** источников данных ([подробнее](../../admin/datasources/overview/#параметры-источников-данных)). +- Добавлен **импорт параметров** — по JSON, YAML или OpenAPI-спецификации данных можно автоматически создать параметры ресурса и заполнить правила обновления источника данных ([подробнее](../../admin/datasources/overview/#импорт-из-спецификации)). ### Виджеты From c9ee3ef6717c69a4f49aed41fded57f5cf897518 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Fri, 27 Feb 2026 00:25:59 +0300 Subject: [PATCH 04/22] add vault credentials storage description (#95) * add vault credentials storage description * corrected the phrasing * corrected the phrasing * corrected the phrasing --------- Signed-off-by: Nikita Velgin Co-authored-by: Nikita Velgin --- .../admin/security/credentials.ru.md | 48 ++++++++++++++++++- .../documentation/admin/security/rbac.ru.md | 3 ++ .../documentation/release-notes/v1.3.0.ru.md | 7 ++- 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/content/documentation/admin/security/credentials.ru.md b/content/documentation/admin/security/credentials.ru.md index 0eb3e3d..292c879 100644 --- a/content/documentation/admin/security/credentials.ru.md +++ b/content/documentation/admin/security/credentials.ru.md @@ -20,9 +20,17 @@ weight: 30 После сохранения пользователь не может просмотреть значение учетных данных, только обновить его. В профиле отображается информация о том, заполнены ли те или иные учетные данные. +### Выбор хранилища для типа учётных данных + +При создании или редактировании типа учётных данных указывается **хранилище**: +- **База данных** — значения хранятся в PostgreSQL (по умолчанию). +- **Vault** — значения хранятся в HashiCorp Vault или в Deckhouse Stronghold. Доступно только если в платформе включена и настроена интеграция с Vault. + +Один и тот же тип учётных данных всегда использует одно выбранное хранилище. Изменить хранилище для существующего типа можно; при этом уже сохранённые учётные данные в старом хранилище не переносятся автоматически. + ### Хранение в базе данных -Учетные данные хранятся в базе данных PostgreSQL. Перед сохранением в базу данных значения шифруются с использованием алгоритма **AES-GCM**. +Учетные данные с типом хранилища «База данных» сохраняются в PostgreSQL. Перед сохранением значения шифруются с использованием алгоритма **AES-GCM**. **Параметры шифрования:** - **Алгоритм:** AES-GCM. @@ -36,6 +44,40 @@ weight: 30 При изменении ключа шифрования (`security.secretKey`) в конфигурации все текущие учетные данные станут невалидными и не смогут быть расшифрованы. {{< /alert >}} +### Хранение в HashiCorp Vault + +Если для типа учётных данных выбрано хранилище **Vault**, то реквизиты пользователей сохраняются платформой в HashiCorp Vault или в Deckhouse Stronghold. + +**Как это устроено:** +- В Vault используется движок **KV Secrets Engine v2**. Путь к секретам задаётся в настройках Vault в DDP (например, `secrets/data/ddp`). +- Для каждого пользователя создаётся отдельный секрет по пути `{path}/credentials/{uuid_типа}/users/{uuid_пользователя}`. Внутри секрета один ключ **value**, значение — зашифрованные учетные данные. Шифрование выполняется ключом DDP (`security.secretKey`). +- Подключение к Vault выполняется по **AppRole** (AppRole Role ID и AppRole Secret ID). AppRole Role ID и AppRole Secret ID сохраняются в БД DDP в зашифрованном виде. Токен Vault продлевается автоматически; при сбое продления выполняется повторный вход по AppRole. + +**Настройка Vault в DDP:** + +1. В разделе «Администрирование» → «Учетные данные» нажмите **«Настройки Vault»**. +2. Включите использование Vault (**Включено**). +3. Заполните параметры: + - **URL** — адрес сервера Vault (например, `https://vault.example.com`). + - **AppRole Role ID** — идентификатор AppRole, полученный при создании роли в Vault. + - **AppRole Secret ID** — секрет AppRole, используется вместе с Role ID для аутентификации в Vault. + - **Путь** — путь к секретам в KV v2. Для KV v2 путь должен содержать сегмент `/data/` (например, `secrets/data/ddp` или `secrets/data/ddp/credentials`). Mount (например, `secrets`) должен быть заранее создан в Vault; подкаталоги после `data/` создаются платформой автоматически при сохранении учётных данных. +4. Нажмите **«Проверить подключение»**, чтобы убедиться, что DDP может аутентифицироваться и обращаться к Vault. +5. Сохраните конфигурацию. + +После сохранения конфигурации при создании или редактировании типа учётных данных в списке хранилищ будет доступен вариант **Vault**. Если Vault выключен или не настроен, типы с хранилищем Vault останутся в списке, но учётные данные такого типа заполнять и использовать будет нельзя до включения и настройки Vault. + +**Права доступа:** + +Для просмотра, изменения конфигурации Vault и проверки подключения требуется глобальное разрешение на редактирование типов учётных данных: `edit:user-access-credentials-types`. + +**Особенности конфигурации:** + +- Поддерживается только **KV Secrets Engine v2**. Путь в настройках должен включать `/data/` (например, `mount/data/подкаталог`). +- Одна конфигурация Vault на инстанс DDP: один URL, одна AppRole, один базовый путь. Все типы учётных данных с хранилищем Vault используют этот путь (подкаталоги формируются автоматически по UUID типа). +- Очистить все сохранённые значения типа из текущего хранилища (база данных или Vault) в любой момент можно через действие **«Очистить хранилище»** в таблице типов учётных данных. +- Смена ключа шифрования DDP (`security.secretKey`) делает нечитаемыми и учётные данные в Vault, так как значения в Vault хранятся в зашифрованном виде. + ### Использование учетных данных Учетные данные расшифровываются только при необходимости их использования, непосредственно перед обращением к внешнему сервису. После использования расшифрованные значения не сохраняются в памяти дольше необходимого. @@ -106,6 +148,10 @@ security: - Не должен быть слабым или часто используемым ключом. - Не должен состоять из одного повторяющегося символа. +### Интеграция с Vault + +Подключение к HashiCorp Vault (URL, AppRole, путь к KV v2) настраивается в веб-интерфейсе в разделе «Администрирование» → «Учетные данные» → «Настройки Vault». В конфигурационном файле DDP задаётся только ключ шифрования (`security.secretKey`), который используется в том числе для шифрования значений, хранящихся в Vault. + ## Безопасность - Учетные данные никогда не передаются пользователю в расшифрованном виде. diff --git a/content/documentation/admin/security/rbac.ru.md b/content/documentation/admin/security/rbac.ru.md index 85a54e9..8ae3b71 100644 --- a/content/documentation/admin/security/rbac.ru.md +++ b/content/documentation/admin/security/rbac.ru.md @@ -107,6 +107,9 @@ weight: 20 - `create:icons` — создание иконок. - `delete:icons` — удаление иконок. +Типы учётных данных: +- `edit:user-access-credentials-types` — создание, редактирование и удаление типов учётных данных; настройка интеграции с Vault (просмотр и изменение конфигурации, проверка подключения). + {{< alert level="info" >}} Разрешение `update:team-variables` позволяет редактировать переменные только тех команд, участником которых является пользователь. Даже супер-администратор не сможет изменить переменные команд, в которых не состоит. {{< /alert >}} diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 0ad7e91..7009beb 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -33,12 +33,17 @@ weight: 940 ### Ролевая модель -Добавлено глобальное разрешение `edit:team-filter-rules` для настройки правил фильтрации при синхронизации команд ([подробнее](../../admin/security/rbac/#глобальные-разрешения)). +- Добавлено глобальное разрешение `edit:team-filter-rules` для настройки правил фильтрации при синхронизации команд ([подробнее](../../admin/security/rbac/#глобальные-разрешения)). +- Добавлено глобальное разрешение `edit:user-access-credentials-types` для управления типами учётных данных ([подробнее](../../admin/security/rbac/#глобальные-разрешения)). ### Параметры Добавлен новый тип параметра **Enum** ([подробнее](../../user/properties/#enum)). +### Учётные данные + +Добавлена возможность хранения пользовательских учётных данных в **HashiCorp Vault** или **Deckhouse Stronghold** ([подробнее](../../admin/security/credentials/#хранение-в-hashicorp-vault)). + ## Улучшения интерфейса - Пункты верхнего и боковых меню теперь можно открыть в новой вкладке: щёлкните по пункту колесиком мыши или с зажатыми Ctrl (Windows/Linux) / Cmd (macOS). From 85c32e5ab944a5dc15a7e39d9c8b6a2b3a3db89f Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Fri, 27 Feb 2026 00:26:15 +0300 Subject: [PATCH 05/22] add export resources to csv description (#92) Co-authored-by: Nikita Velgin --- .../documentation/release-notes/v1.3.0.ru.md | 4 +++ content/documentation/user/catalog.ru.md | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 7009beb..ea30b54 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -31,6 +31,10 @@ weight: 940 Добавлены правила фильтрации при синхронизации команд ([подробнее](../../user/teams-users/#фильтрация-групп-при-синхронизации)). +### Каталог + +Добавлена возможность выгрузки сущностей нескольких ресурсов в CSV-файл ([подробнее](../../user/catalog/#выгрузка-сущностей-в-csv)). + ### Ролевая модель - Добавлено глобальное разрешение `edit:team-filter-rules` для настройки правил фильтрации при синхронизации команд ([подробнее](../../admin/security/rbac/#глобальные-разрешения)). diff --git a/content/documentation/user/catalog.ru.md b/content/documentation/user/catalog.ru.md index 79d5a80..73fd7d9 100644 --- a/content/documentation/user/catalog.ru.md +++ b/content/documentation/user/catalog.ru.md @@ -96,3 +96,28 @@ weight: 30 - **Настройка автоматизированных реакций** — настройка реакций на изменения спецификации сущности. Время хранения событий ограничено и может быть настроено через файл конфигурации платформы. + +### Выгрузка сущностей в CSV + +Платформа предоставляет возможность выгрузки сущностей в CSV-файл для последующего анализа и обработки данных. + +#### Выгрузка сущностей одного ресурса + +Для выгрузки сущностей конкретного ресурса: + +1. Откройте карточку ресурса в каталоге. +2. В таблице сущностей нажмите кнопку **Скачать .csv**. +3. В выгруженный файл будут включены все сущности ресурса с учетом примененных фильтров, сортировки и пагинации. + +#### Выгрузка сущностей нескольких ресурсов + +Для выгрузки сущностей из нескольких ресурсов одновременно: + +1. В сайдбаре каталога нажмите кнопку **Выгрузить сущности**. +2. В открывшемся диалоге выберите один или несколько ресурсов. +3. Нажмите кнопку **Скачать .csv**. +4. Все сущности выбранных ресурсов будут объединены в один CSV-файл. + +{{< alert level="info" >}} +Для выгрузки сущностей требуется глобальное разрешение `read:entities`. Подробнее о правах доступа см. в разделе [Ролевая модель](../../admin/security/rbac/). +{{< /alert >}} From c00b10b7f96ee2f046d1e44c22be64f286feb27a Mon Sep 17 00:00:00 2001 From: Pavel Korolkov Date: Fri, 27 Feb 2026 02:26:49 +0500 Subject: [PATCH 06/22] docs: Add bitbucket PR widget (#90) * rebase * bitbucket pr widget fixes * bitbucket pr widget fixes --------- Co-authored-by: Nikita Velgin --- .../admin/external-services.ru.md | 16 ++++++++ .../documentation/admin/widgets/types.ru.md | 40 +++++++++++++++++++ .../documentation/release-notes/v1.3.0.ru.md | 1 + 3 files changed, 57 insertions(+) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index 80795b7..1a5e002 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -105,6 +105,22 @@ Authorization: <ваш-api-token> Authorization: Token <ваш-defectdojo-api-v2-key> ``` +### Bitbucket + +**Тип авторизации:** Bearer Token (Personal Access Token) + +**Заголовки:** + +| Заголовок | Формат значения | +|-----------|-----------------| +| `Authorization` | `Bearer <токен>` | + +**Пример:** + +```sh +Authorization: Bearer <ваш-bitbucket-personal-access-token> +``` + ### Docker Registry **Тип авторизации:** Basic Authentication diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index 7b0ea31..2d4767d 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -33,6 +33,46 @@ title: Типы виджетов Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/#gitlab). +## Bitbucket. Pull Requests + +Виджет позволяет отображать данные о Pull Requests (PR) в Bitbucket Server / Bitbucket Data Center и выполнять действия с ними. + +### Авторизация + +Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/#bitbucket). + +### Конфигурация + +| Название | Опциональность | Описание | Значение по умолчанию | +|---------------------------|-----------------|------------------------------------------------------------------------------------------------------|-----------------------| +| Ключ проекта | **обязательно** | Ключ проекта в Bitbucket. Пример: из URL `.../projects/PROJ/repos/my_repo` укажите `PROJ` | - | +| Идентификатор репозитория | **обязательно** | Идентификатор репозитория (slug). Пример: из URL `.../projects/PROJ/repos/my_repo` укажите `my_repo` | - | + +### Фильтрация по статусу + +Виджет позволяет фильтровать отображаемые Pull Requests по статусу. В настройках запроса виджета можно выбрать один из следующих статусов: + +- **Открыт** — показывает только открытые PR. +- **Слит** — показывает только слитые PR. +- **Отклонён** — показывает только отклонённые PR. +- **Все** — показывает PR в любом статусе. + +По умолчанию отображаются только открытые PR. + +### Дополнительные возможности виджета + +При активированной функции действий в настройках виджет позволяет выполнять следующие действия с Pull Requests: + +- **Слить** — слияние открытого запроса на слияние (доступно только для открытых PR). +- **Закрыть** — отклонение (decline) запроса на слияние. +- **Просмотр изменений** — просмотр диффа (изменений) в запросе на слияние. +- **Комментарии** — просмотр и добавление комментариев к PR. +- **Создать PR** — создание нового Pull Request с указанием исходной и целевой ветки, ревьюеров, названия и описания. + +{{< alert level="info" >}} +Для выполнения действий с PR требуются соответствующие права доступа в репозитории Bitbucket. +{{< /alert >}} + ## CodeScoring. Зависимости Виджет позволяет вывести таблицу с зависимостями продукта на основе информации из CodeScoring с указанием названия зависимости, версии, лицензии, количество уязвимостей и другой информацией для каждой зависимости. diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index ea30b54..cbe72d4 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -21,6 +21,7 @@ weight: 940 - **Просмотр репозитория** — для просмотра структуры и содержимого файлов в репозиториях. Поддерживаются провайдеры GitLab и Bitbucket ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). - **Jenkins. Пайплайны** — для управления сборками в Jenkins ([подробнее](../../admin/widgets/types/#jenkins-пайплайны)). - **Jira. Задачи** — для просмотра задач в Jira ([подробнее](../../admin/widgets/types/#jira-задачи)). +- **Bitbucket. Pull Requests** — для просмотра и управления Pull Requests в Bitbucket ([подробнее](../../admin/widgets/types/#bitbucket-pull-requests)). - **Vault. Секреты** — для просмотра секретов в HashiCorp Vault или Deckhouse Stronghold ([подробнее](../../admin/widgets/types/#vault-секреты)). ### Действия From 985b79c824cc93043379e2ddd515693a3a76f963 Mon Sep 17 00:00:00 2001 From: niknamess <90681892+niknamess@users.noreply.github.com> Date: Fri, 27 Feb 2026 00:27:10 +0300 Subject: [PATCH 07/22] docs: add user guide for store (BPMN process task responses) (#74) * docs: add user guide for store (BPMN process task responses) - Add processes-store.md and processes-store.ru.md with usage guide for storing and referencing task responses via slugs and placeholders - Document temporary response exclusion from store - Link to store doc from admin processes section Co-authored-by: Cursor * fix: use trailing slash URL for processes-store link (Hugo pretty URLs) * fix: use trailing slash for internal doc links (link check) Co-authored-by: Cursor * docs: flat store with Response to store rules, action overview update - Rewrite processes-store docs: flat store, Source/Target rules, no write without rules - Add Debug action section for testing store - Add 'Write to process store' section in admin actions overview - Update admin processes store description Co-authored-by: Cursor * update docs with latest fixes * fix typos --------- Co-authored-by: nikita.ryabchenko Co-authored-by: Cursor Co-authored-by: Nikita Velgin --- .../admin/actions/overview.ru.md | 21 ++++++++++++-- content/documentation/admin/processes.ru.md | 25 ++++++++++++++++- content/documentation/admin/workflows.ru.md | 2 +- .../documentation/release-notes/v1.3.0.ru.md | 5 ++-- content/documentation/user/templating.ru.md | 28 +++++++++++++++++++ 5 files changed, 75 insertions(+), 6 deletions(-) diff --git a/content/documentation/admin/actions/overview.ru.md b/content/documentation/admin/actions/overview.ru.md index 067cc15..9bc278d 100644 --- a/content/documentation/admin/actions/overview.ru.md +++ b/content/documentation/admin/actions/overview.ru.md @@ -61,11 +61,11 @@ weight: 10 Действие может выполняться с использованием одного из двух типов бэкенда: -- **Встроенный (BuiltIn)** — основная логика действия выполняется внутри платформы. +- **Встроенный** — основная логика действия выполняется внутри платформы. > При выборе встроенного бэкенда необходимо указать конкретный тип встроенного действия. В зависимости от выбранного типа платформа автоматически формирует пример тела запроса и определяет перечень учетных данных, необходимых для выполнения действия. -- **Вебхук (Webhook)** — основная логика действия выполняется внешним сервисом, которому платформа отправляет HTTP-запрос. +- **Вебхук** — основная логика действия выполняется внешним сервисом, которому платформа отправляет HTTP-запрос. #### Маскирование полей действия @@ -195,6 +195,23 @@ Headers — HTTP-заголовки в формате ключ-значение, * Источник: `{{ .response.id }}`. * Параметр сущности: `repository_id`. +#### Запись в хранилище процесса + +После выполнения действия результат записывается в поле **response**. В разделе **«Обновление»** конфигурации действия доступен блок **«Запись в хранилище процесса»**. Он применяется только при выполнении действия в рамках процесса: если заданы правила записи в хранилище, то после успешного выполнения действия значения по этим правилам записываются в хранилище. + +В блоке задаётся список правил: + +| Поле | Описание | Примеры | +|------|----------|---------| +| **Источник** | Строка Go-шаблона, в котором контекстом является **response** этого действия. Шаблон выполняется после успешного выполнения действия; результат (строка) записывается в хранилище. | `{{ .id }}` — получить поле id из ответа; `{{ .result.projectId }}` — получить вложенное поле projectId из result из ответа | +| **Ключ в хранилище** | Название ключа в хранилище процесса. Под этим ключом сохраняется значение из источника. | `projectId`, `deployJobId` | + +Если правил нет (список пустой), при выполнении действия в процессе в хранилище ничего не записывается. Данные из хранилища можно использовать в последующих действиях того же процесса через плейсхолдеры `{{ .store.<ключ> }}`. Подробнее об использовании хранилища см. в разделе [«Хранилище процесса»](../processes/#хранилище-процесса). + +{{< alert level="info" >}} +Запись в хранилище выполняется только после успешного выполнения действия. +{{< /alert >}} + #### Обновление учётных данных пользователя После выполнения действия результат записывается в поле **response**. Если включена опция **обновление учётных данных пользователя**, то на основании данных из **response** действие автоматически обновляет учётные данные пользователя в соответствии с правилами обновления. diff --git a/content/documentation/admin/processes.ru.md b/content/documentation/admin/processes.ru.md index b684b57..07fa6f8 100644 --- a/content/documentation/admin/processes.ru.md +++ b/content/documentation/admin/processes.ru.md @@ -86,7 +86,30 @@ moduleStatus: experimental На вкладке `Параметры` настраиваются параметры процесса, которые могут использоваться во всех действиях процесса. -Конфигурация и использование параметров процесса описаны в разделе [шаблонизация](../user/templating.html#параметры-процесса). +Конфигурация и использование параметров процесса описаны в разделе [шаблонизация](../user/templating/#параметры-процесса). + +### Хранилище процесса + +Хранилище процесса — это хранилище формата ключ-значение для передачи данных между действиями в процессе. + +#### Основные характеристики + +- **Одно хранилище на запуск процесса** — каждый запуск процесса имеет своё хранилище. +- **Плоские ключи** — в хранилище используются только логические ключи (например `projectId`, `deployJobId`). +- **Запись только по правилам** — в хранилище записывается только то, что задано в настройках действий, входящих в процесс (см. [«Запись в хранилище процесса»](../actions/overview/#запись-в-хранилище-процесса)). Если правил записи нет — в хранилище ничего не записывается. +- **Чтение через плейсхолдеры** — в конфигурации действий (URL, заголовки, body и т.д.) можно использовать Go-шаблоны вида `{{ .store.<ключ> }}` (см. [«Хранилище процесса»](../../user/templating/#хранилище-процесса)). + +#### Как данные попадают в хранилище + +1. Действие в процессе завершилось **успешно**. +2. У действия настроены правила «Запись в хранилище процесса». +3. Для каждого правила выполняется Go-шаблон из поля **Источник** с данными ответа действия; полученная строка записывается в хранилище под ключом, указанным в поле **Ключ в хранилище**. + +Если для одного и того же ключа пишут несколько действий (или одно и то же действие при повторном запуске), **значение перезаписывается**. + +#### Поведение при отсутствующих данных + +Если **ключа нет** в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), при выполнении шаблона `{{ .store.<ключ> }}` действие завершится с ошибкой. ## Запуск процесса diff --git a/content/documentation/admin/workflows.ru.md b/content/documentation/admin/workflows.ru.md index 85df7e1..9bac1dd 100644 --- a/content/documentation/admin/workflows.ru.md +++ b/content/documentation/admin/workflows.ru.md @@ -28,4 +28,4 @@ moduleStatus: experimental ### Параметры сценария -Конфигурация и использование параметров сценария описаны в разделе [шаблонизация](../user/templating.html#параметры-сценария). +Конфигурация и использование параметров сценария описаны в разделе [шаблонизация](../user/templating/#параметры-сценария). diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index cbe72d4..9d02503 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -24,9 +24,10 @@ weight: 940 - **Bitbucket. Pull Requests** — для просмотра и управления Pull Requests в Bitbucket ([подробнее](../../admin/widgets/types/#bitbucket-pull-requests)). - **Vault. Секреты** — для просмотра секретов в HashiCorp Vault или Deckhouse Stronghold ([подробнее](../../admin/widgets/types/#vault-секреты)). -### Действия +### Процессы и действия -Добавлена возможность отмены запущенных действий и процессов. +- Добавлен механизм обмена данными между действиями процесса: результаты выполнения действия можно записать в хранилище и использовать в последующих действиях ([подробнее](../../admin/processes/#хранилище-процесса)). +- Добавлена возможность отмены запущенных действий и процессов. ### Команды diff --git a/content/documentation/user/templating.ru.md b/content/documentation/user/templating.ru.md index c0a20eb..074c430 100644 --- a/content/documentation/user/templating.ru.md +++ b/content/documentation/user/templating.ru.md @@ -497,3 +497,31 @@ title: Шаблонизация {{ .workflow.notificationEmail }} // Email для уведомлений из параметров сценария {{ .workflow.retryAttempts }} // Количество попыток повтора из параметров сценария ``` + +## Хранилище процесса + +Хранилище доступно только в процессах и используется для передачи данных между действиями. В настройках действия задаются правила записи в хранилище (см. [«Запись в хранилище процесса»](../../admin/actions/overview/#запись-в-хранилище-процесса)), а в конфигурации последующих действий используются плейсхолдеры для чтения данных. + +Для получения значения из хранилища используйте следующую конструкцию: + +```go +{{ .store.<ключ> }} +``` + +где: + +- `store` — указывает на то, что идет обращение к хранилищу процесса. +- `<ключ>` — название ключа в хранилище, под которым было сохранено значение (поле **Ключ в хранилище** в правилах записи). + +Особенности использования: + +- Хранилище доступно только в процессах, в обычных действиях и сценариях плейсхолдеры `{{ .store.* }}` не работают. +- Если ключа нет в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), действие завершится с ошибкой. +- Если для одного и того же ключа пишут несколько действий, остаётся последнее записанное значение. + +Примеры использования: + +```go +{{ .store.projectId }} // ID проекта из хранилища +{{ .store.orderRef }} // Референс заказа из хранилища +``` From 755ad22804816b140ea9d465bdabfd435d58098d Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Thu, 5 Mar 2026 10:59:07 +0300 Subject: [PATCH 08/22] fix conflicts --- .../admin/external-services.ru.md | 30 +- .../documentation/admin/widgets/types.ru.md | 440 +++++++++--------- 2 files changed, 235 insertions(+), 235 deletions(-) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index 1a5e002..bf96ee8 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -134,8 +134,8 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> **Пример:** 1. Сформируйте строку `username:password` -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: +1. Закодируйте её в Base64: `echo "username:password" | base64` +1. Добавьте заголовок: ```sh Authorization: Basic @@ -188,8 +188,8 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> **Пример:** 1. Сформируйте строку `username:password` -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: +1. Закодируйте её в Base64: `echo "username:password" | base64` +1. Добавьте заголовок: ```sh Authorization: Basic @@ -208,10 +208,10 @@ Authorization: Basic **Пример:** 1. Сформируйте строку `username:password`, где: - - `username` - имя пользователя в Jenkins - - `password` - пароль пользователя, или -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: + - `username` — имя пользователя в Jenkins, + - `password` — пароль пользователя. +1. Закодируйте её в Base64: `echo "username:password" | base64`. +1. Добавьте заголовок: ```sh Authorization: Basic @@ -229,9 +229,9 @@ Authorization: Basic **Пример:** -1. Сформируйте строку `username:password` -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: +1. Сформируйте строку `username:password`. +1. Закодируйте её в Base64: `echo "username:password" | base64`. +1. Добавьте заголовок: ```sh Authorization: Basic @@ -282,8 +282,8 @@ Authorization: Bearer <ваш-kubernetes-token> **Пример:** 1. Сформируйте строку `username:password` -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: +1. Закодируйте её в Base64: `echo "username:password" | base64` +1. Добавьте заголовок: ```sh Authorization: Basic @@ -302,8 +302,8 @@ Authorization: Basic **Пример:** 1. Сформируйте строку `username:password` -2. Закодируйте её в Base64: `echo "username:password" | base64` -3. Добавьте заголовок: +1. Закодируйте её в Base64: `echo "username:password" | base64` +1. Добавьте заголовок: ```sh Authorization: Basic diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index 2d4767d..2efcefa 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -8,26 +8,26 @@ title: Типы виджетов ### Общая конфигурация -| Название | Опциональность | Описание | Возможные значения | Значение по умолчанию | +| Название | Обязательность | Описание | Возможные значения | Значение по умолчанию | |-------------------|-----------------|--------------------------------------------------------------------|--------------------------------------|-----------------------| -| Тип спецификации | **обязательно** | Тип спецификации | OpenAPI (Swagger), Protocol Buffers | - | -| Тип источника | **обязательно** | Тип источника, из которого будет загружаться файл со спецификацией | URL, Gitlab | - | +| Тип спецификации | **да** | Тип спецификации | OpenAPI (Swagger), Protocol Buffers | - | +| Тип источника | **да** | Тип источника, из которого будет загружаться файл со спецификацией | URL, Gitlab | - | ### Конфигурация типа источника: URL -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-----------|-----------------|------------------------------------------------|-----------------------| -| URL | **обязательно** | Ссылка на файл со спецификацией | - | -| Заголовки | опционально | Заголовки для доступа к файлу со спецификацией | - | +| URL | **да** | Ссылка на файл со спецификацией | - | +| Заголовки | нет | Заголовки для доступа к файлу со спецификацией | - | ### Конфигурация типа источника: Gitlab -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |--------------|-----------------|------------------------------------------------------------------------|-----------------------| -| Gitlab URL | **обязательно** | URL Gitlab | - | -| ID проекта | **обязательно** | Идентификатор проекта, из которого будет браться файл со спецификацией | - | -| Ветка | **обязательно** | Ветка, из которой будет браться файл со спецификацией | - | -| Путь к файлу | **обязательно** | Путь к файлу со спецификацией относительно корня репозитория | - | +| Gitlab URL | **да** | URL Gitlab | - | +| ID проекта | **да** | Идентификатор проекта, из которого будет браться файл со спецификацией | - | +| Ветка | **да** | Ветка, из которой будет браться файл со спецификацией | - | +| Путь к файлу | **да** | Путь к файлу со спецификацией относительно корня репозитория | - | ### Авторизация @@ -83,10 +83,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------|-----------------|-------------------------------------|-----------------------| -| URL | **обязательно** | URL CodeScoring | - | -| ID проекта | **обязательно** | Идентификатор проекта в CodeScoring | - | +| URL | **да** | URL CodeScoring | - | +| ID проекта | **да** | Идентификатор проекта в CodeScoring | - | ## CodeScoring. Уязвимости @@ -98,10 +98,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------|-----------------|-------------------------------------|-----------------------| -| URL | **обязательно** | URL CodeScoring | - | -| ID проекта | **обязательно** | Идентификатор проекта в CodeScoring | - | +| URL | **да** | URL CodeScoring | - | +| ID проекта | **да** | Идентификатор проекта в CodeScoring | - | ## DefectDojo. Уязвимости в продукте (детали) @@ -113,10 +113,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------|-----------------|--------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL DefectDojo. Указывается без пути к API (`/api/v2`) | - | -| Название продукта | **обязательно** | Название продукта в DefectDojo | - | +| URL | **да** | URL DefectDojo. Указывается без пути к API (`/api/v2`) | - | +| Название продукта | **да** | Название продукта в DefectDojo | - | ### Дополнительные возможности виджета @@ -135,10 +135,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL DefectDojo. Указывается без пути к API (`/api/v2`) | - | -| Название продукта | **обязательно** | Название продукта в DefectDojo | - | +| URL | **да** | URL DefectDojo. Указывается без пути к API (`/api/v2`) | - | +| Название продукта | **да** | Название продукта в DefectDojo | - | ### Дополнительные возможности виджета @@ -157,10 +157,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Docker Registry. Используется для получения данных о доступных образах | - | -| Название | опционально | Название репозитория, из которого будут загружаться данные в виджет. Пример: `repo`. Без указания названия, будут получены все доступные образы | - | +| URL | **да** | URL Docker Registry. Используется для получения данных о доступных образах | - | +| Название | нет | Название репозитория, из которого будут загружаться данные в виджет. Пример: `repo`. Без указания названия, будут получены все доступные образы | - | ## Gitlab. Запросы слияния @@ -172,10 +172,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL GitLab API. Используется для получения данных из GitLab | - | -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| URL | **да** | URL GitLab API. Используется для получения данных из GitLab | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Фильтрация по статусу @@ -211,10 +211,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL GitLab API. Используется для получения данных из GitLab | - | -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| URL | **да** | URL GitLab API. Используется для получения данных из GitLab | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Дополнительные возможности виджета @@ -226,8 +226,8 @@ title: Типы виджетов | Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|------------------------------------------------------------------------------------|-----------------------| -| Ref | **обязательно** | Целевая ветка или тег для запуска пайплайна. | - | -| Переменные | опционально | Переменные в формате ключ-значение, которые будут переданы в запускаемый пайплайн. | - | +| Ref | **да** | Целевая ветка или тег для запуска пайплайна. | - | +| Переменные | нет | Переменные в формате ключ-значение, которые будут переданы в запускаемый пайплайн. | - | ## GitLab. Редактор пайплайна @@ -239,10 +239,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL GitLab API. Используется для получения данных из GitLab | - | -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| URL | **да** | URL GitLab API. Используется для получения данных из GitLab | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Отображаемые данные @@ -261,11 +261,11 @@ title: Типы виджетов | Название | Обязательность | Описание | Значение по умолчанию | |-------------------|-----------------|------------------------------------------------------------------------------------|-----------------------| -| Заголовок MR | **обязательно** | Краткий заголовок, описывающий цель запроса на слияние. | - | -| Описание MR | опционально | Подробное описание запроса на слияние и изменений. | - | -| Название новой ветки | **обязательно** | Название новой ветки, которая будет содержать ваши изменения. | - | -| Целевая ветка | **обязательно** | Ветка, в которую будет выполнен запрос на слияние. | main | -| Сообщение коммита | **обязательно** | Описание изменений, внесенных в конфигурацию пайплайна. | - | +| Заголовок MR | **да** | Краткий заголовок, описывающий цель запроса на слияние. | - | +| Описание MR | нет | Подробное описание запроса на слияние и изменений. | - | +| Название новой ветки | **да** | Название новой ветки, которая будет содержать ваши изменения. | - | +| Целевая ветка | **да** | Ветка, в которую будет выполнен запрос на слияние. | main | +| Сообщение коммита | **да** | Описание изменений, внесенных в конфигурацию пайплайна. | - | #### Ограничения @@ -283,10 +283,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL GitLab API. Используется для получения данных из GitLab | - | -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| URL | **да** | URL GitLab API. Используется для получения данных из GitLab | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Отображаемые данные @@ -327,11 +327,11 @@ title: Типы виджетов ### Параметры запроса -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------|-----------------|------------------------------------------------------------------------------------|-----------------------| -| Начальная дата | **обязательно** | Начальная дата для анализа пайплайнов в формате ISO 8601. Пример: `2024-01-01T00:00:00Z` | - | -| Конечная дата | **обязательно** | Конечная дата для анализа пайплайнов в формате ISO 8601. Пример: `2024-01-31T23:59:59Z` | - | -| Ветка | опционально | Фильтр по конкретной ветке. Если не указана, анализируются все ветки. | - | +| Начальная дата | **да** | Начальная дата для анализа пайплайнов в формате ISO 8601. Пример: `2024-01-01T00:00:00Z` | - | +| Конечная дата | **да** | Конечная дата для анализа пайплайнов в формате ISO 8601. Пример: `2024-01-31T23:59:59Z` | - | +| Ветка | нет | Фильтр по конкретной ветке. Если не указана, анализируются все ветки. | - | ### Ограничения @@ -349,10 +349,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL GitLab API. Используется для получения данных из GitLab | - | -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| URL | **да** | URL GitLab API. Используется для получения данных из GitLab | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Дополнительные возможности виджета @@ -364,9 +364,9 @@ title: Типы виджетов | Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|------------------------------------------------------------------------------------|-----------------------| -| Название | **обязательно** | Название создаваемого тега. | - | -| Создать из | **обязательно** | Целевая ветка или тег для запуска пайплайна. | - | -| Описание | опционально | Описание создаваемого тега. | - | +| Название | **да** | Название создаваемого тега. | - | +| Создать из | **да** | Целевая ветка или тег для запуска пайплайна. | - | +| Описание | нет | Описание создаваемого тега. | - | ## GitLab. Релизы @@ -378,9 +378,9 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ### Дополнительные возможности виджета @@ -390,9 +390,9 @@ title: Типы виджетов | Название | Обязательность | Описание | Значение по умолчанию | |-----------------|-----------------|----------------------------------------------------------------------------------------------------|-----------------------| -| Название релиза | **обязательное**| Название релиза, отображаемое в списке. | - | -| Тег | **обязательное**| Существующий тег, на основе которого будет сформирован релиз (выбирается из списка тегов проекта). | - | -| Описание | опционально | Описание релиза в формате Markdown. | - | +| Название релиза | **да**| Название релиза, отображаемое в списке. | - | +| Тег | **да**| Существующий тег, на основе которого будет сформирован релиз (выбирается из списка тегов проекта). | - | +| Описание | нет | Описание релиза в формате Markdown. | - | Созданный релиз автоматически появляется в списке, а последний релиз подсвечивается. @@ -406,9 +406,9 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| ID проекта | **обязательно** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | +| ID проекта | **да** | ID проекта, из которого будут загружаться данные в виджет. Пример: `12345` | - | ## Просмотр репозитория @@ -423,7 +423,7 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |--------------|-----------------|------------------------------------------------------------------|-----------------------| | Провайдер | **обязательно** | Провайдер репозитория | - | | Ветка / Тег | опционально | Название ветки, тег или SHA коммита | main | @@ -453,10 +453,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|-------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Jenkins. Используется для получения данных из Jenkins | - | -| Название | **обязательно** | Название пайплайна в Jenkins. Поддерживается вложенность: `folder1/folder2/jobName` | - | +| URL | **да** | URL Jenkins. Используется для получения данных из Jenkins | - | +| Название | **да** | Название пайплайна в Jenkins. Поддерживается вложенность: `folder1/folder2/jobName` | - | ### Отображаемые данные @@ -466,17 +466,17 @@ title: Типы виджетов Для обычных пайплайнов виджет отображает: -- **Список сборок** - таблица со всеми сборками пайплайна с информацией о номере, статусе, длительности, времени выполнения и пользователе. -- **Последняя сборка** - информация о последней выполненной сборке. -- **Последняя успешная сборка** - информация о последней успешной сборке. -- **Последняя неудачная сборка** - информация о последней неудачной сборке. +* **Список сборок** — таблица со всеми сборками пайплайна с информацией о номере, статусе, длительности, времени выполнения и пользователе. +* **Последняя сборка** — информация о последней выполненной сборке. +* **Последняя успешная сборка** — информация о последней успешной сборке. +* **Последняя неудачная сборка** — информация о последней неудачной сборке. #### Multibranch пайплайны Для multibranch пайплайнов виджет отображает: -- **Список веток** - таблица со всеми ветками с информацией о статусе, количестве сборок и последней сборке для каждой ветки. -- Всю информацию, описанную в разделе "обычные пайплайны", в разрезе каждой ветки. +* **Список веток** — таблица со всеми ветками с информацией о статусе, количестве сборок и последней сборке для каждой ветки. +* Всю информацию, описанную в разделе «обычные пайплайны», в разрезе каждой ветки. ### Дополнительные возможности виджета @@ -484,21 +484,21 @@ title: Типы виджетов #### Для обычных пайплайнов -- **Запустить сборку** - запуск новой сборки. Если у сборки есть параметры, отображается диалог для их ввода: - - Строковые параметры. - - Пароли. - - Выбор из списка. - - Булевы значения. -- **Отменить сборку** - отмена выполняющейся сборки. -- **Повторить сборку** - повторный запуск последней сборки. -- **Просмотр логов** - просмотр логов выполнения сборки. +* **Запустить сборку** — запуск новой сборки. Если у сборки есть параметры, отображается диалог для их ввода: + * Строковые параметры. + * Пароли. + * Выбор из списка. + * Булевы значения. +* **Отменить сборку** — отмена выполняющейся сборки. +* **Повторить сборку** — повторный запуск последней сборки. +* **Просмотр логов** — просмотр логов выполнения сборки. #### Для multibranch пайплайнов -- **Запустить сборку ветки** - запуск новой сборки для конкретной ветки. Если у сборки есть параметры, отображается диалог для их ввода. -- **Получить сборки ветки** - загрузка списка сборок для конкретной ветки. -- **Сканировать multibranch** - запуск сканирования multibranch пайплайна для обнаружения новых веток. -- **Просмотр логов** - просмотр логов выполнения сборки. +* **Запустить сборку ветки** — запуск новой сборки для конкретной ветки. Если у сборки есть параметры, отображается диалог для их ввода. +* **Получить сборки ветки** — загрузка списка сборок для конкретной ветки. +* **Сканировать multibranch** — запуск сканирования multibranch пайплайна для обнаружения новых веток. +* **Просмотр логов** — просмотр логов выполнения сборки. ## Jira. Задачи @@ -510,23 +510,23 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|-----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Jira. Используется для получения данных из Jira | - | -| JQL | **обязательно** | JQL-запрос для фильтрации задач. Пример: `project = PROJ AND status = Open` | - | +| URL | **да** | URL Jira. Используется для получения данных из Jira | - | +| JQL | **да** | JQL-запрос для фильтрации задач. Пример: `project = PROJ AND status = Open` | - | ### Параметры запроса -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------------|----------------|-----------------------------------------------------------------------------------|-----------------------| -| JQL | опционально | JQL-запрос для фильтрации задач. Если не указан, используется JQL из конфигурации | Из конфигурации | -| Максимум результатов | опционально | Максимальное количество задач для отображения (от 1 до 1000) | 50 | +| JQL | нет | JQL-запрос для фильтрации задач. Если не указан, используется JQL из конфигурации | Из конфигурации | +| Максимум результатов | нет | Максимальное количество задач для отображения (от 1 до 1000) | 50 | ### Дополнительные возможности виджета -- **Просмотр описания** - при клике на кнопку "Просмотр описания" открывается диалоговое окно с полным описанием задачи. -- **Переход в Jira** - клик по ключу задачи открывает задачу в Jira в новой вкладке. -- **Динамическая фильтрация** - возможность изменить JQL-запрос и максимальное количество результатов прямо в виджете без изменения конфигурации. +* **Просмотр описания** — при клике на кнопку "Просмотр описания" открывается диалоговое окно с полным описанием задачи. +* **Переход в Jira** — клик по ключу задачи открывает задачу в Jira в новой вкладке. +* **Динамическая фильтрация** — возможность изменить JQL-запрос и максимальное количество результатов прямо в виджете без изменения конфигурации. ## Helm. Релизы @@ -544,10 +544,10 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------|-----------------|--------------------------------------------------------------------------------------|-----------------------| -| Namespace | опционально | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | -| Релиз | опционально | Название релиза, из которого будут загружаться данные в виджет. Пример: `my-release` | - | +| Namespace | нет | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | +| Релиз | нет | Название релиза, из которого будут загружаться данные в виджет. Пример: `my-release` | - | ## Iframe @@ -559,9 +559,9 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL внешнего источника. Используется для отображения данных в виджете. | - | +| URL | **да** | URL внешнего источника. Используется для отображения данных в виджете. | - | ## Kafka. ACLs @@ -587,19 +587,19 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Kafka кластера | - | -| Протокол аутентификации | **обязательно** | Протокол для подключения к Kafka. [Подробнее](https://kafka.apache.org/documentation/#adminclientconfigs_security.protocol) | - | -| Механизм SASL | опционально | Механизм аутентификации, который будет использовать SASL. Обязателен при использовании протокола SASL_PLAINTEXT или SASL_SSL. [Подробнее](https://kafka.apache.org/documentation/#security_sasl_mechanism) | - | -| Пользователь Kafka | **обязательно** | Username учётной записи для взаимодействия с Kafka | - | -| Пароль | **обязательно** | Пароль учётной записи для взаимодействия с Kafka | - | -| Типы ресурсов | опционально | Фильтр по типам ресурсов | - | -| Типы шаблонов | опционально | Фильтр по типам шаблонов | - | -| Операции | опционально | Фильтр по операциям | - | -| Типы разрешений | опционально | Фильтр по типам разрешений | - | -| Субъекты | опционально | Фильтр по субъектам. Поддерживается шаблонизация и регулярные выражения | - | -| Хосты | опционально | Фильтр по хостам. Поддерживается шаблонизация и регулярные выражения | - | +| URL | **да** | URL Kafka кластера | - | +| Протокол аутентификации | **да** | Протокол для подключения к Kafka. [Подробнее](https://kafka.apache.org/documentation/#adminclientconfigs_security.protocol) | - | +| Механизм SASL | нет | Механизм аутентификации, который будет использовать SASL. Обязателен при использовании протокола SASL_PLAINTEXT или SASL_SSL. [Подробнее](https://kafka.apache.org/documentation/#security_sasl_mechanism) | - | +| Пользователь Kafka | **да** | Username учётной записи для взаимодействия с Kafka | - | +| Пароль | **да** | Пароль учётной записи для взаимодействия с Kafka | - | +| Типы ресурсов | нет | Фильтр по типам ресурсов | - | +| Типы шаблонов | нет | Фильтр по типам шаблонов | - | +| Операции | нет | Фильтр по операциям | - | +| Типы разрешений | нет | Фильтр по типам разрешений | - | +| Субъекты | нет | Фильтр по субъектам. Поддерживается шаблонизация и регулярные выражения | - | +| Хосты | нет | Фильтр по хостам. Поддерживается шаблонизация и регулярные выражения | - | ### Дополнительные возможности виджета @@ -635,14 +635,14 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-------------------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Kafka кластера | - | -| Протокол аутентификации | **обязательно** | Протокол для подключения к Kafka. [Подробнее](https://kafka.apache.org/documentation/#adminclientconfigs_security.protocol) | - | -| Механизм SASL | опционально | Механизм аутентификации, который будет использовать SASL. Обязателен при использовании протокола SASL_PLAINTEXT или SASL_SSL. [Подробнее](https://kafka.apache.org/documentation/#security_sasl_mechanism) | - | -| Пользователь Kafka | **обязательно** | username учётной записи для взаимодействия с Kafka | - | -| Пароль | **обязательно** | пароль учётной записи для взаимодействия с Kafka | - | -| Топики Kafka | опционально | Название топика или регулярное выражение для фильтрации отображаемых топиков в виджете; при пустом значении отображаются все доступные пользователю топики. | - | +| URL | **да** | URL Kafka кластера | - | +| Протокол аутентификации | **да** | Протокол для подключения к Kafka. [Подробнее](https://kafka.apache.org/documentation/#adminclientconfigs_security.protocol) | - | +| Механизм SASL | нет | Механизм аутентификации, который будет использовать SASL. Обязателен при использовании протокола SASL_PLAINTEXT или SASL_SSL. [Подробнее](https://kafka.apache.org/documentation/#security_sasl_mechanism) | - | +| Пользователь Kafka | **да** | username учётной записи для взаимодействия с Kafka | - | +| Пароль | **да** | пароль учётной записи для взаимодействия с Kafka | - | +| Топики Kafka | нет | Название топика или регулярное выражение для фильтрации отображаемых топиков в виджете; при пустом значении отображаются все доступные пользователю топики. | - | ### Дополнительные возможности виджета @@ -670,11 +670,11 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |---------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Kubernetes API | **обязательно** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | -| Namespace | опционально | Kubernetes namespace из которого будут загружаться deployment. В случае, если namespace не указан, виджет будет пытаться загрузить все deployment кластера. Пример: `default` | - | -| Label selector | опционально | Селекторы для фильтрации получаемых deployment. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | +| Kubernetes API | **да** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | +| Namespace | нет | Kubernetes namespace из которого будут загружаться deployment. В случае, если namespace не указан, виджет будет пытаться загрузить все deployment кластера. Пример: `default` | - | +| Label selector | нет | Селекторы для фильтрации получаемых deployment. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | ## Kubernetes ingresses @@ -692,11 +692,11 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | -| Namespace | опционально | Неймспейс Kubernetes из которого будут загружаться ingresses. В случае, если неймспейс не указан, виджет будет пытаться загрузить все ingress кластера. Пример: `default` | - | -| Label selector | опционально | Селекторы для фильтрации получаемых ingress. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | +| URL | **да** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | +| Namespace | нет | Неймспейс Kubernetes из которого будут загружаться ingresses. В случае, если неймспейс не указан, виджет будет пытаться загрузить все ingress кластера. Пример: `default` | - | +| Label selector | нет | Селекторы для фильтрации получаемых ingress. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | ## Kubernetes pods @@ -714,11 +714,11 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------|-----------------|------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | -| Namespace | опционально | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | -| Label selector | опционально | Селекторы для фильтрации получаемых подов. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | +| URL | **да** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | +| Namespace | нет | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | +| Label selector | нет | Селекторы для фильтрации получаемых подов. Перечисляются через запятую. Пример: `app.kubernetes.io/name=example` | - | ## Markdown @@ -726,9 +726,9 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|---------------------------------------------------------------------------------------|-----------------------| -| Markdown | **обязательно** | Текст в формате Markdown. Отображается в виджете в отформатированном виде | - | +| Markdown | **да** | Текст в формате Markdown. Отображается в виджете в отформатированном виде | - | ## Nexus artifacts @@ -740,11 +740,11 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|-------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Nexus API. Используется для получения данных из Nexus | - | -| Repository | **обязательно** | Название репозитория, данные из которого будут отображаться в виджете. Пример: `my-repo` | - | -| Name | опционально | Название артефакта, данные о котором будут отображаться в виджете | - | +| URL | **да** | URL Nexus API. Используется для получения данных из Nexus | - | +| Repository | **да** | Название репозитория, данные из которого будут отображаться в виджете. Пример: `my-repo` | - | +| Name | нет | Название артефакта, данные о котором будут отображаться в виджете | - | ## Opensearch index @@ -756,12 +756,12 @@ title: Типы виджетов ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |--------------------------|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| API URL | **обязательно** | URL Opensearch API. Используется для получения данных из Opensearch | - | -| Dashboards URL | **обязательно** | URL Opensearch Dashboards. Используется при генерации ссылки для перехода в Opensearch и просмотра данных непосредственно в системе | - | -| Index pattern | **обязательно** | Название index pattern из которого будут загружаться данные в виджет. Может содержать символ «*». Примеры: `security-auditlog`, `security-auditlog-*` | - | -| Timestamp field | опционально | Название поля с timestamp. Значение поля выводится в таблице с данными в отдельной колонке | @timestamp | +| API URL | **да** | URL Opensearch API. Используется для получения данных из Opensearch | - | +| Dashboards URL | **да** | URL Opensearch Dashboards. Используется при генерации ссылки для перехода в Opensearch и просмотра данных непосредственно в системе | - | +| Index pattern | **да** | Название index pattern из которого будут загружаться данные в виджет. Может содержать символ «*». Примеры: `security-auditlog`, `security-auditlog-*` | - | +| Timestamp field | нет | Название поля с timestamp. Значение поля выводится в таблице с данными в отдельной колонке | @timestamp | ## Prometheus metrics (range) @@ -775,16 +775,16 @@ rate(nginx_ingress_controller_nginx_process_connections[5m]) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-----------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Prometheus | - | -| Query | **обязательно** | Запрос метрики из Prometheus в формате PromQL | - | -| Шаг разрешения (сек.) | **обязательно** | Интервал между отсчетами на горизонтальной оси (в секундах) | 60 | -| Метка | **обязательно** | Метка в результатах запроса, чье уникальное значение присваивается в качестве названий соответствующих линий на графике визуализации | - | -| Порог | опционально | Порог, отображаемый в виде горизонтальной красной полосы на графике | - | -| Минимальное значение | опционально | Начальная точка отсчета для вертикальной линии на графике | - | -| Максимальное значение | опционально | Предельная точка отсчета для вертикальной линии на графике | - | -| InsecureSkipVerify | опционально | Отключение проверки подлинности TLS/SSL-сертификата Prometheus | false | +| URL | **да** | URL Prometheus | - | +| Query | **да** | Запрос метрики из Prometheus в формате PromQL | - | +| Шаг разрешения (сек.) | **да** | Интервал между отсчетами на горизонтальной оси (в секундах) | 60 | +| Метка | **да** | Метка в результатах запроса, чье уникальное значение присваивается в качестве названий соответствующих линий на графике визуализации | - | +| Порог | нет | Порог, отображаемый в виде горизонтальной красной полосы на графике | - | +| Минимальное значение | нет | Начальная точка отсчета для вертикальной линии на графике | - | +| Максимальное значение | нет | Предельная точка отсчета для вертикальной линии на графике | - | +| InsecureSkipVerify | нет | Отключение проверки подлинности TLS/SSL-сертификата Prometheus | false | ### Авторизация @@ -810,18 +810,18 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------------------------|-----------------|-------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL Prometheus | - | -| Query | **обязательно** | Query для запроса метрики из Prometheus в формате PromQL | - | -| Количество цифр после запятой | опционально | Точность, с которой будет выводиться полученное значение | - | -| Единица измерения | опционально | Постфикс, с которым будет выводиться полученное значение | - | -| Отображать пороговое значение | опционально | Отображать пороговое значение в формате <значение метрики> / <пороговое значение> | false | -| Пороговое значение | опционально | Пороговое значение | - | -| Меньшее значение считается лучше | опционально | Метрика считается «хорошей», когда её значение ниже заданного порогового значения | false | -| Порог предупреждения (%) | опционально | Граница между красным и оранжевым цветами. Если значение метрики превышает этот процент от порога, оно получит оранжевый цвет | 60 | -| Порог успеха (%) | опционально | Граница между оранжевым и зелёным цветами. Если значение метрики превышает этот процент от порога, оно получит зеленый цвет | 90 | -| InsecureSkipVerify | опционально | Отключение проверки подлинности TLS/SSL-сертификата Prometheus | false | +| URL | **да** | URL Prometheus | - | +| Query | **да** | Query для запроса метрики из Prometheus в формате PromQL | - | +| Количество цифр после запятой | нет | Точность, с которой будет выводиться полученное значение | - | +| Единица измерения | нет | Постфикс, с которым будет выводиться полученное значение | - | +| Отображать пороговое значение | нет | Отображать пороговое значение в формате <значение метрики> / <пороговое значение> | false | +| Пороговое значение | нет | Пороговое значение | - | +| Меньшее значение считается лучше | нет | Метрика считается «хорошей», когда её значение ниже заданного порогового значения | false | +| Порог предупреждения (%) | нет | Граница между красным и оранжевым цветами. Если значение метрики превышает этот процент от порога, оно получит оранжевый цвет | 60 | +| Порог успеха (%) | нет | Граница между оранжевым и зелёным цветами. Если значение метрики превышает этот процент от порога, оно получит зеленый цвет | 90 | +| InsecureSkipVerify | нет | Отключение проверки подлинности TLS/SSL-сертификата Prometheus | false | ### Авторизация @@ -837,12 +837,12 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |--------------|-----------------|--------------------------------------------------------------------------------------------|-----------------------------------------| -| URL | **обязательно** | Адрес SonarQube, например, `https://sonarqube.example.com` | - | -| Ключ проекта | **обязательно** | Идентификатор проекта в SonarQube | - | -| Ветка | опционально | Ветка проекта для которой будут браться метрики | Согласно настройкам проекта в Sonarqube | -| Метрики | **обязательно** | Метрики проекта, которые будут выводиться в виджете. В конфигурации указывается Metric key | | +| URL | **да** | Адрес SonarQube, например, `https://sonarqube.example.com` | - | +| Ключ проекта | **да** | Идентификатор проекта в SonarQube | - | +| Ветка | нет | Ветка проекта для которой будут браться метрики | Согласно настройкам проекта в Sonarqube | +| Метрики | **да** | Метрики проекта, которые будут выводиться в виджете. В конфигурации указывается Metric key | | [Список возможных метрик](https://docs.sonarsource.com/sonarqube-server/latest/user-guide/code-metrics/metrics-definition) для текущей версии SonarQube. @@ -886,15 +886,15 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |--------------------|-----------------|--------------------------------------------------------------------------------------|-----------------------| -| Название bucket | **обязательно** | Название S3 Bucket для просмотра | - | -| Endpoint | **обязательно** | Эндпоинт URL S3-совместимого хранилища (например, `https://storage.yandexcloud.net`) | - | -| Регион | **обязательно** | Регион, в котором находится Bucket | - | -| Access Key ID | **обязательно** | Идентификатор ключа доступа для аутентификации | - | -| Secret Access Key | **обязательно** | Секретный ключ доступа для аутентификации | - | -| Префикс | опционально | Префикс (путь) для фильтрации объектов при первоначальной загрузке | - | -| Максимум объектов | опционально | Максимальное количество объектов для отображения за один запрос (по умолчанию 100) | 100 | +| Название bucket | **да** | Название S3 Bucket для просмотра | - | +| Endpoint | **да** | Эндпоинт URL S3-совместимого хранилища (например, `https://storage.yandexcloud.net`) | - | +| Регион | **да** | Регион, в котором находится Bucket | - | +| Access Key ID | **да** | Идентификатор ключа доступа для аутентификации | - | +| Secret Access Key | **да** | Секретный ключ доступа для аутентификации | - | +| Префикс | нет | Префикс (путь) для фильтрации объектов при первоначальной загрузке | - | +| Максимум объектов | нет | Максимальное количество объектов для отображения за один запрос (по умолчанию 100) | 100 | ### Дополнительные возможности виджета @@ -918,7 +918,7 @@ sum(ingress_nginx_detail_requests_total) * Основные параметры: ключ, размер, дата изменения, класс хранения, тип контента, ETag. * Информация о контенте: кодировка, язык, диспозиция. -* Настройки кэширования: Cache-Control, срок действия. +* Настройки кеширования: Cache-Control, срок действия. * Безопасность: серверное шифрование. * Пользовательские метаданные. @@ -947,10 +947,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Путь | **обязательно** | Путь к секрету или директории в Vault. Необходимо явно указывать путь с `/data/`. Примеры: `services/data/`, `services/data/example` | - | -| Префикс UI | опционально | Префикс для URL интерфейса. Используйте `vault` для HashiCorp Vault или `stronghold` для Deckhouse Stronghold | - | +| Путь | **да** | Путь к секрету или директории в Vault. Необходимо явно указывать путь с `/data/`. Примеры: `services/data/`, `services/data/example` | - | +| Префикс UI | нет | Префикс для URL интерфейса. Используйте `vault` для HashiCorp Vault или `stronghold` для Deckhouse Stronghold | - | ### Особенности работы с путями @@ -997,14 +997,14 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |---------------------|-----------------|--------------------------------------------------------------------------------------------|------------------------| -| Тип графика | **обязательно** | Тип визуализации графика | - | -| Название таблицы | **обязательно** | Название таблицы в базе данных, из которой будут браться записи для визуализации | - | -| Название поля | **обязательно** | Название поля, по которому будет происходить агрегация записей | - | -| Фильтры | опционально | Поля, по которым будут фильтроваться полученные записи, и их значения | - | -| Тип агрегации | **обязательно** | Принцип, по которому будут группироваться полученные записи | - | -| Параметры агрегации | опционально | Выбор временного периода и шага группировки при агрегации записей по дате | - | +| Тип графика | **да** | Тип визуализации графика | - | +| Название таблицы | **да** | Название таблицы в базе данных, из которой будут браться записи для визуализации | - | +| Название поля | **да** | Название поля, по которому будет происходить агрегация записей | - | +| Фильтры | нет | Поля, по которым будут фильтроваться полученные записи, и их значения | - | +| Тип агрегации | **да** | Принцип, по которому будут группироваться полученные записи | - | +| Параметры агрегации | нет | Выбор временного периода и шага группировки при агрегации записей по дате | - | При настройке виджета следует учитывать, что названия полей в базе данных могут отличаться от названий полей в спецификации объектов. Общий принцип таков: формат camelCase в спецификации объектов при сохранении структур в базу данных преобразуется в snake_case. Например: @@ -1084,10 +1084,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |----------------|-----------------|-----------------------------------------------------------------------------|-----------------------| -| URL | **обязательно** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | -| Namespace | **обязательно** | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | +| URL | **да** | URL API сервера Kubernetes. Используется для получения данных из Kubernetes | - | +| Namespace | **да** | Неймспейс, из которого будут загружаться данные в виджет. Пример: `default` | - | ## Процентное значение @@ -1095,10 +1095,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опционально | Описание | Значение по умолчанию | +| Название | нет | Описание | Значение по умолчанию | |---------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Ресурс | опционально | Ресурс, из которого извлекаются необходимые значения при обработке шаблона | - | -| Процентное значение | опционально | Значение, которое будет выводиться на виджет. Шаблонизация поддерживается. Пример без шаблонизации: `100`. Пример с шаблонизацией: `{{ .entity.propeties.id }}` | - | +| Ресурс | нет | Ресурс, из которого извлекаются необходимые значения при обработке шаблона | - | +| Процентное значение | нет | Значение, которое будет выводиться на виджет. Шаблонизация поддерживается. Пример без шаблонизации: `100`. Пример с шаблонизацией: `{{ .entity.propeties.id }}` | - | ## Таблицы сущностей @@ -1106,10 +1106,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опционально | Описание | Значение по умолчанию | +| Название | нет | Описание | Значение по умолчанию | |---------------------|-------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------| -| Источник | опционально | Сущности, которые необходимо отобразить в виде таблицы | - | -| Показывать действия | опционально | Необходимость отображения действия с сущностями (возможность запуска действий, сценарием, возможность удаления и др.) | false | +| Источник | нет | Сущности, которые необходимо отобразить в виде таблицы | - | +| Показывать действия | нет | Необходимость отображения действия с сущностями (возможность запуска действий, сценарием, возможность удаления и др.) | false | ## Временная шкала сущностей @@ -1123,11 +1123,11 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |---------------------|-----------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Ресурс | **обязательно** | Ресурс, для которого отображается временная шкала. | - | -| Поле даты начала | **обязательно** | Поле, из которого берется дата начала периода. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | -| Поле даты окончания | **обязательно** | Поле, из которого берется дата окончания периода. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | +| Ресурс | **да** | Ресурс, для которого отображается временная шкала. | - | +| Поле даты начала | **да** | Поле, из которого берется дата начала периода. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | +| Поле даты окончания | **да** | Поле, из которого берется дата окончания периода. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | ### Особенности @@ -1147,10 +1147,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-----------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Ресурс | **обязательно** | Ресурс, для которого отображается календарь. | - | -| Поле даты | **обязательно** | Поле, из которого берется дата для отображения сущности в календаре. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | +| Ресурс | **да** | Ресурс, для которого отображается календарь. | - | +| Поле даты | **да** | Поле, из которого берется дата для отображения сущности в календаре. Может быть системным полем (`createdAt`, `updatedAt`) или параметром типа `Date`. | - | ### Особенности @@ -1223,8 +1223,8 @@ sum(ingress_nginx_detail_requests_total) Виджет отображает статистику событий, происходящих с сущностями в платформе DDP. Виджет содержит три таба: 1. **Статистика событий** - график, показывающий количество событий по типам за выбранный временной период с настраиваемой группировкой по времени. -2. **Топ сущностей** - таблица с сущностями, для которых было сгенерировано максимальное количество событий. -3. **События в Redis** - таблица со стримами событий из Redis, показывающая для каждого стрима: +1. **Топ сущностей** - таблица с сущностями, для которых было сгенерировано максимальное количество событий. +1. **События в Redis** - таблица со стримами событий из Redis, показывающая для каждого стрима: - Название стрима (кликабельное для просмотра всех событий). - Ресурс, к которому относится стрим. - Количество событий в стриме. @@ -1232,13 +1232,13 @@ sum(ingress_nginx_detail_requests_total) ### Параметры запроса -| Название | Опционально | Описание | Значение по умолчанию | +| Название | нет | Описание | Значение по умолчанию | |-----------------|-------------|--------------------------------------------------------------------------------------------|-----------------------| | Дата от | обязательно | Начальная дата для выборки событий | 3 дня назад | | Дата до | обязательно | Конечная дата для выборки событий | текущая дата | -| Интервал | опционально | Интервал группировки событий на графике (секунды, минуты, часы, дни, недели, месяцы, годы) | час | -| Шаг интервала | опционально | Количество единиц интервала для группировки | 1 | -| Топ сущностей | опционально | Количество сущностей с максимальным количеством событий для отображения в таблице | 10 | +| Интервал | нет | Интервал группировки событий на графике (секунды, минуты, часы, дни, недели, месяцы, годы) | час | +| Шаг интервала | нет | Количество единиц интервала для группировки | 1 | +| Топ сущностей | нет | Количество сущностей с максимальным количеством событий для отображения в таблице | 10 | ### Типы событий @@ -1268,10 +1268,10 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опционально | Описание | Значение по умолчанию | +| Название | нет | Описание | Значение по умолчанию | |-------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| Ресурс | опционально | Ресурс, из которого извлекаются необходимые значения при обработке шаблона | - | -| Числовое значение | опционально | Значение, которое будет выводиться на виджет. Шаблонизация поддерживается. Пример без шаблонизации: `100`. Пример с шаблонизацией: `{{ .entity.propeties.id }}` | - | +| Ресурс | нет | Ресурс, из которого извлекаются необходимые значения при обработке шаблона | - | +| Числовое значение | нет | Значение, которое будет выводиться на виджет. Шаблонизация поддерживается. Пример без шаблонизации: `100`. Пример с шаблонизацией: `{{ .entity.propeties.id }}` | - | ## Kaiten. Карточки пространства @@ -1279,17 +1279,17 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-----------------|-----------------|-------------------------------------|-----------------------| -| ID пространства | **обязательно** | Идентификатор пространства в Kaiten | - | +| ID пространства | **да** | Идентификатор пространства в Kaiten | - | ### Параметры запроса -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |---------------|-----------------|---------------------------------|-----------------------| -| Мои задачи | опционально | Фильтр по текущему пользователю | false | -| Создано после | **обязательно** | Начальная дата для выборки | 1 месяц назад | -| Создано до | **обязательно** | Конечная дата для выборки | сейчас | +| Мои задачи | нет | Фильтр по текущему пользователю | false | +| Создано после | **да** | Начальная дата для выборки | 1 месяц назад | +| Создано до | **да** | Конечная дата для выборки | сейчас | ### Авторизация @@ -1313,16 +1313,16 @@ sum(ingress_nginx_detail_requests_total) ### Конфигурация -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |-----------------|-----------------|------------------------------------ |-----------------------| -| ID пространства | **обязательно** | Идентификатор пространства в Kaiten | - | +| ID пространства | **да** | Идентификатор пространства в Kaiten | - | ### Параметры запроса -| Название | Опциональность | Описание | Значение по умолчанию | +| Название | Обязательность | Описание | Значение по умолчанию | |---------------|-----------------|----------------------------|-----------------------| -| Создано после | **обязательно** | Начальная дата для анализа | 1 месяц назад | -| Создано до | **обязательно** | Конечная дата для анализа | сейчас | +| Создано после | **да** | Начальная дата для анализа | 1 месяц назад | +| Создано до | **да** | Конечная дата для анализа | сейчас | ### Авторизация From 26f7c39307f320c4ae9c2e77dfcecab3f7010119 Mon Sep 17 00:00:00 2001 From: deckhouse-BOaTswain <89150800+deckhouse-BOaTswain@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:37:39 +0300 Subject: [PATCH 09/22] chore(deps): update actions/download-artifact action to v8 (#102) Co-authored-by: Renovate Bot --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d18d8e2..955929b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -60,7 +60,7 @@ jobs: needs: build steps: - name: Download site artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: built-site path: . From 867cd1ea830d1131d8bb4b84c8ed6a96636e2b15 Mon Sep 17 00:00:00 2001 From: deckhouse-BOaTswain <89150800+deckhouse-BOaTswain@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:40:41 +0300 Subject: [PATCH 10/22] chore(deps): update actions/upload-artifact action to v7 (#103) Co-authored-by: Renovate Bot --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 955929b..85aaf65 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -48,7 +48,7 @@ jobs: find ./public/en ./public/ru -type f -name "*.html" -exec sed -i "s|/products/${APP_NAME}/|/|g" {} + - name: Upload site artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: built-site path: public/ From e1fb24960461f7f4a731d433d9c78d20246d3605 Mon Sep 17 00:00:00 2001 From: deckhouse-BOaTswain <89150800+deckhouse-BOaTswain@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:41:14 +0300 Subject: [PATCH 11/22] chore(deps): update actions/github-script action to v8 (#63) Co-authored-by: Renovate Bot --- .github/workflows/deploy-dev.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-dev.yaml b/.github/workflows/deploy-dev.yaml index 65626c2..ccc3984 100644 --- a/.github/workflows/deploy-dev.yaml +++ b/.github/workflows/deploy-dev.yaml @@ -50,7 +50,7 @@ jobs: - name: Create deployment comment id: comment - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -112,7 +112,7 @@ jobs: - name: Update comment - deployment succeeded if: success() && steps.comment.outputs.result - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -137,7 +137,7 @@ jobs: - name: Update comment - deployment failed if: failure() && steps.comment.outputs.result - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -174,7 +174,7 @@ jobs: - name: Remove deploy label if: always() - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | From 4bc482a3c5c680192cf5501fa3f2f89409c45e49 Mon Sep 17 00:00:00 2001 From: deckhouse-BOaTswain <89150800+deckhouse-BOaTswain@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:41:42 +0300 Subject: [PATCH 12/22] chore(deps): update hashicorp/vault-action action to v3 (#65) Co-authored-by: Renovate Bot --- .github/workflows/deploy-dev.yaml | 2 +- .github/workflows/deploy-prod.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-dev.yaml b/.github/workflows/deploy-dev.yaml index ccc3984..2677944 100644 --- a/.github/workflows/deploy-dev.yaml +++ b/.github/workflows/deploy-dev.yaml @@ -66,7 +66,7 @@ jobs: - name: Import secrets id: secrets - uses: hashicorp/vault-action@v2 + uses: hashicorp/vault-action@v3 with: url: https://seguro.flant.com path: github diff --git a/.github/workflows/deploy-prod.yaml b/.github/workflows/deploy-prod.yaml index 14c24d3..c23dd9c 100644 --- a/.github/workflows/deploy-prod.yaml +++ b/.github/workflows/deploy-prod.yaml @@ -38,7 +38,7 @@ jobs: - name: Import secrets id: secrets - uses: hashicorp/vault-action@v2 + uses: hashicorp/vault-action@v3 with: url: https://seguro.flant.com path: github From d7f851c2fa599a3addcbec53ab155770c3997dca Mon Sep 17 00:00:00 2001 From: deckhouse-BOaTswain <89150800+deckhouse-BOaTswain@users.noreply.github.com> Date: Fri, 27 Feb 2026 11:42:01 +0300 Subject: [PATCH 13/22] chore(deps): update actions/checkout action to v6 (#61) Co-authored-by: Renovate Bot --- .github/workflows/build.yaml | 2 +- .github/workflows/deploy-dev.yaml | 2 +- .github/workflows/deploy-prod.yaml | 2 +- .github/workflows/lint-markdown.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 85aaf65..8786eb0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,7 +16,7 @@ jobs: image: hugomods/hugo:debian-ci-0.150.1 steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 0 diff --git a/.github/workflows/deploy-dev.yaml b/.github/workflows/deploy-dev.yaml index 2677944..821783f 100644 --- a/.github/workflows/deploy-dev.yaml +++ b/.github/workflows/deploy-dev.yaml @@ -27,7 +27,7 @@ jobs: && startsWith(github.repository, 'deckhouse/') steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha }} submodules: recursive diff --git a/.github/workflows/deploy-prod.yaml b/.github/workflows/deploy-prod.yaml index c23dd9c..0f4ef82 100644 --- a/.github/workflows/deploy-prod.yaml +++ b/.github/workflows/deploy-prod.yaml @@ -25,7 +25,7 @@ jobs: startsWith(github.repository, 'deckhouse/') steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }} submodules: recursive diff --git a/.github/workflows/lint-markdown.yaml b/.github/workflows/lint-markdown.yaml index 4ae6580..0124b5f 100644 --- a/.github/workflows/lint-markdown.yaml +++ b/.github/workflows/lint-markdown.yaml @@ -9,7 +9,7 @@ jobs: name: Lint Markdown Files steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Run markdownlint run: make lint-markdown From eaa7de7d6b0ca7a41c49ee96b2e2f9c699eea6a4 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Fri, 27 Feb 2026 14:54:09 +0300 Subject: [PATCH 14/22] release notes. imporve datasources edit dialog (#105) Co-authored-by: Nikita Velgin --- content/documentation/release-notes/v1.3.0.ru.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 9d02503..930976a 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -52,8 +52,8 @@ weight: 940 ## Улучшения интерфейса -- Пункты верхнего и боковых меню теперь можно открыть в новой вкладке: щёлкните по пункту колесиком мыши или с зажатыми Ctrl (Windows/Linux) / Cmd (macOS). -- Карточки в разделе «Самообслуживание» теперь открываются в новой вкладке при нажатии колесиком мыши по карточке или при щелчке с зажатыми Ctrl / Cmd. +- Пункты верхнего и боковых меню, а также карточки в разделе "Самообслуживание" теперь можно открыть в новой вкладке: щёлкните по пункту колесиком мыши или с зажатыми Ctrl (Windows/Linux) / Cmd (macOS). +- Улучшена форма редактирования источников данных. ## Исправленные проблемы From 22b5bed1054f5c31338219de56a0885e9720f0af Mon Sep 17 00:00:00 2001 From: Lada Lysenko <127337005+Lada7878@users.noreply.github.com> Date: Fri, 27 Feb 2026 19:55:22 +0600 Subject: [PATCH 15/22] [docs] tw edit admin and user documentation (admin, user, release notes) (#104) Signed-off-by: Lada7878 Signed-off-by: Lada Lysenko <127337005+Lada7878@users.noreply.github.com> --- .../admin/actions/overview.ru.md | 2 +- .../admin/external-services.ru.md | 96 +++++------ content/documentation/admin/processes.ru.md | 150 +++++++++--------- .../admin/security/credentials.ru.md | 26 +-- .../documentation/admin/security/rbac.ru.md | 66 ++++---- content/documentation/admin/workflows.ru.md | 4 +- .../documentation/release-notes/v1.3.0.ru.md | 4 +- content/documentation/user/templating.ru.md | 10 +- 8 files changed, 179 insertions(+), 179 deletions(-) diff --git a/content/documentation/admin/actions/overview.ru.md b/content/documentation/admin/actions/overview.ru.md index 9bc278d..c0e95da 100644 --- a/content/documentation/admin/actions/overview.ru.md +++ b/content/documentation/admin/actions/overview.ru.md @@ -197,7 +197,7 @@ Headers — HTTP-заголовки в формате ключ-значение, #### Запись в хранилище процесса -После выполнения действия результат записывается в поле **response**. В разделе **«Обновление»** конфигурации действия доступен блок **«Запись в хранилище процесса»**. Он применяется только при выполнении действия в рамках процесса: если заданы правила записи в хранилище, то после успешного выполнения действия значения по этим правилам записываются в хранилище. +После выполнения действия результат записывается в поле **response**. В разделе «Обновление» конфигурации действия доступен блок «Запись в хранилище процесса». Он применяется только при выполнении действия в рамках процесса: если заданы правила записи в хранилище, то после успешного выполнения действия значения по этим правилам записываются в хранилище. В блоке задаётся список правил: diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index bf96ee8..65dda00 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -22,19 +22,19 @@ moduleStatus: experimental | **URL** | Базовый URL для обращения к внешнему сервису | | **Учётные данные** | Список доступных учетных данных (например, токенов), которые могут быть подставлены в запросы | | **Заголовки** | HTTP-заголовки, автоматически добавляемые к запросам | -| **Отключить проверку SSL** | Отключить проверку SSL-сертификата внешнего сервиса (например, при использовании self-signed сертификатов) | +| **Отключить проверку SSL** | Отключение проверки SSL-сертификата внешнего сервиса (например, при использовании self-signed сертификатов) | | **Системная учётная запись** | Учётная запись, которая будет использоваться для периодически запускаемых заданий: источников данных, проверок статуса и т.д. | ## Использование внешних сервисов Внешние сервисы могут быть подключены к различным объектам платформы: -- действиям -- виджетам -- источникам данных -- проверкам статуса сущностей +- действиям, +- виджетам, +- источникам данных, +- проверкам статуса сущностей. -Подключение сервиса выполняется на вкладке **"Авторизация"** в настройках соответствующего объекта. +Подключение сервиса выполняется на вкладке «Авторизация» в настройках соответствующего объекта. Для каждого объекта можно в явном виде переопределить параметры, заданные во внешнем сервисе. Например, если внешний сервис содержит токен авторизации, но в конкретном действии используются другие учетные данные — можно указать альтернативные значения. В этом случае будет переопределён **только** указанный параметр, остальные значения будут взяты из конфигурации внешнего сервиса. @@ -43,26 +43,26 @@ moduleStatus: experimental ### Действия -- К одному действию можно подключить **несколько внешних сервисов**. -- Можно выбрать сервис **по умолчанию**. -- Параметр **системная учетная запись** не используется в действиях. +- К одному действию можно подключить несколько внешних сервисов. +- Можно выбрать сервис по умолчанию. +- Параметр системная учетная запись не используется в действиях. - При запуске действия можно выбрать, для какого внешнего сервиса оно будет запускаться. Если ни один сервис не выбран, будет использоваться сервис по умолчанию. Если сервис по умолчанию не задан, то будет использоваться первый внешний сервис в списке. ### Виджеты -- Для одного виджета также поддерживается подключение **нескольких внешних сервисов**. -- Один из них может быть выбран как **используемый по умолчанию**. -- В последующих релизах будет добавлена возможность изменения сервиса **во время просмотра** виджета. -- Параметр **системная учетная запись** не используется в виджетах. +- Для одного виджета также поддерживается подключение нескольких внешних сервисов. +- Один из них может быть выбран как используемый по умолчанию. +- В последующих релизах будет добавлена возможность изменения сервиса во время просмотра виджета. +- Параметр системная учетная запись не используется в виджетах. ### Источники данных -- Поддерживается подключение **только одного внешнего сервиса**. -- Если в сервисе задана **системная учётная запись**, она используется по умолчанию при синхронизации. +- Поддерживается подключение только одного внешнего сервиса. +- Если в сервисе задана системная учётная запись, она используется по умолчанию при синхронизации. ### Проверки статуса -- Проверке может быть назначен **один внешний сервис**. +- Проверке может быть назначен один внешний сервис. - Если у него указана системная учётная запись — она используется при запуске автоматических проверок. ## Заголовки авторизации для внешних сервисов @@ -75,7 +75,7 @@ moduleStatus: experimental ### CodeScoring -**Тип авторизации:** API Token +**Тип авторизации:** API Token. **Заголовки:** @@ -91,7 +91,7 @@ Authorization: <ваш-api-token> ### DefectDojo -**Тип авторизации:** API v2 Key Token +**Тип авторизации:** API v2 Key Token. **Заголовки:** @@ -107,7 +107,7 @@ Authorization: Token <ваш-defectdojo-api-v2-key> ### Bitbucket -**Тип авторизации:** Bearer Token (Personal Access Token) +**Тип авторизации:** Bearer Token (Personal Access Token). **Заголовки:** @@ -123,7 +123,7 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> ### Docker Registry -**Тип авторизации:** Basic Authentication +**Тип авторизации:** Basic Authentication. **Заголовки:** @@ -133,9 +133,9 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> **Пример:** -1. Сформируйте строку `username:password` -1. Закодируйте её в Base64: `echo "username:password" | base64` -1. Добавьте заголовок: +1. Сформируйте строку `username:password`. +2. Закодируйте её в Base64: `echo "username:password" | base64`. +3. Добавьте заголовок: ```sh Authorization: Basic @@ -143,7 +143,7 @@ Authorization: Basic ### GitLab -**Тип авторизации:** Personal Access Token или Project Access Token +**Тип авторизации:** Personal Access Token или Project Access Token. **Заголовки:** @@ -177,7 +177,7 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> ### Harbor -**Тип авторизации:** Basic Authentication +**Тип авторизации:** Basic Authentication. **Заголовки:** @@ -187,9 +187,9 @@ Authorization: Bearer <ваш-bitbucket-personal-access-token> **Пример:** -1. Сформируйте строку `username:password` -1. Закодируйте её в Base64: `echo "username:password" | base64` -1. Добавьте заголовок: +1. Сформируйте строку `username:password`. +2. Закодируйте её в Base64: `echo "username:password" | base64`. +3. Добавьте заголовок: ```sh Authorization: Basic @@ -197,7 +197,7 @@ Authorization: Basic ### Jenkins -**Тип авторизации:** Basic Authentication (Username/Password) +**Тип авторизации:** Basic Authentication (Username/Password). **Заголовки:** @@ -208,10 +208,10 @@ Authorization: Basic **Пример:** 1. Сформируйте строку `username:password`, где: - - `username` — имя пользователя в Jenkins, + - `username` — имя пользователя в Jenkins. - `password` — пароль пользователя. -1. Закодируйте её в Base64: `echo "username:password" | base64`. -1. Добавьте заголовок: +2. Закодируйте её в Base64: `echo "username:password" | base64` +3. Добавьте заголовок: ```sh Authorization: Basic @@ -219,7 +219,7 @@ Authorization: Basic ### Jira -**Тип авторизации:** Basic Authentication +**Тип авторизации:** Basic Authentication. **Заголовки:** @@ -230,8 +230,8 @@ Authorization: Basic **Пример:** 1. Сформируйте строку `username:password`. -1. Закодируйте её в Base64: `echo "username:password" | base64`. -1. Добавьте заголовок: +2. Закодируйте её в Base64: `echo "username:password" | base64`. +3. Добавьте заголовок: ```sh Authorization: Basic @@ -239,7 +239,7 @@ Authorization: Basic ### Kaiten -**Тип авторизации:** API Token +**Тип авторизации:** API Token. **Заголовки:** @@ -255,7 +255,7 @@ Authorization: Bearer <ваш-kaiten-api-token> ### Kubernetes -**Тип авторизации:** Bearer Token (Service Account Token или User Token) +**Тип авторизации:** Bearer Token (Service Account Token или User Token). **Заголовки:** @@ -271,7 +271,7 @@ Authorization: Bearer <ваш-kubernetes-token> ### Nexus -**Тип авторизации:** Basic Authentication +**Тип авторизации:** Basic Authentication. **Заголовки:** @@ -281,9 +281,9 @@ Authorization: Bearer <ваш-kubernetes-token> **Пример:** -1. Сформируйте строку `username:password` -1. Закодируйте её в Base64: `echo "username:password" | base64` -1. Добавьте заголовок: +1. Сформируйте строку `username:password`. +2. Закодируйте её в Base64: `echo "username:password" | base64`. +3. Добавьте заголовок: ```sh Authorization: Basic @@ -291,7 +291,7 @@ Authorization: Basic ### OpenSearch -**Тип авторизации:** Basic Authentication +**Тип авторизации:** Basic Authentication. **Заголовки:** @@ -301,9 +301,9 @@ Authorization: Basic **Пример:** -1. Сформируйте строку `username:password` -1. Закодируйте её в Base64: `echo "username:password" | base64` -1. Добавьте заголовок: +1. Сформируйте строку `username:password`. +2. Закодируйте её в Base64: `echo "username:password" | base64`. +3. Добавьте заголовок: ```sh Authorization: Basic @@ -311,7 +311,7 @@ Authorization: Basic ### Prometheus -**Тип авторизации:** Bearer Token или Basic Authentication +**Тип авторизации:** Bearer Token или Basic Authentication. **Заголовки:** @@ -333,7 +333,7 @@ Authorization: Basic ### SonarQube -**Тип авторизации:** Bearer Token +**Тип авторизации:** Bearer Token. **Заголовки:** @@ -349,7 +349,7 @@ Authorization: Bearer <ваш-токен> ### Vault -**Тип авторизации:** Token Authentication +**Тип авторизации:** Token Authentication. **Заголовки:** diff --git a/content/documentation/admin/processes.ru.md b/content/documentation/admin/processes.ru.md index 07fa6f8..a0a862a 100644 --- a/content/documentation/admin/processes.ru.md +++ b/content/documentation/admin/processes.ru.md @@ -7,7 +7,7 @@ moduleStatus: experimental Процессы - это механизм автоматизации сложных бизнес-процессов, который позволяет создавать визуальные схемы выполнения действий с поддержкой условной логики, параллельного выполнения и обработки ошибок. -Процессы предоставляют более гибкий и мощный инструмент по сравнению со сценариями, позволяя создавать сложные workflow с ветвлением, циклами и компенсационными действиями. +В отличие от сценариев, процессы поддерживают сложные workflow с ветвлением, циклами и компенсационными действиями. ## Основные концепции @@ -15,36 +15,36 @@ moduleStatus: experimental Процесс состоит из различных типов элементов: -* **Начало** - точка входа в процесс -* **Задача** - выполнение конкретного действия -* **Эксклюзивный шлюз** - условное ветвление (if-else логика) -* **Параллельный шлюз** - параллельное выполнение веток -* **Конец** - завершение процесса +* **Начало** — точка входа в процесс. +* **Задача** — выполнение конкретного действия. +* **Эксклюзивный шлюз** — условное ветвление (if-else логика). +* **Параллельный шлюз** — параллельное выполнение веток. +* **Конец** — завершение процесса. ### Обработка ошибок Каждый элемент процесса может иметь настройки обработки ошибок: -* **Количество попыток перезапуска** - сколько раз повторить действие при ошибке -* **Задержка перезапуска** - интервал между попытками -* **Время на выполнение** - максимальное время выполнения элемента -* **Перезапуск по тайм-ауту** - автоматический перезапуск при превышении времени +* **Количество попыток перезапуска** — количество повторений действия при ошибке. +* **Задержка перезапуска** — интервал между попытками. +* **Время на выполнение** — максимальное время выполнения элемента. +* **Перезапуск по тайм-ауту** — автоматический перезапуск при превышении времени. ## Создание процесса ### Основная информация -Для создания процесса перейдите в раздел `Самообслуживание` → `Процессы` и нажмите кнопку `Создать`. +Для создания процесса перейдите в раздел «Самообслуживание» → «Процессы» и нажмите кнопку «Создать». Заполните следующие поля: -* **Название** - название процесса -* **Описание** - подробное описание назначения процесса -* **Ресурс** - ресурс, для которого доступен процесс -* **Владелец** - пользователь, ответственный за процесс -* **Команда владелец** - команда, ответственная за процесс -* **Теги** - теги для категоризации процесса -* **Иконка** - иконка для отображения в интерфейсе +* **Название** — название процесса. +* **Описание** — подробное описание назначения процесса. +* **Ресурс** — ресурс, для которого доступен процесс. +* **Владелец** — пользователь, ответственный за процесс. +* **Команда владелец** — команда, ответственная за процесс. +* **Теги** — теги для категоризации процесса. +* **Иконка** — иконка для отображения в интерфейсе. ### Конфигурация процесса @@ -52,41 +52,41 @@ moduleStatus: experimental #### Добавление элементов -1. Нажмите кнопку с типом элемента в панели редактора для создания нового элемента -2. Настройте параметры элемента в визуальном редакторе -3. Свяжите элемент с другими элементами процесса +1. Нажмите кнопку с типом элемента в панели редактора для создания нового элемента. +2. Настройте параметры элемента в визуальном редакторе. +3. Свяжите элемент с другими элементами процесса. #### Типы элементов ##### Задача -- Связывается с конкретным действием -- Настраивается время выполнения и обработка ошибок -- Может иметь входящие и исходящие связи +- Связывается с конкретным действием. +- Настраивается время выполнения и обработка ошибок. +- Может иметь входящие и исходящие связи. ##### Эксклюзивный шлюз -- Создает условное ветвление процесса -- Настраивается условие для каждой исходящей ветки -- Только одна ветка может быть выполнена +- Создает условное ветвление процесса. +- Настраивается условие для каждой исходящей ветки. +- Только одна ветка может быть выполнена. ##### Параллельный шлюз -- Разделяет процесс на параллельные ветки -- Настраивается ожидание всех или любого входящего элемента -- Все ветки выполняются одновременно +- Разделяет процесс на параллельные ветки. +- Настраивается ожидание всех или любого входящего элемента. +- Все ветки выполняются одновременно. #### Связывание элементов -1. Перетащите элемент на схему -2. Создайте связи между элементами, перетаскивая от одного элемента к другому -3. Настройте условия для условных переходов +1. Перетащите элемент на схему. +2. Создайте связи между элементами, перетаскивая от одного элемента к другому. +3. Настройте условия для условных переходов. ### Параметры процесса На вкладке `Параметры` настраиваются параметры процесса, которые могут использоваться во всех действиях процесса. -Конфигурация и использование параметров процесса описаны в разделе [шаблонизация](../user/templating/#параметры-процесса). +Конфигурация и использование параметров процесса описаны в разделе [«Шаблонизация»](../user/templating/#параметры-процесса). ### Хранилище процесса @@ -101,7 +101,7 @@ moduleStatus: experimental #### Как данные попадают в хранилище -1. Действие в процессе завершилось **успешно**. +1. Действие в процессе завершилось успешно. 2. У действия настроены правила «Запись в хранилище процесса». 3. Для каждого правила выполняется Go-шаблон из поля **Источник** с данными ответа действия; полученная строка записывается в хранилище под ключом, указанным в поле **Ключ в хранилище**. @@ -109,25 +109,25 @@ moduleStatus: experimental #### Поведение при отсутствующих данных -Если **ключа нет** в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), при выполнении шаблона `{{ .store.<ключ> }}` действие завершится с ошибкой. +Если ключа нет в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), при выполнении шаблона `{{ .store.<ключ> }}` действие завершится с ошибкой. ## Запуск процесса ### Ручной запуск -1. Перейдите к сущности, для которой нужно запустить процесс -2. В меню сущности выберите `Запустить процесс` -3. Выберите нужный процесс из списка -4. Заполните параметры процесса -5. Нажмите `Запустить` +1. Перейдите к сущности, для которой нужно запустить процесс. +2. В меню сущности выберите «Запустить процесс». +3. Выберите нужный процесс из списка. +4. Заполните параметры процесса. +5. Нажмите «Запустить». ### Параметры запуска При запуске процесса доступны: -* **Общие параметры процесса** - параметры, определенные в конфигурации процесса -* **Параметры действий** - параметры для каждого действия в процессе -* **Переменные окружения** - дополнительные переменные для выполнения +* **Общие параметры процесса** — параметры, определенные в конфигурации процесса. +* **Параметры действий** — параметры для каждого действия в процессе. +* **Переменные окружения** — дополнительные переменные для выполнения. ## Управление выполнением @@ -135,30 +135,30 @@ moduleStatus: experimental Процесс может находиться в следующих статусах: -* **Создан** - процесс создан, но не запущен -* **Выполняется** - процесс находится в процессе выполнения -* **Приостановлен** - выполнение процесса приостановлено -* **Завершен** - процесс успешно завершен -* **Неудачно** - процесс завершился с ошибкой -* **Отменен** - выполнение процесса было отменено +* **Создан** — процесс создан, но не запущен. +* **Выполняется** — процесс находится в процессе выполнения. +* **Приостановлен** — выполнение процесса приостановлено. +* **Завершен** — процесс успешно завершен. +* **Неудачно** — процесс завершился с ошибкой. +* **Отменен** — выполнение процесса было отменено. ### Управление выполнением Для активных процессов доступны следующие операции: -* **Приостановить** - временно остановить выполнение -* **Возобновить** - продолжить выполнение после приостановки -* **Остановить** - полностью остановить выполнение -* **Принудительный перезапуск** - перезапустить процесс с начала +* **Приостановить** — временно остановить выполнение. +* **Возобновить** — продолжить выполнение после приостановки. +* **Остановить** — полностью остановить выполнение. +* **Принудительный перезапуск** — перезапустить процесс с начала. ### Отслеживание состояния В разделе «Запуски процессов» можно просмотреть: -* Список всех запусков процессов для сущности -* Детальную информацию о каждом запуске -* Логи выполнения действий -* Статус каждого элемента процесса +* Список всех запусков процессов для сущности. +* Детальную информацию о каждом запуске. +* Логи выполнения действий. +* Статус каждого элемента процесса. #### Лог процесса @@ -168,26 +168,26 @@ moduleStatus: experimental ### Создание проекта с настройкой -1. **Начало** - запуск процесса -2. **Задача** - создание проекта в GitLab -3. **Эксклюзивный шлюз** - проверка успешности создания -4. **Задача** (при успехе) - настройка переменных проекта -5. **Задача** (при ошибке) - отправка уведомления об ошибке -6. **Конец** - завершение процесса +1. **Начало** — запуск процесса. +2. **Задача** — создание проекта в GitLab. +3. **Эксклюзивный шлюз** — проверка успешности создания. +4. **Задача** (при успехе) — настройка переменных проекта. +5. **Задача** (при ошибке) — отправка уведомления об ошибке. +6. **Конец** — завершение процесса. ### Развертывание приложения -1. **Начало** - запуск процесса развертывания -2. **Параллельный шлюз** - разделение на ветки -3. **Задача** (ветка 1) - создание namespace в Kubernetes -4. **Задача** (ветка 2) - создание секретов в Vault -5. **Параллельный шлюз** - ожидание завершения обеих веток -6. **Задача** - развертывание приложения -7. **Конец** - завершение процесса +1. **Начало** — запуск процесса развертывания. +2. **Параллельный шлюз** — разделение на ветки. +3. **Задача** (ветка 1) — создание namespace в Kubernetes. +4. **Задача** (ветка 2) — создание секретов в Vault. +5. **Параллельный шлюз** — ожидание завершения обеих веток. +6. **Задача** — развертывание приложения. +7. **Конец** — завершение процесса. ## Ограничения -* Процессы не могут содержать более 100 элементов -* Максимальное время выполнения процесса - 24 часа -* Количество одновременных запусков процесса ограничено настройками системы -* Некоторые действия могут быть недоступны для использования в процессах +* Процессы не могут содержать более 100 элементов. +* Максимальное время выполнения процесса — 24 часа. +* Количество одновременных запусков процесса ограничено настройками системы. +* Некоторые действия могут быть недоступны для использования в процессах. diff --git a/content/documentation/admin/security/credentials.ru.md b/content/documentation/admin/security/credentials.ru.md index 292c879..9a64e40 100644 --- a/content/documentation/admin/security/credentials.ru.md +++ b/content/documentation/admin/security/credentials.ru.md @@ -22,7 +22,7 @@ weight: 30 ### Выбор хранилища для типа учётных данных -При создании или редактировании типа учётных данных указывается **хранилище**: +При создании или редактировании типа учётных данных указывается хранилище: - **База данных** — значения хранятся в PostgreSQL (по умолчанию). - **Vault** — значения хранятся в HashiCorp Vault или в Deckhouse Stronghold. Доступно только если в платформе включена и настроена интеграция с Vault. @@ -30,9 +30,9 @@ weight: 30 ### Хранение в базе данных -Учетные данные с типом хранилища «База данных» сохраняются в PostgreSQL. Перед сохранением значения шифруются с использованием алгоритма **AES-GCM**. +Учетные данные с типом хранилища «База данных» сохраняются в PostgreSQL. Перед сохранением значения шифруются с использованием алгоритма AES-GCM. -**Параметры шифрования:** +Параметры шифрования: - **Алгоритм:** AES-GCM. - **Размер ключа:** 16, 24 или 32 байта (128, 192 или 256 бит). - **Размер nonce:** 12 байт. @@ -48,34 +48,34 @@ weight: 30 Если для типа учётных данных выбрано хранилище **Vault**, то реквизиты пользователей сохраняются платформой в HashiCorp Vault или в Deckhouse Stronghold. -**Как это устроено:** +Как это устроено: - В Vault используется движок **KV Secrets Engine v2**. Путь к секретам задаётся в настройках Vault в DDP (например, `secrets/data/ddp`). - Для каждого пользователя создаётся отдельный секрет по пути `{path}/credentials/{uuid_типа}/users/{uuid_пользователя}`. Внутри секрета один ключ **value**, значение — зашифрованные учетные данные. Шифрование выполняется ключом DDP (`security.secretKey`). - Подключение к Vault выполняется по **AppRole** (AppRole Role ID и AppRole Secret ID). AppRole Role ID и AppRole Secret ID сохраняются в БД DDP в зашифрованном виде. Токен Vault продлевается автоматически; при сбое продления выполняется повторный вход по AppRole. -**Настройка Vault в DDP:** +Настройка Vault в DDP: -1. В разделе «Администрирование» → «Учетные данные» нажмите **«Настройки Vault»**. -2. Включите использование Vault (**Включено**). +1. В разделе «Администрирование» → «Учетные данные» нажмите «Настройки Vault». +2. Включите использование Vault (Включено). 3. Заполните параметры: - **URL** — адрес сервера Vault (например, `https://vault.example.com`). - **AppRole Role ID** — идентификатор AppRole, полученный при создании роли в Vault. - **AppRole Secret ID** — секрет AppRole, используется вместе с Role ID для аутентификации в Vault. - **Путь** — путь к секретам в KV v2. Для KV v2 путь должен содержать сегмент `/data/` (например, `secrets/data/ddp` или `secrets/data/ddp/credentials`). Mount (например, `secrets`) должен быть заранее создан в Vault; подкаталоги после `data/` создаются платформой автоматически при сохранении учётных данных. -4. Нажмите **«Проверить подключение»**, чтобы убедиться, что DDP может аутентифицироваться и обращаться к Vault. +4. Нажмите «Проверить подключение», чтобы убедиться, что DDP может аутентифицироваться и обращаться к Vault. 5. Сохраните конфигурацию. После сохранения конфигурации при создании или редактировании типа учётных данных в списке хранилищ будет доступен вариант **Vault**. Если Vault выключен или не настроен, типы с хранилищем Vault останутся в списке, но учётные данные такого типа заполнять и использовать будет нельзя до включения и настройки Vault. -**Права доступа:** +#### Права доступа Для просмотра, изменения конфигурации Vault и проверки подключения требуется глобальное разрешение на редактирование типов учётных данных: `edit:user-access-credentials-types`. -**Особенности конфигурации:** +#### Особенности конфигурации -- Поддерживается только **KV Secrets Engine v2**. Путь в настройках должен включать `/data/` (например, `mount/data/подкаталог`). +- Поддерживается только KV Secrets Engine v2. Путь в настройках должен включать `/data/` (например, `mount/data/подкаталог`). - Одна конфигурация Vault на инстанс DDP: один URL, одна AppRole, один базовый путь. Все типы учётных данных с хранилищем Vault используют этот путь (подкаталоги формируются автоматически по UUID типа). -- Очистить все сохранённые значения типа из текущего хранилища (база данных или Vault) в любой момент можно через действие **«Очистить хранилище»** в таблице типов учётных данных. +- Очистить все сохранённые значения типа из текущего хранилища (база данных или Vault) в любой момент можно через действие «Очистить хранилище» в таблице типов учётных данных. - Смена ключа шифрования DDP (`security.secretKey`) делает нечитаемыми и учётные данные в Vault, так как значения в Vault хранятся в зашифрованном виде. ### Использование учетных данных @@ -142,7 +142,7 @@ security: secretKey: "your-32-byte-secret-key-here" ``` -**Требования к ключу:** +Требования к ключу: - Длина: 16, 24 или 32 байта (128, 192 или 256 бит). - Только печатаемые ASCII символы. - Не должен быть слабым или часто используемым ключом. diff --git a/content/documentation/admin/security/rbac.ru.md b/content/documentation/admin/security/rbac.ru.md index 8ae3b71..3d7a1af 100644 --- a/content/documentation/admin/security/rbac.ru.md +++ b/content/documentation/admin/security/rbac.ru.md @@ -27,7 +27,7 @@ weight: 20 Глобальные разрешения действуют на уровне всей платформы и предоставляют доступ ко всем объектам определенного типа: -РРесурсы: +Ресурсы: - `create:resources` — создание ресурсов. - `read:resources` — просмотр ресурсов. - `update:resources` — редактирование ресурсов. @@ -118,8 +118,8 @@ weight: 20 Разрешения `view:` контролируют доступ к различным разделам интерфейса платформы: -- `view:admin-page` - доступ к разделу "Администрирование" -- `view:self-service-page` - доступ к разделу "Самообслуживание" +- `view:admin-page` — доступ к разделу «Администрирование». +- `view:self-service-page` — доступ к разделу «Самообслуживание». {{< alert level="info" >}} Без соответствующих `view:` разрешений пользователь не сможет увидеть разделы в навигационном меню, даже если у него есть другие разрешения для работы с объектами в этих разделах. @@ -161,29 +161,29 @@ weight: 20 ### 1. Супер-администратор -- Проверка, является ли пользователь супер-администратором. Если пользователь является супер-администратором, то дальнейшие проверки не производятся +- Проверка, является ли пользователь супер-администратором. Если пользователь является супер-администратором, то дальнейшие проверки не производятся. ### 2. Глобальные роли - Проверка по JWT-токену пользователя в каких группах он состоит -- Поиск глобальных ролей для пользователя и его групп по привязкам глобальных ролей -- Проверка разрешений в глобальных ролях: если в одной из глобальных ролей, привязанных к пользователю, либо его команде, присутствует разрешение `update:entities`, то пользователь будет обладать правами на редактирование любых сущностей в DDP, дальнейшие проверки не производятся +- Поиск глобальных ролей для пользователя и его групп по привязкам глобальных ролей. +- Проверка разрешений в глобальных ролях: если в одной из глобальных ролей, привязанных к пользователю, либо его команде, присутствует разрешение `update:entities`, то пользователь будет обладать правами на редактирование любых сущностей в DDP, дальнейшие проверки не производятся. ### 3. Роли ресурса -- Поиск ролей ресурса для пользователя и его групп по привязкам ролей конкретного ресурса -- Проверка разрешений в ролях ресурса: если в одной из ролей ресурса, привязанных к пользователю, либо его команде, присутствует разрешение `update:entities`, то пользователь будет обладать правами на редактирование любых сущностей данного ресурса, дальнейшие проверки не производятся +- Поиск ролей ресурса для пользователя и его групп по привязкам ролей конкретного ресурса. +- Проверка разрешений в ролях ресурса: если в одной из ролей ресурса, привязанных к пользователю, либо его команде, присутствует разрешение `update:entities`, то пользователь будет обладать правами на редактирование любых сущностей данного ресурса, дальнейшие проверки не производятся. ### 4. Роли сущностей -- Поиск ролей сущностей для пользователя и его групп по привязкам ролей конкретной сущности -- Проверка разрешений в ролях сущности: если в одной из ролей сущности, привязанных к пользователю, либо его команде, присутствует разрешение `update:entity`, то пользователь будет обладать правами на редактирование данной сущности +- Поиск ролей сущностей для пользователя и его групп по привязкам ролей конкретной сущности. +- Проверка разрешений в ролях сущности: если в одной из ролей сущности, привязанных к пользователю, либо его команде, присутствует разрешение `update:entity`, то пользователь будет обладать правами на редактирование данной сущности. ### 5. Владение объектом (при включенной опции ownerIsAdmin) -- Проверка, является ли пользователь владельцем объекта -- Проверка, состоит ли пользователь в команде-владельце объекта -- Если пользователь является владельцем объекта или участником команды-владельца, ему предоставляются все права администратора на объект +- Проверка, является ли пользователь владельцем объекта. +- Проверка, состоит ли пользователь в команде-владельце объекта. +- Если пользователь является владельцем объекта или участником команды-владельца, ему предоставляются все права администратора на объект. Если ни на одном уровне не было найдено соответствующего разрешения, то действие будет запрещено. @@ -209,8 +209,8 @@ weight: 20 Опция `ownerIsAdmin` задаёт поведение прав доступа для владельцев объектов. -- **Включена (true)** — владельцы объектов получают полные права администратора на свои объекты -- **Отключена (false)** — владельцы объектов не получают автоматических прав; доступ контролируется только через роли +- **Включена (true)** — владельцы объектов получают полные права администратора на свои объекты. +- **Отключена (false)** — владельцы объектов не получают автоматических прав; доступ контролируется только через роли. {{< alert level="info" >}} Опция `ownerIsAdmin` должна быть настроена администратором платформы в конфигурационном файле. По умолчанию опция выключена. @@ -262,14 +262,14 @@ weight: 20 1. Выберите вкладку «Роли». 1. Нажмите кнопку «Создать роль». 1. Заполните форму: - - Название - уникальное название роли. - - Описание - описание назначения роли. + - Название — уникальное название роли. + - Описание — описание назначения роли. - Тип объекта - выберите уровень действия роли: - - `Глобальные` - для глобальных разрешений. - - `Ресурсы` - для разрешений на уровне ресурсов. - - `Сущности` - для разрешений на уровне сущностей. - - `Действия` - для разрешений на уровне действий. - - И другие типы объектов. + - `Глобальные` — для глобальных разрешений. + - `Ресурсы` — для разрешений на уровне ресурсов. + - `Сущности` — для разрешений на уровне сущностей. + - `Действия` — для разрешений на уровне действий. + - и другие типы объектов. - Разрешения - выберите необходимые разрешения из списка. 1. Нажмите «Сохранить». @@ -279,12 +279,12 @@ weight: 20 1. Выберите вкладку «Привязки ролей». 1. Нажмите кнопку «Создать привязку роли». 1. Заполните форму: - - Название - название привязки роли. + - Название — название привязки роли. - Описание - описание назначения привязки. - - Роль - выберите созданную роль. - - Объект - выберите конкретный объект (если роль не глобальная). - - Пользователи - добавьте пользователей, которым назначается роль. - - Команды - добавьте команды, которым назначается роль. + - Роль — выберите созданную роль. + - Объект — выберите конкретный объект (если роль не глобальная). + - Пользователи — добавьте пользователей, которым назначается роль. + - Команды — добавьте команды, которым назначается роль. 1. Нажмите «Сохранить». ### Настройка роли по умолчанию @@ -381,7 +381,7 @@ weight: 20 - `read:seeds`, `read:system-alerts`, `read:webhooks`. - `read:widgets`, `read:workflows`. - `read:audit-logs`, `view:admin-page`, `view:self-service-page`. -- Назначение: Пользователи с правами только на просмотр. +- Назначение: пользователи с правами только на просмотр. ##### Пресет «Developer» @@ -391,7 +391,7 @@ weight: 20 - `read:processes`, `read:widgets`, `read:workflows`. - `run:actions`, `run:widget-actions`, `control:processes`. - `update:team-variables`. -- Назначение: Разработчики, которым нужен доступ к просмотру информации и выполнению действий, но не требуется доступ к созданию, изменению или удалению объектов. Разработчики видят только те сущности, к которым им предоставлен доступ через привязки ролей на уровне ресурсов или сущностей. +- Назначение: разработчики, которым нужен доступ к просмотру информации и выполнению действий, но не требуется доступ к созданию, изменению или удалению объектов. Разработчики видят только те сущности, к которым им предоставлен доступ через привязки ролей на уровне ресурсов или сущностей. #### Пресеты для процессов @@ -399,21 +399,21 @@ weight: 20 - Тип: `process-definitions`. - Разрешения: `delete:process`, `edit:role-bindings`, `read:process`, `update:process`. -- Назначение: Администраторы процессов. +- Назначение: администраторы процессов. ##### Пресет «Process viewer» - Тип: `process-definitions`. - Разрешения: `read:process`. -- Назначение: Пользователи с правами на просмотр процессов. +- Назначение: пользователи с правами на просмотр процессов. #### Пресеты для ресурсов ##### Пресет «Resource admin» - Тип: `resources`. -- Разрешения: Все разрешения для ресурсов. -- Назначение: Администраторы конкретных ресурсов. +- Разрешения: все разрешения для ресурсов. +- Назначение: вдминистраторы конкретных ресурсов. #### Использование пресетов diff --git a/content/documentation/admin/workflows.ru.md b/content/documentation/admin/workflows.ru.md index 9bac1dd..2b23b59 100644 --- a/content/documentation/admin/workflows.ru.md +++ b/content/documentation/admin/workflows.ru.md @@ -15,7 +15,7 @@ moduleStatus: experimental При выборе параллельного запуска все действия запустятся одновременно. При выборе последовательного запуска, действия будут запускаться в порядке их расположения в списке действий сценария. При этом, если одно из действий выполнилось неуспешно, все последующие будут созданы, но не будут запущены. -> При выборе последовательного запуска и в случае, если какое-либо из вышестоящих действий требует подтверждения, следующие за ним запустятся сразу после того, как данное действие перейдет в статус "Unapproved". +> При выборе последовательного запуска и в случае, если какое-либо из вышестоящих действий требует подтверждения, следующие за ним запустятся сразу после того, как данное действие перейдет в статус «Unapproved». Каждое действие сценария может быть обязательным, либо опциональным: @@ -28,4 +28,4 @@ moduleStatus: experimental ### Параметры сценария -Конфигурация и использование параметров сценария описаны в разделе [шаблонизация](../user/templating/#параметры-сценария). +Конфигурация и использование параметров сценария описаны в разделе [«Шаблонизация»](../user/templating/#параметры-сценария). diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 930976a..cd304d6 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -52,8 +52,8 @@ weight: 940 ## Улучшения интерфейса -- Пункты верхнего и боковых меню, а также карточки в разделе "Самообслуживание" теперь можно открыть в новой вкладке: щёлкните по пункту колесиком мыши или с зажатыми Ctrl (Windows/Linux) / Cmd (macOS). -- Улучшена форма редактирования источников данных. +- Пункты верхнего и боковых меню теперь можно открыть в новой вкладке: нажмите на нужный пункт колесом мыши или, удерживая Ctrl (Windows/Linux) либо Cmd (macOS), нажмите левой кнопкой мыши. +- Карточки в разделе «Самообслуживание» теперь открываются в новой вкладке при нажатии колесом мыши или при нажатии левой кнопкой мыши с удержанием Ctrl (Windows/Linux) либо Cmd (macOS). ## Исправленные проблемы diff --git a/content/documentation/user/templating.ru.md b/content/documentation/user/templating.ru.md index 074c430..124f8a8 100644 --- a/content/documentation/user/templating.ru.md +++ b/content/documentation/user/templating.ru.md @@ -55,11 +55,11 @@ title: Шаблонизация ### toJSON -`toJSON` сериализует заданное значение в строку JSON. Принимает любой тип данных. Если сериализация не удалась, возвращается ошибка. +`toJSON` сериализует заданное значение в строку JSON. Принимает любой тип данных. При невозможности сериализации, возвращается ошибка. Параметры: -* `v` — Значение, которое нужно сериализовать в JSON. +* `v` — значение, которое нужно сериализовать в JSON. Возвращает: @@ -263,7 +263,7 @@ title: Шаблонизация ## Глобальные переменные -Глобальные переменные - общие переменные, которые могут быть переиспользованы в шаблонизации при запуске действий. +Глобальные переменные — общие переменные, которые могут быть переиспользованы в шаблонизации при запуске действий. Для получения значения глобальной переменной необходимо указать подобную строку в соответствующих полях: @@ -349,8 +349,8 @@ title: Шаблонизация где: -- `response` - указывает на то, что идет обращение к ответу действия. -- `field_name` - имя поля в ответе, значение которого необходимо подставить. +- `response` — указывает на то, что идет обращение к ответу действия. +- `field_name` — имя поля в ответе, значение которого необходимо подставить. Посмотреть формат возвращаемого действием ответа можно либо в документации, описывающей действие, либо в записи действия в интерфейсе DDP: From 8f00103ee573370b5aeb6ae9d009c7306dc42c3c Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Sat, 28 Feb 2026 21:16:04 +0300 Subject: [PATCH 16/22] datasources form improvements (#106) Co-authored-by: Nikita Velgin --- content/documentation/release-notes/v1.3.0.ru.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index cd304d6..175241d 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -52,8 +52,8 @@ weight: 940 ## Улучшения интерфейса -- Пункты верхнего и боковых меню теперь можно открыть в новой вкладке: нажмите на нужный пункт колесом мыши или, удерживая Ctrl (Windows/Linux) либо Cmd (macOS), нажмите левой кнопкой мыши. -- Карточки в разделе «Самообслуживание» теперь открываются в новой вкладке при нажатии колесом мыши или при нажатии левой кнопкой мыши с удержанием Ctrl (Windows/Linux) либо Cmd (macOS). +- Пункты верхнего и боковых меню, а также карточки в разделе «Самообслуживание» теперь можно открыть в новой вкладке: нажмите на них колесом мыши или, удерживая Ctrl (Windows/Linux) либо Cmd (macOS), нажмите левой кнопкой мыши. +- Улучшена форма редактирования источников данных. ## Исправленные проблемы From 78017cc04cbd114d9fc98eeaa4cd462095bfc7a1 Mon Sep 17 00:00:00 2001 From: Lada Lysenko <127337005+Lada7878@users.noreply.github.com> Date: Mon, 2 Mar 2026 21:33:37 +0600 Subject: [PATCH 17/22] Review add team filter sync rules documentation (#108) Signed-off-by: Lada7878 --- .../admin/datasources/overview.ru.md | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/content/documentation/admin/datasources/overview.ru.md b/content/documentation/admin/datasources/overview.ru.md index 36156a5..650bf9e 100644 --- a/content/documentation/admin/datasources/overview.ru.md +++ b/content/documentation/admin/datasources/overview.ru.md @@ -21,7 +21,7 @@ weight: 10 ## Параметры источников данных -Некоторые типы источников данных поддерживают настраиваемые параметры, которые позволяют дополнительно конфигурировать поведение источника данных. Подробная информация о параметрах для каждого типа источников данных доступна в разделе [«Типы источников данных»](./types/). +Некоторые типы источников данных поддерживают настраиваемые параметры, позволяющие дополнительно конфигурировать их поведение. Подробная информация о параметрах для каждого типа источника данных приведена в разделе [«Типы источников данных»](./types/). ## Правила источников данных @@ -113,7 +113,7 @@ metadata: ### Правила обновления -Правила обновления определяют, какие параметры сущности необходимо автоматически заполнять на основе спецификации соответствующего ресурса из внешней системы. Сущность, параметры которой необходимо заполнить, определяется на основе правил сопоставления. +Правила обновления определяют, какие параметры сущности автоматически заполняются на основе спецификации соответствующего ресурса из внешней системы. Сущность, параметры которой необходимо заполнить, определяется на основе правил сопоставления. #### Импорт из спецификации @@ -123,9 +123,11 @@ metadata: С использованием механизма импорта, правила обновления и параметры обновляемого ресурса можно сформировать автоматически по JSON, YAML или OpenAPI-спецификации данных. -##### Где настраивается +##### Настройка в интерфейсе -В диалоге редактирования источника данных откройте вкладку **«Правила»**. В блоке «Правила обновления» нажмите кнопку **«Импортировать из спецификации»**, предварительно на вкладке **«Основная информация»** должен быть выбран ресурс, к которому будет привязан источник данных. +1. На вкладке **«Основная информация»** выберите ресурс, к которому будет привязан источник данных. +1. В диалоге редактирования источника данных откройте вкладку **«Правила»**. +1. В блоке «Правила обновления» нажмите кнопку **«Импортировать из спецификации»**. ##### Шаги по настройке @@ -133,7 +135,7 @@ metadata: 2. **Настройка маппинга** — в таблице отображаются столбцы «Путь в данных», «Тип в источнике», «Идентификатор параметра», «Название параметра», «Тип параметра». Можно редактировать идентификатор, название и тип параметра, отметить галочками строки для применения. Строки, для которых в ресурсе уже есть параметр с таким идентификатором или названием, помечаются меткой «Существует». 3. **Применение** — нажмите «Применить»: в блок «Правила обновления» источника данных добавятся сформированные правила. Новые параметры ресурса будут созданы при сохранении источника данных. -##### Что происходит при импорте +##### Поведение системы при импорте 1. **Автосоздание параметров ресурса** — для полей спецификации, по которым в ресурсе ещё нет параметра, предлагаются новые параметры; они добавляются в ресурс при сохранении источника данных. 2. **Автозаполнение правил обновления** — по каждому выбранному полю создаётся правило: источник задаётся выражением [Go template](https://developer.hashicorp.com/nomad/docs/reference/go-template-syntax) по пути в данных (например, `{{ .metadata.name }}`), параметр — идентификатор параметра ресурса. После нажатия «Применить» эти правила появляются в блоке «Правила обновления» на вкладке «Правила» источника данных. @@ -144,10 +146,10 @@ metadata: ### Правила создания связей -Правила создания связей определяют, какие связи создавать для сущности, которая соответствует правилам сопоставления. При задании правил создания связей заполняется: +Правила создания связей определяют, какие связи создаются для сущности, соответствующей правилам сопоставления. При задании правил создания связей заполняется: * Связь ресурса. -* Поле из спецификации ресурса внешней инфраструктурной системы, на основании которого нужно производить поиск связи. +* Поле из спецификации ресурса внешней инфраструктурной системы, на основании которого выполняется поиск сущности для установления связи. Например, при следующей спецификации одного из ресурсов внешней инфраструктурной системы, полученного через источник данных: @@ -173,9 +175,15 @@ metadata: будет: -* Среди сущностей, которые при создании связи были указаны как родительские, был произведен поиск той, идентификатор (slug) которой соответствует значению `default`. При создании связи ресурсов задаётся родительский и дочерний ресурс. при указании идентификатора родительской сущности, поиск будет произведен только по сущностям из родительского ресурса. Если указать идентификатор дочерней сущности, то поиск будет произведен только по сущностям дочернего ресурса. В рамках создания правила необходимо указывать либо родительский идентификатор, либо дочерний. При одновременном указании в рамках одного правила обоих идентификаторов, поиск будет производиться только по родительскому ресурсу. +* Если указан `parentEntitySlug`, поиск выполняется только среди сущностей родительского ресурса. -* В случае существования сущности родительского ресурса с идентификатором `default`, создана связь между данной сущностью, и сущностью ресурса, к которому привязан источник данных, и которая соответствует правилам сопоставления +* Если указан `childEntitySlug`, поиск выполняется только среди сущностей дочернего ресурса. + +* В рамках одного правила необходимо указывать либо родительский, либо дочерний идентификатор. + +* Если заданы оба идентификатора, поиск выполняется только по родительскому ресурсу. + +Если в родительском ресурсе существует сущность с идентификатором `default`, создаётся связь между этой сущностью и сущностью ресурса, к которому привязан источник данных и которая соответствует правилам сопоставления. ## Синхронизация From 935a5c60577463944707e04d03d54a56de123470 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Tue, 3 Mar 2026 13:59:11 +0300 Subject: [PATCH 18/22] add deprecation notice and release notes for 1.4.0 (#109) Co-authored-by: Nikita Velgin --- content/documentation/release-notes/v1.3.0.ru.md | 9 ++++++++- content/documentation/release-notes/v1.4.0.ru.md | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 content/documentation/release-notes/v1.4.0.ru.md diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 175241d..3168909 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -4,7 +4,7 @@ weight: 940 --- {{< alert level="info" >}} -Выпуск релиза планируется 02.03.2026 +Релиз выпущен 03.03.2026 {{< /alert >}} ## Новые возможности @@ -59,3 +59,10 @@ weight: 940 - Решена проблема с отображением команды-владельца в карточках раздела «Самообслуживание». - Исправлено удаление линий в редакторе процессов. + +## Предупреждение об удалении + +В релизе **1.4.0** будут удалены следующие механизмы: + +- Виджет **GitLab. Участники** — для замены рекомендуется использовать виджет [GitLab. Статистика пайплайнов](../../admin/widgets/types/#gitlab-статистика-пайплайнов). +- **Источники данных для конкретных ресурсов Kubernetes**: KubernetesNamespaces, KubernetesDeployments, KubernetesIngresses, KubernetesPods — для замены рекомендуется использовать общий источник данных [KubernetesResources](../../admin/datasources/types/#kubernetesresources). diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md new file mode 100644 index 0000000..8f93b09 --- /dev/null +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -0,0 +1,8 @@ +--- +title: v1.4.0 +weight: 930 +--- + +{{< alert level="info" >}} +Выпуск релиза планируется 06.04.2026 +{{< /alert >}} From 996691817c4d1c6cce12920f6ce33a926d45727e Mon Sep 17 00:00:00 2001 From: Artem Kladov <6360800+z9r5@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:02:07 +0700 Subject: [PATCH 19/22] chore: enable offline search and update module version to v0.1.9 (#110) --- config/_default/hugo.yaml | 2 +- content/documentation/_index.md | 3 +++ content/documentation/_index.ru.md | 3 +++ docker-compose.yml | 2 ++ go.mod | 2 +- go.sum | 4 ++-- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/config/_default/hugo.yaml b/config/_default/hugo.yaml index 0a7b69a..4749f20 100644 --- a/config/_default/hugo.yaml +++ b/config/_default/hugo.yaml @@ -83,7 +83,7 @@ params: showedit: true # Enable Lunr.js offline search - offlineSearch: false + offlineSearch: true # Global relevant links. links: diff --git a/content/documentation/_index.md b/content/documentation/_index.md index 8226438..2950d3c 100644 --- a/content/documentation/_index.md +++ b/content/documentation/_index.md @@ -4,6 +4,9 @@ description: Documentation for the Deckhouse Development Platform product weight: 10 params: no_list: true +outputs: + - HTML + - search cascade: params: simple_list: true diff --git a/content/documentation/_index.ru.md b/content/documentation/_index.ru.md index 90db9c2..0ae93af 100644 --- a/content/documentation/_index.ru.md +++ b/content/documentation/_index.ru.md @@ -4,6 +4,9 @@ description: Документация продукта Deckhouse Development Pla weight: 10 params: no_list: true +outputs: + - HTML + - search cascade: params: simple_list: true diff --git a/docker-compose.yml b/docker-compose.yml index 1e3ea4a..e5b0cef 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,8 @@ services: - ".werf/nginx-local.conf:/etc/nginx/nginx.conf:ro" ports: - "80:80" + dns: + - 8.8.8.8 depends_on: hugo: condition: service_healthy diff --git a/go.mod b/go.mod index fdb8258..83d7ce6 100644 --- a/go.mod +++ b/go.mod @@ -4,4 +4,4 @@ module github.com/deckhouse/website-development-platform go 1.24.2 -require github.com/deckhouse/hugo-web-product-module v0.1.7 // indirect +require github.com/deckhouse/hugo-web-product-module v0.1.9 // indirect diff --git a/go.sum b/go.sum index 99c3c68..fa452a3 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -github.com/deckhouse/hugo-web-product-module v0.1.7 h1:Ld6iFf1G6QdyWGCxyCl5z7yQvtyVLMdwYAfXgWL3/YM= -github.com/deckhouse/hugo-web-product-module v0.1.7/go.mod h1:iLVlLSCkbOoi7RjYm5RjwAQi+Whs6DjSumhaH1GBjqw= +github.com/deckhouse/hugo-web-product-module v0.1.9 h1:89Vba4DVWDV0XjFWYQCeJ47N/WxKfV4KnCyF8tkvbWo= +github.com/deckhouse/hugo-web-product-module v0.1.9/go.mod h1:iLVlLSCkbOoi7RjYm5RjwAQi+Whs6DjSumhaH1GBjqw= From cc8a6086814c305a2386b1ab4aa0d88007b848b8 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Tue, 3 Mar 2026 22:38:49 +0300 Subject: [PATCH 20/22] release notes: fix datasources (#111) * release notes: fix datasources --------- Co-authored-by: Nikita Velgin --- .../documentation/admin/datasources/overview.ru.md | 12 ++++++------ content/documentation/release-notes/v1.4.0.ru.md | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/content/documentation/admin/datasources/overview.ru.md b/content/documentation/admin/datasources/overview.ru.md index 650bf9e..67237b1 100644 --- a/content/documentation/admin/datasources/overview.ru.md +++ b/content/documentation/admin/datasources/overview.ru.md @@ -175,9 +175,9 @@ metadata: будет: -* Если указан `parentEntitySlug`, поиск выполняется только среди сущностей родительского ресурса. +* Если указан идентификатор родительской сущности (`parentEntitySlug`), поиск выполняется только среди сущностей родительского ресурса. -* Если указан `childEntitySlug`, поиск выполняется только среди сущностей дочернего ресурса. +* Если указан идентификатор дочерней сущности (`childEntitySlug`), поиск выполняется только среди сущностей дочернего ресурса. * В рамках одного правила необходимо указывать либо родительский, либо дочерний идентификатор. @@ -189,8 +189,8 @@ metadata: Каждый источник данных имеет несколько параметров настройки синхронизации: -* Периодическая синхронизация (enableSchedule) — включение или выключение периодической синхронизации. -* Периодичность запуска (scheduleExpression) — cron-выражение из 6 полей, определяющее интервал запуска периодической синхронизации. +* Периодическая синхронизация — включение или выключение периодической синхронизации. +* Периодичность запуска — cron-выражение, определяющее интервал запуска периодической синхронизации. При включенном параметре «Периодическая синхронизация» источник данных будет автоматически обновлять информацию из внешних инфраструктурных систем с интервалом, определенным в параметре «Периодичность запуска». @@ -200,8 +200,8 @@ metadata: Каждый источник данных имеет несколько параметров удаления сущностей: -* Удаление несуществующих сущностей (deleteEntities). -* Удаление только сущностей, созданных этим источником данных (deleteOnlyOriginatedEntities). +* Удаление несуществующих сущностей. +* Удаление только сущностей, созданных этим источником данных. При включении параметра «Удаление несуществующих сущностей» источник данных будет сравнивать список ресурсов, полученных из внешней инфраструктурной системы и список существующих сущностей ресурса. При обнаружении в DDP сущностей, которые отсутствуют в списке полученных, они будут удалены из DDP. diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index 8f93b09..72c2fde 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -6,3 +6,7 @@ weight: 930 {{< alert level="info" >}} Выпуск релиза планируется 06.04.2026 {{< /alert >}} + +## Исправленные проблемы + +- Исправлена синхронизация источников данных при отсутствующих правилах сопоставления: удаление несуществующих сущностей, обновление параметров или создание связей сущностей теперь запускается только при наличии хотя бы одного правила сопоставления. Создание новых сущностей остается возможным, даже если правила сопоставления не заданы. From f52585ae7c86636c76d01c2e12cb7ff427b9eb62 Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Thu, 5 Mar 2026 11:26:00 +0300 Subject: [PATCH 21/22] add release notes --- .../admin/external-services.ru.md | 18 ------------------ .../documentation/admin/widgets/types.ru.md | 16 ++++++++-------- .../documentation/release-notes/v1.3.0.ru.md | 2 +- .../documentation/release-notes/v1.4.0.ru.md | 6 ++++++ 4 files changed, 15 insertions(+), 27 deletions(-) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index 65dda00..4a7196c 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -105,22 +105,6 @@ Authorization: <ваш-api-token> Authorization: Token <ваш-defectdojo-api-v2-key> ``` -### Bitbucket - -**Тип авторизации:** Bearer Token (Personal Access Token). - -**Заголовки:** - -| Заголовок | Формат значения | -|-----------|-----------------| -| `Authorization` | `Bearer <токен>` | - -**Пример:** - -```sh -Authorization: Bearer <ваш-bitbucket-personal-access-token> -``` - ### Docker Registry **Тип авторизации:** Basic Authentication. @@ -175,8 +159,6 @@ Private-Token: <ваш-gitlab-token> Authorization: Bearer <ваш-bitbucket-personal-access-token> ``` -### Harbor - **Тип авторизации:** Basic Authentication. **Заголовки:** diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index 2efcefa..cadd762 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -430,18 +430,18 @@ title: Типы виджетов | Путь | опционально | Путь к директории в репозитории (оставьте пустым для корня) | - | | Рекурсивно | опционально | Получать файлы рекурсивно из поддиректорий | false | -### Конфигурация для провайдера GitLab +### Конфигурация для GitLab | Название | Опциональность | Описание | Значение по умолчанию | |--------------|-----------------|--------------------------------------------------|-----------------------| | ID проекта | **обязательно** | Идентификатор проекта в GitLab. Пример: `12345` | - | -### Конфигурация для провайдера Bitbucket +### Конфигурация для Bitbucket -| Название | Опциональность | Описание | Значение по умолчанию | -|---------------------------|-----------------|--------------------------------------------------------------------------|-----------------------| -| Ключ проекта | **обязательно** | Ключ проекта в Bitbucket. Пример: `MYPROJ` | - | -| Идентификатор репозитория | **обязательно** | Идентификатор репозитория в Bitbucket. Пример: `my-repo` | - | +| Название | Опциональность | Описание | Пример | Значение по умолчанию | +|---------------------------|-----------------|---------------------------------------|----------|-----------------------| +| Ключ проекта | **обязательно** | Ключ проекта в Bitbucket | MYPROJ | - | +| Идентификатор репозитория | **обязательно** | Идентификатор репозитория в Bitbucket | my-repo | - | ## Jenkins. Пайплайны @@ -453,8 +453,8 @@ title: Типы виджетов ### Конфигурация -| Название | Обязательность | Описание | Значение по умолчанию | -|------------|-----------------|-------------------------------------------------------------------------------------|-----------------------| +| Название | Обязательность | Описание | Значение по умолчанию | +|------------|-----------------|----------------------------------------------------------------------------|-----------------------| | URL | **да** | URL Jenkins. Используется для получения данных из Jenkins | - | | Название | **да** | Название пайплайна в Jenkins. Поддерживается вложенность: `folder1/folder2/jobName` | - | diff --git a/content/documentation/release-notes/v1.3.0.ru.md b/content/documentation/release-notes/v1.3.0.ru.md index 3168909..2a372ac 100644 --- a/content/documentation/release-notes/v1.3.0.ru.md +++ b/content/documentation/release-notes/v1.3.0.ru.md @@ -18,7 +18,7 @@ weight: 940 Добавлены новые виджеты: -- **Просмотр репозитория** — для просмотра структуры и содержимого файлов в репозиториях. Поддерживаются провайдеры GitLab и Bitbucket ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). +- **Просмотр репозитория** — для просмотра структуры и содержимого файлов в репозиториях ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). - **Jenkins. Пайплайны** — для управления сборками в Jenkins ([подробнее](../../admin/widgets/types/#jenkins-пайплайны)). - **Jira. Задачи** — для просмотра задач в Jira ([подробнее](../../admin/widgets/types/#jira-задачи)). - **Bitbucket. Pull Requests** — для просмотра и управления Pull Requests в Bitbucket ([подробнее](../../admin/widgets/types/#bitbucket-pull-requests)). diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index 72c2fde..d1dc11d 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -7,6 +7,12 @@ weight: 930 Выпуск релиза планируется 06.04.2026 {{< /alert >}} +## Новые возможности + +### Виджеты + +- В виджете **Просмотр репозитория** добавлена поддержка Bitbucket ([подробнее](../../admin/widgets/types/#просмотр-репозитория)). + ## Исправленные проблемы - Исправлена синхронизация источников данных при отсутствующих правилах сопоставления: удаление несуществующих сущностей, обновление параметров или создание связей сущностей теперь запускается только при наличии хотя бы одного правила сопоставления. Создание новых сущностей остается возможным, даже если правила сопоставления не заданы. From a863bbbc13f902d62f4ad9495de3b0874c068acb Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Thu, 5 Mar 2026 11:29:11 +0300 Subject: [PATCH 22/22] fix harbor in external services --- content/documentation/admin/external-services.ru.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index 4a7196c..f6cdf78 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -159,6 +159,8 @@ Private-Token: <ваш-gitlab-token> Authorization: Bearer <ваш-bitbucket-personal-access-token> ``` +### Harbor + **Тип авторизации:** Basic Authentication. **Заголовки:**