openapi: 3.0.3 info: version: '1.8.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: get job list tags: - job requestBody: required: true content: application/json: schema: type: object properties: limit: type: string example: 10 responses: '200': description: get job list success content: application/json: schema: type: object properties: retcode: type: integer example: 0 retmsg: type: string example: success data: type: object '404': description: get job list failed content: application/json: schema: type: object properties: retcode: type: integer example: 101 retmsg: type: string example: no find job '/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/list/task': post: summary: get tasks list tags: - job requestBody: required: true content: application/json: schema: type: object properties: limit: type: integer example: 5 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 example: { "count": 5, "tasks": [ {}, {}, {}, {}, {} ] } '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: array 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 '/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 '/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 '/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