同步操作将从 範輝/Funny-JMS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Ultimate jms(jump server) written in C and raft.
业务流程:
可用性:
性能:
功能:
安全性:
开发稳健性:
方向 | 名称 | 类型 | 备注 |
---|---|---|---|
req--> | params | any | |
<--resp | result | any | 仅在成功时存在 |
<--resp | error | any | 仅在出错时存在 |
<--> | uname | string | user name |
<--> | gname | string | group name |
<--> | hname | string | host name |
<--> | rid | int | rpc ID |
<--> | uid | int | user ID |
<--> | xuid | int | user(initiator) ID |
<--> | gid | int | group ID |
<--> | hid | int | host ID |
<--> | vid | string | vendor ID |
<--> | aid | string | asset ID |
<--> | tid | int | transaction ID |
<--> | ttype | string | "user-add"/"user-del"/"host-add"/"host-del" |
<--> | pid | int | page ID |
<--> | psiz | int | page siz(how many items per page) |
http://[ADDR]/v1/user/create
系统协同接口,与其它系统同步账号数据:批量添加用户元信息
req-->
[
{"params": {"uname": "张三"}, "rid": 1},
{"params": {"uname": "李四"}, "rid": 2},
{"params": {"uname": "王五"}, "rid": 3}
]
<--resp
[
{"result": {"uid": 1}, "rid": 1},
{"result": {"uid": 2}, "rid": 2},
{"error": {"code": 1000, "message": "user exists", "data": {"uid": 9}}, "rid": 3}
]
http://[ADDR]/v1/user/destroy
系统协同接口,与其它系统同步账号数据:批量清理用户元信息、开发组关联、公钥等
req-->
[
{"params": {"uid": 1}, "rid": 1},
{"params": {"uid": 2}, "rid": 2},
{"params": {"uid": 9}, "rid": 3}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2},
{"result": "", "rid": 3}
]
http://[ADDR]/v1/user/pubkey/update
用户 SSH 连接凭证,会覆盖已有信息
req-->
[
{"params": {"xuid": 1, "pubkey": "..."}, "rid": 1},
{"params": {"xuid": 2, "pubkey": "..."}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/user/groups_and_hosts
req-->
{"params": {"xuid": 1}, "rid": 1}
<--resp
{
"result": [
{
"gid": 1,
"gname": "dev-01",
"hosts": [
{"addr": "4.4.4.4", "hname": "dns"},
{"addr": "6.6.6.6", "hname": "dns"}
]
},
{
"gid": 2,
"gname": "dev-02",
"hosts": [
{"addr": "8.8.8.8", "hname": "dns"}
]
}
],
"rid": 1
}
http://[ADDR]/v1/user/group/join
半数以上成员投票赞成且无否决票,或超管审批;空开发组直接通过,无需审批
req-->
[
{"params": {"xuid": 1, "gid": 1}, "rid": 1},
{"params": {"xuid": 2, "gid": 1}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/user/group/quit
即时生效;用户对主机的引用计数为0时,该主机上的用户公钥将被清除;成员数为0的开发组,将被自动删除
req-->
[
{"params": {"xuid": 1, "gid": 1}, "rid": 1},
{"params": {"xuid": 1, "gid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/group/create
不允许与现有开发组重名
req-->
[
{"params": {"xuid": 1, "gname": "dev-01"}, "rid": 1},
{"params": {"xuid": 1, "gname": "dev-02"}, "rid": 2}
]
<--resp
[
{"result": {"gid": 1}, "rid": 1},
{"error": {"code": 2000, "message": "group exists", "data": {"gid": 9}}, "rid": 2}
]
http://[ADDR]/v1/group/member/del
半数以上成员投票赞成且无否决票,或超管审批;用户对主机的引用计数为0时,该主机上的用户公钥将被清除
req-->
[
{"params": {"xuid": 1, "gid": 1, "uid": 1}, "rid": 1},
{"params": {"xuid": 1, "gid": 1, "uid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/group/host/add
所有拥有此台主机的开发组(批量操作会自动分割为多个单台主机的投票请求)的半数以上成员投票且无否决票,或超管审批
req-->
[
{"params": {"xuid": 1, "gid": 1, "hid": 1}, "rid": 1},
{"params": {"xuid": 1, "gid": 1, "hid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/group/host/del
所有拥有此台主机的开发组(批量操作会自动分割为多个单台主机的投票请求)的半数以上成员投票赞成且无否决票,或超管审批
req-->
[
{"params": {"xuid": 1, "gid": 1, "hid": 1}, "rid": 1},
{"params": {"xuid": 1, "gid": 1, "hid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/group/all
从中选择待加入的开发组
req-->
{"params": {"pid": 1, "psiz": 20}, "rid": 1}
<--resp
{
"result": {
"totalcnt": 100,
"data": [
{"gid": 1, "gname": "dev-01"},
{"gid": 2, "gname": "dev-02"}
]
},
"rid": 1
}
http://[ADDR]/v1/group/info
成员列表、主机列表等
req-->
{"params": {"gid": 1}, "rid": 1}
<--resp
{
"result": {
"people": [
{"uid": 1, "uname": "张三"},
{"uid": 2, "uname": "李四"}
],
"hosts": [
{"hid": 1, "addr": "8.8.8.8", "nettype": "classic", "hname": "dns"},
{"hid": 2, "addr": "6.6.6.6", "nettype": "idc", "hname": "dns"}
]
},
"rid": 1
}
http://[ADDR]/v1/host/all
资产所属平台、资产ID、主机ID、主机名称、网络地址、网络类型、开发组列表等
req-->
{"params": {"pid": 1, "psiz": 20}, "rid": 1}
<--resp
{
"result": {
"totalcnt": 100,
"data": [
{
"vid": "aliyun",
"aid": "ecs-123",
"hid": 1,
"hname": "dns",
"addr": "8.8.8.8",
"nettype": "idc",
"gids": [
{"gid": 1, "gname", "dev-01"},
{"gid": 2, "gname": "dev-02"}
]
},
{
"vid": "huawei",
"aid": "xxx-123",
"hid": 2,
"hname": "dns",
"addr": "6.6.6.6",
"nettype": "classic",
"gids": [
{"gid": 2, "gname": "dev-02"}
]
}
]
},
"rid": 1
}
http://[ADDR]/v1/trans/active
事务ID、事务类别、关联组的名称、发起时间、发起人、操作目标、额外信息
req-->
{"params": {"xuid": 1, "pid": 1, "psiz": 20}, "rid": 1}
<--resp
{
"result": {
"totalcnt": 100,
"data": [
{
"tid": 1,
"ttype": "user-add",
"gname": "dev-01",
"timestamp": 1530000000,
"initiator": "张三",
"target": "张三",
"info": "新同事"
},
{
"tid": 2,
"ttype": "user-del",
"gname": "dev-01",
"timestamp": 1540000000,
"initiator": "李四",
"target": "张三",
"info": "张三已离职"
},
{
"tid": 3,
"ttype": "host-add",
"gname": "dev-01",
"timestamp": 1550000000,
"initiator": "李四",
"target": "8.8.8.8",
"info": ""
},
{
"tid": 4,
"ttype": "host-del",
"gname": "dev-01",
"timestamp": 1560000000,
"initiator": "李四",
"target": "8.8.8.8",
"info": ""
}
]
},
"rid": 1
}
http://[ADDR]/v1/trans/agree
不可撤销
req-->
[
{"params": {"xuid": 1, "tid": 1}, "rid": 1},
{"params": {"xuid": 1, "tid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/trans/reject
不可撤销
req-->
[
{"params": {"xuid": 1, "tid": 1}, "rid": 1},
{"params": {"xuid": 1, "tid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
http://[ADDR]/v1/trans/ignore
不可撤销
req-->
[
{"params": {"xuid": 1, "tid": 1}, "rid": 1},
{"params": {"xuid": 1, "tid": 2}, "rid": 2}
]
<--resp
[
{"result": "", "rid": 1},
{"result": "", "rid": 2}
]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。