使用最新的JFrog产品?hth华体会最新官方网站
JFrog平台用户指南


跳到元数据的末尾
转到元数据的开始

概述

Mission Control提供了一个丰富的REST API,允许对Artifactory和Xray等注册服务进行完全自动化的管理。

这提供了一个方便且最新的自描述API,各种工具可以使用它来自动化管理和配置操作。

版本

任务控制REST API目前是版本3,这是一个主要的升级,包含了与前一个版本相比的重大变化。

如果您仍在使用REST API的版本2,请参考任务控制REST API v2,但请注意,这已被弃用。

我们强烈建议您将您的脚本升级到最新的API版本,并且为了方便所需的修改,请参考版本的映射在下面。

一个uthentication

任务控制中心的REST API支持认证类型:

类型 描述
基本 如果没有设置身份验证提供程序,请使用您的用户名和密码。或者使用本地管理员来执行REST api。
访问令牌

如果设置了身份验证提供程序,则用户必须在授权头中使用访问令牌作为承载令牌。

使用承载令牌进行身份验证的示例:

    1. 创建访问令牌
    2. 运行curl -H 'Authorization: Bearer [token]http://localhost:8080/api/v3/services


使用

任务控制REST API可以用任何标准的REST API方式调用。下面以cURL为例介绍如何使用任务控制REST API。

使用和配置cURL

你可以下载 旋度 在这里。了解如何使用和配置 旋度 在这里。

示例—创建站点

下面的示例演示如何调用create用户REST API。

  • MissionControl运行在本地系统的8080端口上

  • 您希望创建一个名为“us-west”的站点,其中包含Artifactory和x射线服务

  • 您创建了一个文件,其中的站点参数名为createsite.json

要使用该文件创建一个新用户,可以使用以下命令:

使用cURL和REST API
$ curl 'http://localhost:8080/api/v3/sites' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -T createsite.json
文件创建站点。Json将包含以下内容:
{"name": "US - West ", "description": "US西海岸站点","city": {"name": "Sunnyvale", "country_code": "US", "latitude": 37.368830, "longitude": -122.036350}, "services": ["art - West ", "xray-west"]}

系统

系统健康检查

描述:获得任务控制是否正在运行的指示。不需要身份验证。
自:2.0
用法:GET / api / v3 /平
例子:

GET /api/v3/ping true

代理

创建代理

描述:添加代理。

自:3.2
安全:需要admin用户
用法:POST / api / v3 /代理

消耗:application / json


例子:

POST /api/v3/ proxy HTTP/1.1 {"name": "proxy-01", "url": "http://proxyurl:8080", "sites": [{"source_site": "source-Site", "destination_site": "destination-Site"}], "username": "username", "password": "password"}


例子:


$ curl 'http://localhost:8080/api/v3/proxies' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -d '{"name": "proxy-01", "url": "http://proxyurl:8080", "sites": [{"source_site": "source-Site", "destination_site": "destination-Site"}], "username": "username", "password": "password"}'



创建外部代理

描述:添加外部代理。
自:3.2
安全:需要admin用户
用法:POST / api / v3 /代理
消耗:application / json


例子:

POST /api/v3/ proxy HTTP/1.1 {"name": "proxy-01", "url": "http://proxyurl:8080", "sites": [{"source_site": "source-Site"}], "username": "username", "password": "password"}


按名称更新代理

描述:更新代理。
自:3.2
安全:需要admin用户
用法:POST / api / v3 /代理/{名称}
消耗:application / json

例子:


PUT /api/v3/ proxy /proxy-01 HTTP/1.1 {"name": "proxy-01-1", "url": "http://a53dacff-7d2a-4991-bea0-231abe891e52:8080", "sites": [{"source_site": "source-Site2", "destination_site": "destination-Site2"}], "username": "username1", "password": "password1"}


获取代理列表

描述:获取代理列表。
自:3.2
安全:需要admin用户
用法:Get / api / v3 /代理
消耗:application / json

例子:


GET /api/v3/ proxy HTTP/1.1 [{"name": "proxy-01", "url": "http://ff121cae-f1f1-4639-85ff-cb07c744c730", "sites": [{"source_site": "source-site-name", "destination_site": "destination-site-name"}]}, {"name": "proxy-02", "url": "http://14dc60cb-e3c2-476f-b4a6-263adf70a34d", "sites": [{"source_site": "source-site-name"}]}]


命令行:


$ curl 'http://localhost:8080/api/v3/proxies' -i -u 'admin:password' -H 'Content-Type: application/json;charset = utf - 8 '



获取由源服务过滤的代理列表

描述:按源服务获取代理列表。
自:3.2
安全:需要admin用户
用法:/ api / v3 /代理吗?src_service = {service_name}
消耗:application / json


例子:


/ api / v3 /代理吗?src_service=artifactory HTTP/1.1 [{"name": "proxy-01", "url": "http://cfc3cf06-18b2-414c-a3e7-12dfd593201d", "sites": [{"source_site": "source-site-name", "destination_site": "destination-site-name"}]}]



获取由目标服务过滤的代理列表


描述:获取按目标服务过滤的代理列表。
自:3.2
安全:需要admin用户
用法:/ api / v3 /代理吗?dest_service = {destination_service_name}
消耗:application / json

例子:


/ api / v3 /代理吗?dest_service=artifactory HTTP/1.1 [{"name": "proxy-01", "url": "http://609c68a0-9e8c-4104-adac-0623914c85bf", "sites": [{"source_site": "source-site-name", "destination_site": "destination-site-name"}]}]



获取由源和目标服务筛选的代理列表

描述:按源服务获取代理列表。
自:3.2
安全:需要admin用户
用法:/ api / v3 /代理吗?src_service = {source_service_name} &dest_service = {destination_service_name}
消耗:application / json

例子:


/ api / v3 /代理吗?Src_service =source-artifactory&dest_service=destination [{"name": "proxy-01", "url": "http://609c68a0-9e8c-4104-adac-0623914c85bf", "sites": [{"source_site": "source-site-name", "destination_site": "destination-site-name"}]}]



按名称获取代理


描述:按名称获取代理。
自:3.2
安全:需要admin用户
用法:GET / api / v3 /代理/{名称}
消耗:application / json


例子:

GET /api/v3/ proxy /proxy-01 HTTP/1.1 {"name": "proxy-01", "url": "http://0277a02d-5267-46c9-a5c9-7836f0bff8fb", "sites": [{"source_site": "source-Site", "destination_site": "destination-Site"}]}




按名称删除代理

描述:从任务控制中删除代理。
自:3.2
安全:需要admin用户
用法:删除/ api / v3 /代理/{名称}
消耗:application / json

例子:


删除/api/v3/ proxy /proxy-01 HTTP/1.1


网站

这些是配置站点时的相关字段:

类型 可选 描述

名字

