Как применить Artifactory Permission Target к пунктам и другим не предсказуемым / читаемым репо? - PullRequest
0 голосов
/ 01 ноября 2018

Чтобы сделать Artifactory максимально самообслуживанием для наших пользователей, предоставляя пользователям разрешения на развертывание в частях репозиториев с использованием их личных или групповых учетных записей, я пытаюсь выяснить, как это настроить. Для читаемых репозиториев, основанных на структуре каталогов, как и все в мире Java, Permission Targets отлично работает (https://www.jfrog.com/confluence/display/RTF/Managing+Permissions).). Но я не могу найти никаких документов о том, как использовать это для не-предсказуемых / читабельных структур каталогов, как PIP, или плоская структура каталогов, как NPM.

В мире Java репозитории имеют хорошо структурированное дерево, например:

~/.m2/repository$ tree org/ | head -20
org/
├── antlr
│   ├── antlr4-master
│   │   └── 4.7.1
│   │       ├── antlr4-master-4.7.1.pom
│   │       ├── antlr4-master-4.7.1.pom.sha1
│   │       └── _remote.repositories
│   └── antlr4-runtime
│       └── 4.7.1
│           ├── antlr4-runtime-4.7.1.jar
│           ├── antlr4-runtime-4.7.1.jar.sha1
│           ├── antlr4-runtime-4.7.1.pom
│           ├── antlr4-runtime-4.7.1.pom.sha1
│           └── _remote.repositories
├── apache
│   ├── ant
│   │   ├── ant
│   │   │   ├── 1.10.1
│   │   │   │   ├── ant-1.10.1.jar
│   │   │   │   ├── ant-1.10.1.jar.sha1

Например, чтобы дать teamantl разрешение только на чтение, аннотирование и запись в org/antlr/antlr4-master/**, следующий json может быть PUT to Artifactory REST API (PUT /api/security/permissions/{permissionTargetName})

{
  "includesPattern": "org/antlr/antlr4-master/**",
  "repositories": [
    "libs-release-local",
    "libs-snapshot-local"
  ],
  "principals": {
    "groups" : {
      "teamantl": ["r","n","w"]
    }
  }
}

Но, например, пип-репо полностью хэшируется: Hashed PIP repo tree Что совершенно бесполезно в целевом разрешении "includesPattern".

Как это должно (Цели разрешений) работать для репо, таких как PIP и NPM?

1 Ответ

0 голосов
/ 05 ноября 2018

На скриншоте показано виртуальное хранилище PyPI, которое генерируется и, следовательно, имеет хэш-структуру.

Обычно они поддерживаются физическими репозиториями, заполненными с использованием twine upload и, таким образом, имеющими структуру ‹pkg›/‹version›/‹file› - то есть идеально пригодными для использования в качестве целей разрешения с гранулярностью пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...