为使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放置到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)?
答案 0 :(得分:1)
您的屏幕快照显示了一个虚拟 PyPI存储库,该存储库已生成并因此具有哈希结构。
通常,这些文件由 physical 存储库支持,使用twine upload
填充,因此具有‹pkg›/‹version›/‹file›
结构–即,完全可以用作具有包粒度的许可目标。