Docker 运行swagger-editor实现在线接口文档维护与调试

news2024/11/28 2:37:47

文章目录

  • 一、序
  • 二, Docker部署准备
    • 1. 编辑docker-compose.yml
    • 2. 新增启动、停止脚本
    • 3. 样例 swagger.yaml
  • 三, 启动swagger-editor
    • 1. 使用说明
    • 2. 完整代码备份

一、序

因工作需要,需要搭建python运行环境,项目中python基于flask实现了swagger在线文档以及接口测试,前后端对接开发时需要使用。项目比较庞大,完全部署的话,只使用swagger在线文档功能的话,太浪费资源了。

Swagger Editor是一个开源的编辑器,并且它也是一个基于Angular的成功案例。在Swagger Editor中,我们可以基于YAML等语法定义我们的RESTful API,然后它会自动生成一篇排版优美的API文档,并且提供实时预览。简单说就是可以边编写API 边预览边测试。

这么看来swagger-editor可以基于swagger yaml文件实现在线接口文档生成,完全符合我们的需求。

二, Docker部署准备

docker、docker-compose环境安装就不介绍了。

1. 编辑docker-compose.yml

docker-compose实现了如下功能:

  1. 指定镜像、文件映射、端口映射、日志配置、重启策略
  2. 指定资源占有限制
  3. 通过环境变量指定默认加载的swagger配置文件

docker-compose.yml

version: '3'
services:
  swagger-editor:
    image: swaggerapi/swagger-editor
    container_name: swagger-editor
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 20M
        reservations:
          memory: 10M
    volumes:
      - ./swagger.yaml:/swagger.yaml
    ports:
      - 80:8080
    environment:
      SWAGGER_FILE: /swagger.yaml
    restart: on-failure
    logging:
      driver: 'json-file'
      options:
        max-size: '30m'
        max-file: '1'

2. 新增启动、停止脚本

start.sh

#!/bin/bash
docker-compose up -d

stop.sh

#!/bin/bash
docker-compose down

3. 样例 swagger.yaml

https://gitee.com/WeBankOS/FATE-Flow/blob/feature-1.10.0-update-doc/doc/swagger/swagger.yaml

三, 启动swagger-editor

将上一步准备的4个文件,放在同一目录,执行 sh start.sh
启动成功后输入http://127.0.0.1:80,出现如下界面:
在这里插入图片描述

1. 使用说明

界面左边是api 文件的 yaml 描述文件, 左边部分可以直接编辑API文档,编辑会立即更新到右边视图。右边是swagger-UI,可以查看文档,并直接进行API的测试。

上面有一排辅助菜单,包括yaml导入,文件格式转换,生成服务端/客户端代码等。

大家可以自行探索!

2. 完整代码备份

如何使用下面的备份文件恢复成原始的项目代码,请移步查阅:神奇代码恢复工具

//goto docker-compose.yml
version: '3'
services:
  swagger-editor:
    image: swaggerapi/swagger-editor
    container_name: swagger-editor
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 20M
        reservations:
          cpus: '0.05'
          memory: 10M
    volumes:
      - ./swagger.yaml:/swagger.yaml
    ports:
      - 80:8080
    environment:
      SWAGGER_FILE: /swagger.yaml
    restart: on-failure
    logging:
      driver: 'json-file'
      options:
        max-size: '30m'
        max-file: '1'
//goto restart.sh
#!/bin/bash
docker-compose down && docker-compose --compatibility up -d
//goto stop.sh
#!/bin/bash
docker-compose down
//goto swagger.yaml
openapi: 3.0.3
info:
  version: '1.10.0'
  title: Fate Flow 接口文档