字符串 网站的名称
描述 字符串 真正的 网站的描述
城市 对象 网站的城市
city.name 字符串 真正的 城市的名字
city.country_code 字符串 真正的 城市的国家代码
city.longitude 数量 城市的经度
city.latitude 数量 城市的纬度
服务 数组 真正的 服务名称

创建网站

描述:创建一个新站点。

自:2.0
安全:需要admin用户
用法:POST / api / v3 /网站

返回代码:

201 -无内容
400 -找不到具有以下名称的服务:'<服务名称>','<服务名称>'

409 -名称' <网站名称>已经存在了。

消耗:application / json


{"name": "<站点名称>","description": "<站点描述>","city": {"name": "<城市名称>","country_code": "<国家代码>","latitude": <城市纬度坐标>,"longitude": <城市经度坐标>},"services":["<服务名称>"]}


例子:
在本例中,创建了一个新的Sunnyvale站点,并将服务“art -west”和“xray-west”与新站点相关联。如果服务存在,201年创建将被归还。

$ curl 'http://localhost:8080/api/v3/sites' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -T createsite.json



createsite.json
{"name": "US - West ", "description": "US西海岸站点","city": {"name": "Sunnyvale", "country_code": "US", "latitude": 37.368830, "longitude": -122.036350}, "services": ["art - West ", "xray-west"]}



更新站点

描述:按名称更新现有站点。

:自2.0以来
安全:需要admin用户
使用: PUT /api/v3/sites/{name}

返回代码:

204 -无内容
没有找到标识符为“”的实体“Site”

消耗:application / json


{"name": "<更新站点名称>","description": "<更新站点描述>","city": {"name": "<更新城市名称>","country_code": "<更新国家代码>","latitude": <更新城市纬度坐标>,"longitude": <更新城市经度坐标>},"services": [{"name": "<服务名称>","type": ""}]}


例子

在本例中,一个名为阿根廷的现有站点将被更新为具有适当属性的Mexico Data Center。如果网站“阿根廷”存在,204无内容将被归还

$ curl -XPUT 'http://localhost:8080/api/v3/sites/Argentina' -i -u 'admin:password' -H 'Content-Type: application/json;charset=UTF-8' -T updatesite.json
updatesite.json
{"name": "墨西哥数据中心","description": "更新后的站点描述","city": {"name": "Mexico city", "country_code": "MX", "latitude": 19.428470, "longitude": -99.127660}}

按名称部分更新站点

描述:更新网站不更新属性
自:2.1

安全:需要admin用户
用法:把/ api / v3 /服务/{名称}

返回代码:

204 -无内容
消耗:application / json


补丁/ api / v3 /网站/{名称}

例子:

PATCH /api/v3/sites/Site%20name HTTP/1.1 Content-Type: application/json;charset=UTF-8 Host: localhost:8080 Content- length: 119 {"name": "更新后的站点名称","description": "更新后的站点描述","services": ["Artifactory name"]} HTTP/1.1 204无内容

例子:

$ curl 'http://localhost:8080/api/v3/sites/Site%20name' -i -u 'admin:password' -X PATCH -H 'Content-Type: application/json;charset=UTF-8' -d '{"name": "更新后的站点名称","description": "更新后的站点描述","services":["人工名称"]}'



让网站

描述:按名称获取站点

自:2.0
安全:需要admin用户
用法:GET / api / v3 /网站/{名称}

返回代码:

200 -成功
没有找到标识符为“{name}”的实体“Site”。

生产:application / json


{"name": "<站点名称>","description": "<站点描述>","city": {"name": "<城市名称>","country_code": "CODE", "latitude": <城市纬度坐标>,"longitude": <城市经度坐标>},"services": [{"name": "<服务名称>","type": ""}]}


例子:

在本例中,正在检索关于名为“China”的站点的信息。如果网站“中国”存在200年成功将被归还

$ curl -XGET 'http://localhost:8080/api/v3/sites/China' -uadmin:password



示例输出
{"name": "Beijing", "description": "Beijing Data Center", "city": {"name": "Beijing", "country_code": "CN", "latitude": 39.907500, "longitude": 116.397230}, "services": [{"name": " artii - Beijing", "type": "ARTIFACTORY"}]} 200成功

获取站点列表

描述:获取所有站点的列表

自:2.0
安全:需要admin用户
用法:GET / api / v3 /网站/

返回代码:

200 -成功
没有找到标识符为“”的实体“Site”

生产:application / json


[{"name": "<站点名称>","description": "<站点描述>","city": {"name": "<城市名称>","country_code": "CODE", "latitude": <城市纬度坐标>,"longitude": <城市经度坐标>},"services": [{"name": "<服务名称>","type": ""}]}]


例子:

$ curl -XGET 'http://localhost:8080/api/v3/sites' -uadmin:password



示例输出
[{"name": "China", "description": "", "city": {"name": "Shanghai", "country_code": "CN", "latitude": 31.22222, "longitude": 121.45806}, "services": [{"name": "China", "type": "ARTIFACTORY"}]}, {"name": "China", "type": "ARTIFACTORY"}]}, "city": {"name": "Buenos Aires", "country_code": "AR", "latitude": -34.61315, "longitude": -58.37723}, "services": [{"name": "Source Local", "type": "ARTIFACTORY"}]] 200成功


删除网站

描述:删除站点

自:2.0
安全:需要admin用户
用法:删除/ api / v3 /网站/{名称}
返回代码:

200 -成功
409 -无法删除站点{name},它有非空服务:{服务名称}

例子:

$ curl -XDELETE 'http://localhost:8080/api/v3/sites/China' -uadmin:password -H "Content-Type: application/json"




服务

创建服务

描述:创建一个新服务。

自:2.0.在3.2中更新,增加了属性
安全:需要admin用户
用法:POST / api / v3 /服务

返回代码:

2011 -创建
409 -连接服务失败。请确认所提供的服务信息是否正确

消耗:application / json


{"name": "<服务名称>","description": "<服务描述>","url": "<服务url >", "username": "<服务管理员用户名>","password": "<服务管理员密码>","type": "" "site_name": "<站点名称">,"auth_token": "<服务的认证令牌,而不是使用用户名/密码>","pair_with_auth_provider": "", "auth_provider": ""}


例子:

$ curl 'http://localhost:8080/api/v3/services' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -T createservice.json



createservice.json
{"name": "dev-west", "description": "服务西部开发的Artifactory ", "url": "https://artifactory-west.acme.com/artifactory", "username": "admin", "password": "password", "type": "Artifactory "} 201已创建


更新服务

描述:更新服务

自:2.0
安全:需要admin用户
用法:把/ api / v3 /服务/{名称}

返回代码:

204 -无内容
409 - Url 已经存在

消耗:application / json


{"name": "<服务名称>","description": "<服务描述>","url": "<服务url >", "username": "<服务管理员用户名>","password": "<服务管理员密码>"}


