VK Registry logo
Помощь
Обновлена 12 октября 2026 г. в 15:32

Селекторы содержимого

Селектор содержимого позволяет ограничить доступ пользователей к части содержимого репозитория. Например, чтобы разные команды разработчиков работали в одном репозитории, не мешая друг другу.

Селектор содержимого содержит выражение на языке CSEL, которое определяет доступные пути в репозитории. На основе селектора создается право доступа. Право доступа назначается роли, а роль — пользователю.

Для репозиториев PyPI, APT, Docker и групповых репозиториев есть особенности в применении таких прав доступа, ознакомьтесь с ними. Подробнее — в разделе Особенности прав доступа.

Создание селектора содержимого

  1. Авторизуйтесь в VK Registry с помощью учетной записи администратора.

  2. Перейдите в раздел Безопасность → Селекторы содержимого.

  3. Нажмите кнопку Создать селектор.

  4. Задайте параметры:

    • Имя — уникальное имя селектора содержимого.
    • (Опционально) Описание — описание селектора содержимого.
    • Выражение — выражение на языке CSEL, до 4000 символов. Пример: format == "raw" and path =~ "/.*.jar". Подробнее — в разделе Выражения CSEL.
  5. (Опционально) Чтобы проверить, какие пути попадают в селектор содержимого, в блоке Предпросмотр выберите репозиторий и нажмите Предпросмотр. Отобразятся до 10 артефактов из указанного репозитория, пути которых соответствуют выражению CSEL.

  6. Нажмите кнопку Сохранить.

Используйте селектор содержимого, чтобы создать право доступа (подробнее — в разделе Создание права доступа).

Выражения CSEL

Выражение CSEL состоит из атрибутов и операторов:

Таблица 1 — Атрибуты CSEL

Атрибут

Обязательный

Описание

Пример

path

Селекторы содержимого

Путь к содержимому репозитория относительно корня. Ведущий слеш необязателен

С ведущим слешем: path =^ "/org/apache/"

Без ведущего слеша: path =^ "org/apache/"

format

Селекторы содержимого

Формат репозитория. Допустимые значения:

apt

conda

docker

go

helm

maven2

npm

nuget

pypi

raw

rubygems

terraform

yum

format == "npm"

Таблица 2 — Операторы CSEL

Оператор

Описание

Примеры

==

Точное совпадение

format == "raw"

path == "/com/example/"

!=

Несовпадение

path != "test.jar"

format != "maven2"

=^

Начинается с

path =^ "/org/apache/commons/"

path =^ "org/apache/" (без ведущего слеша)

and, &&

Все условия выполняются

format == "maven2" and path =^ "/org/apache/commons"

format == "npm" && path =^ "/@myorg/"

or, ||

Хотя бы одно условие выполняется

format == "raw" || format == "conda"

format == "maven2" or format == "npm"

(expr)

Группировка условий

format == "npm" or (format == "maven2" and path =^ "/org/apache/commons")

format == "maven2" and (path =^ "/com/" or path =^ "/org/")

=~

Регулярное выражение Java (подробнее — в официальной документации Oracle).

Избегайте использование оператора =~ там, где можно использовать =^. Оператор =^ работает значительно быстрее, особенно в больших репозиториях

path =~ "^/org/apache/commons/.*"

path =~ "^.*/test-.*\\.jar$"

Редактирование селектора содержимого

Доступны для изменения все параметры кроме Имя.

Чтобы отредактировать селектор содержимого:

  1. Авторизуйтесь в VK Registry с помощью учетной записи администратора.
  2. Перейдите в раздел Безопасность → Селекторы содержимого.
  3. Нажмите на название нужного селектора содержимого.
  4. Отредактируйте параметры.
  5. Нажмите кнопку Сохранить.

Удаление селектора содержимого

Если селектор содержимого указан хотя бы в одном праве доступа, VK Registry заблокирует удаление. Сначала удалите или измените все права доступа, созданные на основе нужного селектора (подробнее — в разделе Права доступа).

Чтобы удалить селектор содержимого:

  1. Авторизуйтесь в VK Registry с помощью учетной записи администратора.
  2. Перейдите в раздел Безопасность → Селекторы содержимого.
  3. Нажмите Селекторы содержимого в строке селектора содержимого и выберите пункт Удалить.
Была ли статья полезна?