paths:
  '/data/upload':
    post:
      summary: upload
      tags:
        - data-access
      parameters:
        - in: query
          name: id_delimiter
          description: data delimiter
          required: false
          schema:
            type: string
            example: ","
        - in: query
          name: head
          description: data head
          required: true
          schema:
            type: integer
            example: 0, 1
        - in: query
          name: partition
          description: compoting table partitions
          required: true
          schema:
            type: integer
            example: 16, ...
        - in: query
          name: table_name
          description: fate table name
          required: true
          schema:
            type: string
            example: breast_hetero_guest
        - in: query
          name: namespace
          description: fate table namespace
          required: true
          schema:
            type: string
            example: experiment
        - in: query
          name: storage_engine
          description: data storage engin
          required: false
          schema:
            type: string
            example: eggroll, localfs, hdfs, ...
        - in: query
          name: destory
          description: destory old table and upload new table
          required: false
          schema:
            type: integer
            example: 0, 1
        - in: query
          name: extend_sid
          description: extend sid to first column
          required: false
          schema:
            type: integer
            example: 0, 1
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
      responses:
        '200':
          description: upload success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "board_url": "http://xxx:8080/index.html#/dashboard?job_id=xxx&role=local&party_id=0",
                        "code": 0,
                        "dsl_path": "/data/projects/fate/fateflow/jobs/xxx/job_dsl.json",
                        "job_id": xxx,
                        "logs_directory": "/data/projects/fate/fateflow/logs/xxx",
                        "message": "success",
                        "model_info": {
                          "model_id": "local-0#model",
                          "model_version": xxx
                        },
                        "namespace": "experiment",
                        "pipeline_dsl_path": "/data/projects/fate/fateflow/jobs/xxx/pipeline_dsl.json",
                        "runtime_conf_on_party_path": "/data/projects/fate/fateflow/jobs/xxx/local/0/job_runtime_on_party_conf.json",
                        "runtime_conf_path": "/data/projects/fate/fateflow/jobs/xxx/job_runtime_conf.json",
                        "table_name": "breast_hetero_guest",
                        "train_runtime_conf_path": "/data/projects/fate/fateflow/jobs/xxx/train_runtime_conf.json"
                      }
        '404':
          description: upload failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: required parameters are missing

  '/data/download':
    post:
      summary: download data
      tags:
        - data-access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - table_name
                - namespace
                - output_path
              properties:
                table_name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
                output_path:
                  type: string
                  example: /data/projects/fate/fateflow/experiment_download_breast_guest.csv
                delimiter:
                  type: string
                  example: ","
      responses:
        '200':
          description: download success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "board_url": "http://xxx:8080/index.html#/dashboard?job_id=xxx&role=local&party_id=0",
                        "code": 0,
                        "dsl_path": "/data/projects/fate/fateflow/jobs/xxx/job_dsl.json",
                        "job_id": xxx,
                        "logs_directory": "/data/projects/fate/fateflow/logs/xxx",
                        "message": "success",
                        "model_info": {
                          "model_id": "local-0#model",
                          "model_version": xxx
                        },
                        "namespace": "experiment",
                        "pipeline_dsl_path": "/data/projects/fate/fateflow/jobs/xxx/pipeline_dsl.json",
                        "runtime_conf_on_party_path": "/data/projects/fate/fateflow/jobs/xxx/local/0/job_runtime_on_party_conf.json",
                        "runtime_conf_path": "/data/projects/fate/fateflow/jobs/xxx/job_runtime_conf.json",
                        "table_name": "breast_hetero_guest",
                        "train_runtime_conf_path": "/data/projects/fate/fateflow/jobs/xxx/train_runtime_conf.json"
                      }
        '404':
          description: download failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: required parameters are missing

  '/data/upload/history':
    post:
      summary: history of upload job info
      tags:
        - data-access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                job_id:
                  type: string
                  example: 202103241706521313480
                limit:
                  type: integer
                  description: limit output
                  example: 1
      responses:
        '200':
          description: get success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      example:
                        {
                          "202103241706521313480": {
                            "notes": "",
                            "schema": {
                                "header": "y,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9",
                                "sid": "id"
                            },
                            "upload_info": {
                              "namespace": "experiment",
                              "partition": 4,
                              "table_name": "breast_hetero_guest",
                              "upload_count": 569
                            }
                          }
                        }
        '404':
          description: get failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 100
                  retmsg:
                    type: string
                    example: server error

  '/table/bind':
    post:
      summary: bind a storage address to fate table
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - engine
                - address
                - namespace
                - name
                - head
                - id_delimiter
                - partitions
              properties:
                engine:
                  type: string
                  example: mysql
                name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
                address:
                  type: object
                  description: storage address
                  example:
                    user: fate
                    passwd: fate
                    host: 127.0.0.1
                    port: 3306
                    db: xxx
                    name: xxx
                partitions:
                  type: integer
                  description: fate computing table partitions
                  example: 16
                head:
                  type: integer
                  description: 1 means data have head
                  example: 0,1
                id_delimiter:
                  type: string
                  description: data table or intermediate storage table delimiter
                  example: ","
                in_serialized:
                  type: integer
                  description: data serialized, standlone/eggroll/mysql/path storage default 1, others default 0
                  example: 0, 1
                drop:
                  type: integer
                  description: if table is exist, will delete it
                  example: 0,1
                id_column:
                  type: string
                  example: "id"
                feature_column:
                  type: string
                  description: delimited by ","
                  example: x1,x2,x3
      responses:
        '200':
          description: bind table success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      table_name:
                        type: string
                        example: breast_hetero_guest
                      namespace:
                        type: string
                        example: experiment
        '404':
          description: bind table failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 100
                  retmsg:
                    type: string
                    example: engine xxx address xxx check failed

  '/table/delete':
    post:
      summary: delete fate table
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - table_name
                - namespace
              properties:
                table_name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
      responses:
        '200':
          description: delete table success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      table_name:
                        type: string
                        example: breast_hetero_guest
                      namespace:
                        type: string
                        example: experiment
        '404':
          description: delete table failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find table

  '/table/list':
    post:
      summary: get job all tables
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
                - role
                - party_id
              properties:
                job_id:
                  type: string
                  example: 202101251515021092240
                role:
                  type: string
                  example: guest
                party_id:
                  type: string
                  example: 10000
      responses:
        '200':
          description: get tables success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "DataIO_0":
                        {
                          "input":
                          {
                            "Reader_0.data_0":
                            {
                              "name": xxx,
                              "namespace": xxx
                            }
                          },
                          "output":
                          {
                            "data_0":
                            {
                              "name": xxx,
                              "namespace": xxx
                            }
                          }
                        },
                        "Intersection_0":
                        {
                          "input":
                          {
                            "DataIO_0.data_0":
                            {
                              "name": xxx,
                              "namespace": xxx
                            }
                          },
                          "output":
                          {
                            "data_0":
                            {
                              "name": xxx,
                              "namespace": xxx
                            }
                          }
                        },
                        "Reader_0":
                        {
                          "input":
                          {
                            "table":
                            {
                              "name": xxx,
                              "namespace": "xxxx"
                            }
                          },
                          "output":
                          {
                            "data_0":
                            {
                              "name": xxx,
                              "namespace": xxx
                            }
                          }
                        }
                      }
        '404':
          description: delete table failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find table

  '/table/table_info':
    post:
      summary: query table info
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - table_name
                - namespace
              properties:
                table_name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
      responses:
        '200':
          description: get tables success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "address":
                        {},
                        "count": 569,
                        "exist": 1,
                        "namespace": "experiment",
                        "partition": 16,
                        "schema":
                        {
                          "header": "id,y,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9",
                          "sid": "id"
                        },
                        "table_name": "breast_hetero_guest"
                      }
        '404':
          description: query table failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find table

  '/table/tracking/source':
    post:
      summary: tracking table source
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - table_name
                - namespace
              properties:
                table_name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
      responses:
        '200':
          description: tracking success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      example:
                        {
                          "parent_table_name": xxx,
                          "parent_table_namespace": xxx,
                          "source_table_name": xxx,
                          "source_table_namespace": xxx
                        }
        '404':
          description: tracking failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find table

  '/table/tracking/job':
    post:
      summary: tracking using table job
      tags:
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - table_name
                - namespace
              properties:
                table_name:
                  type: string
                  example: breast_hetero_guest
                namespace:
                  type: string
                  example: experiment
      responses:
        '200':
          description: tracking success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      example:
                        {
                          "count": 5,
                          "job":
                          [
                            "202104212104472450460",
                            "202104212127150470680",
                            "202104220937051579910",
                            "202104212038599210200",
                            "202104212131462630720"
                          ]
                        }
        '404':
          description: tracking failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find table

  '/job/submit':
    post:
      summary: submit job
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - dsl
                - runtime_conf
              properties:
                dsl:
                  type: object
                  example:
                    {
                      "components":
                      {
                        "dataio_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "data":
                              [
                                "reader_0.table"
                              ]
                            }
                          },
                          "module": "DataIO",
                          "need_deploy": true,
                          "output":
                          {
                            "data":
                            [
                              "train"
                            ],
                            "model":
                            [
                              "dataio"
                            ]
                          }
                        },
                        "evaluation_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "data":
                              [
                                "hetero_lr_0.train"
                              ]
                            }
                          },
                          "module": "Evaluation",
                          "output":
                          {
                            "data":
                            [
                              "evaluate"
                            ]
                          }
                        },
                        "hetero_feature_binning_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "data":
                              [
                                "intersection_0.train"
                              ]
                            }
                          },
                          "module": "HeteroFeatureBinning",
                          "output":
                          {
                            "data":
                            [
                              "train"
                            ],
                            "model":
                            [
                              "hetero_feature_binning"
                            ]
                          }
                        },
                        "hetero_feature_selection_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "data":
                              [
                                "hetero_feature_binning_0.train"
                              ]
                            },
                            "isometric_model":
                            [
                              "hetero_feature_binning_0.hetero_feature_binning"
                            ]
                          },
                          "module": "HeteroFeatureSelection",
                          "output":
                          {
                            "data":
                            [
                              "train"
                            ],
                            "model":
                            [
                              "selected"
                            ]
                          }
                        },
                        "hetero_lr_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "train_data":
                              [
                                "hetero_feature_selection_0.train"
                              ]
                            }
                          },
                          "module": "HeteroLR",
                          "output":
                          {
                            "data":
                            [
                              "train"
                            ],
                            "model":
                            [
                              "hetero_lr"
                            ]
                          }
                        },
                        "intersection_0":
                        {
                          "input":
                          {
                            "data":
                            {
                              "data":
                              [
                                "dataio_0.train"
                              ]
                            }
                          },
                          "module": "Intersection",
                          "output":
                          {
                            "data":
                            [
                              "train"
                            ]
                          }
                        },
                        "reader_0":
                        {
                          "module": "Reader",
                          "output":
                          {
                            "data":
                            [
                              "table"
                            ]
                          }
                        }
                      }
                    }
                runtime_conf:
                  type: object
                  example:
                    {
                      "component_parameters":
                      {
                        "common":
                        {
                          "hetero_lr_0":
                          {
                            "alpha": 0.01,
                            "batch_size": 320,
                            "init_param":
                            {
                              "init_method": "random_uniform"
                            },
                            "learning_rate": 0.15,
                            "max_iter": 3,
                            "optimizer": "rmsprop",
                            "penalty": "L2"
                          },
                          "intersection_0":
                          {
                            "intersect_method": "raw",
                            "only_output_key": false,
                            "sync_intersect_ids": true
                          }
                        },
                        "role":
                        {
                          "guest":
                          {
                            "0":
                            {
                              "dataio_0":
                              {
                                "label_name": "y",
                                "label_type": "int",
                                "output_format": "dense",
                                "with_label": true
                              },
                              "reader_0":
                              {
                                "table":
                                {
                                  "name": "breast_hetero_guest",
                                  "namespace": "experiment"
                                }
                              }
                            }
                          },
                          "host":
                          {
                            "0":
                            {
                              "dataio_0":
                              {
                                "output_format": "dense",
                                "with_label": false
                              },
                              "evaluation_0":
                              {
                                "need_run": false
                              },
                              "reader_0":
                              {
                                "table":
                                {
                                  "name": "breast_hetero_host",
                                  "namespace": "experiment"
                                }
                              }
                            }
                          }
                        }
                      },
                      "dsl_version": "2",
                      "initiator":
                      {
                        "party_id": 9999,
                        "role": "guest"
                      },
                      "job_parameters":
                      {
                        "common":
                        {
                          "auto_retries": 1,
                          "computing_partitions": 8,
                          "task_cores": 4,
                          "task_parallelism": 2
                        }
                      },
                      "role":
                      {
                        "arbiter":
                        [
                          10000
                        ],
                        "guest":
                        [
                          9999
                        ],
                        "host":
                        [
                          10000
                        ]
                      }
                    }
      responses:
        '200':
          description: submit job success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "board_url": xxx,
                        "code": 0,
                        "dsl_path": xxx,
                        "job_id": xxx,
                        "logs_directory": xxx,
                        "message": "success",
                        "model_info":
                        {
                          "model_id": xxx,
                          "model_version": xxx
                        },
                        "pipeline_dsl_path": xxx,
                        "runtime_conf_on_party_path": xxx,
                        "runtime_conf_path": xxx,
                        "train_runtime_conf_path": xxx
                      }
        '404':
          description: submit job failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: "config error"

  '/job/stop':
    post:
      summary: stop job
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
                  example: 202103231958539401540
                stop_status:
                  type: string
                  default: cancel
                  example: "failed"
                  description: "failed or cancel"
      responses:
        '200':
          description: stop job success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: stop job failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/rerun':
    post:
      summary: rerun job
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
                  example: 202103231958539401540
      responses:
        '200':
          description: rerun job success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: rerun job failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/query':
    post:
      summary: query job
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
      responses:
        '200':
          description: query job success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      example:
                        {
                          "f_apply_resource_time": xxx,
                          "f_cancel_signal": false,
                          "f_cancel_time": xxx,
                          "f_cores": 8,
                          "f_create_date": xxx,
                          "f_create_time": xxx,
                          "f_description": "",
                          "f_dsl": {},
                          "f_elapsed": 14380,
                          "f_end_date": xxx,
                          "f_end_scheduling_updates": 1,
                          "f_end_time": xxx,
                          "f_engine_name": "EGGROLL",
                          "f_engine_type": "computing",
                          "f_initiator_party_id": "20001",
                          "f_initiator_role": "guest",
                          "f_is_initiator": true,
                          "f_job_id": xxx,
                          "f_memory": 0,
                          "f_name": "",
                          "f_party_id": "20001",
                          "f_progress": 14,
                          "f_ready_signal": false,
                          "f_ready_time": null,
                          "f_remaining_cores": 8,
                          "f_remaining_memory": 0,
                          "f_rerun_signal": false,
                          "f_resource_in_use": false,
                          "f_return_resource_time": xxx,
                          "f_role": "guest",
                          "f_roles": {},
                          "f_runtime_conf": {},
                          "f_runtime_conf_on_party": {},
                          "f_start_date": xxx,
                          "f_start_time": xxx,
                          "f_status": "failed",
                          "f_status_code": null,
                          "f_tag": "job_end",
                          "f_train_runtime_conf": {},
                          "f_update_date": xxx,
                          "f_update_time": xxx,
                          "f_user": {},
                          "f_user_id": ""
                        }
        '404':
          description: query job failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/list/job':
    post:
      summary: list jobs
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: integer
                  description: '`0` means no limit'
                  example: 20
                page:
                  type: integer
                  example: 1
                job_id:
                  type: string
                  example: '202112020129140220090'
                party_id:
                  type: integer
                  example: 9999
                role:
                  type: array
                  items:
                    type: string
                    enum:
                      - guest
                      - host
                      - arbiter
                      - local
                status:
                  type: array
                  items:
                    type: string
                    enum:
                      - success
                      - running
                      - waiting
                      - failed
                      - canceled
                description:
                  type: string
                  description: '`notes` on front-end'
                order_by:
                  type: string
                  description: 'defaults `create_time`'
                  enum:
                      - create_time
                      - start_time
                      - end_time
                      - elapsed
                order:
                  type: string
                  description: 'defaults `desc`'
                  enum:
                      - asc
                      - desc
      responses:
        '200':
          description: jobs list
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 1
                      jobs:
                        type: array
                        items:
                          type: object
                          example:
                            apply_resource_time: 1638379762883
                            cancel_signal: false
                            cancel_time:
                            cores: 4
                            create_date: '2021-12-02 01:29:18'
                            create_time: 1638379758581
                            description: ''
                            dsl:
                              components:
                                dataio_0:
                                  input:
                                    data:
                                      data:
                                        - reader_0.data
                                  module: DataIO
                                  output:
                                    data:
                                      - data
                                    model:
                                      - model
                                hetero_feature_binning_0:
                                  input:
                                    data:
                                      data:
                                        - intersection_0.data
                                  module: HeteroFeatureBinning
                                  output:
                                    data:
                                      - data
                                    model:
                                      - model
                                intersection_0:
                                  input:
                                    data:
                                      data:
                                        - dataio_0.data
                                  module: Intersection
                                  output:
                                    cache:
                                      - cache
                                    data:
                                      - data
                                reader_0:
                                  module: Reader
                                  output:
                                    data:
                                      - data
                                  provider: fate_flow@1.7.0
                            elapsed: 116548
                            end_date: '2021-12-02 01:31:19'
                            end_scheduling_updates: 1
                            end_time: 1638379879547
                            engine_name: STANDALONE
                            engine_type: computing
                            initiator_party_id: '10000'
                            initiator_role: guest
                            is_initiator: true
                            job_id: '202112020129140220090'
                            memory: 0
                            name: ''
                            partners:
                              - 9999
                            party_id: 10000
                            progress: 100
                            ready_signal: false
                            ready_time:
                            remaining_cores: 4
                            remaining_memory: 0
                            rerun_signal: false
                            resource_in_use: false
                            return_resource_time: 1638379879568
                            role: guest
                            roles:
                              guest:
                                - 10000
                              host:
                                - 9999
                            runtime_conf:
                              component_parameters:
                                common:
                                  hetero_feature_binning_0:
                                    adjustment_factor: 0.5
                                    bin_indexes: -1
                                    bin_names:
                                    bin_num: 10
                                    category_indexes:
                                    category_names:
                                    compress_thres: 10000
                                    error: 0.001
                                    head_size: 10000
                                    local_only: false
                                    method: quantile
                                    transform_param:
                                      transform_cols:
                                        - 0
                                        - 1
                                        - 2
                                      transform_names:
                                      transform_type: woe
                                role:
                                  guest:
                                    '0':
                                      dataio_0:
                                        with_label: true
                                      reader_0:
                                        table:
                                          name: breast_hetero_guest
                                          namespace: experiment
                                  host:
                                    '0':
                                      dataio_0:
                                        with_label: false
                                      hetero_feature_binning_0:
                                        transform_param:
                                          transform_type:
                                      reader_0:
                                        table:
                                          name: breast_hetero_host
                                          namespace: experiment
                              conf_path: "/tmp/tmp2zc5tf8b/job_runtime_conf.json"
                              dsl_path: "/tmp/tmp2zc5tf8b/job_dsl.json"
                              dsl_version: 2
                              initiator:
                                party_id: 10000
                                role: guest
                              job_parameters:
                                common:
                                  adaptation_parameters:
                                    if_initiator_baseline: true
                                    request_task_cores: 4
                                    task_cores_per_node: 4
                                    task_memory_per_node: 0
                                    task_nodes: 1
                                  auto_retries: 0
                                  auto_retry_delay: 1
                                  computing_engine: STANDALONE
                                  computing_partitions: 4
                                  eggroll_run: { }
                                  engines_address: { }
                                  federated_mode: SINGLE
                                  federated_status_collect_type: PUSH
                                  federation_engine: STANDALONE
                                  job_type: train
                                  model_id: guest-10000#host-9999#model
                                  model_version: '202112020129140220090'
                                  pulsar_run: { }
                                  rabbitmq_run: { }
                                  spark_run: { }
                                  storage_engine: STANDALONE
                                  task_parallelism: 1
                              role:
                                guest:
                                  - 10000
                                host:
                                  - 9999
                            runtime_conf_on_party:
                              component_parameters:
                                common:
                                  hetero_feature_binning_0:
                                    adjustment_factor: 0.5
                                    bin_indexes: -1
                                    bin_names:
                                    bin_num: 10
                                    category_indexes:
                                    category_names:
                                    compress_thres: 10000
                                    error: 0.001
                                    head_size: 10000
                                    local_only: false
                                    method: quantile
                                    transform_param:
                                      transform_cols:
                                        - 0
                                        - 1
                                        - 2
                                      transform_names:
                                      transform_type: woe
                                role:
                                  guest:
                                    '0':
                                      dataio_0:
                                        with_label: true
                                      reader_0:
                                        table:
                                          name: breast_hetero_guest
                                          namespace: experiment
                                  host:
                                    '0':
                                      dataio_0:
                                        with_label: false
                                      hetero_feature_binning_0:
                                        transform_param:
                                          transform_type:
                                      reader_0:
                                        table:
                                          name: breast_hetero_host
                                          namespace: experiment
                              conf_path: "/tmp/tmp2zc5tf8b/job_runtime_conf.json"
                              dsl_path: "/tmp/tmp2zc5tf8b/job_dsl.json"
                              dsl_version: 2
                              initiator:
                                party_id: 10000
                                role: guest
                              job_parameters:
                                adaptation_parameters:
                                  if_initiator_baseline: false
                                  request_task_cores: 4
                                  task_cores_per_node: 4
                                  task_memory_per_node: 0
                                  task_nodes: 1
                                auto_retries: 0
                                auto_retry_delay: 1
                                computing_engine: STANDALONE
                                computing_partitions: 4
                                eggroll_run:
                                  eggroll.session.processors.per.node: 4
                                engines_address:
                                  computing:
                                    cores_per_node: 20
                                    nodes: 1
                                  federation:
                                    cores_per_node: 20
                                    nodes: 1
                                  storage:
                                    cores_per_node: 20
                                    nodes: 1
                                federated_mode: SINGLE
                                federated_status_collect_type: PUSH
                                federation_engine: STANDALONE
                                job_type: train
                                model_id: guest-10000#host-9999#model
                                model_version: '202112020129140220090'
                                pulsar_run: { }
                                rabbitmq_run: { }
                                spark_run: { }
                                storage_engine: STANDALONE
                                task_parallelism: 1
                              role:
                                guest:
                                  - 10000
                                host:
                                  - 9999
                            start_date: '2021-12-02 01:29:22'
                            start_time: 1638379762999
                            status: success
                            status_code:
                            tag: job_end
                            train_runtime_conf: { }
                            update_date: '2021-12-02 01:32:04'
                            update_time: 1638379924749
                            user:
                              guest:
                                '10000': ''
                              host:
                                '9999': ''
                            user_id: ''

  '/job/list/task':
    post:
      summary: list tasks
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: integer
                  description: '`0` means no limit'
                  example: 20
                page:
                  type: integer
                  example: 1
                job_id:
                  type: string
                  example: '202112020129140220090'
                party_id:
                  type: integer
                  example: 9999
                role:
                  type: string
                  enum:
                    - guest
                    - host
                    - arbiter
                    - local
                component_name:
                  type: string
                  example: upload_0
                order_by:
                  type: string
                  description: 'defaults `create_time`'
                  enum:
                      - create_time
                      - start_time
                      - end_time
                      - elapsed
                order:
                  type: string
                  description: 'defaults `asc`'
                  enum:
                      - asc
                      - desc
      responses:
        '200':
          description: jobs list
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 1
                      tasks:
                        type: array
                        items:
                          type: object
                          example:
                            auto_retries: 0
                            auto_retry_delay: 1
                            cmd:
                              - "/root/Codes/FATE/venv/bin/python3.6"
                              - "/root/Codes/FATE/fateflow/python/fate_flow/worker/task_executor.py"
                              - "--job_id"
                              - '202112020129140220090'
                              - "--component_name"
                              - hetero_feature_binning_0
                              - "--task_id"
                              - 202112020129140220090_hetero_feature_binning_0
                              - "--task_version"
                              - 0
                              - "--role"
                              - guest
                              - "--party_id"
                              - '10000'
                              - "--config"
                              - "/root/Codes/FATE/fateflow/jobs/202112020129140220090/guest/10000/hetero_feature_binning_0/202112020129140220090_hetero_feature_binning_0/0/task_executor/6b6f4b1852cc11ec8a8700155d13c16c/config.json"
                              - "--result"
                              - "/root/Codes/FATE/fateflow/jobs/202112020129140220090/guest/10000/hetero_feature_binning_0/202112020129140220090_hetero_feature_binning_0/0/task_executor/6b6f4b1852cc11ec8a8700155d13c16c/result.json"
                              - "--log_dir"
                              - "/root/Codes/FATE/fateflow/logs/202112020129140220090/guest/10000/hetero_feature_binning_0"
                              - "--parent_log_dir"
                              - "/root/Codes/FATE/fateflow/logs/202112020129140220090/guest/10000"
                              - "--worker_id"
                              - 6b6f4b1852cc11ec8a8700155d13c16c
                              - "--run_ip"
                              - 127.0.0.1
                              - "--job_server"
                              - 127.0.0.1:9380
                              - "--session_id"
                              - 202112020129140220090_hetero_feature_binning_0_0_guest_10000
                              - "--federation_session_id"
                              - 202112020129140220090_hetero_feature_binning_0_0
                            component_module: HeteroFeatureBinning
                            component_name: hetero_feature_binning_0
                            component_parameters:
                              CodePath: HeteroFeatureBinningGuest
                              ComponentParam:
                                _feeded_deprecated_params: [ ]
                                _is_raw_conf: false
                                _name: HeteroFeatureBinning#hetero_feature_binning_0
                                _user_feeded_params:
                                  - head_size
                                  - category_names
                                  - bin_num
                                  - transform_param.transform_names
                                  - transform_param
                                  - compress_thres
                                  - error
                                  - method
                                  - bin_indexes
                                  - transform_param.transform_type
                                  - bin_names
                                  - category_indexes
                                  - local_only
                                  - transform_param.transform_cols
                                  - adjustment_factor
                                adjustment_factor: 0.5
                                bin_indexes: -1
                                bin_names:
                                bin_num: 10
                                category_indexes:
                                category_names:
                                compress_thres: 10000
                                encrypt_param:
                                  key_length: 1024
                                  method: Paillier
                                error: 0.001
                                head_size: 10000
                                local_only: false
                                method: quantile
                                need_run: true
                                optimal_binning_param:
                                  adjustment_factor:
                                  init_bin_nums: 1000
                                  init_bucket_method: quantile
                                  max_bin:
                                  max_bin_pct: 1
                                  metric_method: iv
                                  min_bin_pct: 0.05
                                  mixture: true
                                skip_static: false
                                transform_param:
                                  transform_cols:
                                    - 0
                                    - 1
                                    - 2
                                  transform_names:
                                  transform_type: woe
                              conf_path: "/tmp/tmp2zc5tf8b/job_runtime_conf.json"
                              dsl_path: "/tmp/tmp2zc5tf8b/job_dsl.json"
                              dsl_version: 2
                              initiator:
                                party_id: 10000
                                role: guest
                              job_parameters:
                                common:
                                  adaptation_parameters:
                                    if_initiator_baseline: true
                                    request_task_cores: 4
                                    task_cores_per_node: 4
                                    task_memory_per_node: 0
                                    task_nodes: 1
                                  auto_retries: 0
                                  auto_retry_delay: 1
                                  computing_engine: STANDALONE
                                  computing_partitions: 4
                                  eggroll_run: { }
                                  engines_address: { }
                                  federated_mode: SINGLE
                                  federated_status_collect_type: PUSH
                                  federation_engine: STANDALONE
                                  job_type: train
                                  model_id: guest-10000#host-9999#model
                                  model_version: '202112020129140220090'
                                  pulsar_run: { }
                                  rabbitmq_run: { }
                                  spark_run: { }
                                  storage_engine: STANDALONE
                                  task_parallelism: 1
                              local:
                                party_id: 10000
                                role: guest
                              module: HeteroFeatureBinning
                              role:
                                guest:
                                  - 10000
                                host:
                                  - 9999
                            create_date: '2021-12-02 01:29:21'
                            create_time: 1638379761918
                            elapsed: 9095
                            end_date: '2021-12-02 01:31:04'
                            end_time: 1638379864051
                            engine_conf:
                              computing_engine: STANDALONE
                            federated_mode: SINGLE
                            federated_status_collect_type: PUSH
                            initiator_party_id: '10000'
                            initiator_role: guest
                            job_id: '202112020129140220090'
                            party_id: '10000'
                            party_status: success
                            provider_info:
                              class_path:
                                feature_instance: feature.instance.Instance
                                feature_vector: feature.sparse_vector.SparseVector
                                homo_model_convert: protobuf.homo_model_convert.homo_model_convert
                                interface: components.components.Components
                                model: protobuf.generated
                                model_migrate: protobuf.model_migrate.model_migrate
                              env:
                                PYTHONPATH: "/root/Codes/FATE/python"
                              name: fate
                              path: "/root/Codes/FATE/python/federatedml"
                              version: 1.7.0
                            role: guest
                            run_ip: 127.0.0.1
                            run_on_this_party: true
                            run_pid: 29934
                            start_date: '2021-12-02 01:30:47'
                            start_time: 1638379847118
                            status: success
                            status_code:
                            task_id: 202112020129140220090_hetero_feature_binning_0
                            task_version: 0
                            update_date: '2021-12-02 01:31:06'
                            update_time: 1638379866439
                            worker_id: 6b6f4b1852cc11ec8a8700155d13c16c

  '/job/update':
    post:
      summary: job notes
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
                - role
                - party_id
                - notes
              properties:
                job_id:
                  type: string
                  example: "2022xxx"
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                notes:
                  type: string
                  example: this is a test
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/parameter/update':
    post:
      summary: update job parameter
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
                  example: "2022xxx"
                component_parameters:
                  type: object
                  example:
                    {
                      "common":
                      {
                        "hetero_lr_0":
                        {
                          "max_iter": 10
                        }
                      }
                    }
                job_parameters:
                  type: object
                  example:
                    {
                      "common":
                      {
                        "auto_retries": 2
                      }
                    }
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "component_parameters":
                        {
                          "common":
                          {
                            "hetero_lr_0":
                            {
                              "alpha": 0.01,
                              "batch_size": 320,
                              "init_param":
                              {
                                "init_method": "random_uniform"
                              },
                              "learning_rate": 0.15,
                              "max_iter": 10,
                              "optimizer": "rmsprop",
                              "penalty": "L2"
                            },
                            "intersection_0":
                            {
                              "intersect_method": "raw",
                              "only_output_key": false,
                              "sync_intersect_ids": true
                            }
                          },
                          "role":
                          {
                            "guest":
                            {
                              "0":
                              {
                                "dataio_0":
                                {
                                  "label_name": "y",
                                  "label_type": "int",
                                  "output_format": "dense",
                                  "with_label": true
                                },
                                "reader_0":
                                {
                                  "table":
                                  {
                                    "name": "breast_hetero_guest",
                                    "namespace": "experiment"
                                  }
                                }
                              }
                            },
                            "host":
                            {
                              "0":
                              {
                                "dataio_0":
                                {
                                  "output_format": "dense",
                                  "with_label": false
                                },
                                "evaluation_0":
                                {
                                  "need_run": false
                                },
                                "reader_0":
                                {
                                  "table":
                                  {
                                    "name": "breast_hetero_host",
                                    "namespace": "experiment"
                                  }
                                }
                              }
                            }
                          }
                        },
                        "components":
                        [],
                        "job_parameters":
                        {
                          "common":
                          {
                            "adaptation_parameters":
                            {
                              "if_initiator_baseline": true,
                              "request_task_cores": 4,
                              "task_cores_per_node": 4,
                              "task_memory_per_node": 0,
                              "task_nodes": 1
                            },
                            "auto_retries": 2,
                            "auto_retry_delay": 1,
                            "computing_engine": "EGGROLL",
                            "computing_partitions": 4,
                            "eggroll_run":
                            {},
                            "engines_address":
                            {},
                            "federated_mode": "MULTIPLE",
                            "federated_status_collect_type": "PUSH",
                            "inheritance_info":
                            {},
                            "job_type": "train",
                            "model_id": "arbiter-10001#guest-20001#host-10001#model",
                            "model_version": "202204251958539401540",
                            "pulsar_run":
                            {},
                            "rabbitmq_run":
                            {},
                            "spark_run":
                            {},
                            "task_parallelism": 1
                          }
                        },
                        "src_party_id": "20001",
                        "src_role": "guest"
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/config':
    post:
      summary: job config
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
                  example: "2022xxx"
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "dsl":
                        {},
                        "job_id": "2022xxx",
                        "model_info":
                        {},
                        "runtime_conf":
                        {},
                        "train_runtime_conf":
                        {}
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/log/download':
    post:
      summary: download job log (tar.gz)
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
      responses:
        '200':
          description: get job log success
          content:
            application/octet-stream:
              schema:
                type: string
                description: file xxx_log.tar.gz
        '404':
          description: get job list failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: Log file path xxx not found. Please check if the job id is valid.

  '/job/log/path':
    post:
      summary: job log path
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "logs_directory": "/data/projects/fate/fateflow/logs/xxx"
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find job

  '/job/task/query':
    post:
      summary: query task
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_id
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: reader_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    description: tasks list
                    items:
                      type: object
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find task

  '/job/clean':
    post:
      summary: clean job
      tags:
        - job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: reader_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no find task

  '/job/clean/queue':
    post:
      summary: cancel waiting job
      tags:
        - job
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "202204261616186991350": 0,
                        "202204261616198643190": 0,
                        "202204261616210073410": 0
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: server error

  '/tracking/job/data_view':
    post:
      summary: data view
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "dataset":
                        {
                          "guest":
                          {
                            "9999":
                            {
                              "Reader_0": "xxx.xxx"
                            }
                          },
                          "host":
                          {
                            "10000":
                            {
                              "Reader_0": "xxx.xxx"
                            }
                          }
                        },
                        "model_summary":
                        {},
                        "partner":
                        {
                          "host":
                          [
                            10000
                          ]
                        },
                        "roles":
                        {
                          "guest":
                          [
                            9999
                          ],
                          "host":
                          [
                            10000
                          ]
                        }
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/metric/all':
    post:
      summary: get component all metric
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: HeteroSecureBoost_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "train":
                        {
                          "loss":
                          {
                            "data":
                            [
                              [
                                0,
                                0.6076415445876732
                              ],
                              [
                                1,
                                0.5374539452565573
                              ],
                              [
                                2,
                                0.4778598986135903
                              ],
                              [
                                3,
                                0.42733599866560723
                              ],
                              [
                                4,
                                0.38433409799127843
                              ]
                            ],
                            "meta":
                            {
                              "Best": 0.38433409799127843,
                              "curve_name": "loss",
                              "metric_type": "LOSS",
                              "name": "train",
                              "unit_name": "iters"
                            }
                          }
                        }
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/metrics':
    post:
      summary: get component metric name and namespace
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "train":
                        [
                          "intersection"
                        ]
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/metric_data':
    post:
      summary: get component metric data
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
                - metric_name
                - metric_namespace
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
                metric_name:
                  type: string
                  example: intersection
                metric_namespace:
                  type: string
                  example: train
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "data":
                        [
                          [
                            "intersect_count",
                            569
                          ],
                          [
                            "intersect_rate",
                            1.0
                          ],
                          [
                            "unmatched_count",
                            0
                          ],
                          [
                            "unmatched_rate",
                            0.0
                          ]
                        ],
                        "meta":
                        {
                          "intersect_method": "raw",
                          "join_method": "inner_join",
                          "metric_type": "INTERSECTION",
                          "name": "intersection"
                        }
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/parameters':
    post:
      summary: get component parameters
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "ComponentParam":
                        {
                          "_feeded_deprecated_params":
                          [
                            "repeated_id_owner",
                            "intersect_cache_param",
                            "join_role",
                            "encode_params",
                            "allow_info_share",
                            "repeated_id_process",
                            "random_bit",
                            "with_encode",
                            "info_owner"
                          ],
                          "_is_raw_conf": false,
                          "_name": "Intersection#Intersection_0",
                          "_user_feeded_params":
                          [
                            "repeated_id_owner",
                            "encode_params.salt",
                            "intersect_method",
                            "intersect_cache_param.encrypt_type",
                            "encode_params.encode_method",
                            "encode_params",
                            "intersect_cache_param",
                            "intersect_cache_param.id_type",
                            "intersect_cache_param.use_cache",
                            "join_role",
                            "allow_info_share",
                            "repeated_id_process",
                            "sync_intersect_ids",
                            "random_bit",
                            "only_output_key",
                            "with_encode",
                            "encode_params.base64",
                            "info_owner"
                          ],
                          "allow_info_share": false,
                          "cardinality_only": false,
                          "dh_params":
                          {
                            "hash_method": "sha256",
                            "key_length": 1024,
                            "salt": ""
                          },
                          "encode_params":
                          {
                            "base64": false,
                            "encode_method": "none",
                            "salt": ""
                          },
                          "info_owner": "guest",
                          "intersect_cache_param":
                          {
                            "encrypt_type": "sha256",
                            "id_type": "phone",
                            "use_cache": false
                          },
                          "intersect_method": "raw",
                          "intersect_preprocess_params":
                          {
                            "encrypt_method": "rsa",
                            "false_positive_rate": 0.001,
                            "filter_owner": "guest",
                            "hash_method": "sha256",
                            "preprocess_method": "sha256",
                            "preprocess_salt": "",
                            "random_state": null
                          },
                          "join_method": "inner_join",
                          "join_role": "guest",
                          "new_sample_id": false,
                          "only_output_key": false,
                          "random_bit": 128,
                          "raw_params":
                          {
                            "base64": false,
                            "hash_method": "none",
                            "join_role": "guest",
                            "salt": "",
                            "use_hash": false
                          },
                          "repeated_id_owner": "guest",
                          "repeated_id_process": false,
                          "rsa_params":
                          {
                            "final_hash_method": "sha256",
                            "hash_method": "sha256",
                            "key_length": 1024,
                            "random_base_fraction": null,
                            "random_bit": 128,
                            "salt": "",
                            "split_calculation": false
                          },
                          "run_cache": false,
                          "run_preprocess": false,
                          "sample_id_generator": "guest",
                          "sync_cardinality": false,
                          "sync_intersect_ids": true,
                          "with_encode": false,
                          "with_sample_id": false
                        },
                        "module": "Intersection"
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/summary/download':
    post:
      summary: get component summary
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "cardinality_only": false,
                        "intersect_num": 569,
                        "intersect_rate": 1.0
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/output/model':
    post:
      summary: get component output model
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/output/data':
    post:
      summary: get component output data
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      [
                        [
                          [
                            "58",
                            1,
                            -0.422281,
                            -0.558102,
                            -0.506991,
                            -0.450875,
                            -1.326851,
                            -1.223647,
                            -1.296979,
                            -1.575895,
                            -0.747019,
                            -1.166825
                          ],
                          [
                            "66",
                            1,
                            -1.213336,
                            0.957974,
                            -1.19832,
                            -0.966647,
                            0.983301,
                            -0.558944,
                            -0.854288,
                            -0.752745,
                            -0.036814,
                            0.452425
                          ]
                        ]
                      ]
                  meta:
                    type: object
                    example:
                      {
                        "header":
                        [
                          [
                            "id",
                            "y",
                            "x0",
                            "x1",
                            "x2",
                            "x3",
                            "x4",
                            "x5",
                            "x6",
                            "x7",
                            "x8",
                            "x9"
                          ]
                        ],
                        "names":
                        [
                          "data_0"
                        ],
                        "total":
                        [
                          569
                        ]
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/output/data/download':
    post:
      summary: download component output data (tar.gz)
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/octet-stream:
              schema:
                type: string
                example: ""
                description: file data.tar.gz
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/tracking/component/output/data/table':
    post:
      summary: get component output data table info
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
                - role
                - party_id
                - component_name
              type: object
              properties:
                job_id:
                  type: string
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 10000
                component_name:
                  type: string
                  example: Intersection_0
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      example:
                        [
                          {
                            "data_name": "data_0",
                            "table_name": "ab035e12b09711ec943e525400c367ed",
                            "table_namespace": "output_data_202203311009181495690_Intersection_0_0"
                          }
                        ]
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: No found table, please check if the parameters are correct

  '/tracking/component/list':
    post:
      summary: get component list
      tags:
        - tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
              type: object
              properties:
                job_id:
                  type: string
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example:
                      {
                        "components":
                        [
                          "HeteroFeatureSelection_0",
                          "DataIO_0",
                          "Reader_0",
                          "HeteroSecureBoost_0",
                          "HeteroFeatureBinning_0",
                          "Intersection_0",
                          "Evaluation_0"
                        ]
                      }
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/resource/query':
    post:
      summary: query conputing engine resource
      tags:
        - resource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - engine_name
              type: object
              properties:
                engine_name:
                  type: string
                  example: EGGROLL, SPARK
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example: {"computing_engine_resource":{"f_cores":16,"f_create_date":"2022-02-10 16:14:03","f_create_time":1644480843818,"f_engine_config":{"cores_per_node":16,"nodes":1},"f_engine_entrance":"fate_on_eggroll","f_engine_name":"EGGROLL","f_engine_type":"computing","f_memory":0,"f_nodes":1,"f_remaining_cores":16,"f_remaining_memory":0,"f_update_date":"2022-04-27 15:48:33","f_update_time":1651045713996},"use_resource_job":[]}
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/resource/return':
    post:
      summary: return job resource
      tags:
        - resource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - job_id
              type: object
              properties:
                engine_name:
                  type: string
                  example: 202204261616175720130
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example: [{"job_id":"202204261616175720130","party_id":"20001","resource_in_use":true,"resource_return_status":ture,"role":"guest"}]
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: no found job

  '/permission/grant/privilege':
    post:
      summary: grant privilege
      tags:
        - permission
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - src_role
                - src_party_id
              type: object
              properties:
                src_role:
                  type: string
                  example: "guest"
                src_party_id:
                  type: string
                  example: 9999
                privilege_role:
                  type: string
                  description: multiple separated by ",". like "guest, host, arbiter" or "all"
                  example: all
                privilege_component:
                  type: string
                  description: multiple separated by ",". like "create, run, stop" or "all"
                  example: all
                privilege_command:
                  type: string
                  description: multiple separated bu ",". like "reader, dataio, ..." or "all"
                  example: all

      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/permission/delete/privilege':
    post:
      summary: delete privilege
      tags:
        - permission
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - src_role
                - src_party_id
              type: object
              properties:
                src_role:
                  type: string
                  example: "guest"
                src_party_id:
                  type: string
                  example: 9999
                privilege_role:
                  type: string
                  description: multiple separated by ",". like "guest, host, arbiter" or "all"
                  example: all
                privilege_component:
                  type: string
                  description: multiple separated by ",". like "create, run, stop" or "all"
                  example: all
                privilege_command:
                  type: string
                  description: multiple separated bu ",". like "reader, dataio, ..." or "all"
                  example: all

      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error

  '/permission/query/privilege':
    post:
      summary: query privilege
      tags:
        - permission
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - src_role
                - src_party_id
              type: object
              properties:
                src_role:
                  type: string
                  example: "guest"
                src_party_id:
                  type: string
                  example: 9999
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    example: {"privilege_command":["stop","run","create"],"privilege_component":["reader", "dataio","heterolinr", "heterolr", "localbaseline","columnexpand","heteropearson","featurescale","datastatistics","feldmanverifiablesum"],"privilege_role":["host","guest","arbiter"],"role":"guest","src_party_id":"9999"}
        '404':
          description: failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 101
                  retmsg:
                    type: string
                    example: error


  '/info/fateboard':
    post:
      summary: get fateboard host and port
      tags:
        - information
      responses:
        '200':
          description: fateboard host and port
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      host:
                        type: string
                        example: 127.0.0.1
                      port:
                        type: integer
                        example: 8080
        '404':
          description: fateboard is not configured
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: fateboard is not configured

  '/info/mysql':
    post:
      summary: test mysql connection
      tags:
        - information
      responses:
        '200':
          description: connect to mysql successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: mysql only available on cluster mode
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: mysql only available on cluster mode
        '503':
          description: connect to mysql failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 503
                  retmsg:
                    type: string
                    description: error message

  '/info/eggroll':
    post:
      summary: test eggroll connection
      tags:
        - information
      responses:
        '200':
          description: connect to eggroll successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '404':
          description: eggroll only available on cluster mode
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: eggroll only available on cluster mode
        '503':
          description: connect to eggroll failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 503
                  retmsg:
                    type: string
                    description: error message

  '/model/deploy':
    post:
      summary: deploy a model for predict
      tags:
        - model
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model_id
                - model_version
              properties:
                model_id:
                  type: string
                  example: 'arbiter-10000#guest-9999#host-10000#model'
                model_version:
                  type: string
                  example: '202111032155391167400'
                components_checkpoint:
                  type: object
                  description: specify a checkpoint model to replace the pipeline model
                  example:
                    hetero_lr_0:
                      step_index: 5
                  additionalProperties:
                    type: object
                    description: use step_index or step_name to specity a checkpoint
                    properties:
                      step_index:
                        type: integer
                        example: 5
                      step_name:
                        type: string
                        example: round_5
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      model_id:
                        type: string
                        example: 'arbiter-9999#guest-10000#host-9999#model'
                      model_version:
                        type: string
                        example: '202111032227378766180'
                      arbiter:
                        type: object
                        properties:
                          party_id:
                            type: integer
                            example: 9999
                      guest:
                        type: object
                        properties:
                          party_id:
                            type: integer
                            example: 10000
                      host:
                        type: object
                        properties:
                          party_id:
                            type: integer
                            example: 9999
                      detail:
                        type: object
                        properties:
                          arbiter:
                            type: object
                            properties:
                              party_id:
                                type: object
                                properties:
                                  retcode:
                                    type: integer
                                    example: 0
                                  retmsg:
                                    type: string
                                    example: deploy model of role arbiter 9999 success
                          guest:
                            type: object
                            properties:
                              party_id:
                                type: object
                                properties:
                                  retcode:
                                    type: integer
                                    example: 0
                                  retmsg:
                                    type: string
                                    example: deploy model of role guest 10000 success
                          host:
                            type: object
                            properties:
                              party_id:
                                type: object
                                properties:
                                  retcode:
                                    type: integer
                                    example: 0
                                  retmsg:
                                    type: string
                                    example: deploy model of role host 9999 success

  '/model/transfer/{model_id}/{model_version}':
    post:
      summary: download a model by model_id and model_version
      tags:
        - model
      parameters:
        - name: model_id
          in: path
          required: true
          description: 'model id (replace # with ~)'
          schema:
            type : string
            example: 'host~10000~arbiter-10000~guest-9999~host-10000~model'
        - name: model_version
          in: path
          required: true
          description: model version
          schema:
            type : string
            example: '202105060929263278441'
      responses:
        '200':
          description: model data
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    description: base64 encoded model data
        '404':
          description: model not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: model not found

  '/model/load':
    post:
      summary: load a deployed model on Fate-Serving
      tags:
        - model
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - initiator
                - role
                - job_parameters
              properties:
                initiator:
                  type: object
                  properties:
                    party_id:
                      type: string
                      example: '10000'
                    role:
                      type: string
                      example: guest
                role:
                  type: object
                  example:
                    guest:
                      - '10000'
                    host:
                      - '10000'
                    arbiter:
                      - '10000'
                job_parameters:
                  type: object
                  properties:
                    model_id:
                      type: string
                      example: arbiter-10000#guest-10000#host-10000#model
                    model_version:
                      type: string
                      example: '2019081217340125761469'
      responses:
        '200':
          description: loading success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  jobId:
                    type: string
                    example: "2019081217340125761469"
                  data:
                    type: object
                    example:
                      detail:
                        guest:
                          '9999':
                            retcode: 0
                            retmsg: success
                        host:
                          '10000':
                            retcode: 0
                            retmsg: success
                      guest:
                        '9999': 0
                      host:
                        '10000': 0

  '/model/bind':
    post:
      summary: bind a deployed model to Fate-Serving
      tags:
        - model
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - service_id
                - initiator
                - role
                - job_parameters
              properties:
                service_id:
                  type: string
                  example: "123"
                initiator:
                  type: object
                  properties:
                    party_id:
                      type: string
                      example: "10000"
                    role:
                      type: string
                      example: guest
                job_parameters:
                  type: object
                  properties:
                    model_id:
                      type: string
                      example: arbiter-10000#guest-10000#host-10000#model
                    model_version:
                      type: string
                      example: "2019081217340125761469"
      responses:
        '200':
          description: binding success
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: service id is 123

  '/checkpoint/list':
    post:
      summary: list checkpoints
      tags:
        - checkpoint
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model_id
                - model_version
                - role
                - party_id
                - component_name
              properties:
                model_id:
                  type: string
                  example: 'arbiter-10000#guest-9999#host-10000#model'
                model_version:
                  type: string
                  example: '202111032155391167400'
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 9999
                component_name:
                  type: string
                  example: hetero_lr_0
      responses:
        '200':
          description: checkpoints list
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        create_time:
                          type: string
                          example: '2021-11-07T02:34:54.683015'
                        step_index:
                          type: integer
                          example: 0
                        step_name:
                          type: string
                          example: step_name
                        models:
                          type: object
                          example:
                            HeteroLogisticRegressionMeta:
                              buffer_name: LRModelMeta
                              sha1: 6871508f6e6228341b18031b3623f99a53a87147
                            HeteroLogisticRegressionParam:
                              buffer_name: LRModelParam
                              sha1: e3cb636fc93675684bff27117943f5bfa87f3029
                          additionalProperties:
                            type: object
                            properties:
                              buffer_name:
                                type: string
                                example: HeteroLogisticRegressionMeta
                              sha1:
                                type: string
                                example: 6871508f6e6228341b18031b3623f99a53a87147

  '/checkpoint/get':
    post:
      summary: get a checkpoint
      tags:
        - checkpoint
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model_id
                - model_version
                - role
                - party_id
                - component_name
              properties:
                model_id:
                  type: string
                  example: 'arbiter-10000#guest-9999#host-10000#model'
                model_version:
                  type: string
                  example: '202111032155391167400'
                role:
                  type: string
                  example: guest
                party_id:
                  type: integer
                  example: 9999
                component_name:
                  type: string
                  example: hetero_lr_0
                step_index:
                  type: integer
                  example: 0
      responses:
        '200':
          description: checkpoint data
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      create_time:
                        type: string
                        example: '2021-11-07T02:34:54.683015'
                      step_index:
                        type: integer
                        example: 0
                      step_name:
                        type: string
                        example: step_name
                      models:
                        type: object
                        example:
                          HeteroLogisticRegressionMeta: 'CgJMMhEtQxzr4jYaPxkAAAAAAADwPyIHcm1zcHJvcDD///8BOTMzMzMzM8M/QApKBGRpZmZYAQ=='
                          HeteroLogisticRegressionParam: 'Ig0KAng3EW1qASu+uuO/Ig0KAng0EcNi7a65ReG/Ig0KAng4EbJbl4gvVea/Ig0KAng2EcZwlVZTkOu/Ig0KAngwEVpG8dCbGvG/Ig0KAng5ESJNTx5MLve/Ig0KAngzEZ88H9P8qfO/Ig0KAng1EVfWP8JJv/K/Ig0KAngxEVS0xVXoTem/Ig0KAngyEaApgW32Q/K/KSiiE8AukPs/MgJ4MDICeDEyAngyMgJ4MzICeDQyAng1MgJ4NjICeDcyAng4MgJ4OUj///8B'
                        additionalProperties:
                          type: string
                          description: base64 encoded model data
        '404':
          description: checkpoint not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 404
                  retmsg:
                    type: string
                    example: The checkpoint was not found.

  '/component/validate':
    post:
      summary: validate component parameters
      tags:
        - component
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dsl_version:
                  type: integer
                  example: 2
                component_name:
                  type: string
                  example: dataio_0
                component_module_name:
                  type: string
                  example: DataIO
                role:
                  type: object
                  example:
                    guest:
                      - 10000
                    host:
                      - 9999
                    arbiter:
                      - 9999
                component_parameters:
                  type: object
                  description: required if `dsl_version` == 2
                  example:
                    common:
                      dataio_0:
                        output_format: dense
                      role:
                        guest:
                          '0':
                            dataio_0:
                              with_label: true
                        host:
                          '0':
                            dataio_0:
                              with_label: false
                              output_format: dense
                role_parameters:
                  type: object
                  description: required if `dsl_version` == 1
                  example:
                    guest:
                      dataio_0:
                        with_label:
                          - true
                        label_name:
                          - y
                        label_type:
                          - int
                        output_format:
                          - dense
                        missing_fill:
                          - true
                        outlier_replace:
                          - true
                    host:
                      dataio_0:
                        with_label:
                          - false
                        output_format:
                          - dense
                        outlier_replace:
                          - true
                algorithm_parameters:
                  type: object
                  description: required if `dsl_version` == 1
                  example:
                    hetero_feature_binning_0:
                      method: quantile
                      compress_thres: 10000
                      head_size: 10000
                      error: 0.001
                      bin_num: 10
                      adjustment_factor: 0.5
                      local_only: false
                      transform_param:
                        transform_cols: -1
                        transform_type: bin_num
      responses:
        '200':
          description: validation passed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 0
                  retmsg:
                    type: string
                    example: success
        '400':
          description: validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  retcode:
                    type: integer
                    example: 400
                  retmsg:
                    type: string
                    description: error message
                    example: "Component dataio_0, module DataIO, does not pass component check, error msg is dataio param's dendse not supported, should be one of ['dense', 'sparse']"

tags:
  - name: data-access
  - name: table
  - name: job
  - name: tracking
  - name: information
  - name: model
  - name: checkpoint
  - name: component

servers:
  - description: Default Server URL
    url: http://localhost:9380/v1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​测绘人注意,你可能会改变历史!

你也许想不到,曾经有一个测绘人员在进行实地测量作业时,在地图上就这么随手一标注,却让这个地方成为了如今的网红打卡地。 这个地方就是外地游客慕名而来的“宽窄巷子”,如果连这个地方都不知道的成都人,就应该不能算…

后期云端制作:激发影视行业创新力的新时代

在前几年,全球疫情席卷而来,许多影视项目不得不陷入停滞。但是,有一部分影视人却不甘被困,他们选择了一种全新的“云”工作方式。这种方式不仅能够提供制作、存储和处理平台,而且还将推动影视行业的创新与发展。今天&a…

系列四、Springboot中使用DevTools

一、概述 日常开发中&#xff0c;修改了一个类的很小一部分&#xff0c;例如HelloService中有这样的一个方法listAllCity()&#xff0c;代码如下&#xff1a; Service public class HelloService {public List<String> listAllCity() {List<String> cities Arrays…

oracle (9)Storage Relationship Strut

Storage & Relationship Strut 存储和关系支柱 目标&#xff1a; 描述数据库的逻辑结构列出段类型其用途列出控制块空间使用的关键字获取存储结构信息 一、基础知识 1、数据库逻辑结构图 2、Types of Segments 段的类型 3、Storage Clause Precedence 存储条款的优先顺序 …

edge浏览器的隐藏功能

1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性&#xff1a;edge://flags/#overlay-scrollbars 3. edge://settings设置界面 详情可参考chrome: 4. edge://extensions 扩展程序页面 5. edge://net-internals 网络事件信息 6. edge://component…

【Java之家-编程的衣柜】线程的基础知识及线程与进程的联系

认识线程 线程是什么 一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行 着多份代码. 轻量级进程 -> 线程&#xff08;Thread&#xff09; 为什么要有线程 首先&#xff0c;“并发编程”成为“刚需” 其次, 虽然多进…

数控 (CNC) 加工设计:​​​​​​​Filou NC Gorilla 2023 Crack

Filou NC Gorilla是一款功能强大的软件&#xff0c;专为计算机数控 (CNC) 加工而设计。它是一款全面且多功能的工具&#xff0c;可让用户轻松创建高精度零件和组件。 专家估计&#xff0c;所有 CNC 零件中 80-90% 是 2.5D 零件。 因此无需创建复杂的 3D 模型&#xff0c;而是可…

leetcode 155. 最小栈

2023.10.31 本题关键在于要求在能在常数时间内检索出最小元素。 其他四个方法都可以用普通的栈进行实现&#xff0c;最后一个方法“获取堆栈中最小元素” 可以借助一个新栈&#xff0c;专门用于存储栈中最小值的。具体细节看java代码&#xff1a; class MinStack {private De…

Unity 粒子特效-第三集-星星闪烁特效

一、特效预览 二、制作原理 星星素材资源 链接&#xff1a;https://pan.baidu.com/s/17D-9sC-ErtqmUxl81Ln1Mw?pwdndm9 提取码&#xff1a;ndm9 1.素材介绍 仔细看&#xff0c;我们的粒子贴图是&#xff08;如下&#xff09;&#xff0c;一颗星星 2.步骤介绍 1.星星动画的…

ROCKCHIP ~ Camera 闪光灯

一、闪光灯基本原理 工作模式 Camera flash led分flash和torch两种模式。 flash&#xff1a; 拍照时上光灯瞬间亮一下&#xff0c;电流比较大&#xff0c;目前是1000mA&#xff0c;最大电流不能超过led最大承受能力 torch&#xff1a; 只用于录video或者拿led当手电筒的情况&…

配音软件的重要性?我不说你也能猜到

随着时代的发展&#xff0c;短视频已经渗透到我们生活中的各个场景。想尝试做自媒体的小伙伴们&#xff0c;一定要试试配音软件&#xff0c;绝对能帮助你达到事半功倍的效果&#xff0c;通过一段时间的使用和比较&#xff0c;我摸索出4个简单又好用的配音软件&#xff0c;接下来…

c语言基础:L1-066 猫是液体

测量一个人的体积是很难的&#xff0c;但猫就不一样了。因为猫是液体&#xff0c;所以可以很容易地通过测量一个长方体容器的容积来得到容器里猫的体积。本题就请你完成这个计算。 输入格式&#xff1a; 输入在第一行中给出 3 个不超过 100 的正整数&#xff0c;分别对应容器…

el-table动态增加列、行数据,俩种方法实现按需选择

需求&#xff1a; 表格数据过多的时候&#xff0c;需要实现动态选择数据的功能&#xff0c;有俩种方法可以按需选择&#xff0c;解决了表格动态选择时闪屏数据抖动问题。 注意&#xff0c;这个添加数据是tableData原本就有的&#xff0c;我做的这个操作类似就是折叠选择展示原有…

分享一下怎么做一个商城小程序

如何制作一个商城小程序&#xff1a;功能解析、设计思路与实现方法 一、引言 随着移动设备的普及和微信小程序的兴起&#xff0c;越来越多的消费者选择在商城小程序上进行购物。商城小程序具有便捷、高效、即用即走等特点&#xff0c;为企业提供了新的销售渠道和推广方式。本…

Rust-虽然9天过去了,结果是没有结果(Docker容器的端口映射问题)

​ 这篇文章收录于Rust 实战专栏。这个专栏中的相关代码来自于我开发的笔记系统。它启动于是2023年的9月14日。相关技术栈目前包括&#xff1a;Rust&#xff0c;Javascript。关注我&#xff0c;我会通过这个项目的开发给大家带来相关实战技术的分享。 前言 上上周了吧&#xf…

非母语玩家如何撰写英文研究性论文:2 Methodology

参考书——《Science Research Writing for non-native Speakers of English》 文章目录 1 Structure 结构2 语法和写作技巧2.1 Passives and Tense Pairs: 被动语态以及时态对2.2 a与the的使用方法2.3 Adverbs and adverb location: 副词及其位置 3 Build a Model——构建Meth…

【每日一题】每棵子树内缺失的最小基因值

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;DFS 写在最后 Tag 【dfs】【树】【2023-10-31】 题目来源 2003. 每棵子树内缺失的最小基因值 题目解读 找出每棵子树内缺失的最小基因值。 解题思路 方法一&#xff1a;DFS 找到基因值为 1 的节点&#xff0c;从该…

大中小企业对CRM系统的需求

在以前&#xff0c;CRM客户管理系统是大型企业的专属。如今&#xff0c;不论何种规模的企业都能够使用CRM系统。市面上的CRM有着丰富的功能类型&#xff0c;管理者可以从企业自身规模出发&#xff0c;选择适合的CRM系统。下面说说&#xff0c;大中小企业对CRM系统的需求。 一句…

Linux各个发行版之间的关系

Linux各个发行版之间的关系 可以查看链接&#xff1a;Linux Timeline 链接中可以下载PNG或者SVG图片