Чтобы сделать 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"]
}
}
}
Но, например, пип-репо полностью хэшируется:
Что совершенно бесполезно в целевом разрешении "includesPattern".
Как это должно (Цели разрешений) работать для репо, таких как PIP и NPM?