Octomation开放接口 - flagify-com/OctoMation GitHub Wiki
- 1.文档说明
- 2.接口说明
-
3.接口列表
- 3.1 查询所有可用的剧本
- 3.2 查询所有可用的动作
- 3.3 获取单个剧本执行所需要的参数
- 3.4 执行单个剧本或动作
- 3.5 获取单个动作或剧本的执行状态
- 3.6 创建事件(人工创建事件)
- 3.7 向作战室拉人
- 3.8 获取剧本或动作执行结果
- 3.9 获取所有的事件类型
- 3.10 获取所有的用户信息
- 3.11 获取某个事件的详情
- 3.12 获取某一个活动的节点执行结果
- 3.13 获取作战室右侧某个事件的成员信息
- 3.14 创建事件类型
- 3.15 修改事件类型
- 3.16 修改事件负责人(支持角色)
- 3.17 查询所有可用的剧本(不分页)
- 3.18 添加事件成员(支持单个用户名、ID,数组)
- 3.19 删除事件成员(支持单个用户名、ID,数组)
- 3.20 添加事件责任人(仅支持owners数组)
- 3.21 删除事件责任人(仅支持owners数组)
- 3.22 在线人员查询
本文档仅适用于使用Octomation1.1.0及以上版本的用户。本文档记录将会根据项目需求,保持一定的迭代更新。如有修改请另行拷贝该文档并声明文档的修改版本号,例如:update 1.0.0。 Openapi功能用户第三方系统使用Octomation页面相关功能与token对应的权限有关。
文档中使用└来代表该字段是某一类中的重要字段,xxxList这样的一般后面紧跟的是其列表中的类的重要字段
默认请求示例中的请求地址为编者自己的服务地址:https://192.168.2.186,客户拷贝时需要修改为自己的服务地址
默认所有的请求都要先经过认证的,认证方式为:header请求头里面添加一个hg-token字段(该字段需要从系统中:系统配置-->认证授权-->Token管理
,新建一个带有角色的token)。该字段是jwt类型的认证信息
curl --location --request GET 'https://192.168.2.186/接口URI' \
--header 'hg-token: xxx'
{
"code": 500,
"msg":"执行成功",
"result":{
"data":"1.2.3.4"
}
}
名称 | 类型 | 是否必须 | 描述 | 示例 |
---|---|---|---|---|
code | integer | 是 | 返回码 | 500 |
result | json | 是 | 返回结果数据 | {"data":"1.2.3.4"} |
msg | string | 否 | 返回信息(一般异常时使用) | 执行成功 |
返回码 | 描述 |
---|---|
200 | 服务器操作成功或者成功返回用户请求的数据 |
201 | 用户新建或修改数据成功 |
202 | 表示一个请求已经被服务器接收,进入后台排队(异步任务) |
204 | 用户删除数据成功 |
400 | 用户发出的请求有错误 |
401 | 表示用户没有权限(令牌、用户名、密码错误) |
404 | 表示用户得到授权,但是访问是被禁止的 |
406 | 用户发出的请求针对的是不存在的记录,服务器没有进行操作 |
412 | 用户请求的资源被永久删除,且不会再得到的 |
413 | 用户请求超时 |
500 | 服务器发生错误,用户将无法判断发出的请求是否成功 |
编号key | code | 描述 |
---|---|---|
0 | NO | 未执行 |
100 | WAITING_DELAY | 延迟节点,等待执行 |
101 | WAITING_APPROVE | 审批节点,等待审批 |
102 | WAITING_VIRTUAL | 人工节点,等待手工执行、确认 |
104 | WAITING_ASYNC | 异步节点,等待下次执行 |
105 | WAITING_COLLECT | 等待收集(收集节点) |
150 | DELAY_DONE | 延时结束,等待执行 |
151 | APPROVE_DONE | 审批完成 |
200 | SUCCESS | 成功 |
201 | SUCCESS_MOCK | 模拟方式执行,成功 |
202 | FAIL_PARTLY | 节点需要循环执行,部分执行成功,部分执行失败 |
203 | SUCCESS_RE | 执行失败,再次执行成功 |
204 | SUCCESS_PARTLY | 部分成功 |
300 | RUNNING | 执行中 |
400 | COMPLETE_DELAY | 延时,等待任务执行 |
501 | APPROVE_REJECT_BY_USER | 审批拒绝 |
502 | APPROVE_EXPIRED | 审批超时 |
503 | VIRTUAL_REJECT_BY_USER | 人工节点放弃执行 |
504 | VIRTUAL_EXPIRED | 人工节点手工确认超时 |
505 | ASYNC_EXPIRED | 异步节点超时 |
506 | COLLECT_EXPIRED | 信息收集超时 |
200000 | VALIDATION_FAILED | 参数校验失败 |
200002 | BAD_VARIABLE | 变量错误 [%s] |
200004 | BAD_REQUEST | 请求参数错误 [%s] |
200101 | ACTION_IN_USE | 动作在系统中被使用 [%s] |
200201 | ASSET_IN_USE | 资产在系统中被使用 [%s] |
200300 | CONFIG_BLOCK_ACTION | 配置阻断 |
200301 | PLAYBOOK_IN_USE | 剧本在系统中有用 |
500000 | LOGIN_CONTINUE | 需要继续登录 |
500001 | LOGIN_PWD_ERROR | 用户登录失败:用户名密码错误,超过%d次将会被锁定 |
500002 | TOTP_ERROR | 验证码错误 |
500003 | LOGIN_ACCOUNT_DISABLED | 用户登录失败:账号被禁用 |
500004 | LOGIN_PSWD_EXPIRED | 用户登录失败:密码已过期 |
500005 | LOGIN_TYPE_OFF | 认证此用户类型的方式未开启 |
500006 | NOT_PERMIT | 无权限操作 |
500010 | ACCOUNT_EFFETIVE_TIME | 请在账户有效期内登录[%s]-[%s] |
500100 | AI_INVOKE_ERROR | AI服务报错 |
500101 | PLAYBOOK_INVOKE_ERROR | 调用Executor报错 |
503400 | PLAYBOOK_NOT_EXISTS | 剧本不存在,请确认要执行的剧本是否已经创建成功 |
503401 | PLAYBOOK_ASSIGN_PARAM_EXCEPTION | 动作获取执行参数异常,请确认该动作的执行参数配置是否正确 |
503503 | ACTION_HTTP_EXCEPTION | 调用动作引擎异常,请确认动作引擎的url、host配置是否正确,动作引擎服务是否正常 |
503504 | RULE_HTTP_EXCEPTION | 调用规则引擎异常,请确认动作引擎的url、host配置是否正确,动作引擎服务是否正常 |
503506 | PLAYBOOK_SAVE_DATABASE | 保存执行结果失败,请确认数据库服务是否正常 |
503507 | PLAYBOOK_QUERY_DATABASE | 查询数据库失败,请确认数据库服务是否正常 |
503508 | PLAYBOOK_JOB_CREATE_ERROR | 创建定时任务失败,请确认该任务是否已经被创建 |
503509 | PLAYBOOK_APPROVE_CREATE_ERROR | 创建审批失败 |
503510 | ACTION_EXEC_STATUS_SUCCESS | 动作已经执行成功 |
503511 | ACTION_EXEC_STATUS_RUNNING | 动作正在运行 |
503512 | NODE_ALREADY_EXEC_SUCC | 节点已经执行成功 |
503513 | PLAYBOOK_ALREADY_EXECUTED | 剧本已经执行完成 |
503515 | PLAYBOOK_VIRTUAL_CREATE_ERROR | 创建虚拟节点失败,请确认该任务是否已经被创建 |
503516 | ASYNC_NODE_NOT_MEETING_CONDITION | 异步节点执行没有满足设定条件,请确认执行动作、退出条件配置是否正确 |
503517 | PLAYBOOK_VIRTUAL_CREATEE_ERROR | 创建虚拟节点失败,请确认该任务是否已经被创建 |
503518 | STRICT_MODEL_NO_APPROVER | 当前是严格模式,但是没有配置剧本审批人 |
503519 | ACTION_NOT_CORRESPOND_OS | 动作所需的操作没有相应的执行引擎 |
503520 | ACTION_TIMEOUT_EXCEPTION | 调用动作引擎超时,请确认动作的执行的耗时 |
503521 | ACTION_PARAM_VALUE_NOT_MATCH_TYPE | 动作参数的值与类型不匹配 |
503522 | PLAYBOOK_COLLECTION_CREATE_ERROR | 创建信息节点失败,请确认该任务是否已经被创建 |
504400 | RULE_PARAM_ILLEGAL | 规则参数异常,请确认规则配置是否正确 |
504500 | RULE_SESSION_LOAD_EXCEPTION | 规则初始化失败,请确认规则的配置是否正确 |
504501 | RULE_RUN_EXCEPTION | 规则执行异常,请确认规则配置是否正确 |
505000 | ACTION_UNKNOW_EXCEPTION | 动作执行未知错误,请确认动作的功能是否正常或动作的参数、执行资源配置是否正确 |
505410 | ACTION_NOT_EXISTS | 动作不存在,请确认该动作是否已经导入成功或者等待动作加载完成 |
505411 | ACTION_LANGUAGE_NOT_SUPPORTED | 编写应用的语言不支持 |
505500 | ACTION_RESP_FAIL | 执行动作返回失败的错误码 |
505501 | ACTION_RESP_CODE_FAIL | 执行动作,未返回错误码 |
505502 | ACTION_SOURCE_LOAD_FAIL | 加载应用逻辑文件失败 |
505503 | ACTION_FUNCTION_ERROR | 执行动作,未返回结果 |
505504 | PYTHON_HOME_NOT_FOUND | 未找到python路径,请确认系统是否正确安装 |
505505 | ACTION_RESP_BLANK | 执行动作,未返回结果 |
505506 | RULE_RESP_CODE_FAIL | 规则执行完成,但是返回了错误信息 |
505507 | RULE_RESP_NOT_JSON | 规则执行完成,但是返回的结果非json格式 |
505508 | FUNCTION_COMPILE_ERROR | 函数编译错误 |
505509 | FUNCTION_CREATE_SESSION_ERROR | 创建函数环境错误 |
505510 | FUNCTION_INVOKE_ERROR | 调用函数方法错误 |
505600 | FUNC_UNKNOW_EXCEPTION | 函数执行未知错误,请确认动作的功能是否正常或动作的参数、执行资源配置是否正确 |
505601 | FUNC_NOT_EXISTS | 函数不存在,请确认该动作是否已经导入成功或者等待动作加载完成 |
505602 | FUNC_RESP_CODE_FAIL | 执行函数,未返回错误码 |
505603 | FUNC_RESP_BLANK | 执行函数,未返回结果 |
506500 | REPORT_INNER_ERROR | 系统内部异常 |
506501 | REPORT_EXECUTE_ERROR | 数据生成失败 |
506999 | REPORT_UNKOWN_ERROR | 系统错误,数据生成失败 |
510000 | LISENCE_EMPTY | 没有许可,请使用admin用户登陆,并替换许可 |
510010 | LISENCE_EXPIRED | 许可已失效,请使用admin用户登陆,并替换许可 |
510020 | LISENCE_NOT_AVAILABLE | 许可不可用,请替换证书 |
510025 | LISENCE_LIMITED | 超过许可限制 |
510030 | LISENCE_LIMIT_OBJECT_EMPTY | 许可对象为空 |
600000 | DUPTY_OBJECT | 重复的对象 |
900000 | INTERNAL_ERROR | 系统内部错误 |
901001 | ES_ERROR | 系统内部错误: es异常 |
910000 | CACHE_ERROR | 系统内部错误: 缓存异常 |
说明:以下的字段在具体接口中无特殊意义的话,默认省略
字段 | 类型 | 描述 | 示例 |
---|---|---|---|
createdBy | string | 创建者 | "createdBy": "admin" |
createdNickName | string | 创建者昵称 | "createdNickName": "雾宝宝" |
modifiedNickName | string | 修改者昵称 | "modifiedNickName" : "雾宝宝" |
createTime | timestamp | 创建时间 | "createTime": "2021-01-27 16:27:31" |
deleted | boolean | 是否删除 | "deleted": false |
modifiedBy | string | 修改者 | "modifiedBy": "admin" |
status | string | 状态 | "status": "ON" |
updateTime | timestamp | 修改时间 | "updateTime": "2021-01-27 17:45:14" |
{
"code": 200,
"result": {
"content": [...],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"offset": 0,
"pageNumber": 0,
"pageSize": 2,
"paged": true,
"unpaged": false
},
"last": false,
"totalPages": 11566,
"totalElements": 23132,
"number": 0,
"size": 2,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"numberOfElements": 2,
"first": true,
"empty": false
}
}
说明:
a. content是返回的结果数组,其中“[...]”代表省略具体的数据
b. pageable当中的pageNumber代表当前第几页(第一页是0),pageSize代表每页最大条数
c. totalElements代表总条数
POST
/api/playbooks
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
page | int | 是 请求查询的页数 | |
size | int 是 请求查询的每页记录条数 |
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
publishStatus | string | 是 | 剧本的发布状态(当该参数的值为ONLINE时,即可查询可用的剧本) |
curl --location --request POST 'https://192.168.2.186/api/playbooks?page=1&size=10' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"publishStatus":"ONLINE"
}'
{
"code": 200,
"result": {
"content": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"modifiedNickName": "管理员",
"createTime": "2021-01-27 15:48:53",
"updateTime": "2021-01-27 16:23:57",
"id": 3633676872182754,
"name": "playbook_dc82dd55efd90941979cfad6a577b39a",
"drawJson": null,
"description": "IP信息增强-演示",
"displayName": "demo_ip情报信息调查",
"nodeList": null,
"nodeEdageList": null,
"sceneList": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"name": "scene_important",
"display": "重要场景",
"severity": null,
"effective": null,
"dutyRelation": null
}
],
"labelList": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"name": "必备"
}
],
"externalInfoList": [],
"grade": null,
"publishStatus": "ONLINE",
"playbookCategory": "COMMONEVENT"
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"pageSize": 10,
"pageNumber": 0,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements": 1,
"first": true,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"size": 10,
"number": 0,
"numberOfElements": 1,
"empty": false
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 剧本的ID |
name | string | 剧本的名字 |
drawJson | string | 剧本的绘图数据 |
description | string | 剧本的描述 |
displayName | string | 剧本的展示名 |
publishStatus | string | 剧本的发布状态: DRAFT 草稿,未经校验 ONLINE 上线,校验通过 |
grade | 剧本的分级 | |
└id | long | 分级ID |
└name | string | 分级名称 |
└parentGradeId | long | 父分级ID |
playbookCategory | string | 剧本的类型: COMMONEVENT 普通事件类型(新建剧本的默认类型) SIGNINOUT 登陆登出类型 DEPULICATION 去重类型 |
sceneList | array | 剧本的场景列表 |
└id | long | 场景ID |
└name | string | 场景名称 |
└display | string | 场景展示名 |
└severity | string | 场景优先级 |
└effective | boolean | 是否生效为当前场景 |
labelList | array | 剧本的标签列表 |
└id | long | 标签ID |
└name | string | 标签名 |
POST
/api/apps
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
page | int | 是 请求查询的页数 | |
size | int 是 请求查询的每页记录条数 |
{}
curl --location --request POST 'https://192.168.2.186/api/apps?page=1&size=10' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
}'
{
"code": 200,
"result": {
"content": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"modifiedNickName": "管理员",
"createTime": "2021-01-27 15:24:01",
"updateTime": "2021-01-27 15:24:01",
"id": 3923576105249034,
"name": "sdktest",
"description": "SDK测试-java",
"displayName": null,
"version": "1.0",
"readMePath": "app/share/sdktest/1.0/readme.html",
"iconfilePath": "app/share/sdktest/1.0/sdk.jpg",
"os": null,
"logicLanguage": "JAVA",
"logicLanguageVersion": "",
"category": "大屏数据统计",
"assetVariableList": [
{
"name": "input_string",
"required": false,
"type": "STRING",
"description": "输入rigit,资产执行正确,否则失败",
"lable": null,
"defaultValue": null,
"optionsList": null,
"multiSelected": false,
"concat": null,
"order": 5,
"array": false
}
],
"appActionList": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"modifiedNickName": "管理员",
"createTime": "2021-01-27 15:24:01",
"updateTime": "2021-01-27 15:24:01",
"id": 3923576123860691,
"appId": null,
"name": "SDKSendMessage",
"actionType": "ACTION",
"readonly": true,
"description": "SDK发送作战室消息",
"displayName": null,
"classify": "N",
"os": null,
"logicLanguage": "JAVA",
"logic": "com.shakespeare.action.sdk.SendMessage",
"retryTimes": 0,
"sleepSeconds": 0,
"quartzEtl": "",
"parameterVariableList": [
{
"name": "msg",
"required": true,
"type": "STRING",
"description": "msg",
"lable": null,
"defaultValue": null,
"optionsList": null,
"multiSelected": false,
"concat": null,
"order": 1,
"array": false
}
],
"resultVariableList": [
{
"description": "msg",
"valueType": "STRING",
"dataPath": "action_result.msg",
"exampleValues": null
}
],
"resultDisplayTmptType": "JS",
"isTest": false,
"resultDisplayTmpt": "<div class=\"ant-table ant-table-default ant-table-bordered\"> <div class=\"ant-table-content\"> <div class=\"ant-table-body\"> <table> <thead class=\"ant-table-thead\"> <tr> <th> <span class=\"ant-table-header-column\"> <div> <span class=\"ant-table-column-title\">msg</span> <span class=\"ant-table-column-sorter\"></span> </div> </span> </th> <th> <span class=\"ant-table-header-column\"> <div> <span class=\"ant-table-column-title\">content</span> <span class=\"ant-table-column-sorter\"></span> </div> </span> </th> </tr> </thead> <tbody class=\"ant-table-tbody\"> {{each action_results as action_result}} {{if action_result.data}} <tr class=\"ant-table-row\"> <td>{{action_result.data.msg}}</td> <td>{{action_result.data.content}}</td> </tr> {{/if}} {{/each}} </tbody> </table> </div> </div></div>",
"quartz": false
}
],
"appAssetList": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"modifiedNickName": "管理员",
"createTime": "2021-01-27 15:35:03",
"updateTime": "2021-01-27 15:35:03",
"id": 3923619502927750,
"appId": 3923576105249034,
"name": "sendMessageToWarroom",
"description": "向作战室里面发送一条消息",
"productVendor": "雾帜智能",
"productName": "honeyguide",
"assetSettingList": [
{
"name": "user",
"value": null,
"type": "STRING"
}
],
"actionPermissionMap": {},
"lastHealthCheckTime": null,
"healthStatus": "NOT_CHECK",
"actionEngineType": null
}
],
"logicContent": null,
"requireAsset": false,
"actionEngineType": null
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"pageSize": 10,
"pageNumber": 0,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements": 5,
"first": true,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"size": 10,
"number": 0,
"numberOfElements": 5,
"empty": false
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 应用的ID |
name | string | 应用的名称 |
description | string | 应用的描述 |
displayName | string | 应用的展示名 |
version | string | 应用的版本 |
readMePath | string | 应用的readMe路径 |
iconfilePath | string | 应用的图标文件路径 |
os | string | 应用支持的操作系统 |
logicLanguage | string | 应用所使用的逻辑语言 |
logicLanguageVersion | string | 应用所使用的逻辑语言版本 |
category | string | 应用的类别 |
assetVariableList | array | 应用的资产变量列表 |
└└name | string | 资产变量的名字 |
└└required | boolean | 资产变量是否必须 |
└└type | string | 资产变量的类型 |
└└description | string | 资产变量的描述 |
└└lable | string | 资产变量的显示名 |
└└defaultValue | string | 资产变量的默认值 |
└└optionsList | string | 资产变量的可选项列表(字符串形式) |
└└multiSelected | boolean | 资产变量是否支持多选 |
└└concat | string | 资产变量支持多选时可指定的连接符 |
└└order | int | 资产变量的序号 |
└└array | boolean | 资产变量数组是否支持选择多个值 |
appActionList | array | 应用的动作列表 |
└id | long | 动作的ID |
└appId | long | 动作所属的应用ID |
└name | string | 动作的名字 |
└actionType | string | 动作的类型 |
└readonly | boolean | 动作是否只读 |
└description | string | 动作的描述 |
└displayName | string | 动作的展示名 |
└classify | string | 动作分类 |
└os | string | 动作所支持的操作系统 |
└logicLanguage | string | 动作使用的逻辑语言 |
└logic | string | 动作的逻辑 |
└retryTimes | int | 动作的重试次数 |
└sleepSeconds | int | 动作的延迟时间 |
└quartzEtl | string | 动作的定时执行表达式 |
└parameterVariableList | array | 动作的参数变量列表 |
└└name | string | 动作参数名称 |
└└required | boolean | 动作参数是否必须 |
└└type | string | 动作参数类型 |
└└description | string | 动作参数描述 |
└└lable | string | 动作参数显示名 |
└└defaultValue | string | 动作参数的默认值 |
└└optionsList | string | 动作参数的可选项列表(字符串形式) |
└└multiSelected | boolean | 动作参数是否支持多选 |
└└concat | string | 动作参数支持多选时可指定的连接符 |
└└order | int | 动作参数的序号 |
└└array | boolean | 动作参数数组是否支持选择多个值 |
└resultVariableList | array | 动作的执行结果变量列表 |
└└description | string | 动作执行结果的描述 |
└└valueType | string | 动作执行结果的值类型 |
└└dataPath | string | 动作执行结果的数据路径 |
└└exampleValues | string | 动作执行结果示例值 |
└resultDisplayTmptType | string | 动作执行结果展示模版类型 |
└isTest | boolean | 动作是否可测试 |
└resultDisplayTmpt | string | 动作执行结果展示模版 |
└quartz | boolean | 动作是否开启定时执行 |
appAssetList | array | 应用的资产列表 |
└id | long | 资产ID |
└appId | long | 资产所属的应用的ID |
└name | string | 资产名字 |
└description | string | 资产描述 |
└productVendor | string | 资产的产品供应商 |
└productName | string | 资产的产品名称 |
└assetSettingList | array | 资产配置属性列表 |
└└name | string | 配置属性名称 |
└└value | string | 配置属性的值 |
└└type | string | 配置属性的类型 |
└actionPermissionMap | map | 资产的权限控制map |
└lastHealthCheckTime | date | 资产上次健康检查时间 |
└healthStatus | string | 资产的健康状态 |
└actionEngineType | string | 资产的执行引擎类型 |
logicContent | string | 应用的逻辑内容 |
requireAsset | boolean | 应用是否需要有资产 |
actionEngineType | string | 应用的执行引擎类型 |
POST
/api/playbook/param
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
playbookId | long | 是 | 剧本的ID |
curl --location --request --header 'hg-token: xxx' POST 'https://192.168.2.186/api/playbook/param?playbookId=3633676872182754' \
{
"code": 200,
"result": [
{
"status": null,
"deleted": false,
"createdBy": "william",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-01-05 17:11:24",
"updateTime": "2021-01-05 17:11:24",
"id": 236,
"cefId": "8f49ba3d-11f4-4ae1-961c-d304fde232c6",
"cefColumn": "src_ipv6",
"cefDesc": "ipv6源地址",
"comment": null,
"valueType": "STRING",
"paramConfigs": [
{
"name": "cef.src_ipv6",
"required": true,
"type": "STRING",
"description": "ipv6源地址",
"lable": null,
"defaultValue": null,
"optionsList": null,
"multiSelected": false,
"concat": null,
"order": null,
"valueGetterType": null,
"parameterPath": "CEF.src_ipv6",
"sourceValueType": null,
"value": null,
"loopType": null,
"array": false
}
]
}
]
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 事件ID |
cefId | long | cef的ID |
cefColumn | string | cef名称(执行剧本或动作时候的参数名) |
cefDesc | string | cef描述 |
comment | string | cef备注 |
valueType | string | cef的值类型 |
paramConfigs | array | cef的相关参数列表 |
└name | string | cef参数名称(执行剧本或动作的时候需要填写) |
└required | boolean | cef参数是否必须 |
└type | string | cef参数类型(执行剧本或动作的时候需要填写) |
└description | string | cef参数描述 |
└lable | string | cef参数显示名 |
└defaultValue | string | cef参数的默认值 |
└optionsList | string | cef参数的可选项列表(字符串形式) |
└multiSelected | boolean | cef参数是否支持多选 |
└concat | string | cef参数支持多选时可指定的连接符 |
└order | int | cef参数的序号 |
└array | boolean | cef参数数组是否支持选择多个值 |
└valueGetterType | string | cef参数值的获取类型 |
└parameterPath | string | cef参数的路径 |
└sourceValueType | string | cef参数的源值类型 |
└value | string | cef参数的值(执行剧本或动作的时候需要填写) |
POST
/odp/core/v1/api/event/execution
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 是 | 事件ID(如果eventId为0,则表示全局作战室) |
executorInstanceId | long | 是 | 执行实例ID(剧本ID或者动作ID) |
executorInstanceName | string | 否 | 执行实例名称(剧本或者动作名字) |
executorInstanceType | string | 是 | 执行实例类型: PLAYBOOK 剧本类型 ACTION 动作类型 COMMAND 命令类型 |
execMode | string | 否 | 执行模式: NORMAL 正常模式 |
executorActionAssetIds | string | 否 | 动作执行所需的资源ID(多个资源之间使用英文逗号分割) |
params | jsonarray | 否 | 参数(执行剧本的时候,所需要的参数来源于接口/api/playbook/param的响应参数; 执行动作的时候,所需要的参数来源于动作的参数列表parameterVariableList) 示例: [{"key":"k1", "value":"v1"},{"key":"k2","value":"v2"}] |
执行一个动作:
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event/execution' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"eventId": 3924278287575663,
"executorInstanceId": 3923576123860691,
"executorInstanceName": "SDKSendMessage",
"execMode":"NORMAL",
"executorInstanceType": "ACTION",
"executorActionAssetIds": "3923619502927750",
"params": [
{
"key":"msg",
"value":"fff"
}
]
}'
执行一个剧本:
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event/execution' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"eventId": 6641979662513712,
"executorInstanceId": 4568093796311249,
"executorInstanceName": "playbook_4c936552aa98c16e0aa59ad211db497f",
"execMode":"NORMAL",
"executorInstanceType": "PLAYBOOK",
"params": [
{
"key":"uwws",
"value":"123"
},
{
"key":"dvcpid",
"value":"123"
}
]
}'
说明:result的值为本次执行产生的activityId
{
"result": "73b595fe-0b95-4740-81f2-ebfcf3f50e22",
"code" : 200
}
GET
/odp/core/v1/api/activity/{activityId}
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
activityId | string | 是 | 活动ID |
curl --location --request --header 'hg-token: xxx' GET 'https://192.168.2.186/odp/core/v1/api/activity/93a632c8-e8a0-406c-b915-54d3f7e3c59f'
{
"code": 200,
"result": {
"status": null,
"deleted": false,
"createdBy": "admin",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-01-28 10:34:52",
"updateTime": "2021-01-28 10:34:52",
"id": 9286,
"activityId": "93a632c8-e8a0-406c-b915-54d3f7e3c59f",
"eventId": 20210128,
"executorInstanceId": 3633676872182754,
"executorInstanceName": "playbook_dc82dd55efd90941979cfad6a577b39a",
"executorInstanceType": "PLAYBOOK",
"executeStatus": "SUCCESS",
"execMode": null,
"postStatus": null,
"postCode": null,
"postMsg": null
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 数据库存储ID |
activityId | string | 执行ID |
eventId | long | 事件ID |
executorInstanceId | long | 执行实例ID |
executorInstanceName | string | 执行实例名称 |
executorInstanceType | string | 执行实例类型: PLAYBOOK 剧本类型 ACTION 动作类型 COMMAND 命令类型 |
excuteStatus | string | 当前执行状态: NEW 新建 RUNNING 运行中 SUCCESS 执行成功 SUCCESS_RE 执行错误,再次执行成功 FAIL 执行失败 FAIL_PARTLY 部分失败 WAITING_DELAY 等待延时 DELAY_DONE 延时完成 WAITING_APPROVE 等待审批 APPROVE_DONE 审批完成 WAITING_VIRTUAL 等待虚拟节点执行 WAITING_ASYNC 异步等待下次执行 WAITING_COLLECT 等待收集 WAITING 等待 NO_POST 无后处理 STOP 人工终止 FINISH 执行结束 |
execMode | string | 执行模式: NORMAL 正常模式 SAFE 安全模式 STRICT 严格模式 |
postStatus | string | 后置处理状态 |
postCode | int | 后置处理的返回码 |
postMsg | string | 后置处理的返回信息 |
POST
/odp/core/v1/api/event
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventName | string | 是 | 事件名称 |
categoryId | long | 是 | 事件类型ID |
categoryName | string | 是 | 事件类型名称 |
ownerId | long | 否 | 事件责任人ID(如果有值,则事件的责任人为该人;如果没有,则默认以事件类型的责任人作为事件的责任人) |
eventSummary | string | 否 | 事件概要 |
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"categoryName": "amos测试用事件类型",
"eventName": "event_tester",
"categoryId": 3888628471648608,
"ownerId": 503293535641792,
"eventSummary": "该事件是用来进行测试的"
}'
{
"result": {
"status": null,
"deleted": false,
"createdBy": "admin",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-01-31 12:11:24",
"updateTime": "2021-01-31 12:11:24",
"id": 3945467956730143,
"categoryId": 3888628471648608,
"categoryName": "amos_test",
"eventStatus": "NEW",
"eventProcessStatus": "ASSIGNED",
"openTime": null,
"resolvedTime": null,
"categoryDisplayName": null,
"eventName": "event_tester",
"sceneName": "",
"ownerId": 503293535641792,
"logId": "",
"relationEventId": 0,
"relationType": "UNKNOWN",
"eventSource": "MANUAL",
"bizName": "",
"eventSummary": "该事件是用来进行测试的",
"sceneDisplay": null,
"resolvedBy": "",
"preBizModel": null,
"permissions": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"eventId": null,
"ownerType": null,
"ownerId": 503293535641792,
"permissionBy": "EVENT_OWNER",
"relationId": null
},
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"eventId": null,
"ownerType": null,
"ownerId": 638391324424324,
"permissionBy": "EVENT_MEMBER",
"relationId": null
}
],
"members": [
{
"id": null,
"eventId": null,
"userId": 503293535641792,
"isDeleted": null,
"createTime": null,
"updateTime": null,
"createdBy": null,
"modifiedBy": null,
"username": null,
"eventName": null,
"follow": true,
"latestHandleTime": null
},
{
"id": null,
"eventId": null,
"userId": 638391324424324,
"isDeleted": null,
"createTime": null,
"updateTime": null,
"createdBy": null,
"modifiedBy": null,
"username": null,
"eventName": null,
"follow": true,
"latestHandleTime": null
}
],
"logModel": null
},
"code": 200
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 事件ID |
eventName | string | 事件名称 |
categoryName | string | 事件类型名称 |
categoryId | long | 事件类型ID |
ownerId | long | 事件责任人ID |
eventSummary | string | 事件概要 |
eventStatus | string | 事件状态: NEW 新建 OPEN 已打开 RESOLVED 已解决 |
eventProcessStatus | string | 事件执行状态: UNASSIGNED 未分配 ASSIGNED 已分配 OPENED 已打开 PROCESSING 处理中 POCESSED 已处理 |
sceneName | string | 场景名称 |
sceneDisplay | string | 场景展示名 |
logId | string | 日志ID |
relationEventId | long | 关联事件ID |
relationType | string | 关联类型 |
eventSource | string | 事件来源 |
bizName | string | 事件的前置名 |
openTime | date | 事件打开时间 |
resolvedTime | date | 事件解决时间 |
categoryDisplayName | string | 事件类型展示名 |
resolvedBy | string | 事件解决人 |
preBizModel | 事件关联的前置 | |
└id | long | 前置的ID |
└name | string | 前置的名字 |
└queue | string | 前置的消息队列名 |
└regularName | string | 前置的正则名 |
└regular | string | 前置的正则表达式 |
└logEx | string | 前置的日志样例 |
└mapRelation | string | 前置的字段映射关系 |
└bp | string | 前置的规则名称 |
└description | string | 前置的描述 |
└servers | string | 前置使用KAFKA接入的服务器名 |
└groupId | string | 前置使用KAFKA接入的组ID |
└parseType | string | 前置解析方式: G grok方式解析 J json方式解析 C cef日志格式解析 |
└accessType | string | 接入方式: KAFKA 以Kafka形式接入 API 以api形式接入 |
└eventName | string | 相关的事件名 |
└isPreTreat | boolean | 是否需要预处理 |
└treatPlaybookId | string | 预处理执行的剧本ID |
└deduplicateFields | string | 去重字段 |
└secured | boolean | 前置使用KAFKA接入,是否打开ssl认证配置 |
└sslFilesPath | string | 前置使用KAFKA接入,ssl文件路径 |
└sslMd5 | string | 前置使用KAFKA接入,ssl证书的md5 |
└sslSettingList | array | 前置使用KAFKA接入,ssl的认证配置信息 |
└└name | string | 属性名 |
└└value | string | 属性值 |
└└type | string | 属性类型: STRING 字符串 INTEGER 整数类型(int) LONG 整数类型(long) DOUBLE 浮点数类型(双精度) Date日期 FLOAT 浮点数类型(单精度) BOOLEAN 布尔类型 OUTSIDE_FILE 外部文件类型 PASSWORD 密码类型 JSON json类型 JSONARRAY json数组类型 RESULT_FILE 结果文件类型 |
logModel | 事件关联的日志 | |
└id | long | 日志存储ID |
└logId | string | 日志ID |
└bizName | string | 日志名字 |
└queue | string | 日志来源于那个消息队列 |
└log | string | 日志内容 |
└cef | string | 日志对应的cef |
└level | int | 日志的等级 |
└eventList | string | 日志相关联的事件名列表 |
permissions | array | 事件的权限列表 |
└id | long | 权限ID |
└eventId | long | 事件ID |
└ownerType | string | 责任人类型 |
└ownerId | long | 责任人ID |
└permissionBy | string | 权限类型: EVENT_MEMBER 事件成员 EVENT_OWNER 事件责任人 EVENT_CREATOR 事件创建人 APPROVOR 事件审批人 MANUAL 人工事件 |
└relationId | long | 权限关联ID |
members | array | 事件的成员列表 |
└eventId | long | 事件ID |
└userId | long | 用户ID |
└username | string | 用户名 |
└eventName | string | 事件名 |
└follow | boolean | 是否已经关注 |
POST
/odp/core/v1/api/event/assignee
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 是 | 事件ID |
assigneeId | array | 是 | 关注人员ID数组(如果人员不存在,则默认不进行添加,不报异常) |
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event/assignee' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"eventId":3924278287575663,
"assigneeId":[503293535641792]
}'
{
"code": 200,
"result": "ok"
}
GET
/odp/core/v1/api/event/activity
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
activityId | string | 是 | 活动ID |
curl --location --header 'hg-token: xxx' --request GET 'https://192.168.2.186/odp/core/v1/api/event/activity?activityId=93a632c8-e8a0-406c-b915-54d3f7e3c59f'
{
"code": 200,
"result": {
"activity": {
"createTime": "2021-01-28 10:34:52",
"updateTime": "2021-01-28 10:34:52",
"eventId": 20210128,
"executorInstanceId": 3633676872182754,
"executorActionParams": null,
"executeStatus": "SUCCESS",
"execModel": null,
"displayName": "demo_ip情报信息调查",
"code": 200,
"msg": "成功",
"messageId": "",
"startTime": "2021-01-28T02:34:52.000+0000",
"finishTime": "2021-01-28T02:34:53.000+0000"
},
"nodeResults": [
{
"nodeResultModel": {
"createTime": "2021-01-28 10:34:52",
"updateTime": "2021-01-28 10:34:52",
"pnodeResultId": 0,
"mnodeResultId": 0,
"playbookId": 3633676872182754,
"playbookName": "playbook_dc82dd55efd90941979cfad6a577b39a",
"nodeId": 3923811782078075,
"nodeName": "node_f7fd9e847ba9c059fdff96a2489",
"actionId": 3923576123860691,
"actionName": "sdktest.SDKSendMessage",
"code": 200,
"startTime": "2021-01-28T02:34:53.000+0000",
"finishTime": "2021-01-28T02:34:53.000+0000",
"msg": null,
"displayName": "sendMesssage",
"nodeType": "ACTION",
"excuteStatus": "SUCCESS",
"pname": "",
"accasion": null,
"loopType": "NO",
"levelType": "ROOT"
},
"assetResultModels": [
{
"createTime": "2021-01-28 10:34:52",
"updateTime": "2021-01-28 10:34:52",
"nodeResultId": 3928101447583409,
"assetId": 3923619502927750,
"assetName": "sendMessageToWarroom",
"code": 200,
"msg": null,
"displayName": "向作战室里面发送一条消息",
"detailSize": 1,
"prettyResult": null,
"fileData": false,
"detailModels": [
{
"createTime": "2021-01-28 10:34:52",
"updateTime": "2021-01-28 10:34:52",
"nodeResultId": 3928101447583409,
"assetResultId": 3928101448043372,
"playbookId": 3633676872182754,
"playbookName": "playbook_dc82dd55efd90941979cfad6a577b39a",
"nodeId": 3923811782078075,
"nodeName": "node_f7fd9e847ba9c059fdff96a2489",
"nodeDisplay": null,
"actionId": 3923576123860691,
"actionName": "SDKSendMessage",
"assetId": 3923619502927750,
"assetName": "sendMessageToWarroom",
"jsonData": {
"msg": "",
"code": 200,
"data": {
"msg": "success",
"content": "这是一条测试消息"
},
"param": {
"msg": "这是一条测试消息"
}
},
"extend": null,
"startTime": "2021-01-28T02:34:53.000+0000",
"finishTime": "2021-01-28T02:34:53.000+0000"
}
]
}
]
}
]
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
activity | string | 活动ID |
└eventId | long | 事件ID |
└executorInstanceId | long | 执行实例ID |
└executorActionParams | string | 执行动作参数 |
└executeStatus | string | 执行状态: NEW 新建 RUNNING 运行中 SUCCESS 执行成功 SUCCESS_RE 执行错误,再次执行成功 FAIL 执行失败 FAIL_PARTLY 部分失败 WAITING_DELAY 等待延时 DELAY_DONE 延时完成 WAITING_APPROVE 等待审批 APPROVE_DONE 审批完成 WAITING_VIRTUAL 等待虚拟节点执行 WAITING_ASYNC 异步等待下次执行 WAITING_COLLECT 等待收集 WAITING 等待 NO_POST 无后处理 STOP 人工终止 FINISH 执行结束 |
└execModel | string | 执行模式: NORMAL 正常模式 SAFE 安全模式 STRICT 严格模式 |
└displayName | string | 执行展示名 |
└code | int | 返回码 |
└msg | string | 返回信息 |
└messageId | string | 关联的消息ID |
└startTime | date | 开始时间 |
└finishTime | date | 结束时间 |
nodeResults | array | 节点执行结果列表 |
└nodeResultModel | 节点执行结果 | |
└└pnodeResultId | long | 父节点执行结果ID |
└└mnodeResultId | long | 挂载节点执行结果ID |
└└playbookId | long | 剧本ID |
└└playbookName | string | 剧本名 |
└└nodeId | long | 节点ID |
└└nodeName | string | 节点名称 |
└└actionId | long | 动作ID |
└└actionName | string | 动作名称 |
└└code | int | 节点执行结果返回码 |
└└msg | string | 节点执行结果返回信息 |
└└displayName | string | 节点执行结果展示名 |
└└nodeType | string | 节点类型:START 开始节点END 结束节点ACTION 动作节点RULE 规则节点 APPROVE 审批节点 VIRTUAL 人工节点 PLAYBOOK 剧本节点 ASYNC 异步节点 FINALLY 后处理节点 VIRTUAL_APPROVE 严格模式下审批节点 GATHERER 聚合节点 COLLECTION 信息收集节点 |
└└executeStatus | string | 节点执行结果的状态: NEW 新建 RUNNING 运行中 SUCCESS 执行成功 SUCCESS_RE 执行错误,再次执行成功 FAIL 执行失败 FAIL_PARTLY 部分失败 WAITING_DELAY 等待延时 DELAY_DONE 延时完成 WAITING_APPROVE 等待审批 APPROVE_DONE 审批完成 WAITING_VIRTUAL 等待虚拟节点执行 WAITING_ASYNC 异步等待下次执行 WAITING_COLLECT 等待收集 WAITING 等待 NO_POST 无后处理 STOP 人工终止 FINISH 执行结束 |
└└pname | string | 父节点名称 |
└└accasion | string | 节点执行时机:BEFORE 之前AFTER 之后 |
EXCEPTION | 异常时 | |
└└loopType | string | 循环类型: PARAM 参数 NO 不循环 NEST 嵌套 |
└└levelType | string | 层级类型: ROOT 根节点 NEST 嵌套节点 SUB 子节点 |
└└startTime | date | 节点开始执行时间 |
└└finishTime | date | 节点结束执行时间 |
└assetResultModels | array | 资产结果列表 |
└└nodeResultId | id | 节点执行结果ID |
└└assetId | id | 资产ID |
└└assetName | string | 资产名 |
└└code | int | 资产的返回码 |
└└msg | string | 资产的返回信息 |
└└displayName | string | 资产的展示名 |
└└detailSize | int | 资产详情列表的大小 |
└└prettyResult | string | 模版渲染后的执行结果 |
└└fileData | boolean | 是否结果过大存储在文件中 |
└└detailModels | array | 资产详情列表 |
└└└nodeResultId | long | 节点执行结果ID |
└└└assetResultId | long | 资产执行结果ID |
└└└playbookId | long | 剧本ID |
└└└playbookName | string | 剧本名 |
└└└nodeId | long | 节点ID |
└└└nodeName | string | 节点名 |
└└└nodeDisplay | string | 节点展示名 |
└└└actionId | long | 动作ID |
└└└actionName | string | 动作名 |
└└└assetId | long | 资产ID |
└└└assetName | string | 资产名 |
└└└extend | string | 扩展结果 |
└└└startTime | date | 开始执行时间 |
└└└finishTime | date | 结束执行时间 |
└└└jsonData | jsonobject | 执行数据 |
POST
/odp/core/v1/api/event/categories
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
page | int | 是 请求查询的页数 | |
size | int 是 请求查询的每页记录条数 |
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event/categories?page=1&size=10' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{}'
{
"code": 200,
"result": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"createTime": "2020-11-06 11:45:19",
"updateTime": "2020-11-06 19:07:26",
"id": 1386001072942565,
"name": "fdds",
"description": "dffdf",
"autoAction": true,
"slaHour": 0,
"ownerId": 503293535641792,
"canEdit":false,
"eventActionRls": [
{
"status": "ON",
"deleted": false,
"createdBy": "wupiaoyu",
"modifiedBy": null,
"createdNickName": null,
"createTime": "2019-11-06 19:07:26",
"updateTime": "2019-11-06 19:07:26",
"id": 1,
"eventCategoryId": 1386001072942565,
"eventCategoryName": "fdds",
"actionId": 1353259107969053,
"actionName": "nn",
"actionType": "PLAYBOOK"
}
]
}
]
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 事件类型id |
name | string | 事件类型名称 |
description | string | 事件类型描述 |
autoAction | boolean | 是否自动执行 |
severity | string | 严重等级 |
sensitivity | string | 颜色标记 |
slaHour | integer | 处理时效(0:不限处理时效) |
ownerId | long | 拥有者id |
canEdit | boolean | 是否可编辑 |
status | string | 事件类型的状态(ON:表示可用,OFF: 表示不可用) |
eventActionRls | array | 绑定的动作数组 |
└id | long | 事件与动作的关联id |
└eventCategoryId | long | 动作关联的事件类型id |
└eventCategoryName | string | 动作关联的事件类型名称 |
└actionId | long | 动作的id |
└actionName | string | 动作的名称 |
└actionType | string | 动作的类型: PLAYBOOK 剧本类型 ACTION 动作类型 COMMAND 命令类型 |
└status | string | 动作的状态(ON:表示可用,OFF: 表示不可用) |
POST
/api/users
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
page | int | 是 请求查询的页数 | |
size | int 是 请求查询的每页记录条数 |
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
id | long | 否 | 用户ID(可唯一标示一个用户) |
username | string | 否 | 用户名(可唯一标示一个用户) |
name | string | 否 | 用户昵称 |
string | 否 | 邮箱 | |
mobile | stirng | 否 | 手机号 |
curl --location --request POST 'https://192.168.2.186/api/users?page=1&size=10' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{}'
{
"code": 200,
"result": {
"status": "ON",
"deleted": false,
"createdBy": "",
"modifiedBy": "admin",
"createdNickName": null,
"createTime": null,
"updateTime": "2020-04-09 18:06:39",
"username": "admin",
"name": "管理员",
"mobile": "",
"mail": "",
"id": 503293535641792,
"robot": false,
"tempUser": false,
"roles": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createdNickName": null,
"createTime": null,
"updateTime": null,
"id": 894031332127760,
"role": "系统管理员",
"description": null,
"rolePermissionModels": null
}
],
"permissions": [
"*"
],
"type": "LOCAL",
"forbidden": false,
"latestLoginIp": "192.168.2.123",
"passwordExpireTime": null,
"sceneList": null
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | integer | 用户id |
username | integer | 用户登录名 |
name | string | 用户昵称 |
string | 邮箱 | |
mobile | string | 手机号 |
robot | false | 是否是机器人 |
type | string | 账户类型 |
forbidden | boolean | 是否禁止登录 |
latestLoginIp | string | 最后一次登录时间 |
passwordExpireTime | date | 密码过期时间 |
roles | array | 用户角色 |
└ role.id | long | 角色id |
└ role.role | string | 角色名称 |
└ role.description | string | 角色描述 |
└ role.rolePermissionModels | array | 角色权限 |
permissions | array | 用户权限(管理员权限默认为"permissions": ["*"]) |
sceneList | array | 用户场景 |
└ id | long | 场景id |
└ name | string | 场景名字 |
└ display | string | 场景展示名字 |
└ severity | integer | 场景等级 |
└ effective | boolean | 场景是否生效 |
tempUser | boolean | 是否是临时用户 |
GET
/odp/core/v1/api/event/{eventId}/detail
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 事件ID |
curl --location --request GET 'https://192.168.2.186/odp/core/v1/api/event/56003320210128/detail' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{}'
{
"code": 200,
"result": {
"status": null,
"deleted": false,
"createdBy": "wubaobao",
"modifiedBy": "lilang",
"createdNickName": "雾空",
"modifiedNickName": "leo.li",
"createTime": "2021-02-04 10:08:22",
"updateTime": "2021-02-04 10:08:49",
"id": 3967633401677423,
"categoryId": 3929798644751320,
"categoryName": "新建事件类型",
"eventStatus": "OPEN",
"eventProcessStatus": "ASSIGNED",
"openTime": "2021-02-04T02:08:49.000+0000",
"resolvedTime": null,
"categoryDisplayName": "新建事件类型描述",
"eventName": "办公网出口IP地址变化:222.64.220.113-->222.64.220.110_20210204100822284",
"sceneName": "sceAutotesting20210203122314",
"ownerId": 0,
"logId": "3967633395310746",
"relationEventId": 0,
"relationType": "UNKNOWN",
"eventSource": "QUEUE",
"bizName": "ON_SSL",
"eventSummary": null,
"sceneDisplay": "sceAutotesting20210203122315",
"resolvedBy": "",
"logModel":null,
"permissions":null,
"members":null,
"preBizModel": {
"status": "ON",
"deleted": false,
"createdBy": "lilang",
"modifiedBy": "lilang",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-02-04 09:48:05",
"updateTime": "2021-02-04 10:06:05",
"id": 3967553609526542,
"name": "ON_SSL",
"queue": "ON_SSL",
"regularName": "",
"regular": "%{NUMBER:changed}//%{IP:ip_src}//%{IP:dst}//%{GREEDYDATA:msg}",
"logEx": "//1//222.64.220.113//222.64.220.110//办公网出口IP地址变化:222.64.220.113-->222.64.220.110",
"mapRelation": "{\"msg\":\"atz\",\"dst\":\"agentTranslatedAddress\",\"IPV6\":null,\"IPV4\":null,\"BASE10NUM\":null,\"ip_src\":\"agentNtDomain\",\"message\":null,\"origin_log\":null,\"changed\":null}",
"bp": "ON_SSL_173f4eaf46f0454c872b86fa1c83e184",
"description": "开启SSL认证",
"servers": "kafka.sp.com:9095",
"groupId": null,
"parseType": "G",
"accessType": "KAFKA",
"secured": true,
"sslSettingList": [
{
"name": "security.protocol",
"value": "SSL",
"type": "STRING"
},
{
"name": "ssl.key.password",
"value": "EVZaDy82tUKXwZxTjgwDkQ==",
"type": "PASSWORD"
},
{
"name": "ssl.truststore.location",
"value": "/opt/shakespeare/data/app_files/tmp/none/NONE/a9de4482d90f4906859e65ab9e9aa7b2/server.truststore.jks",
"type": "OUTSIDE_FILE"
},
{
"name": "ssl.truststore.password",
"value": "EVZaDy82tUKXwZxTjgwDkQ==",
"type": "PASSWORD"
},
{
"name": "ssl.keystore.location",
"value": "/opt/shakespeare/data/app_files/tmp/none/NONE/22cde83d70aa4497806bc393cbb0a4bd/server.keystore.jks",
"type": "OUTSIDE_FILE"
},
{
"name": "ssl.keystore.password",
"value": "EVZaDy82tUKXwZxTjgwDkQ==",
"type": "PASSWORD"
}
],
"sslFilesPath": "pre/3967553609526542/3967553609589725/ssl.zip",
"sslMd5": "db7c2f908105ee93d2e1e4385f843523",
"eventName": "${atz}",
"isPreTreat": true,
"treatPlaybookId": 2367206753262175,
"deduplicateFields": "atz",
"ruleSetInfo": "{\"rules\":[{\"content\":{\"conditionExpression\":\"#\",\"conditions\":[{\"variable\":{\"componentType\":null,\"valueType\":\"STRING\",\"type\":\"POINTER\",\"value\":null,\"pointer\":{\"valueType\":\"STRING\",\"type\":\"PROPERTY\",\"variable\":{\"componentType\":null,\"valueType\":\"cef\",\"type\":\"POINTER\",\"value\":null,\"pointer\":{\"valueType\":\"cef\",\"type\":\"SELF\",\"variable\":null,\"variableName\":\"cef\",\"propertyName\":null,\"method\":null,\"frozen\":false},\"expression\":null,\"objects\":null,\"inExpression\":false,\"bindDomain\":null,\"bindType\":null,\"collection\":null,\"frozen\":false,\"uuid\":null},\"variableName\":null,\"propertyName\":\"agentTranslatedAddress\",\"method\":null,\"frozen\":false,\"bindDomain\":null},\"expression\":null,\"objects\":null,\"inExpression\":false,\"bindDomain\":null,\"bindType\":null,\"collection\":null,\"frozen\":false,\"uuid\":null,\"key\":\"5_cef_agentTranslatedAddress\"},\"comparator\":{\"name\":\"ne\",\"type\":\"STRING\",\"label\":\"不等于<字符串>\",\"selectedLabel\":\"不等于 {#1}\",\"params\":[{\"componentType\":null,\"valueType\":\"STRING\",\"type\":\"CONSTANT\",\"value\":\"weq\",\"pointer\":null,\"expression\":null,\"objects\":null,\"inExpression\":false,\"bindType\":\"STRING\",\"collection\":null,\"frozen\":false,\"uuid\":null}],\"paramCount\":1,\"code\":\"!{this}.equals({#1})\",\"key\":\"1_ne\"},\"frozen\":false,\"exp\":\"并且\",\"uuid\":\"f09c8d789c8086359cdc257d0e0ec3f2\"}],\"actions\":[{\"variable\":{\"valueType\":\"RuleExecResult\",\"type\":\"POINTER\",\"value\":null,\"itemType\":null,\"expression\":null,\"inExpression\":false,\"firstObject\":true,\"pointer\":{\"valueType\":\"RuleExecResult\",\"type\":\"SELF\",\"variableName\":\"ruleExecResult\",\"propertyName\":null,\"frozen\":true,\"bindDomain\":null},\"bindDomain\":null,\"bindType\":null,\"follow\":false,\"frozen\":true,\"key\":\"5_RuleExecResult_level\"},\"type\":\"SETPROPERTY\",\"setProperty\":\"level\",\"setValue\":{\"valueType\":\"INTEGER\",\"type\":\"CONSTANT\",\"value\":\"1\",\"itemType\":null,\"expression\":null,\"inExpression\":false,\"firstObject\":false,\"bindDomain\":null,\"bindType\":\"INTEGER\",\"follow\":false,\"frozen\":false},\"selectedLabel\":\"设置\",\"isNotDisplay\":false,\"isScoreCard\":false,\"frozen\":true},{\"variable\":{\"valueType\":\"RuleExecResult\",\"type\":\"POINTER\",\"value\":null,\"itemType\":null,\"expression\":null,\"inExpression\":false,\"firstObject\":true,\"pointer\":{\"valueType\":\"RuleExecResult\",\"type\":\"SELF\",\"variableName\":\"ruleExecResult\",\"propertyName\":null,\"frozen\":true,\"bindDomain\":null},\"bindDomain\":null,\"bindType\":null,\"follow\":false,\"frozen\":true,\"key\":\"5_RuleExecResult_event_list\"},\"type\":\"SETPROPERTY\",\"setProperty\":\"event_list\",\"setValue\":{\"valueType\":\"STRING\",\"type\":\"CONSTANT\",\"value\":\"新建事件类型\",\"itemType\":null,\"expression\":null,\"inExpression\":false,\"firstObject\":false,\"bindDomain\":\"EventCategory\",\"bindType\":\"STRING\",\"follow\":false,\"frozen\":false},\"selectedLabel\":\"设置\",\"isNotDisplay\":false,\"isScoreCard\":false,\"frozen\":true}]},\"mode\":\"NEW\",\"name\":\"node_L_1612403259006\",\"level\":1,\"type\":\"NORMAL\",\"description\":\"node_L_1612403259006\",\"is_template\":\"FALSE\",\"needCheck\":false,\"snapshot\":{\"conditionStr\":\"通用字段的agentTranslatedAddress 不等于 weq \",\"actionStr\":\"设置 执行结果的事件类型名称 为 新建事件类型 \"},\"chosen\":false,\"selected\":false}],\"ruleType\":\"SIMPLE_RULE\",\"business\":{\"name\":\"ON_SSL_173f4eaf46f0454c872b86fa1c83e184\"}}",
"sslSettingListJson": "[{\"name\":\"security.protocol\",\"type\":\"STRING\",\"value\":\"SSL\"},{\"name\":\"ssl.key.password\",\"type\":\"PASSWORD\",\"value\":\"EVZaDy82tUKXwZxTjgwDkQ==\"},{\"name\":\"ssl.truststore.location\",\"type\":\"OUTSIDE_FILE\",\"value\":\"/opt/shakespeare/data/app_files/tmp/none/NONE/a9de4482d90f4906859e65ab9e9aa7b2/server.truststore.jks\"},{\"name\":\"ssl.truststore.password\",\"type\":\"PASSWORD\",\"value\":\"EVZaDy82tUKXwZxTjgwDkQ==\"},{\"name\":\"ssl.keystore.location\",\"type\":\"OUTSIDE_FILE\",\"value\":\"/opt/shakespeare/data/app_files/tmp/none/NONE/22cde83d70aa4497806bc393cbb0a4bd/server.keystore.jks\"},{\"name\":\"ssl.keystore.password\",\"type\":\"PASSWORD\",\"value\":\"EVZaDy82tUKXwZxTjgwDkQ==\"}]"
}
}
}
参数名称 | 参数类型 | 描述 |
---|---|---|
id | long | 事件ID |
eventName | string | 事件名称 |
categoryName | string | 事件类型名称 |
categoryId | long | 事件类型ID |
ownerId | long | 事件责任人ID |
eventSummary | string | 事件概要 |
eventStatus | string | 事件状态: NEW 新建 OPEN 已打开 RESOLVED 已解决 |
eventProcessStatus | string | 事件执行状态: UNASSIGNED 未分配 ASSIGNED 已分配 OPENED 已打开 PROCESSING 处理中 PROCESSED 已处理 |
sceneName | string | 场景名称 |
sceneDisplay | string | 场景展示名 |
logId | string | 日志ID |
relationEventId | long | 关联事件ID |
relationType | string | 关联类型 |
eventSource | string | 事件来源 |
bizName | string | 事件的前置名 |
openTime | date | 事件打开时间 |
resolvedTime | date | 事件解决时间 |
categoryDisplayName | string | 事件类型展示名 |
resolvedBy | string | 事件解决人 |
preBizModel | 事件关联的前置 | |
└id | long | 前置的ID |
└name | string | 前置的名字 |
└queue | string | 前置的消息队列名 |
└regularName | string | 前置的正则名 |
└regular | string | 前置的正则表达式 |
└logEx | string | 前置的日志样例 |
└mapRelation | string | 前置的字段映射关系 |
└bp | string | 前置的规则名称 |
└description | string | 前置的描述 |
└servers | string | 前置使用KAFKA接入的服务器名 |
└groupId | string | 前置使用KAFKA接入的组ID |
└parseType | string | 前置解析方式: G grok方式解析 J json方式解析 C cef日志格式解析 |
└accessType | string | 接入方式: KAFKA 以Kafka形式接入 API 以api形式接入 |
└eventName | string | 相关的事件名 |
└isPreTreat | boolean | 是否需要预处理 |
└treatPlaybookId | string | 预处理执行的剧本ID |
└deduplicateFields | string | 去重字段 |
└secured | boolean | 前置使用KAFKA接入,是否打开ssl认证配置 |
└sslFilesPath | string | 前置使用KAFKA接入,ssl文件路径 |
└sslMd5 | string | 前置使用KAFKA接入,ssl证书的md5 |
└sslSettingList | array | 前置使用KAFKA接入,ssl的认证配置信息 |
└└name | string | 属性名 |
└└value | string | 属性值 |
└└type | string | 属性类型: STRING 字符串 INTEGER 整数类型(int) LONG 整数类型(long) DOUBLE 浮点数类型(双精度) FLOAT 浮点数类型(单精度) BOOLEAN 布尔类型 RESOURCE_FILE 资源文件类型 OUTSIDE_FILE 外部文件类型 PASSWORD 密码类型 JSON json类型 JSONARRAY json数组类型 RESULT_FILE 结果文件类型 |
logModel | 事件关联的日志 | |
└id | long | 日志存储ID |
└logId | string | 日志ID |
└bizName | string | 日志名字 |
└queue | string | 日志来源于那个消息队列 |
└log | string | 日志内容 |
└cef | string | 日志对应的cef |
└level | int | 日志的等级 |
└eventList | string | 日志相关联的事件名列表 |
permissions | array | 事件的权限列表 |
└id | long | 权限ID |
└eventId | long | 事件ID |
└ownerType | string | 责任人类型 |
└ownerId | long | 责任人ID |
└permissionBy | string | 权限类型: EVENT_MEMBER 事件成员 EVENT_OWNER 事件责任人 EVENT_CREATOR 事件创建人 APPROVOR 事件审批人 MANUAL 人工事件 |
└relationId | long | 权限关联ID |
members | array | 事件的成员列表 |
└eventId | long | 事件ID |
└userId | long | 用户ID |
└username | string | 用户名 |
└eventName | string | 事件名 |
└follow | boolean 是否已经关注 |
GET
/odp/core/v1/api/activity/{activityId}/node/result
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
activityId | string | 是 | 活动ID |
curl --location --request --header 'hg-token: xxx' GET 'https://192.168.2.186/odp/core/v1/api/activity/5dff7a77-89b5-4195-b5fb-42c2679f9b15/node/result'
{
"code": 200,
"result": [
{
"status": null,
"deleted": false,
"createdBy": "",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-03-15 17:43:49",
"updateTime": "2021-03-15 17:43:49",
"id": 4190254312538788,
"pnodeResultId": 0,
"mnodeResultId": 0,
"playbookId": 0,
"playbookName": "",
"nodeId": 0,
"nodeName": "default",
"actionId": 4190244822628159,
"actionName": "block_ip",
"activieId": "5dff7a77-89b5-4195-b5fb-42c2679f9b15",
"code": 200,
"startTime": "2021-03-15T09:43:48.000+0000",
"finishTime": "2021-03-15T09:43:49.000+0000",
"param": null,
"data": null,
"extend": null,
"dataType": "STRING",
"summary": null,
"msg": null,
"tips": "",
"displayName": null,
"jsonObjParam": null,
"paramIndex": "{}",
"contextInfo": "{\"actionName\":\"block_ip\",\"activieId\":\"5dff7a77-89b5-4195-b5fb-42c2679f9b15\",\"appName\":\"safeline\",\"eventId\":20210315,\"executeTime\":1615801427000,\"executor\":\"yanggaoming\",\"logMode\":false,\"nodeName\":null,\"playbookName\":null}",
"nodeType": "ACTION",
"excuteStatus": "SUCCESS",
"originExcuteStatus": null,
"mname": "",
"pname": "",
"accasion": null,
"loopType": "NO",
"levelType": "ROOT"
}
]
}
响应字段说明(请参考3.8响应字段说明的nodeResultModel)
GET
/odp/core/v1/api/event/{eventId}/member
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 是 | 事件ID |
curl --location --request GET 'https://192.168.2.186/odp/core/v1/api/event/4234753528785810/member' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{}'
{
"code": 200,
"result": {
"eventModel": {
"status": null,
"deleted": false,
"createdBy": "admin",
"modifiedBy": "chenzhuqing",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-03-23 14:20:32",
"updateTime": "2021-03-24 10:33:57",
"id": 4234753528785810,
"categoryId": 4234752943155907,
"categoryName": "额",
"eventStatus": "OPEN",
"eventProcessStatus": "ASSIGNED",
"openTime": "2021-03-23T06:20:35.000+0000",
"resolvedTime": null,
"categoryDisplayName": "额额",
"eventName": "额额额",
"sceneName": "",
"ownerId": 4235191276364855,
"logId": "",
"relationEventId": 0,
"relationType": "UNKNOWN",
"eventSource": "MANUAL",
"bizName": "",
"eventSummary": "这里填一下该要啊,这里再来一下啊",
"sceneDisplay": "",
"resolvedBy": "",
"preBizModel": null,
"severity": null
},
"userInfoModels": [
{
"status": "ON",
"deleted": false,
"createdBy": "",
"modifiedBy": "admin",
"createdNickName": null,
"modifiedNickName": null,
"createTime": null,
"updateTime": "2021-03-24 16:58:03",
"id": 503293535641792,
"username": "admin",
"name": "管理员",
"password": null,
"mobile": "",
"mail": "",
"salt": null,
"robot": false,
"type": null,
"secret": null,
"passwordHistory": null,
"latestLoginIp": null,
"latestLoginTime": null,
"passwordExpireTime": null,
"passwordErrorTimes": null,
"forbiddenTime": null,
"forbidden": false,
"accountEffectiveTime": null,
"accountExpireTime": null,
"sceneList": null,
"roles": null,
"userRoles": null,
"tempUser": null
},
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2019-06-27 10:58:20",
"updateTime": "2021-03-23 13:26:19",
"id": 638391324424324,
"username": "wubaobao",
"name": "雾宝宝",
"password": null,
"mobile": "18968066099",
"mail": "[email protected]",
"salt": null,
"robot": true,
"type": null,
"secret": null,
"passwordHistory": null,
"latestLoginIp": null,
"latestLoginTime": null,
"passwordExpireTime": null,
"passwordErrorTimes": null,
"forbiddenTime": null,
"forbidden": false,
"accountEffectiveTime": null,
"accountExpireTime": null,
"sceneList": null,
"roles": null,
"userRoles": null,
"tempUser": null
},
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-03-23 14:22:25",
"updateTime": "2021-03-24 16:27:38",
"id": 4234760960895999,
"username": "chenzhuqing",
"name": "额额",
"password": null,
"mobile": "",
"mail": "",
"salt": null,
"robot": false,
"type": null,
"secret": null,
"passwordHistory": null,
"latestLoginIp": null,
"latestLoginTime": null,
"passwordExpireTime": null,
"passwordErrorTimes": null,
"forbiddenTime": null,
"forbidden": false,
"accountEffectiveTime": null,
"accountExpireTime": null,
"sceneList": null,
"roles": null,
"userRoles": null,
"tempUser": null
},
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-03-23 16:11:51",
"updateTime": "2021-03-24 16:53:38",
"id": 4235191276364855,
"username": "chengfengwen",
"name": "程风文",
"password": null,
"mobile": "",
"mail": "",
"salt": null,
"robot": false,
"type": null,
"secret": null,
"passwordHistory": null,
"latestLoginIp": null,
"latestLoginTime": null,
"passwordExpireTime": null,
"passwordErrorTimes": null,
"forbiddenTime": null,
"forbidden": false,
"accountEffectiveTime": null,
"accountExpireTime": null,
"sceneList": null,
"roles": null,
"userRoles": null,
"tempUser": null
},
{
"status": "ON",
"deleted": false,
"createdBy": "chenzhuqing",
"modifiedBy": "",
"createdNickName": null,
"modifiedNickName": null,
"createTime": "2021-03-24 10:29:04",
"updateTime": "2021-03-24 10:29:04",
"id": 4239505722403161,
"username": "user",
"name": "ceshi de ",
"password": null,
"mobile": "",
"mail": "",
"salt": null,
"robot": false,
"type": null,
"secret": null,
"passwordHistory": null,
"latestLoginIp": null,
"latestLoginTime": null,
"passwordExpireTime": null,
"passwordErrorTimes": null,
"forbiddenTime": null,
"forbidden": false,
"accountEffectiveTime": null,
"accountExpireTime": null,
"sceneList": null,
"roles": null,
"userRoles": null,
"tempUser": null
}
]
}
}
响应字段说明(eventModel请参考接口3.11响应字段描述,userInfoModels数组中的model请参考接口3.10响应字段描述)
POST
/api/event/category
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 事件名称 |
description | string | 否 | 事件类型描述 |
severity | integer | 否 | 事件类型等级 |
ownerId | long | 否 | 事件类型责任人ID |
curl --location --request POST 'https://192.168.2.186/api/event/category' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"name": "amos_test_category3",
"description": "even",
"severity": null,
"ownerId": null
}'
{
"code": 200,
"result": 1
}
PUT
/api/event/category
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
id long | 是 | 事件类型ID | |
name | string | 是 | 事件类型名称 |
description | string | 否 | 事件类型描述 |
severity | integer | 否 | 事件类型等级 |
ownerId | long | 否 | 事件类型责任人ID |
curl --location --request PUT 'https://192.168.2.186/api/event/category' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"id": 4558183640570370,
"name": "amos_test_category",
"description": "update event category",
"ownerId": 355818364057033,
"severity": 5
}'
{
"code": 200,
"result": 1
}
POST
/odp/core/v1/api/event/owners
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
id | long | 是 | 事件ID |
owners | array | 是 | 责任人的ID数组(如果为空,则代表不设置该事件的责任人) |
└ownerId | long | 是 | 事件责任人的id,依赖于ownerType;如果ownerType是USER,则代表用户id;如果ownerType是ROLE,则代表角色id |
└ownerType | string | 是 | 事件责任人的类型,USER代表用户类型,ROLE代表角色类型 |
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/event/owners' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"id":4750706167694372,
"owners":
[
{"ownerId":4749025813028620,"ownerType":"USER"},
{"ownerId":1028832090557583,"ownerType":"ROLE"}
]
}'
{
"code": 200,
"result": "1"
}
POST
/odp/core/v1/api/playbook/findAll
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
publishStatus | string | 是 | 剧本的发布状态(当该参数的值为ONLINE时,即可查询可用的剧本) |
curl --location --request POST 'https://192.168.2.186/odp/core/v1/api/playbook/findAll' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"publishStatus":"ONLINE"
}'
{
"code": 200,
"result": [
{
"status": "ON",
"deleted": false,
"createdBy": "admin",
"modifiedBy": "admin",
"createdNickName": "管理员",
"modifiedNickName": "管理员",
"createTime": "2021-01-27 15:48:53",
"updateTime": "2021-01-27 16:23:57",
"id": 3633676872182754,
"name": "playbook_dc82dd55efd90941979cfad6a577b39a",
"drawJson": null,
"description": "IP信息增强-演示",
"displayName": "demo_ip情报信息调查",
"nodeList": null,
"nodeEdageList": null,
"sceneList": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"name": "scene_important",
"display": "重要场景",
"severity": null,
"effective": null,
"dutyRelation": null
}
],
"labelList": [
{
"status": null,
"deleted": null,
"createdBy": null,
"modifiedBy": null,
"createTime": null,
"updateTime": null,
"createdNickName": null,
"modifiedNickName": null,
"id": null,
"name": "必备"
}
],
"externalInfoList": [],
"grade": null,
"publishStatus": "ONLINE",
"playbookCategory": "COMMONEVENT"
}
]
}
响应字段说明 (请参考3.1)
POST
/odp/core/v1/api/event/assignee
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 是 | 事件ID |
userId | long | 否 | 用户ID(优先级最高) |
username | string | 否 | 用户名(优先级低于userId) |
assigneeId | array | 否 | 用户ID列表(优先级低于username) |
assigneeName | array | 否 | 用户名列表(优先级最低) |
curl --location --request POST 'http://192.168.44.18/odp/core/v1/api/event/assignee' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"eventId":5730402598025864,
"username":"john",
"userId":5769396124164036,
"assigneeId":[5769392166967936,5769392166968533],
"assigneeName":["tom","test"]
}'
{
"code": 200,
"result": "ok"
}
DELETE
/odp/core/v1/api/event/assignee
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
eventId | long | 是 | 事件ID |
userId | long | 否 | 用户ID(优先级最高) |
username | string | 否 | 用户名(优先级低于userId) |
assigneeId | array | 否 | 用户ID列表(优先级低于username) |
assigneeName | array | 否 | 用户名列表(优先级最低) |
curl --location --request DELETE 'http://192.168.44.18/odp/core/v1/api/event/assignee' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"eventId":5730402598025864,
"username":"john",
"userId":5769396124164036,
"assigneeId":[5769392166967936,5769392166968533],
"assigneeName":["tom","test"]
}'
{
"code": 200,
"result": "ok"
}
PUT
/odp/core/v1/api/event/owners
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
id long | 是 | 事件ID | |
owners | array | 否 | 其中ownerId:用户或者角色ID; ownerType: owner类型(默认为USER:用户,ROLE:角色) |
curl --location --request PUT 'http://192.168.44.18/odp/core/v1/api/event/owners' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"id":5730402598025864,
"owners":[{"ownerId":5769393782625450,"ownerType":"USER"}]
}'
{
"code": 200,
"result": 1
}
DELETE
/odp/core/v1/api/event/owners
参数名称 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
id | long | 是 | 事件ID |
owners | array | 否 | 其中ownerId:用户或者角色ID; ownerType: owner类型(默认为USER:用户,ROLE:角色) |
curl --location --request DELETE 'http://192.168.44.18/odp/core/v1/api/event/owners' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx' \
--data-raw '{
"id":5730402598025864,
"owners":[{"ownerId":5769393782625450,"ownerType":"USER"}]
}'
{
"code": 200,
"result": 1
}
GET
/odp/core/v1/api/userInfo/online
curl --location --request 'http://192.168.44.18/odp/core/v1/api/userInfo/online' \
--header 'Content-Type: application/json' \
--header 'hg-token: xxx'
{
"code": 200,
"result": {
"status":"ON",
"deleted":false,
"createdBy":"lilang",
"modifiedBy":"admin",
"createdNickName":null,
"modifiedNickName":null,
"createTime":"2019-12-03 09:54:43",
"updateTime":"2022-03-28 15:23:01",
"username":"chengfengwen",
"name":"程风文",
"mobile":"18736158160",
"mail":"[email protected]",
"id":1538448551418236,
"robot":false,
"roles":[
{
"status":null,
"deleted":null,
"createdBy":null,
"modifiedBy":null,
"createdNickName":null,
"modifiedNickName":null,
"createTime":null,
"updateTime":null,
"id":894031332127760,
"role":"系统管理员",
"description":null,
"rolePermissionModels":null,
"menuFunctions":null
}
],
"permissions":null,
"type":"LOCAL",
"forbidden":false,
"latestLoginIp":"192.168.205.20",
"passwordExpireTime":"2021-10-27 10:18:29",
"accountEffectiveTime":null,
"accountExpireTime":null,
"sceneList":null,
"menus":null,
"tempUser":false,
"acPerm":null,
"twoPhaseAuthSwitch":"OFF"
}
}