跳到主要内容
版本:1.8.7

项目管理

使用流程
  1. 通过项目列表接口获取现有的项目
  2. 使用项目详情接口获取项目详细信息
  3. 使用项目新建/项目搜索/项目删除接口管理项目进行
  4. 通过项目版本列表接口获取项目对应的版本信息
  5. 获取当前项目的版本
额外
  • 使用项目报告导出接口,导出项目的漏洞报告。
  • 使用项目概况接口获取对应的项目漏洞信息。

当前项目版本修改

  • API Path/api/v1/project/version/current

  • 请求方法POST

  • 详细说明: 基于给定条件修改特定项目的版本号

  • 请求参数Json Object

    参数名说明必填类型值可能性限制示例
    version_id项目的版本 ID[string]
    project_id项目 ID[int]
  • 请求内容

    /api/v1/project/version/current
    {
    "version_id": 183,
    "project_id": 146
    }
  • 响应内容

    {
    "status": 201,
    "msg": "版本设置成功"
    }
  • 返回结果

    Json Object

    参数名说明必填类型值可能性限制示例
    status状态码:201、202[int]
    msg状态信息:版本设置成功、版本不存在、版本设置失败[string]

删除项目

  • API Path/api/v1/project/delete

  • 请求方法POST

  • 详细说明: 使用项目对应的 id 来删除项目

  • 请求参数 Json Object

    参数名说明必填类型值可能性限制示例
    id项目 ID[int]
  • 请求内容

    /api/v1/project/delete
    {
    "id": 144
    }
  • 响应内容

    {
    "status": 201,
    "msg": "项目删除成功"
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    status状态码:201、202[int]
    msg状态信息:删除失败、项目删除成功[string]

项目版本更新

  • API Path/api/v1/project/version/update

  • 请求方法POST

  • 详细说明: 更新对应的版本信息

  • 请求参数Json Object

    参数名说明必填类型值可能性限制示例
    version_id项目的版本 ID[string]
    version_name项目的版本名[string]
    description项目版本的描述[string]
    project_id项目 ID[int]
    current_version表示是否为当前版本,1 代表是,0 代表否[int]
  • 请求内容

    /api/v1/project/version/update
    {
    "version_name": "1312",
    "description": "11312",
    "isEdit": true,
    "version_id": 183,
    "current_version": 1,
    "project_id": 146
    }
  • 响应内容

    {
    "status": 201,
    "msg": "更新成功"
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    status状态码:201、202[int]
    msg状态信息:更新成功、参数错误[string]

项目版本列表

  • API Path/api/v1/project/version/list/{project_id}

  • 请求方法GET

  • 详细说明: 获取项目对应的版本列表

  • REST 参数

    参数名说明必填类型值可能性限制示例
    project_id[int]
  • 请求内容

    /api/v1/project/version/list/146
  • 响应内容

    {
    "status": 201,
    "msg": "查询成功",
    "data": [
    {
    "version_id": 183,
    "version_name": "1312",
    "current_version": 1,
    "description": "13123"
    },
    {
    "version_id": 182,
    "version_name": "V1.0",
    "current_version": 0,
    "description": ""
    }
    ]
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[array]
    status状态码:201[int]
    msg状态信息:success[string]
    参数名说明必填类型值可能性限制示例
    version_id项目的版本 ID[int]
    version_name项目的版本名[string]
    current_version表示是否为当前版本,1 代表是,0 代表否[int]
    description项目版本的描述[string]

项目版本添加

  • API Path/api/v1/project/version/add

  • 请求方法POST

  • 详细说明: 基于给定条件添加指定项目版本,若指定版本号,将基于给定条件更新指定版本信息

  • 请求参数Json Object

    参数名说明必填类型值可能性限制示例
    version_id项目的版本 ID[string]
    version_name项目的版本名[string]
    description项目版本的描述[string]
    project_id项目 ID[int]
    current_version表示是否为当前版本,1 代表是,0 代表否[int]
  • 请求内容

    /api/v1/project/version/add
    {
    "version_name": "1312",
    "description": "13123",
    "isEdit": true,
    "project_id": 146
    }
  • 响应内容

    {
    "status": 201,
    "msg": "创建成功",
    "data": {
    "version_id": 183,
    "version_name": "1312",
    "description": "13123"
    }
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[array]
    status状态码:201、202[int]
    msg状态信息:参数错误、创建成功[string]
    参数名说明必填类型值可能性示例
    version_id项目的版本 ID[string]
    version_name项目的版本名[string]
    description项目版本的描述[string]

项目报告导出

  • API Path/api/v1/project/export

  • 请求方法GET

  • 请求内容

    /api/v1/project/export?pid=143
  • 响应内容application/octet-stream 项目对应的 word 报告

  • 详细说明: 基于以下条件,导出指定版本的报告或是特定漏洞的报告

  • Query 参数

    参数名说明必填类型限制示例
    pid项目 ID[int]
    pname项目名[string]
    vid项目的版本 ID[string]

项目列表

  • API Path/api/v1/projects

  • 请求方法GET

  • 详细说明: 用户对应的项目列表,支持使用项目模糊匹配搜索

  • Query 参数

    参数名说明必填类型限制示例
    name项目名搜索,支持模糊匹配[string]
    page对应页码[int]
    pageSize每页数量,最大限制50,超过50输入视为50[int]
  • 请求内容

    /api/v1/projects?page=1&pageSize=20&name=123
  • 响应内容

    {
    "status": 201,
    "msg": "success",
    "data": [{
    "id": 146,
    "name": "123123321",
    "mode": "插桩模式",
    "vul_count": [],
    "agent_count": 0,
    "owner": "admin",
    "latest_time": 1635493011,
    "agent_language": []
    }, {
    "id": 143,
    "name": "songtestFlask1455",
    "mode": "插桩模式",
    "vul_count": [],
    "agent_count": 1,
    "owner": "admin",
    "latest_time": 1635490547,
    "agent_language": ["PYTHON"]
    }, {
    "id": 142,
    "name": "springsec-test-prod",
    "mode": "插桩模式",
    "vul_count": [],
    "agent_count": 1,
    "owner": "owefsad",
    "latest_time": 1635479073,
    "agent_language": ["JAVA"]
    }],
    "page": {
    "alltotal": 60,
    "num_pages": 3,
    "page_size": 20
    }
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[array]
    status状态码:201[int]
    msg状态信息:success[string]
    参数名说明必填类型值可能性限制示例
    id[int]
    name[string]
    mode[string]
    vul_count漏洞数量[string]
    agent_count项目目前存活的 Agent 数量[string]
    owner项目拥有者[string]
    latest_time[int]
    agent_languageAgent 的语言[string]

项目搜索

  • API Path/api/v1/projects/summary/{id}

  • 请求方法GET

  • 详细说明: 项目的情况概览,包括:漏洞、项目版本、Agent 语言等信息

  • REST 参数

    参数名说明必填类型值可能性限制示例
    id[int]
  • 请求内容

    /api/v1/projects/summary/146
  • 响应内容

    {
    "status": 201,
    "msg": "success",
    "data": {
    "owner": "admin",
    "name": "123123321",
    "id": 146,
    "mode": "插桩模式",
    "latest_time": 1635493011,
    "type_summary": [],
    "day_num": [{
    "day_label": "10-22",
    "day_num": 0
    },
    {
    "day_label": "10-23",
    "day_num": 0
    },
    {
    "day_label": "10-24",
    "day_num": 0
    },
    {
    "day_label": "10-25",
    "day_num": 0
    },
    {
    "day_label": "10-26",
    "day_num": 0
    },
    {
    "day_label": "10-27",
    "day_num": 0
    },
    {
    "day_label": "10-28",
    "day_num": 0
    },
    {
    "day_label": "10-29",
    "day_num": 0
    }
    ],
    "level_count": [{
    "level_id": 1,
    "level_name": "高危",
    "num": 0
    },
    {
    "level_id": 2,
    "level_name": "中危",
    "num": 0
    },
    {
    "level_id": 3,
    "level_name": "低危",
    "num": 0
    },
    {
    "level_id": 4,
    "level_name": "无风险",
    "num": 0
    },
    {
    "level_id": 5,
    "level_name": "提示",
    "num": 0
    }
    ],
    "versionData": {
    "version_id": 183,
    "version_name": "1312",
    "description": "11312"
    },
    "agent_language": []
    }
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[object]
    status状态码:201[int]
    msg状态信息:success[string]
    参数名说明必填类型值可能性示例
    name项目名[string]
    mode项目模式[string]
    id项目ID[int]
    latest_time默认值为项目的当前版本[int]
    versionData项目的版本信息[string]
    type_summary关于漏洞类型的漏洞数量统计[array]
    agent_language项目中所涉及的 Agent 对应的语言[array]
    level_count基于漏洞等级的漏洞数量统计[array]
    参数名说明必填类型值可能性示例
    type_name漏洞名[string]
    type_count漏洞类型的个数[int]
    type_level漏洞等级[int]
    参数名说明必填类型值可能性示例
    level_name漏洞等级名[string]
    level_id漏洞等级 ID[int]
    num漏洞级别对应的漏洞数量[int]

项目 Agent

  • API Path/api/v1/project/engines/{pid}

  • 请求方法GET

  • 详细说明: 获取项目对应的 Agent 列表

  • REST参数

    参数名说明必填类型值可能性限制示例
    pid[int]
  • 请求内容

    /api/v1/project/engines/143
  • 响应内容

    {
    "status": 201,
    "msg": "success",
    "data": [
    {
    "id": 2116,
    "token": "Darwin 18.7.0-bogon-v1.0.6-3752a9aad49d42fdac5bca7dd3e58bfe",
    "short_name": "Darwin 18.7.0-bogon-v1.0.6"
    }
    ]
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[array]
    data>>idAgent ID[int]
    data>>tokenAgent 名称[string]
    data>>shortnameAgent 简称[string]
    status状态码:201[int]
    msg状态信息:success[string]

项目详情

  • API Path/api/v1/project/{id}

  • 请求方法GET

  • 详细说明: 获取项目的版本信息,包括项目的当前版本

  • REST参数

    参数名说明必填类型值可能性限制示例
    id[int]
  • 请求内容

    /api/v1/project/139
  • 响应内容

    {
    "status": 201,
    "msg": "success",
    "data": {
    "name": "lost004",
    "id": 138,
    "mode": "插桩模式",
    "scan_id": 5,
    "agents": [
    {
    "id": 2083,
    "name": "Windows 10-cain-v1.0.6-dongtai-agent-python"
    }
    ],
    "versionData": {
    "version_id": 174,
    "version_name": "V1.0",
    "description": ""
    }
    }
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    data[object]
    status状态码:201、203[int]
    msg状态信息:success、no permission[string]
    参数名说明必填类型值可能性限制示例
    name项目名[string]
    agents项目对应的 Agent[array]
    mode项目模式[string]
    scan_id扫描策略对应的 ID[int]
    versionData项目的版本信息[object]
    id项目ID[int]
    参数名说明必填类型值可能性限制示例
    name项目版本名[string]
    id项目版本 ID[int]
    参数名说明必填类型值可能性限制示例
    version_name项目版本名称[string]
    version_id项目版本 ID[int]
    description项目版本描述[string]

项目新建

  • API Path /api/v1/project/add

  • 请求方法POST

  • 详细说明: 根据所给条件新建项目;当指定项目id时, 根据所给条件更新对应项目

  • 请求参数Json Object

    参数名说明必填类型值可能性限制示例
    name项目名[string]
    agent_idsAgent 对应的 ID,使用","进行切分。[string]
    mode项目模式[string]
    scan_id扫描策略的对于 ID[int]
    version_name项目的版本名。[string]
    pid项目ID[int]
    description项目的描述信息[string]
  • 请求内容

    /api/v1/project/add
    {
    "name": "123123123123",
    "mode": "插桩模式",
    "agent_ids": "1,2",
    "scan_id": 260,
    "version_name": "123132",
    "description": "1231"
    }
  • 响应内容

    {
    "status": 201,
    "msg": "创建成功"
    }
  • 返回结果Json Object

    参数名说明必填类型值可能性限制示例
    status状态码:201、202、203[int]
    msg状态信息:参数错误、创建失败、项目名称已存在、创建成功、agent已被其他项目绑定[string]