获取系统设置
描述:获取系统设置
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/设置
请求头信息:N/A
消耗:N/A
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings"
响应状态码:
200 -成功
响应标头:N/A
生产:application / json
{"call_home_enabled": true}
更新系统设置
描述:更新系统设置
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/设置
请求头信息:N/A
消耗:application / json
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings" -T system_settings.json
{"call_home_enabled": true}
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
call_home_enabled |
布尔 |
没有 |
假 |
1.6 |
如果启用,发送使用统计数据到JFrog |
响应状态码:
200 -成功
签名密钥
上传和传播用于分发的GPG签名密钥
描述:GPG密钥用于签署发布包。GPG密钥对将自动传播到Artifactory Source和destination。你可以用它来做以下事情之一:
- 上传GPG密钥对到JFrog分发从您的文件系统
- 从保险库中取回钥匙。
笔记:
- 要求JFrog任务控制4.5.0及以上版本。
- 分发依赖于JFrog任务控制与jpd通信来传播GPG密钥
- 这些键必须复制并粘贴到请求体中。
- 你不能使用
public_key
而且private_key
参数vault_data
参数。 - 的
vault_id
参数应该是Hashicorp,因为它是目前唯一受支持的仓库。
自:2.4
从版本2.8.1开始,分发版支持管理多个GPG签名密钥签署发布包。这使您能够为每个发布包分配一个签名密钥对,为您提供粒度来选择使用哪些密钥来签署发布包,而不是使用相同的密钥对来签署所有的密钥。
安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}
请求头信息:N/A
消耗:application / json
的JSON请求体应该有“set_as_default”:真的
如果这是设置的第一个键,或者Artifactory中没有默认键。
职位:/ api / v1 /键/{协议:pgp | gpg}身体:{“关键”:{“public_key”:“——开始pgp公钥块……——结束PGP公钥块”、“private_key”:“——开始PGP私钥块……----- end PGP私钥块-----"}, "propagate_to_edge_nodes": true, "fail_on_propagation_failure": false } Expected response: { "report": { "message" : "error message if exists" "status" : PARTIAL_SUCCESS | SUCCESS | FAILURE | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE "details" : [ { "jpd_id" : "id1", "name" : "US-EAST" "key_alias" : "my first key" "status" : "SUCCESS" }, { "jpd_id" : "id2", "name" : "US-WEST" "key_alias" : "my first key" "status" : "SUCCESS" }, ] } }
{"key": {"alias": "name", "public_key": "", "private_key": ""}, "propagate_to_edge_nodes": false, "fail_on_propagation_failure": false, "set_as_default": true}
身体:{“fail_on_propagation_failure”:假的,“propagate_to_edge_nodes”:假的,“关键”:{" vault_data ":{“vault_id”:“hashicorp”、“public_key”:{“路径”:“kv /公共/路径”,“关键”:“公共”},“private_key”:{“路径”:“kv /私人/路径”,“关键”:“私人”}预期响应:{"报告":{“消息”:“如果存在错误消息”“状态”:PARTIAL_SUCCESS失败成功| | | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE“细节”:[{“jpd_id”:"id1", "name": "US-EAST" "key_alias": "my first key" "status": "SUCCESS"}, {"jpd_id": "id2", "name": "US-WEST" "key_alias": "my first key" "status": "SUCCESS"},]}}
更新别名
描述:更新别名。
自:2.8.1发布
安全:管理员只
用法:PUT键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json
{"new_alias": {}}
得到关键
描述:按别名检索公钥。
自:2.8.1发布
安全:管理员只
用法:得到键/ gpg /{别名}
消耗: application / json
{“别名”:“别名”“public_key”:“——开始PGP公钥块…----- end PGP公钥块-----",}
获取钥匙清单
描述:检索所有键的列表。
自:2.8.1发布
安全:管理员只
用法:/ / gpg钥匙/别名
消耗:application / json
[{“别名”:“别名”,“默认”:假|真,“密码”:假|真 }, .......]
删除键
描述:删除键。
自:2.8.1发布
请注意:删除默认密钥后,上传的密钥将自动使用最早的密钥作为默认密钥。
安全:管理员只
用法:删除/键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json
将GPG签名密钥传播到分布边缘
描述:传播GPG密钥对到新添加的分布边缘。
自:2.4
笔记:需要任务控制4.5.0及以上版本。
安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}/传播
请求头信息:N/A
消耗:application / json
POST / api / v1 /键/{协议:pgp | gpg} /传播反应:{"报告":{“消息”:“错误消息如果存在”“状态”:PARTIAL_SUCCESS失败成功| | | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE“细节”:[{“jpd_id”:“id1”、“名称”:“美国东部”“key_alias”:“我的第一个关键”“状态”:“成功”},{“jpd_id”:“id2”、“名称”:“于”“key_alias”:“我的第一个关键”“状态”:”成功 " }, ] } }
上传GPG签名密钥分发
描述:上传GPG密钥对给JFrog发行公司。此密钥对将用于签署发布包。
自:1.0
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg
{“public_key”:“——开始PGP公钥 ----- ....——结束PGP公钥块”、“private_key”:“——开始PGP私钥 ----- ....----- end PGP私钥块-----"}
响应状态码:
200 -键已成功设置。
{"status_code ": 201, "message": "Set GPG public & private key"}
获取公开密码匙
描述:返回在分发中设置的公共GPG密钥。
注意:T私钥字段将以JSON响应格式显示,仅当该公钥的私钥存在于DB中时才会显示。
当GPG公钥一开始就没有上传时,将返回以下消息:“分发中不存在公共GPG密钥”。
自:tripwire
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:得到/ api / v1 / / gpg钥匙
消耗:application / json
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg"
回应:
{“public_key”:“公共gpg密钥> <”、“private_key ": "****" }
发布包
创建发布包版本
描述:创建一个新的发布包版本。
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle" -T createbundle.json
{"name": "" ", "version": "" ", "dry_run": true|false, "sign_immediately": true|false, "storing_repository": "repository-name"|null, "description": "" release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": ""}, "spec": {"queries": [{"aql": "items. "找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
的名字 |
字符串 | 是的 | N/A | 1.0 | 发布包名称 |
版本 |
字符串 | 是的 | N/A | 1.0 | 发布包版本 |
dry_run |
布尔 | 没有 | 假 | 1.0 | 如果为真,则只进行解析和验证。 注意:在2.x以下的版本中,此参数默认设置为true。 |
sign_immediately |
布尔 | 没有 | 假 | 1.2 | 如果为真,则自动签署发布包版本。 |
storing_repository |
字符串 | 没有 | 零 | 1.3 | 源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。 |
描述 |
字符串 | 没有 | 零 | 1.0 | 发布包的描述 |
release_notes |
字符串 | 没有 | 零 | 1.0 | 描述发布包版本的发布说明 |
release_notes.syntax |
字符串 | 没有 | “plain_text” | 1.0 | 发布说明的语法 |
release_notes.content |
字符串 | 是的 | N/A | 1.0 | 发行说明的内容 |
规范 |
对象 | 是的 | N/A | 1.0 | 通过在此发布包中收集和分发的工件描述规范 |
spec.source_artifactory_id |
字符串 | 弃用 | N/A | 2.0 | |
spec.queries |
列表(对象) | 是的 | N/A | 1.0 | 用于收集工件的查询对象的列表。 |
spec.queries.aql |
字符串 | 是的 | N/A | 1.0 | AQL查询从Artifactory收集工件 |
spec.queries.query_name |
字符串 | 没有 | “查询-{指数}” | 1.0 | 显示查询对象时使用的名称 |
spec.queries.added_props |
列表(对象) | 没有 | 零 | 1.0 | 在发布包发布后将添加到工件的已添加属性的列表 |
spec.queries.added_props.key |
字符串 | 是的 | N/A | 1.0 |
要在分布式构件上创建或更新的属性键。
|
spec.queries.added_props.values |
列表(字符串) | 没有 | [] | 1.0 | 发布包发布后要添加到属性键的值列表 |
spec.queries.mappings |
列表(对象) | 没有 | 零 | 1.0 | 映射的列表,在发布包发布后应用到工件路径 |
spec.queries.mappings.input |
字符串 | 是的 | N/A | 1.0 | 用于工件路径的正则表达式匹配器 |
spec.queries.mappings.output |
字符串 | 是的 | N/A | 1.0 | 替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。 |
spec.exclude_props_patterns |
列表(字符串) | 没有 | 零 | 2.5.0 | 发布包发布后要排除的Properties键的模式列表。这不会对“added_props ”的特性。 |
响应状态码:
201 -成功创建发布包版本
409 -已经存在同名和版本的发布包
X -从Artifactory AQL传递错误的状态码
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "target_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…]}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string (null if not blocked)},…], "archived": false}
NPM, Bower和NuGet包类型
当使用像NPM, Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个单独的发布包:一个工件发布包,以及2。依赖项发布包。
您可以生成build.info使用JFrog CLI,并使用以下方法创建发布包依赖而且工件AQL查询:
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)
动态发布包
描述:创建、签署并分发一个特别的发布包到分发边。
自:2.8.1发布
安全:仅限认证用户。用户必须有匹配Bundle写权限.
用法:发布api / v1 /动态/分发
{"storing_repository": "repo-name" "spec": {"queries": [{"aql": "items. "找到({\“美元和\”:[{\“美元或\”:[{\“回购\”:{\“$ eq \”,\“example-repo-local \"}}]}]})", " query_name demo-aql“:” " } ] }, " distribution_rules”:[{:“:域名?通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}]}
更新发布包版本
描述:更新现有的未签名发布包版本。
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version" -T createbundle.json
{"dry_run": true|false, "sign_immediate ": true|false, "description": "" ", "storing_repository": "repository-name"|null, "release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": ""}, "spec": {"queries": [{"aql": "items. "找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
dry_run |
布尔 |
没有 |
假 |
1.2 |
如果为真,则只进行解析和验证。 |
sign_immediately |
布尔 |
没有 |
假 |
1.2 |
如果为真,则自动签署发布包版本。 |
storing_repository |
字符串 |
没有 |
零 |
1.3 |
源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。 |
描述 |
字符串 |
没有 |
零 |
1.2 |
发布包的描述 |
release_notes |
字符串 |
没有 |
零 |
1.2 |
描述发布包版本的发布说明 |
release_notes.syntax |
字符串 |
没有 |
“plain_text” |
1.2 |
发布说明的语法 |
release_notes.content |
字符串 |
是的 |
N/A |
1.2 |
发行说明的内容 |
规范 |
对象 |
是的 |
N/A |
1.2 |
通过在此发布包中收集和分发的工件描述规范 |
spec.queries |
列表(对象) |
是的 |
N/A |
1.2 |
用于收集工件的查询对象的列表。 |
spec.queries.aql |
字符串 |
是的 |
N/A |
1.2 |
AQL查询从Artifactory收集工件 |
spec.queries.query_name |
字符串 |
没有 |
“查询-{指数}” |
1.2 |
显示查询对象时使用的名称 |
spec.queries.added_props |
列表(对象) |
没有 |
零 |
1.2 |
在发布包发布后将添加到工件的已添加属性的列表 |
spec.queries.added_props.key |
字符串 |
是的 |
N/A |
1.2 |
要在分布式工件上创建或更新的属性键 |
spec.queries.added_props.values |
列表(字符串) |
没有 |
[] |
1.2 |
发布包发布后要添加到属性键的值列表 |
spec.queries.mappings |
列表(对象) |
没有 |
零 |
1.2 |
映射的列表,在发布包发布后应用到工件路径 |
spec.queries.mappings.input |
字符串 |
是的 |
N/A |
1.2 |
用于工件路径的正则表达式匹配器 |
spec.queries.mappings.output |
字符串 |
是的 |
N/A |
1.2 |
替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。 |
spec.exclude_props_patterns |
列表(字符串) | 没有 | 零 | 2.5.0 | 发布包发布后要排除的Properties键的模式列表。这不会对“ |
响应状态码:
200 -成功更新发布包版本
400 -发布包版本已签署
X -从Artifactory AQL传递错误的状态码
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "target_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…]}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string (null if not blocked)},…], "archived": false}
NPM, Bower和NuGet包类型
当使用像NPM, Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个单独的发布包:一个工件发布包,以及2。依赖项发布包。
您可以生成build.info使用JFrog CLI,并使用以下方法创建发布包依赖而且工件AQL查询:
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)
签署发布包版本
描述:签署一个发布包版本,并将其存储在存储库中的源Artifactory(需要Artifactory 6.5或更高版本)中。
自:1.2
安全:仅限认证用户。用户必须有匹配Bundle写权限.
用法:发布api / v1 / release_bundle /:名称/:版本/标志
请求头信息:X-GPG-PASSPHRASE - String -签名密钥的密码短语,如果适用的话
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/sign"
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
storing_repository |
字符串 |
没有 |
零 |
1.3 |
源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。 |
signing_key_alias |
字符串 | 没有 | 默认的关键 | 2.8.1发布 | 将用于签署发布包的密钥的名称。如果没有提供别名,将使用默认密钥。 |
响应状态码:
200 -成功签署发布包版本
400 -发布包版本已经签署
响应标头:N/A
生产:application / json
{"name": "bundle-name", "version": "1.0", "state": "SIGNED", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py" . "Version ", "values":["1.0"]},…},…], "archived": false}
获取所有发布包的所有版本
描述:返回所有发布包版本。这个端点支持分页,每页最多返回10个发布包。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle?start_pos = 0 "
响应状态码:
200 -成功
X-RangeLimit-Total -数字
生产:application / json
[{"name": "release-bundle-name", "version": "1.0.0", "state": "OPEN", "description": "release bundle描述文本","release_notes": {"content": "release notes文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]" "artifacts": [], "archived": false},…]
获取发布包版本
描述:返回所有发布包版本。这个端点支持分页,每页最多返回10个发布包。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name?start_pos = 0 "
响应状态码:
X-RangeLimit-Total -数字
生产:application / json
[{"name": "release-bundle-name", "version": "1", "state": "OPEN", "description": "release bundle描述文本","release_notes": {"content": "release notes描述文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31", "props": [{"key": "build. "时间戳","values":["1521049005953"]},…, "source_repo_path: "artifactory-generic/artifactory-client-java-api-0.9.2.jar", "target_repo_path": "artifactory-generic/artifactory-client-java-api-0.9.2.jar"},…, "archived": false},…]
获取发布包版本
描述:查看特定的发布包版本。支持多种响应格式。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version?= json格式”
响应状态码:
生产:application / json(默认)
{"name": "Bundle -name", "version": "1.0.0", "state": "OPEN", "description": "Bundle描述","release_notes": {"content": "发布说明描述文本","syntax": "plain_text"}, "created": "2018-05-02T08:45:16.860Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"source_repo_path": "example-repo-local/截图2018-04-05 at 10.47.16.png", "target_repo_path": "example-repo-local/ change/截图2018-04-05 at 10.47.16.png", "checksum":"5a730b01e81e2aa3b5188bcef3be8e4e7d61f83b6156b22a33c9a3f23ff38e19", "props": [{"key": "jira", "values":["1"]}]},…], "archived": false}
{"header": "eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9", "payload":“eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2YjIyYTMzYzlhM2YyM2ZmMzhlMTkiLCJwcm9wcyI6 w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyywezyjuxodhiy2vmm2jlogu0ztdknjfmodninje1 nmiymmezm2m5ytnmmjnmzjm4zte5iiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19lhsicmvwb19wyxroijoizxhhbxbszs1yzxbvlwxvy2fsl2fjagfuz2uvu2nyzwvuifnob3qgmjaxoc0wnc0wnsbhdcaxmc40ny4xniaomykucg5niiwiy2hly2tzdw0ioijjymzjzjk0nzkzyzq1ztk5nmy2ytqxody5m2zjyjbhzdu1nzrkmzjiyzuwn2njnmvjmdazmdkxmmfjmwq3mduziiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19xx0”、“签名”:“QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g”}
eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9.eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2 yjiyytmzyzlhm2yym2zmmzhlmtkilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyYWEzYjUxODhiY2VmM2JlOGU0ZTdkNjFmODNiNjE1NmIyMmEzM2M5YTNmMjNmZjM4ZTE5IiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19LHsicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNiAoMykucG5nIiwiY2hlY2tzdW0iOiJjYmZjZjk0NzkzYzQ1ZTk5NmY2YTQxODY5M2ZjYjBhZDU1NzRkMzJiYzUwN2NjNmVjMDAzMDkxMmFjMWQ3MDUzIiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19XX0.QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g
获取最后一个发布包版本
描述:检索发布包的最新版本。
请注意: Latest是保留词。发布包版本不能包含此词。
自:tripwire
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:/ api / v1 /release_bundle /名称/:最新
请求头信息:N/A
消耗:N/A
旋度
$ curl -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/LATEST”
响应状态码:
200 -成功
403 -没有发布包的权限
404 -没有找到发布包或发布包版本
响应
{"name": "the_release_bundle", "version": "6", "storing_repository": "release-bundles", "description": "Maven bundle描述","created": "2020-05-03T12:33:40.759+0300", "created_by": "[username]", "distributed_by": "[username]", "artifacts": [{"checksum": "d4f8baa9d0b46aa1e5d9e60bfd7acc1265c51723844d81ad0b2dfc9f702e89f8", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/folder1/public_key.txt", "targetRepoPath":"example-repo-local/folder1/public_key.txt"}, {"checksum": "c7e875ebb4a69de287eb040375a88d254acf85c2b69dc9a59689d657e7f2d3cb", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/audio-1.5.0.tar.gz", "targetRepoPath": "example-repo-local/audio-1.5.0.tar.gz"}], "artifacts_size": 2892, "archived": false, "state": "SIGNED", "spec": {"queries": [{"aql": "items "。find({\"repo\": \"example-repo-local\"})", "query_name": "query-0", "mappings": [], " adde_props ": [], "query_type": "AQL"}], "exclude_props_patterns": ["example_exclude_prop_pattern_1", "example_example_prop_pattern_2"]}}
删除发布包所有版本
描述:只删除JFrog发行版上发布包的所有版本.若要从分布边缘删除,请参见从分发边缘删除发布包版本.
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name"
响应状态码:
204 -成功删除发布包版本
404 -释放包未找到
生产:N/A
删除发布包版本
描述:仅在JFrog发行版上删除特定的发布包版本。
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version"
响应状态码:
204 -成功删除发布包版本
404 -未找到发布包或发布包版本
导出发布包版本存档文件
描述:触发JFrog发行版的发布包导出过程。有关更多信息,请参见在气隙环境中分发发布包.
注意:导入过程在分布边缘上执行。
自:2.5
安全:仅限认证用户。用户必须有匹配发布Bundle发布权限.
用法:发布api / v1 /出口/ release_bundle /{名称}/ {version}
curl -XPOST 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}' -uadmin:密码
场 |
类型 |
要求 |
默认值 |
自 |
描述 |
---|---|---|---|---|---|
的名字 |
字符串 |
是的 |
N/A |
2.5 |
发布包名称 |
版本 |
字符串 |
是的 |
N/A |
2.5 |
发布包版本 |
响应状态码:
202 -成功触发生成归档导出版本的过程
生成导出版本归档文件失败
获取导出的发布包版本状态
描述:获取导出的发布包进程的状态。有关更多信息,请参见在气隙环境中分发发布包.
自:2.5
安全:仅限认证用户。用户必须有匹配发布Bundle发布权限.
用法:得到的api / v1 /出口/ release_bundle /{名称}/ {version} /状态
消耗:application / json
curl -XGET 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}/status' -uadmin:密码
响应状态码:
202 -请求成功
400 -返回状态失败
{"status":"IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":"optional message in case FAILED and we have some info to pass", "download_url":"http://artifactory_url/path_if_status_completed"}
删除导出的发布包归档文件
描述:从发行版中删除导出的发布包存档。有关更多信息,请参见在气隙环境中分发发布包.
自:2.5
安全:仅限认证用户。用户必须具有Release Bund的删除权限勒。
用法:删除api / v1 /出口/ release_bundle /{名称}/ {version}
消耗:N/A
curl -X DELETE 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}
分布
发布发布包版本
描述:将发布包版本安排到分发边缘。将返回动作跟踪ID。
自:1.0
安全:仅限认证用户。用户必须具有发布包的发布权限。分布边将根据用户的权限进行筛选。
2.13.2版本的权限更改
从发行版2.13.2开始,用户必须具备:
- 读取和部署目标存储库上的权限
- 权限在目标存储库上
- D分配权限在所需的发布包上
这与以前的版本相比是一个突破性的变化,任何拥有任何权限的用户都可以分发发布包。
用法:POST / api / v1 /分销/:名称/:版本
请求头信息:N/A
消耗:application / json
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version" -T distribute.json
{"dry_run": true|false, "auto_create_missing_repositories": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}]}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
|
布尔 | 没有 | 假 | 如果为真,则只进行解析和验证。 |
|
布尔 | 没有 | 假 | 从2.8.1版开始。 如果这是真的,这使您能够在分发发布包时自动在目标边缘或Artifactory上创建缺失的目标存储库。有关更多信息,请参见目标存储库自动创建. |
|
列表(对象) | 是的 | N/A | 描述用于选择“分布边缘”的筛选器。必须解析至少一条边。 |
|
字符串 | 没有 | “*” | 网站名称的通配符过滤器 |
|
字符串 | 没有 | “*” | 站点城市名称的通配符筛选器 |
|
列表(字符串) | 没有 | ["*"] | 用于站点国家代码的通配符过滤器 |
响应状态码:
200 - dry_run成功
202 -成功调度分发
发布包版本必须在发布前签署
404 -未找到发布包或发布包版本
响应标头:N/A
生产:application / json
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}
停止发布包版本分发
描述:停止发布包版本分发到分发边缘。
用法:把/ api / v1 /分销/:名称/:版本/中止
$ curl -u user:密码-X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version/abort"
响应状态码:
202 -成功计划分发中断。返回受停止请求影响的分布边列表。
204 -没有发现正在进行的分发边
404 -未找到发布包或发布包版本
生产:application / json
[{"name":"US_NY_Art01", "service_id":"jfrt@01cejrg5ack7dd1v3r213a0vx9", "type":"edge"}, {"name":"UK_LN_Art02", "service_id":"jfrt@01cejrfwjtt65d1g9asq8h1cda", "type":"edge"}]
删除从发行版边缘发布捆绑包版本
描述:调度发布包版本以便在分发边中删除。将返回动作跟踪ID。有一个参数,用于在成功时从JFrog分发中保留或删除发布包。
用法:POST / api / v1 /分销/:名称/:/删除版本
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/bundle98/version100/delete" -T delete.json
{"dry_run": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}],"on_success": "keep|delete"}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
dry_run |
布尔 | 没有 | 真正的 | 如果为真,则只进行解析和验证 |
distribution_rules |
列表(对象) | 是的 | N/A | 描述用于选择分布边的过滤器。必须解析至少一条边。 |
distribution_rules.site_name |
字符串 | 没有 | “*” | 网站名称的通配符过滤器 |
distribution_rules.city_name |
字符串 | 没有 | “*” | 站点城市名称的通配符筛选器 |
distribution_rules.country_codes |
列表(字符串) | 没有 | ["*"] | 用于站点国家代码的通配符过滤器 |
on_success |
字符串 | 没有 | 保持 | 在指定的Distribution Edge/s中完成删除后,在JFrog Distribution本身的发布包版本上执行的操作。 |
响应状态码:
200 - dry_run成功
202 -成功计划删除
404 -未找到发布包或发布包版本
生产:application / json
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}
获取分发状态详细信息
描述:获取所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/distribution"
响应状态码:
200 -成功
生产:application / json
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS.]心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF],"duration":[milliseconds], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]
通过发布包名称获取分发状态详细信息
描述:获取发布包的所有版本的所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/distribution"
响应状态码:
200 -成功
生产:application / json
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS.]心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]
按发布包版本获取分发状态详细信息
描述:获取特定发布包版本的所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution"
响应状态码:
200 -成功
生产:application / json
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]
通过跟踪器Id获取分发状态详细信息
描述:获取特定发行版的状态详细信息。
消耗:N/A
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution/:tracker_id”
响应状态码:
200 -成功
生产:application / json
{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. "心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…]}
令牌管理
创建令牌
描述:为现有(非瞬态)用户创建身份验证令牌。
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d 'username=user' -d 'refreshable=true' -d 'scope= application -permissions%2Fadmin' -d "expires_in=123"
响应状态码:
201 -成功创建令牌
生产:application / json
{"access_token": " eyj2zxiioiiyiiwidhlwijoislduiiwiywxnijoiulmyntyilcjrawqioij6wwfwqjvfrlpkoxlpbwtcnkztbdatswfhmhrpwldlx293c1btvtntzmdnin0 . eyjzdwiioiwqtcgvybwqtcgvybwlzc2lvbnncl2fkbwluiiwiyxvkijoiamzkc0awmwcl2fkbwluiiwiyxvkijoiamzkc0awmnomrum3nzodbznm4zdjizmddiosisimlzcyi6impmzhnamdfjada1dgo0bjnzczgwczzum3yymza3yjkilcjianrpijoiytqzm2ywzdatntq5oc00yji5lwe5odctzji3mtnkymmyotdmin0。e7csehchsojxz1jmhdvu_ij51yqyxyifmxusexqzk78pi_7yhljcy1irg6vmthdv8_db2c2csanzydubje253tmglgweypuqqeseh3j3fyfaaw4xxurlkt5inbwklu - dvpg5772zs1y6ypu8oogc2dwg_bhuvjmtj5vqaw0ws5ta2cj0df40jlqkcyn_jcgzq2rcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf5h3fmdb129awxe4_flldltmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": "应用权限/admin", "token_type": "Bearer"}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
grant_type | 字符串 | 没有 | client_credentials | 用于验证请求的授权类型。在这种情况下,唯一支持的值是“client_credentials”,如果不指定该参数,该值也是默认值。 |
用户名 | 字符串 | 是的 | 为其创建令牌的用户名。非管理员用户只能为自己创建令牌,因此他们必须指定自己的用户名。 | |
范围 | 字符串 | 没有 | 要分配给令牌的范围,以空格分隔的范围令牌列表形式提供。目前只有一个可能的范围选项:applied-permissions /管理 |
|
expires_in | 长 | 没有 | 0 | 令牌有效的时间(以秒为单位)。若要指定永不过期的令牌,请设置为0。 |
可刷新的 | 布尔 | 没有 | 假 | 如果为真,则此令牌是可刷新的,并且刷新令牌在过期后可用于用新令牌替换它。 |
刷新令牌
自:1.2
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
grant_type | 字符串 | 是的 | 用于验证请求的授权类型。在这种情况下,唯一支持的值是“refresh_token”。 | |
access_token | 字符串 | 是的 | 要刷新的访问令牌。 | |
refresh_token | 字符串 | 是的 | 需要刷新的接入令牌的刷新令牌。 | |
expires_in | 长 | 没有 | 0 | 令牌有效的时间(以秒为单位)。若要指定永不过期的令牌,请设置为0。 |
可刷新的 | 布尔 | 没有 | 真正的 | 如果为真,则此令牌是可刷新的,并且刷新令牌在过期后可用于用新令牌替换它。 |
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d "grant_type=refresh_token" -d "refresh_token=fgsg53t3g…" -d "access_token=gsfdgw35gt…"
响应状态码:
200 -成功刷新令牌
生产:application / json
{"access_token": " eyj2zxiioiiyiiwidhlwijoislduiiwiywxnijoiulmyntyilcjrawqioij6wwfwqjvfrlpkoxlpbwtcnkztbdatswfhmhrpwldlx293c1btvtntzmdnin0 . eyjzdwiioiwqtcgvybwqtcgvybwlzc2lvbnncl2fkbwluiiwiyxvkijoiamzkc0awmwcl2fkbwluiiwiyxvkijoiamzkc0awmnomrum3nzodbznm4zdjizmddiosisimlzcyi6impmzhnamdfjada1dgo0bjnzczgwczzum3yymza3yjkilcjianrpijoiytqzm2ywzdatntq5oc00yji5lwe5odctzji3mtnkymmyotdmin0。e7csehchsojxz1jmhdvu_ij51yqyxyifmxusexqzk78pi_7yhljcy1irg6vmthdv8_db2c2csanzydubje253tmglgweypuqqeseh3j3fyfaaw4xxurlkt5inbwklu - dvpg5772zs1y6ypu8oogc2dwg_bhuvjmtj5vqaw0ws5ta2cj0df40jlqkcyn_jcgzq2rcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf5h3fmdb129awxe4_flldltmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": "应用权限/admin", "token_type": "Bearer"}
撤销令牌
描述:通过指定令牌或token_id来撤销访问令牌
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token=fasdt3…"
或
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token_id=7e0eec…"
场 | 类型 | 要求 | 描述 |
---|---|---|---|
令牌 | 字符串 | Yes(如果token_id为空) | 要撤销的令牌。如果指定了token_id,则不能指定。 |
token_id |
字符串 | 是(如果令牌为空) | 要撤销的令牌的ID。如果指定了令牌,则不能指定。 |
响应状态码:
获取代币信息
描述:获取特定用户的访问令牌列表。
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token"
响应状态码:
生产:application / json
{"tokens": [{"token_id": "58ae2b6f-085d-493e-b7c3- 6700c034 ", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "admin", "issued_at": 1530088236, "expiry": 2476168236, "refreshable": false}, {"token_id": "5c0399f9-de42-4cc8-bbd6-ba04a8b861a7", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "lenon", "issued_at": 1530089226, "refreshable": true}]}
权限管理
权限操作类型:
d |
删除 |
x |
分发 |
按名称创建/更新目标权限
可以通过指定惟一的权限名称来创建和覆盖权限。
目标权限用于定义与分发边交互的权限,例如分发和删除发布包。
目标权限允许的操作:x, d。
权限应用于分布边,其信息由传递的通配符表达式匹配。
描述:根据权限范围为用户和组创建/更新权限。响应体将包含创建/更新的权限。
$ curl -X PUT -u user:password -H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name" -T permission.json
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}
200 -权限设置成功
响应标头:N/A
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{" user1 ": [x]},“团体”:{“group1”:[x]}}}
获得所有权限
描述:获得所有权限。
用法:/ api / v1 /安全/权限
请求头信息:N/A
消耗:application / json
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions”
响应状态码:
200 -成功
生产:application / json
[{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[" x " ] } } } ]
通过姓名获得许可
描述:按名称获取权限信息。
$ curl -X GET -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”
响应状态码:
200 -成功
404 -未找到权限
生产:application / json
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}
按名称删除权限
描述:根据id删除权限
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”
响应状态码:
204 -成功删除权限
404 -未找到权限
生产:N/A
支持
创建支持包
描述:创建支持包
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/支持/包
请求头信息:N/A
消耗:application / json
生产:application / json
$ curl -X POST -u user:密码-H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle" -T create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "", "name": ""}
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
参数 |
对象 |
没有 |
N/A |
1.6 |
支持包参数 |
parameters.configuration |
布尔 |
没有 |
真正的 |
1.6 |
收集配置文件 |
parameters.logs |
对象 |
没有 |
N/A |
1.6 |
收集所有系统日志,如果没有指定此字段,支持包将收集前一天到今天的日志。 |
parameters.logs.include |
布尔 |
没有 |
真正的 |
1.6 |
收集系统日志。 |
parameters.logs.start_date |
字符串 |
没有 |
end_date的前一天 |
1.6 |
获取日志的起始日期 |
parameters.logs.end_date |
字符串 | 没有 | 今天 | 1.6 | 获取日志的结束日期 |
系统 |
布尔 |
没有 |
真正的 |
1.6 |
关于系统的信息,包括存储、系统属性、cpu和JVM信息 |
thread_dump |
对象 |
没有 |
N/A |
1.6 |
为所有正在运行的线程创建一个线程转储 |
thread_dump.count |
整数 |
没有 |
1 |
1.6 |
要收集的线程转储数 |
thread_dump.interval |
整数 |
没有 |
0 |
1.6 |
收集线程转储的时间间隔(以毫秒为单位) |
描述 |
字符串 |
没有 |
N/A |
1.6 |
支持包描述 |
的名字 |
字符串 | 没有 | N/A | 1.6 | 支持包名称 |
响应状态码:
成功创建支持包
响应标头:N/A
生产:application / json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://: /artifactory/support-bundles/ /jfds/<服务id>}}
创建特定的支持包
描述:创建一个新的支持包,并为其分配一个特定的ID
自:1.6
安全:管理员只
用法:把/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:application / json
生产:application / json
$ curl -X PUT -u user:password -H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id" -T create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "", "name": ""}
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
参数 |
对象 |
没有 |
N/A |
1.6 |
支持包参数 |
parameters.configuration |
布尔 |
没有 |
真正的 |
1.6 |
收集配置文件 |
parameters.logs |
对象 |
没有 |
N/A |
1.6 |
收集所有系统日志,如果没有指定此字段,支持包将收集前一天到今天的日志。 |
parameters.logs.include |
布尔 |
没有 |
真正的 |
1.6 |
收集系统日志。 |
parameters.logs.start_date |
字符串 |
没有 |
end_date的前一天 |
1.6 |
获取日志的起始日期 |
parameters.logs.end_date |
字符串 | 没有 | 今天 | 1.6 | 获取日志的结束日期 |
系统 |
布尔 |
没有 |
真正的 |
1.6 |
关于系统的信息,包括存储、系统属性、cpu和JVM信息 |
thread_dump |
对象 |
没有 |
N/A |
1.6 |
为所有正在运行的线程创建一个线程转储 |
thread_dump.count |
整数 |
没有 |
1 |
1.6 |
要收集的线程转储数 |
thread_dump.interval |
整数 |
没有 |
0 |
1.6 |
收集线程转储的时间间隔(以毫秒为单位) |
描述 |
字符串 |
没有 |
N/A |
1.6 |
支持包描述 |
的名字 |
字符串 | 没有 | N/A | 1.6 | 支持包名称 |
响应状态码:
成功创建支持包
在Artifactory中不存在相应的存储库。支持包将持久化到每个分发边缘中的文件系统。
404 -无法找到Artifactory身份验证提供程序
响应标头:N/A
生产:application / json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://: /artifactory/support-bundles/ /jfds/<服务id>}}
获取支持包信息
描述:获取支持包信息
自:1.6
安全:仅限管理员
用法:GET / api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”
响应状态码:
成功获得支持包信息
404 -没有找到支持包
响应标头:N/A
生产:application / json
{"parameters": {"configuration": true, "logs": {"include": true, "start_date": 2019-01-20, "end_date": 2019-01-21}, "system": true, "thread_dump": {"count": 2, "interval": 100}}, "description": "" name": "" artifactory": {"service_id": "" bundle_url": http://: /artifactory/support-bundles/ /jfds/<服务id>}}, status: success, created: 2019-02-02,}
获取支持包
描述:下载支持包
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包/:bundle_id /存档
请求头信息:N/A
消耗:N/A
$ curl -X GET -u user:password "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id/archive"——output support_bundle.zip
响应状态码:
成功下载支持包
404 -没有找到支持包
响应标头:N/A
内容类型:application/zip
删除支持包
描述:删除支持包
自:1.6
安全:管理员只
用法:删除/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”
响应状态码:
204 -成功删除支持包
404 -没有找到支持包
响应标头:N/A
204无内容
列出支持包
描述:
获取所有支持包的列表
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包
请求头信息:N/A
消耗:N/A
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundles”
响应状态码:
200 -成功
响应标头:N/A
{"count": 2, "bundles": [{id: 20181230145474-53666747,描述:"",名称:"",已创建:2018-12-30,},....]}
维护
生成停止所有任务令牌
描述:生成一个执行令牌以停止所有分发任务。此键与停止所有任务REST API。
自:1.8.1
安全:管理员只
用法:GET / api / v1 /维护/ generate_token / stop_all
请求头信息:N/A
消耗:application / json
生产:application / json
$ curl -XGET -u admin:密码为http://localhost:8080/api/v1/maintenance/generate_token/stop_all
{"token":"JEv4CnrZNhmgtkRV9aKmGsrozGEoaoBs3okv9SFusdhR3hUKiWdKwAhoeP1SLEy8hFZqFhE"}
响应状态码:
200 -成功
停止所有任务
描述:停止所有正在运行的分发任务。需要一个执行令牌.
自:1.8.1
安全:仅限管理员
用法:POST / api / v1 /维护/执行/ stop_all
请求头信息:N/A
消耗:内容类型:文本/平原
生产: application / json
$ curl -XPOST -H "Content-Type: text/plain" -u admin:password "http://localhost:8080/api/v1/maintenance/execute/stop_all?dryRun=false"——data-raw "token…"
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
dryRun |
查询参数 |
是的 |
真正的 |
1.8.1 |
如果为真,则只进行解析和验证。 |
{"trackers_db_info": {"affected_edge_tracker_artifacts": 8, "affected_edge_trackers": 1, "affected_trackers": 1}, "tasks_queue_flushed": true}
响应状态码:
202 -成功中止所有分发任务
响应标头:N/A
x光
触发x射线发布包版本索引
描述:触发发布包版本的x射线索引。
自:2.0.0
安全:仅限认证用户。用户必须有匹配Bundle写权限.
用法:POST /api / v1 / release_bundle /:名称/版本/ trigger_xray_scan
请求头信息:N/A
消耗:N/A
$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/trigger_xray_scan”
响应状态码:
200 -成功
进出口
获取源Artifactory id
描述:列出包含发布包的Artifactory id。用作将发布包元数据导出到相关分发服务之前的初步步骤。
注:为了支持JFrog平台中引入的Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对比例,您需要根据该命令生成的列表将Distribution元数据迁移到Distribution服务中。有关更多信息,请参见分发REST API.
自:2.4
安全:需要管理员用户
用法:GET / api / v1 /系统/迁移/ import_export / source_artifactories
消耗:application / json
生产:application / json
示例用法:
$ curl -X GET -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import_export/source_artifactories”
导出发行版发布包元数据
描述:将分发服务上的发布包元数据导出到export.zip
文件.
注:为了支持JFrog平台中引入的Artifactory_instance_ID的一对一配对比例,你需要根据
自:2.4
用法:POST / api / v1 /系统/迁移/出口/ < Artifactory_instance_ID >- o export.zip
生产:应用程序/邮政编码
示例用法:
$ curl -X POST -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/export/DEV_Art01 -o export.zip”
样品反应:
请举例说明
导入发行版发布包元数据
描述:将发布包从导出的zip文件导入到新创建的分发服务。有关更多信息,请参见分发REST API.
注:为了支持Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对,运行这个命令从核心分发服务导入发布包元数据到新创建的分发服务。有关更多信息,请参见分发REST API.
自:2.4
安全:需要管理员用户
用法:POST / api / v1 /系统/迁移/导入
消耗:多部分/格式
示例用法:
$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import”
错误响应
状态码 | 原因 | 建议的行动 |
---|---|---|
400 | 无效的请求参数(头/体) | 将请求与规范进行比较 |
401 | 端点需要身份验证 | 使用身份验证凭据重复请求 |
403 | 端点权限要求不满足 | 响应将包括必要的权限 |
500 | 请求处理期间出现意外错误 | 检查分发日志 |