例子:

$ curl 'http://localhost:8080/api/v3/services/dev-west' -i -u 'admin:password' -X PUT -H 'Content-Type: application/json;charset=UTF-8' -T updateservice.json



updateservice.json
{"name": "dev-east", "description": "服务东部地区开发的人工","url": "https://artifactory-east.acme.com/artifactory", "username": "admin", "password": "password"} 204无内容


获取服务列表

描述:获取所有服务的列表

自:2.0
安全:需要admin用户
用法:GET / api / v3 /服务/
生产:application / json

例子:

$ curl -XGET 'http://localhost:8080/api/v3/services' -uadmin:password



示例输出
[{"name": "阿根廷","description": "在阿根廷服务的人工工厂","url": "http://10.0.0.8:8082/artifactory", "type": "Artifactory ", "service_type": "jfrt", "service_id": "jfrt@01ccgfzxdyqd3y0d816fns0zhh", "site": {"city": {"country_code": "AR", "latitude": -34.61315, "longitude": -58.37723, "name": "Buenos Aires"}, "description": "" ", "name": "China", "description": "中国","url":"http://10.0.0.8:8081/artifactory", "type": "ARTIFACTORY", "service_type": "jfrt", "service_id": "jfrt@01cdmdjarccxy009wnzmwf06jp", "site": {"city": {"country_code": "CN", "latitude": 31.22222, "longitude": 121.45806, "name": "Shanghai"}, "description": "", "name": "China"}}] 200成功

获取基于源的代理服务列表


描述:获取由任务控制中心使用代理管理的服务列表
自:3.2
安全:需要admin用户
用法:GET请求到/api/v3/services?源=源
消耗:application / json

例子:


GET / api / v3 /服务?源=源%20Artifactory%20Name HTTP/1.1 [ { "name" : "Source Artifactory Name", "url" : "http://Source Artifactory Name.com/artifactory", "type" : "ARTIFACTORY", "service_type" : "jfrt", "service_id" : "jfrt@01crqghgxara0b0ej8nct10dyd", "site" : { "name" : "Source Site Name", "description" : "59551ac7-d8a3-426d-90a7-730219f11ddc", "city" : { "name" : "73955951-ef5c-4864-a118-561b117fdb7c", "latitude" : 66.778899, "longitude" : 44.556644 } } }, { "name" : "Destination Artifactory Name", "url" : "http://Destination Artifactory Name.com/artifactory", "type" : "ARTIFACTORY", "service_type" : "jfrt", "service_id" : "jfrt@01crqghgxf30e91k6gascc1r7p", "site" : { "name" : "Destination Site Name", "description" : "06dce948-ef85-45d6-b600-c2dc8ca57a63", "city" : { "name" : "c64f2329-2021-49ec-9188-cea1840f9df6", "latitude" : 66.778899, "longitude" : 44.556644 } }, "proxy" : { "url" : "http://proxy.com" } } ]


使用基于源的代理按名称获取服务


描述:通过Mission Controlwithproxy管理的名称获取服务。
自:3.2
安全:需要admin用户
用法:GET / api / v3 /服务/{名称}

例子:


GET / api / v3 /服务/ jfrt % 4001 crqgh6fyxtpn1eyddfwa1hk1 ?源=源%20Artifactory%20Name { "name" : "Destination Artifactory Name", "url" : "http://Destination Artifactory Name.com/artifactory", "type" : "ARTIFACTORY", "service_type" : "jfrt", "service_id" : "jfrt@01crqgh6fyxtpn1eyddfwa1hk1", "site" : { "name" : "Destination Site Name", "description" : "31c51fe9-dfa0-48d4-8ce7-675e2b6b1b43", "city" : { "name" : "28759984-cf1a-41bc-952c-33e4e3a7c4a0", "latitude" : 66.778899, "longitude" : 44.556644 } }, "proxy" : { "url" : "http://proxy.com" } }



删除服务

描述:删除服务

自:2.0
安全:需要admin用户
用法:删除/ api / v3 /服务/ {name}
返回代码:

200 -成功

例子:

$ curl -XDELETE 'http://localhost:8080/api/v3/services/Argentina' -uadmin:password -H "Content-Type: application/json"



获取存储库列表

描述:获取指定Artifactory服务中的存储库列表

自:2.0
安全:需要admin用户
用法:得到api / v3 /服务/ artifactory /{名称}/存储库
返回代码:

200 -成功

找不到名称的人工实例
消耗:application / json

例子:

$ curl -XGET 'http://localhost:8080/api/v3/services/artifactory/{name}/repositories' -uadmin:password
示例输出
[{"repository_key": "bower-local", "description": "" type": "local", "package_type": "bower"}, {"repository_key": " general -local", "description": "", "type": "local", "package_type": "generic"}, {"repository_key": "lib -release-local", "description": "" "type": "local", "package_type": "maven"},…{“repository_key”:“npm”、“描述”:“”,“类型”:“虚拟”,“package_type”:“npm”}]



访问联合会

获取单个服务的访问联合配置

描述:获取特定服务的Access Federation配置。返回为所提供的服务配置的Federation目标。

自:3.3
安全:需要admin用户
用法:GET / api / v3 /服务/访问/{名}/联盟
返回代码:

200 -成功
400 -服务不是有效的Access Federation候选。
404 -没有找到该服务或它不是人工制品。
消耗:application / json


请求示例:

GET /api/v3/services/access/artifactory1/federation HTTP/1.1

反应的例子:

{"entities": ["GROUPS", "USERS"], "targets": [{"name": "artifactory2", "code": "access2ServiceId", "url": "http://localhost:37837"}]}



获取所有服务的访问联合配置

描述:获取所有服务的Access Federation配置。

自:3.3
安全:需要admin用户
用法:GET / api / v3 /服务/访问/联盟吗?includeNonConfiguredServices = false
返回代码:

200 -成功

生产:application / json


请求示例:

GET / api / v3 /服务/访问/联盟吗?include_non_configured HTTP / 1.1 = false

反应的例子:

[{"source": "artifactory1", "entities": ["GROUPS", "USERS"], "targets": [{"name": "artifactory2", "code": "access2ServiceId", "url": "url2"}]}]



配置服务上的访问联合

描述:为特定的Artifactory服务配置Access Federation。作为先决条件,源和目标必须基于Access Federation正确配置
自:3.3
安全:需要admin用户
用法:把/ api / v3 /服务/访问/{名}/联邦

返回代码:
200 -成功
400,422 -无效的输入
404 -没有找到服务或不是工件


示例请求:

PUT /api/v3/services/access/artifactory1/federation HTTP/1.1 {"entities": ["USERS", "GROUPS"], "targets": [{"name": "artifactory2", "url": "http://localhost:8080"}]}

示例响应:

[{"label": "获取artifactory1的配置","status": "OK"}, {"label": "从artifactory1获取访问令牌","status": "OK"}, {"label": "检查artifactory2是否信任artifactory1", "status": "OK"}, {"label": "将配置发送给artifactory1", "status": "OK"}, {"label": "将目标artifactory2添加到artifactory1", "status": "OK"}]

获取访问联盟候选人

描述:获取特定服务的访问联合。
自:3.3
安全:需要admin用户
用法:GET / api / v3 /服务/访问/联盟的候选人

返回代码:
200 -成功

请求示例:

GET /api/v3/services/access/federation/candidate HTTP/1.1

反应的例子:

[“服务名称1”,“服务名称2”]



创建网格

描述:创建一个网格拓扑。作为先决条件,源和目标必须基于Access Federation正确配置

自:3.3
安全:需要admin用户
用法:POST / api / v3 /服务/访问/联合会/ create_mesh
返回代码:

200 -成功
400,422 -无效的输入
404 -没有找到服务或不是工件

请求示例:

POST /api/v3/services/access/federation/create_mesh HTTP/1.1

反应的例子:

{"services":["服务名称1","服务名称2"],"entities": ["USERS", "GROUPS", "PERMISSIONS", "TOKENS"]}

监控

获取服务状态

描述:获取所有服务的状态
: 2.0
使用: GET /api/v3/services/monitoring/status

返回代码:

200 -成功

生产: application / json

[{"service_name": "<服务名称>","up_time_in_sec": <服务启动的秒数>,"service_state": "< ONLINE | OFFLINE >"}]


例子


$ curl -XGET 'http://localhost:8080/api/v3/services/monitoring/status' -uadmin:password



示例输出
[{"service_name": "China", "up_time_in_sec": 29282, "service_state": "ONLINE"}, {"service_name": "阿根廷","up_time_in_sec": 131, "service_state": "ONLINE"}] 200成功

获取服务状态

描述:获取指定服务的状态

: 2.0
使用: GET /api/v3/services/{name}/monitoring/status
返回代码:

200 -成功

找不到名称< service -name>的服务
生产: application / json


{"service_name": "<服务名称>","up_time_in_sec": <服务启动的秒数>,"service_state": "< ONLINE | OFFLINE >"}


例子:


$ curl -XGET 'http://localhost:8080/api/v3/services/China/monitoring/status' -uadmin:password



示例输出
{"service_name": "China", "up_time_in_sec": 46182, "service_state": "ONLINE"} 200 Success .输出说明

支持

创建支持包

描述:创建一个新的支持包。
自:3.2
安全:需要admin用户
笔记:所有包项都是可选的。
使用: POST /api/v3/system/support/bundle

返回代码:
202 -支持包正在创建中,很快就会发布
400 -无效的选项值
403 -未经授权

示例使用

POST /api/v3/system/support/bundle HTTP/1.1 {"name": "My support bundle", "description": " support bundle generated because of issue XYZ", "parameters": {"configuration": true, "system": true, "logs": {"include": true, "start_date": "2018-09-19", "end_date": "2018-09-20"}, "thread_dump": {"count": 1, "interval": 0}}

例子:

$ curl -X POST -uadmin:password https://my-mission-control.jfrogdev.co/api/v3/system/support/bundle -H 'Content-Type: application/json' \ -d '{"name": "JFMC支持包","description": "由于XYZ问题而生成的支持包","parameters": {"configuration": true, "system": true, "thread_dump": {"count": 1, "interval": 0}, "logs": {"include": true, "start_date": "2018-12-25", "end_date": "2019-01-07"}}}'

示例输出:

HTTP/1.1 202接受内容-类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 247 {"id": "SUPP20180912154413548991", "artifactory": {"service_id": "jfrt@12d0hodgwb0bz427ldnyyk22se", "bundle_url": "http://artifactory.m.si-fil.com/artifactory/jfrog-support-bundle/SUPP20180912154413548991/jfmc/test_service}}

获取支持包列表

描述:获取可用的支持包列表。
自:3.2
安全:需要admin用户
使用: GET /api/v3/system/support/bundles

返回代码:
200 -成功
403 -未经授权

例子:


GET /api/v3/system/support/bundles HTTP/1.1

回应:

{“计数”:2,“包”:[{“名称”:“一”,“描述”:“aaa级”、“id”:“1”,“创建”:“2018 - 10 - 01 - t09:50:11z”},{“名称”:“B”、“id”:“2”,“创建”:“2018 - 10 - 01 - t09:50:11z”}]}



获取支持包的详细信息

描述:获取特定支持包的详细信息。
自:3.2
安全:需要admin用户
使用:/ api / v3 /系统/支持/包/ {id}

返回代码:
200 -成功
403 -未经授权
404 -提供的ID没有指向现有的支持包

例子:

GET /api/v3/system/support/bundle/SUPP20180912154413548991 HTTP/1.1

回应:


{" name ": "问题# 1234”、“描述”:“支持包创建的问题# 1234调查”、“artifactory”:{“service_id”:“jfrt@12d0hodgwb0bz427ldnyyk22se”、“bundle_url”:“http://artifactory.m.si-fil.com/artifactory/jfrog-admin-supportbundle/SUPP20180912154413548991/jfmc/01c7b8rg70nrqr1cck7k4x0yp7”},“参数”:{“配置”:真的,“系统”:真的,“日志”:{“包括”:真的,“start_date”:“2018-09-30”,“end_date”:“2018-10-01”},“thread_dump”:{“计数”:1、“间隔”:0}}, "available":5, "created": "2018-10-01T09:50:10Z"}



下载支持包

描述:以ZIP文件的形式下载支持包。
自:3.2
安全:需要admin用户。您需要在Artifactory上启用“下载文件夹”权限。
使用:/ api / v3 /系统/支持/包/ {id} /存档

返回代码:
200 -成功
403 -未授权(可能是“下载文件夹”选项未在身份验证提供程序工件上启用)
404 -提供的ID没有引用现有的支持包,或者无法在身份验证提供程序人工存储库中找到ZIP

例子:

GET /api/v3/system/support/bundle/SUPP20180912154413548991/archive HTTP/1.1



删除支持包

描述删除支持包,以及Artifactory中的ZIP文件。
自:3.2
安全:需要admin用户
使用:删除/ api / v3 /系统/支持/包/ {id}

返回代码:
204 -成功
403 -未经授权
404 -提供的ID没有指向现有的支持包

例子:


DELETE /api/v3/system/support/bundle/SUPP20180912154413548991 HTTP/1.1

创建平台支持包

描述:创建一个新的支持包。为多个服务创建支持包
自:3.5
安全:需要admin用户
使用: POST /api/v3/platform/support/bundle

返回代码:

200 -支持包正在创建中,很快就会发布
服务列表空或太大
504 -超时
400 -无效请求

示例使用

POST /api/v3/platform/support/bundle HTTP/1.1 {"name": "my_support_bundle", "description": " platform support bundle测试描述","services": ["self", "art1"], "parameters": {"configuration": true, "system": true, "logs": {"include": true, "start_date": "2019-03-14", "end_date": "2019-03-15"}, "thread_dump": {"count": 1, "interval": 0}}

示例输出:

示例输出
200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格-传输-安全:max-age=31536000;内容长度includeSubDomains: 487 {" id ":“20190315 - 1624 - cab48ff6 - 33 - e4 - 4 - e17 b2c9 - 845 a71ffa3a7”、“地点”:[{“service_id”:“jfrt@01d612nxv8yfcn119xsj7d1jrz”、“artifactory”:{“service_id”:“jfrt@other.m.si-fil.com”、“bundle_url”:“http://other.m.si-fil.com/artifactory /" } }, { " service_id”:“jfmc@01c7b8rg70nrqr1cck7k4x0yp7”、“artifactory”:{“service_id”:“jfrt@auth-provider.m.si-fil.com”、“bundle_url”:“http://auth-provider.m.si-fil.com/artifactory /" } } ] }

获取平台支持包列表

描述:获取先前创建的支持包的列表。
自:3.5
安全:需要admin用户
使用: GET /api/v3/platform/support/bundles

返回代码:

200 - ok
400 -无效请求

示例使用

GET /api/v3/platform/support/bundles HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 319 {"bundles": [{"id": "20190218-1554-c5043f76-4d6d-49e2-9ab7-2999b7af02ef", "name": "sb-name", "description": "sb-description", "created": "20190218-1553-bb12b2e0-3b16-44aa-889a-513c14976542", "created": "2019-02-18T15:53:00Z"}], "count": 2}


获取平台支持包元数据

描述:获取先前创建的支持包的元数据。
自:3.5
安全:需要admin用户
使用: GET /api/v3/system/support/bundle/{id}

返回代码:

200 - ok
400 -无效请求

示例使用

GET /api/v3/platform/support/bundle/20190218-1554-88722539-78af-41bc-a5d7-e7567fb7189f HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;includeSubDomains内容长度:742 {" id ": " 20190218 - 1554 - 20190218 - 78 - af - 41 - bc - a5d7 e7567fb7189f”、“名称”:“sb-name”、“描述”:“sb-description”,“状态”:“成功”,“创建”:“2019 - 02 - 18 t15:54:00z”,“参数”:{“配置”:真的,“系统”:真的,“日志”:{“包括”:真的,“start_date”:“2019-03-14”,“end_date”:“2019-03-15”},“thread_dump”:{“计数”:1、“间隔”:0}},“地点”:[{“service_id”:“jfxr@2222”、“artifactory”:{“service_id”:jfrt@jfxr, bundle_url: https://art。Jfxr "}}, {"service_id": "jfds@1111", "artifactory": {"service_id": "jfrt@jfds", "bundle_url": "https://arti. Jfxr "}}, {"service_id": "jfds@1111"。Jfds“}}]}

获取平台支持包

描述:以ZIP文件的形式下载以前创建的支持包。
自:3.5
安全:需要admin用户
使用: GET /api/v3/platform/support/bundle/{id}/archive

返回代码:

200 -支持包zip将被下载
400 -无效请求

示例使用

GET /api/v3/platform/support/bundle/20190218-1553-2ea5aa8c-0ee7-4981-9028-d19c653b423a/archive HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK Content-Disposition:附件;filename="20190218-1553-2ea5aa8c-0ee7-4981-9028-d19c653b423 .zip" Content-Type: application/zip X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7 Server: mission-control/SNAPSHOT Strict-Transport-Security: max-age=31536000;inclesubdomains Content-Length: 28

删除平台支持包

描述删除以前创建的支持包,以及Artifactory中的ZIP文件。
自:3.5
安全:需要admin用户
使用: DELETE /api/v3/platform/support/bundle/{id}

返回代码:

支持包被成功删除
404 -支持包id未找到或无效
500 -无法删除支持

示例使用

DELETE /api/v3/platform/support/bundle/20190218-1554-7d3f4afa-a129-435e-822a-d19a052f9b4a HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 110 {"deleted": ["jfmc@01c7b8rg70nrqr1cck7k4x0yp7", "jfrt@01d612qkz4bjqt0e36d13s1ry5"], "failures": []}



灾难恢复

创建容灾Pair

描述:将Master和Target Artifactory服务匹配为一对DR。

: 2.0
安全:需要admin用户
使用: POST /api/v3/dr-configs
消耗: application / json


{"source": "<源工件实例>","target": "<目标工件实例>"}

生产:application / json

{"active": "NONE", "dr_replications_enabled": , "state": "NONE"}


例子:

$ curl -X POST 'http://localhost:8080/api/v3/dr-configs' -i -u 'admin:password' -H 'Content-Type: application/json;charset=UTF-8' -T createdr.json



createdr.json
{"来源":"墨西哥","目标":"中国"}

示例返回:


示例返回
{"active": "NONE", "dr_replications_enabled": false, "state": "NONE"}



脚本

得到的脚本

描述:获取所有脚本的列表

自:2.0
安全:需要admin用户
用法:得到/ api / v3 /脚本
返回代码:

200 -成功

生产:application / json

[{"name": "<脚本名称>"}]


例子:

$ curl -XGET 'http://localhost:8080/api/v3/scripts' -uadmin:password



[{"name": "Create_repository"}, {"name": "Delete_repository"}, {"name": "ldap"}, {"name": "Create_service"}] 200成功

获取脚本用户输入

描述:获取所需脚本用户输入的列表

自:2.0
安全:需要admin用户
用法:GET / api / v3 /脚本/{名称}/ user_inputs
返回代码:

200 -成功

404 -没有找到标识符为“”的实体“脚本”
生产:application / json
例子:
$ curl -XGET 'http://localhost:8080/api/v3/scripts/{name}/user_inputs' -uadmin:password



示例输出
{"ArtifactoryDsl#0#LocalRepositoryDsl#0#description#0": {"name": "在此输入所需的用户输入值","description": "请提供一个描述","value": "这是一个通用描述","type": "STRING", "multivalue ": false}}

执行脚本

描述:在指定的服务上执行指定的脚本

自:2.0
安全:需要admin用户
用法:把/ api / v3 / execute_script /{名称}
返回代码:

200 -成功

404 -基于所提供的输入的错误。
消耗:Application /json(仅当脚本需要用户输入时)
当脚本需要用户输入时,这是描述它的JSON对象获取脚本用户输入端点。
生产:application / json


[{"instance":{"name":"<实例名称>","url":"<实例url >", "type":"<实例类型>"},"status":"< OK | ERROR >", "execution_duration":<持续时间(秒)>}]

如果出现错误,输出为:

[{"instance":{"name":"<实例名>","url":"<实例url >", "type":"<实例类型>"},"status":"ERROR", ERROR:{"type":"<错误类型>","message":"<错误消息>","details":["<附加详细信息>"],},"execution_duration":<持续时间(秒)>}]


例子:

$ curl -uadmin:password -XPUT http://localhost:8080/api/v3/execute_script/{Script_Name} -d '{}' -H 'Content-Type: application/json'



示例输出
[{"instance":{"name":"Mexico", "url":"http://172.31.61.159:8081/artifactory", "type":"ARTIFACTORY"}, "status":"OK", "execution_duration":1622, "operation":"UPDATE_REPOSITORY"}]




许可证桶


把水桶

描述:检索系统中所有的license桶。

自:3.1.1
安全:需要admin用户
用法:GET / api / v3 /桶

返回代码:

200 -成功

生产:application / json
[{"id": "<桶id>", "name": "<桶名>","size": <桶内license数>,"license_type": ""}]

示例用法:

GET /api/v3/buckets [{"id": "12345", "name": "bucket-test-1", "size": 10, "license_type": "ENTERPRISE"}, {"id": "1234567", "name": "bucket-test-2", "size": 5, "license_type": "EDGE"}]


创建桶

描述:创建一个新的License Bucket。

自:3.0.0
安全:需要admin用户
用法:POST / api / v3 /桶

返回代码:

2011 -创建
409 -名称“<桶名>”已经存在
409 - Url“<桶Url >”已经存在

消耗:application / json


{"bucket_name": "<桶名>","bucket_url": "<桶URL>", "bucket_key": "<桶名>"}

例子:


$ curl 'http://localhost:8080/api/v3/buckets' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -T createbucket.json

createbucket.json


{"bucket_name": "main-bucket", "bucket_url": "https://bintray.m.si-fil.com/license-buckets/test_m.si-fil.com/12345678/12345678.json?expiry=1528199600307&id=ABCDEFGhiJkLmNoPQR", "bucket_key": "16629dbf7fefc9d179b36ba005685c2dd8376aad3278178e735da1633c6bd3c6"}
201创建{"subject": "JFrog", "product_name": "Artifactory", "product_id": 6, "license_type": "HA", "issued_date": "2018-04-12T16:02:55.549+03:00", "valid_date": "2019-04-12T16:02:54.759+03:00", "quantity": 10, "signature": "06307c34405e6ab70c5d249a7ba7cffd81947d5f", "name": "main-bucket", "used":0, "url": "https://bintray.m.si-fil.com/license-buckets/test_m.si-fil.com/12345678/12345678.json?expiry=1528199600307&id=ABCDEFGhiJkLmNoPQR"}

上传桶

描述:上传并创建新的License Bucket。
自:3.4.2
安全:需要admin用户
用法:POST / api / v3 /桶
内容类型:多部分/格式

返回代码:


2011 -创建
400 -您的桶文件无法使用。请验证文件是否正确,密钥是否有效。
409 -名称“<桶名>”已经存在

消耗:application / json

bucket_name |任务控制中的桶名bucket_file |桶文件路径bucket_key |解密桶使用的密钥

生产:application / json

{"subject": "JFrog", "product_name": "Artifactory", "product_id": 6, "license_type": "HA", "issued_date": "2016-04-12T16:02:55.549+03:00", "valid_date": "2017-04-12T16:02:54.759+03:00", "quantity": 10, "identifier": "bucket-test-1", "signature": "06307c34405e6ab70c5d249a7ba7cffd81947d5f", "name": "Test-bucket-name", "used":0}

例子:


curl 'http://localhost:8080/api/v3/buckets' -i -u 'admin:password' -X POST -H 'Content-Type: multipart/form-data' -F 'bucket_file=@/tmp/728939433.json;type=application/ ocet -stream' -F 'bucket_key=d18fc5bc05dc3b6419ab6cd127f16cf6b57d7650ea0ef03cde130918f6f25487' -F 'bucket_name=mybucket'

删除桶


描述:删除桶。
自:3.0.0 Security:需要admin用户
用法:删除/ api / v3 /桶/{名称}
返回代码:204 -成功
例子:


$ curl -XDELETE 'http://localhost:8080/api/v3/buckets/main-bucket' -uadmin:password -H "Content- type: application/json" 204无内容

获取桶状态

描述:获取指定桶的报告。
自:2.0
安全:需要admin用户
用法:GET / api / v3 /桶/{标识符}/报告
生产:application / json

例子:

{"id": "<桶id >", "size": <桶中的许可证数量>,"licenses": {"used": <正在使用的许可证数量>,"available": <可用的许可证数量>,"max_used": <同时使用的最大许可证数量>}}

返回代码:

200 -成功

例子:

$ curl -XGET 'http://localhost:8080/api/v3/buckets/415921223/report' -i -u 'admin:password'



示例输出
{"id": "415921223", "size": 5, "licenses": {"used": 0, "available": 5, "max_used": 0}} 200成功


附加许可

描述:将指定桶中的license附加到指定Artifactory服务。

自:2.0
安全:需要admin用户
用法:POST / api / v3 / attach_lic /桶/{名称}
消耗:application / json


{"service_name": "人工服务名称","deploy": }

生产:application / json

{"license_key": ""}


返回代码:

200 -成功

例子:

$ curl -XPOST 'http://localhost:8080/api/v3/attach_lic/buckets/{name}' -i -u 'admin:password' -H 'Content-Type: application/json;charset=UTF-8' -T attachlicense.json



attachlicense.json
{"service_name": "ServiceName", "deploy": false}



示例输出
{"license_key": " "}

附件许可证x哈

描述:将指定桶中的多个许可证附加到Artifactory 5。x HA集群。

自:2.0
安全:需要admin用户
用法:帖子/ api / v3 / attach_lic /桶/{名称}
消耗:application / json


{"number_of_licenses": 5, "service_name": "<服务名称>","deploy": < false | true >}


返回代码:

200 -成功

409 -“仅支持集群部署多个许可证”

例子:

$ curl 'http://localhost:8080/api/v3/attach_lic/buckets/{name}' -i -u 'admin:password' -X POST -H 'Content-Type: application/json;charset=UTF-8' -T attachlicense.json



attachlicense.json
{"number_of_licenses": 5, "service_name": "ServiceName", "deploy": false}

安全

获得证书

描述:返回的列表已安装SSL证书。
: 3.5.0
安全:需要admin用户
使用:请求/ api / v3 / trust_store
生产application / json
返回代码:

示例使用

GET /api/v3/trust_store HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 1614 [{"alias": "google.com", "issued_by": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", "issued_to": "CN=*.google.com, O=Google LLC, L=Mountain View, ST=California, C=US", "issued_at": "2019-01-15T13:15:00Z", "valid_until": "2019-04-09T13:15:00Z", "fingerprint": " 9f64b072b23b5a69e6cc2e3353119ea6aae0c92d4228ad70f06c5ba932d896251254bd2d5833abb572eddf29bf82b70b3979}, {"alias": " jfroginfo ", "issued_by":"CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US", "issued_to": "CN=*.jfrog.info, O=JFrog LTD, L=Netanya, C=IL", "issued_at": "2018-10-15T00:00:00Z", "valid_until": "2019-07-03T12:00:00Z", "fingerprint": "965CA066A55D0FCD55BA0EF8DF1C3DD509D91A5EED1EA5DA7EE79549F8A0BB55A59A8F1078F72AC1461C02D8C934786B2E85D9CE}]

获得证书

描述:返回单个已安装SSL证书。
: 3.5.0
安全:需要admin用户
使用:请求/ api / v3 / trust_store /{别名}
生产application / json
返回代码:

示例使用

GET /api/v3/trust_store/cert-alias HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 795 {"alias": "cert-alias", "issued_by": "CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US", "issued_to": "CN=*.jfrog.info, O=JFrog LTD, L=Netanya, C=IL", "issued_at": "2018-10-15T00:00:00Z", "valid_until": "2019-07-03T12:00:00Z", "指纹":“965 ca066a55d0fcd55ba0ef8df1c3dd509d91a5eed1ea5da7ee79549f8a0bb55a59a8f1078f72ac1461c02d8c934786b2e85d9ce01a037a40225a54b339608adf76ff9b7d26ddd885cf6b49230e5389b92738794c5b59fc1b27b3aed24bd4c99a6d571d91bf8f0f385644e44ccf23d5078c4931fc675fdcc2b220fececfb534c311cc192ff2832ebd9116ec7ae8598050678ef630f262452664aa6aaf39ad662ced60e50ac1f73cac555fcbd4d7a007e7681a865a4e03039e519058e927d6dd2cc037471394ff6c6d05bcf781534638ad7bce44702ea653763f258dfd697df9ac985f247be96dc70fc73372b22681f1a3d4d022cdb3cc216fa3F0FA242CFBA01 "}

添加证书

描述:添加一个SSL证书。
: 3.5.0
安全:需要admin用户
使用: POST请求到/api/v3/trust_store
消耗:多部分/格式
生产:application / json

示例使用

POST /api/v3/trust_store HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: multipart/form-data;边界= 602knfse3p53ty9dmcqvwaix1zinp11ucfbm主机:localhost:8080—602knfse3p53ty9dmcqvwaix1zinp11ucfbm Content-Disposition: form-data;name=public_key Content-Type: application/pkix-cert -----BEGIN CERTIFICATE----- << PEM格式>> -----END CERTIFICATE----- --6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm Content-Disposition: form-data;Content-Type: text/plain cert-alias——6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm——

示例输出:

HTTP/1.1 201创建内容-类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 795 {"alias": "cert-alias", "issued_by": "CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US", "issued_to": "CN=*.jfrog.info, O=JFrog LTD, L=Netanya, C=IL", "issued_at": "2018-10-15T00:00:00Z", "valid_until": "2019-07-03T12:00:00Z", "指纹":"965CA066A55D0FCD55BA0EF8DF1C3DD509D91A5EED1EA5DA7EE79549F8A0BB55A59A8F1078F72AC1461C02D8C934786B2E85D9CE}

删除证书

描述:删除SSL证书。
: 3.5.0
安全:需要admin用户
使用/api/v3/trust_store/{alias}
生产application / json
示例用法:

DELETE /api/v3/trust_store/cert-alias HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 204无内容X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7 Server: mission-control/SNAPSHOT Strict-Transport-Security: max-age=31536000;includeSubDomains

更新证书

描述:更新SSL证书。
: 3.5.0
安全:需要admin用户
使用:聚氨酯请求/api/v3/{alias}
生产:application / json

示例使用

PUT /api/v3/trust_store/cert-alias HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: multipart/form-data;边界=“1 opex3safvmwkc3clpfw5jdrezllrdihcdmsldqx”;边界= 602knfse3p53ty9dmcqvwaix1zinp11ucfbm主机:localhost:8080—602knfse3p53ty9dmcqvwaix1zinp11ucfbm Content-Disposition: form-data;= public_key名称;filename=file Content-Type: application/pkix-cert -----BEGIN CERTIFICATE----- << PEM格式>> -----END CERTIFICATE----- --6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm Content-Disposition: form-data;name =别名;filename=file内容类型:text/plain new——6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm——

下面是一个匹配cURL命令行的例子:

curl -X POST -H 'Authorization: Bearer ' -F alias= -F public_key=@

示例输出:

HTTP/1.1 200 OK内容类型:application/json X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7服务器:mission-control/SNAPSHOT严格- transport - security: max-age=31536000;inclesubdomains Content-Length: 788 {"alias": "new", "issued_by": "CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US", "issued_to": "CN=*.jfrog.info, O=JFrog LTD, L=Netanya, C=IL", "issued_at": "2018-10-15T00:00:00Z", "valid_until": "2019-07-03T12:00:00Z", "fingerprint": "" "}

下载证书

描述:下载SSL证书。
: 3.5.0
安全:需要admin用户
使用:请求/api/v3/trust_store/{alias}/cert
生产:application / json

示例使用

GET /api/v3/trust_store/cert-alias/cert HTTP/1.1授权:Basic YWRtaW46cGFzc3dvcmQ= Content-Type: application/json;charset=UTF-8 Host: localhost:8080

示例输出:

HTTP/1.1 200 OK Content-Disposition:附件;文件名= " cert-alias。Content-Type: application/pkix-cert X-JFrog-Service-Id: jfmc@01c7b8rg70nrqr1cck7k4x0yp7 Server: mission-control/SNAPSHOT Strict-Transport-Security: max-age=31536000;inclesubdomains Content-Length: 70 -----BEGIN CERTIFICATE----- << PEM格式>> -----END CERTIFICATE-----

设置


更新库URL

描述:设置其他服务将用于与任务控制通信的基本URL
自:3.2
安全:需要具有管理员权限的用户
用法:把/ api / v3 /设置/ base_url
请求参数:
base_url—外部可访问的URL
示例用法:

curl 'http://localhost:8080/api/v3/settings/base_url' -i -u 'admin:password' -X PUT -H 'Content-Type: application/json;charset=UTF-8' -d '{"base_url": "http://baseUrl-to-mc:8080/"}' 204无内容

身份验证


创建令牌

描述:创建访问令牌
自:3.0
安全:需要一个有效的用户
用法:POST / api / v3 /安全/令牌
请求参数:
用户名-分配令牌的用户
Expires_in -令牌有效期,单位为秒
可刷新-如果为true,则可以刷新令牌
内容类型:应用程序/ x-www-form-urlencoded
生产:application / json
示例用法:

curl 'http://localhost:8080/api/v3/security/token' -i -u 'admin:password' -X POST -H {"username": "central-user", "expires_in": 1000, "refreshable": true} Response: {"access_token": "eyJ2Z…"kMzA", "expires_in": 1000, "refresh_token": "2b5f…""scope": "applied-permissions/user", "token_type": "Bearer"}


更改密码

描述:修改用户密码
自:2.1
安全:用户可以修改自己的密码。需要admin用户修改所有用户的密码
用法:把/ api / v3 /认证/ changePassword
请求参数:
用户名-要修改密码的用户
密码-新密码
消耗:application / json
返回代码:204 -无内容
示例用法:

$ curl 'http://localhost:8080/api/v3/auth/changePassword' -i -u 'admin:password' -X PUT -d username=admin -d password=pa$1word 204无内容

撤销令牌

描述:撤销访问令牌

自:3.0
安全:需要一个有效的用户
用法:POST / api / v3 /安全/令牌/撤销
内容类型:应用程序/ x-www-form-urlencoded
返回代码:
204-无内容

示例用法:


curl 'http://localhost:8080/api/v3/security/token/revoke' -i -u 'admin:password' -X DELETE -H 'Content-Type: application/json'



版本的映射

为了便于更新脚本以使用最新的API,下表显示了V1中的端点与REST API的V2和V3中的相应端点之间的映射。

类别 描述 方法 V1端点(在v3.0中不支持) V2端点(在v3.0中不支持) V3端点
代理 创建代理 帖子 N/A N/A / api / v3 /代理
添加外部代理 帖子 N/A N/A / api / v3 /代理
按名称更新代理 帖子 N/A N/A / api / v3 /代理/{名称}
获取代理列表 得到 N/A N/A / api / v3 /代理
按源服务获取代理列表 得到 N/A N/A / api / v3 /代理吗?src_service = {service_name}

获取由目标服务筛选的代理列表

得到 N/A N/A / api / v3 /代理吗?dest_service = {destination_service_name}

列出由源服务和目标服务过滤的代理列表

得到 N/A N/A / api / v3 /代理吗?src_service = {source_service_name} &dest_service = {destination_service_name}
按名称获取代理 得到 N/A N/A / api / v3 /代理/{名称}
从任务控制中删除代理 删除 N/A N/A / api / v3 /代理/{名称}
获取基于源的代理服务列表 得到 N/A N/A / api / v3 /服务?源=源
服务 获取Artifactory服务列表 得到 / api / v1 /实例 / api / v2 /实例 N/A
添加服务 帖子 / api / v1 /实例 / api / v2 /实例 / api / v3 /服务
更新服务 不可用 / api / v2 /实例/{名称} / api / v3 /服务/{名称}
获取服务 得到 / api / v1 / /{名称}/存储库实例 / api / v2 / /{名称}/存储库实例 / api / v3 /服务/ artifactory /{名称}/存储库
删除服务的名字 删除 / api / v1 /实例/{名称} / api / v2 /实例/{名称} / api / v3 /服务/{名称}
获取所有服务 得到

/ / api / v3 /服务
通过基于源的代理管理的名称获取服务 得到 N/A N/A / api / v3 /服务/{名称}

获取基于源的代理服务列表

得到 N/A N/A / api / v3 /服务?源=源头
身份验证 创建访问令牌 N/A N/A / api / v3 /安全/令牌

更新密码 N/A N/A / api / v3 /认证/ changePassword
安全 创建用户 帖子 api / v1 /用户 / api / v2 /安全/用户 N/A
更新用户 / api / v1 /用户/{名称} / api / v2 /安全/用户/{名称} N/A
创建用户组 帖子 / api / v1 /用户组 /api / v2 /安全/ user_groups N/A
更新用户组 / api / v1 /用户组/{名称} / api / v2 /安全/ user_groups /{名称} N/A
创建权限目标 帖子 / api / v1 / permissionTargets / api / v2 /安全/ permission_targets N/A
按名称更新权限目标 / api / v1 / permissionTargets /{名称} / api / v2 /安全/ permission_targets /{名称} N/A
许可证桶 创建新的license桶 得到 N/A N/A / api / v3 /桶
删除桶 删除 N/A N/A / api / v3 /桶/{名称}
获取桶的状态 得到 / api / v1 /桶/ {id} /状态 / api / v2 /桶/ {id} /报告 / api / v3 /桶/{标识符}/报告
附加license 帖子 / api / v1 /桶/ {id} /许可证 / api / v2 / attach_lic /桶/ {id} / api / v3 / attach_lic /桶/{名称}
卸载license 删除 / api / v1 /桶/ {id} /许可证 / api / v2 / detach_lic /桶/ {id} / api / v3 / attach_lic /桶/{名称}
为Artifactory v5.5及以上版本附加许可证 帖子

/ api / v3 / attach_lic /桶/{名称}
执行脚本

创建存储库 帖子 / api / v1 /存储库 / api / v2 / execute_scripts /存储库 N/A
更新存储库 / api / v1 /存储库 / api / v2 / execute_scripts /存储库 N/A
在服务上执行脚本 /api / v1 /实例 / api / v2 / execute_scripts /实例 / api / v3 / execute_script /{名称}
脚本 得到的脚本 得到 / api / v1 /脚本 / api / v2 /脚本 / api / v3 /脚本
获取脚本用户输入 得到 / api / v1 / userInputs / api / v2 /脚本/ user_inputs / api / v3 /脚本/{名称}/ user_inputs
系统 系统运行状况检查(ping) 得到 / api / v1 /平 / api / v2 /平 / api / v3 /平
网站




创建网站 帖子 N/A N/A / api / v3 /网站
更新站点 帖子 N/A N/A / api / v3 /网站/{名称}
按名称的部分更新站点 N/A N/A / api / v3 /服务/{名称}
让网站 得到 N/A N/A / api / v3 /网站/{名称}
获取站点列表 得到 N/A N/A / / api / v3 /网站
删除网站 删除 N/A N/A / api / v3 /网站/{名称}
监控 获取服务状态 得到 N/A N/A /服务/{名称}/监控/状态

获取所有服务状态 得到 N/A N/A / api / v3 /服务/监控/状态
支持 创建一个支持包 帖子 N/A N/A / api / v3 /支持/包

获取支持包列表

得到 N/A N/A / api / v3 /支持/包

获取支持包的详细信息

得到 N/A N/A / api / v3 /支持/包/ {id}
下载一个支持包 得到 N/A N/A / api / v3 /支持/包/ {id} /存档
删除支持包 删除 N/A N/A / api / v3 /支持/包/ {id}
灾难恢复 创建容灾人工服务对 帖子 N/A N/A / api / v3 / dr-configs