-
All of the restful requests are based on JWT authorization. Before accessing the sqlflow WebAPI, client user needs to obtain the corresponding JWT token for legal access.
-
How to get JWT Token
- Login on the sqlflow web, upgrade to premium account.
- Move mouse on the login user image, select Account menu item, click the "generate" button to generate the user secret key.
- When you get the user secret key, you can call /gspLive_backend/user/generateToken api to obtain a token, the ttl of new token is 24 hours.
- /gspLive_backend/user/generateToken
- userId: the user id of sqlflow web or client, required true
- secretKey: the secret key of sqlflow user for webapi request, required true
-
How to use JWT Token for security authentication?
- Each webapi contains two parameters, named userId and token.
-
/sqlflow/generation/sqlflow/graph
-
Description: generate sqlflow model and graph
-
HTTP Method: POST
-
Parameters:
- userId: the user id of sqlflow web or client, required true
- token: The token is only used when connecting to the SQLFlow Cloud server, not used when connect to the SQLFlow on-premise version.
- sqltext: sql text, optional
- sqlfile: sql file, optional
- dbvendor: database vendor, required true, available values:
- dbvbigquery, dbvcouchbase,dbvdb2,dbvgreenplum,dbvhana,dbvhive,dbvimpala,dbvinformix,dbvmdx,dbvmysql,dbvnetezza,dbvopenedge,dbvoracle,dbvpostgresql,dbvredshift,dbvsnowflake,dbvmssql,dbvsybase,dbvteradata,dbvvertica
- simpleOutput: simple output, ignore the intermediate results, defualt is false.
- ignoreRecordSet: same as simpleOutput, but will keep output of the top level select list, default is false.
- dataflowOfAggregateFunction, treat the dataflow generated by the aggregate function as direct dataflow or not ,default is direct.
- hideColumn: whether hide the column ui, required false, default value is false
- ignoreFunction: whether ignore the function relations, required false, default value is false
- showConstantTable: return constant or not, default is false.
- showLinkOnly: whether show relation linked columns only, required false, default value is true
- showRelationType: show relation type, optional, default value is fdd, multiple values seperated by comma like fdd,frd,fdr. Available values:
- fdd: value of target column from source column
- join: combine rows from two or more tables, based on a related column between them
-
Return code:
- 200: successful
- other: failed, check the error field to get error message.
-
Sample:
- test sql:
select name from user
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/generation/sqlflow/graph" -H "accept:application/json;charset=utf-8" -F "userId=your user id here" -F "token=your token here" -F "dbvendor=dbvoracle" -F "ignoreFunction=true" -F "ignoreRecordSet=true" -F "sqltext=select name from user"
- response:
{ "code": 200, "data": { "mode": "global", "summary": { ... }, "sqlflow": { "dbvendor": "dbvoracle", "dbobjs": [ ... ] }, "graph": { "elements": { "tables": [ ... ], "edges": [ ... ] }, "tooltip": {}, "relationIdMap": { ... }, "listIdMap": { ... } } }, "sessionId": "6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051" }
-
-
/sqlflow/generation/sqlflow/selectedgraph
- Description: generate sqlflow model and selected dbobject graph
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- sessionId: request sessionId, the value is from api /sqlflow/generation/sqlflow/graph, required true
- database: selected database, required false
- schema: selected schema, required false
- table: selected table, required false
- isReturnModel: whether return the sqlflow model, required false, default value is true
- dbvendor: database vendor, required true, available values:
- dbvbigquery, dbvcouchbase,dbvdb2,dbvgreenplum,dbvhana,dbvhive,dbvimpala,dbvinformix,dbvmdx,dbvmysql,dbvnetezza,dbvopenedge,dbvoracle,dbvpostgresql,dbvredshift,dbvsnowflake,dbvmssql,dbvsybase,dbvteradata,dbvvertica
- showRelationType: show relation type, required false, default value is fdd, multiple values seperated by comma like fdd,frd,fdr. Available values:
- fdd: value of target column from source column
- frd: the recordset count of target column which is affect by value of source column
- fdr: value of target column which is affected by the recordset count of source column
- join: combine rows from two or more tables, based on a related column between them
- simpleOutput: whether output relation simply, required false, default value is false
- ignoreRecordSet: whether ignore the record sets, required false, default value is false
- showLinkOnly: whether show relation linked columns only, required false, default value is true
- hideColumn: whether hide the column ui, required false, default value is false
- ignoreFunction: whether ignore the function relations, required false, default value is false
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql:
select name from user
- session id:
6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/generation/sqlflow/selectedgraph" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "dbvendor=dbvoracle" -F "ignoreFunction=true" -F "ignoreRecordSet=true" -F "isReturnModel=false" -F "sessionId=6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051" -F "table=user"
- response:
{ "code": 200, "data": { "mode": "global", "summary": { ... }, "graph": { "elements": { "tables": [ ... ], "edges": [ ... ] }, "tooltip": {}, "relationIdMap": { ... }, "listIdMap": { ... } } }, "sessionId": "6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051" }
-
/sqlflow/generation/sqlflow/getSelectedDbObjectInfo
- Description: get the selected dbobject information, such as file information, sql index, dbobject positions, sql which contains selected dbobject.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- sessionId: request sessionId, the value is from api /sqlflow/generation/sqlflow/graph, required true
- coordinates: the select dbobject positions, it's a json array string, the value is from api /sqlflow/generation/sqlflow/graph, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql:
select name from user
- session id:
6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051
- coordinates:
[{'x':1,'y':8,'hashCode':'3630d5472af5f149fe3fb2202c8a338d'},{'x':1,'y':12,'hashCode':'3630d5472af5f149fe3fb2202c8a338d'}]
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/generation/sqlflow/getSelectedDbObjectInfo" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "coordinates=[{'x':1,'y':8,'hashCode':'3630d5472af5f149fe3fb2202c8a338d'},{'x':1,'y':12,'hashCode':'3630d5472af5f149fe3fb2202c8a338d'}]" -F "sessionId=6172a4095280ccce97e996242d8b4084f46e2c954455e71339aeffccad5f0d57_1599501562051"
- response:
{ "code": 200, "data": [ { "index": 0, "positions": [ { "x": 1, "y": 8 }, { "x": 1, "y": 12 } ], "sql": "select name from user" } ] }
-
/sqlflow/job/submitUserJob
- Description: submit user job for multiple sql files, support zip file.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- jobName: job name, required true
- dbvendor: database vendor, required true, available values:
- dbvbigquery, dbvcouchbase,dbvdb2,dbvgreenplum,dbvhana,dbvhive,dbvimpala,dbvinformix,dbvmdx,dbvmysql,dbvnetezza,dbvopenedge,dbvoracle,dbvpostgresql,dbvredshift,dbvsnowflake,dbvmssql,dbvsybase,dbvteradata,dbvvertica
- sqlfiles: request sql files, please use multiple parts to submit the sql files, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- curl command: Note: please add @ before the sql file path
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/submitUserJob" -H "accept:application/json;charset=utf-8" -H "Content-Type:multipart/form-data" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "sqlfiles=@D:/sql.txt" -F "dbvendor=dbvoracle" -F "jobName=job_test"
- response:
{ "code": 200, "data": { "jobId": "6218721f092540c5a771ca8f82986be7", "jobName": "job_test", "userId": "user_test", "dbVendor": "dbvoracle", "defaultDatabase": "", "defaultSchema": "", "fileNames": [ "sql.txt" ], "createTime": "2020-09-08 10:11:28", "status": "create" } }
-
/sqlflow/job/displayUserJobsSummary
- Description: get the user jobs summary information.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/displayUserJobsSummary" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE"
- response:
{ "code": 200, "data": { "total": 1, "success": 1, "partialSuccess": 0, "fail": 0, "jobIds": [ "bb996c1ee5b741c5b4ff6c2c66c371dd" ], "jobDetails": [ { "jobId": "bb996c1ee5b741c5b4ff6c2c66c371dd", "jobName": "job_test", "userId": "user_test", "dbVendor": "dbvoracle", "fileNames": [ "sql.txt" ], "createTime": "2020-09-08 10:16:11", "status": "success", "sessionId": "a9f751281f8ef6936c554432e169359190d392565208931f201523e08036109d_1599531372233" } ] } }
-
/sqlflow/job/displayUserJobSummary
- Description: get the specify user job information.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- jobId: job id, the value is from user jobs summary detail, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- job id: bb996c1ee5b741c5b4ff6c2c66c371dd
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/displayUserJobSummary" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "jobId=bb996c1ee5b741c5b4ff6c2c66c371dd"
- response:
{ "code": 200, "data": { "total": 1, "success": 1, "partialSuccess": 0, "fail": 0, "jobIds": [ "bb996c1ee5b741c5b4ff6c2c66c371dd" ], "jobDetails": [ { "jobId": "bb996c1ee5b741c5b4ff6c2c66c371dd", "jobName": "job_test", "userId": "user_test", "dbVendor": "dbvoracle", "fileNames": [ "sql.txt" ], "createTime": "2020-09-08 10:16:11", "status": "success", "sessionId": "a9f751281f8ef6936c554432e169359190d392565208931f201523e08036109d_1599531372233" } ] } }
-
/sqlflow/job/deleteUserJob
- Description: delete the user job by job id.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- jobId: job id, the value is from user job detail, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- job id: bb996c1ee5b741c5b4ff6c2c66c371dd
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/deleteUserJob" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "jobId=bb996c1ee5b741c5b4ff6c2c66c371dd"
- response:
{ "code": 200, "data": { "jobId": "bb996c1ee5b741c5b4ff6c2c66c371dd", "jobName": "job_test", "userId": "user_test", "dbVendor": "dbvoracle", "fileNames": [ "sql.txt" ], "createTime": "2020-09-08 10:16:11", "status": "delete", "sessionId": "a9f751281f8ef6936c554432e169359190d392565208931f201523e08036109d_1599531372233" } }
-
/sqlflow/job/displayUserJobGraph
- Description: get the sqlflow job's model and graph
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- jobId: job id, the value is from user jobs summary detail, required true
- database: selected database, required false
- schema: selected schema, required false
- table: selected table, required false
- isReturnModel: whether return the sqlflow model, required false, default value is true
- showRelationType: show relation type, required false, default value is fdd, multiple values seperated by comma like fdd,frd,fdr. Available values:
- fdd: value of target column from source column
- frd: the recordset count of target column which is affect by value of source column
- fdr: value of target column which is affected by the recordset count of source column
- join: combine rows from two or more tables, based on a related column between them
- simpleOutput: whether output relation simply, required false, default value is false
- ignoreRecordSet: whether ignore the record sets, required false, default value is false
- showLinkOnly: whether show relation linked columns only, required false, default value is true
- hideColumn: whether hide the column ui, required false, default value is false
- ignoreFunction: whether ignore the function relations, required false, default value is false
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- job id: bb996c1ee5b741c5b4ff6c2c66c371dd
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/displayUserJobGraph?showRelationType=fdd&showRelationType=" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "jobId=bb996c1ee5b741c5b4ff6c2c66c371dd" -F "ignoreFunction=true" -F "ignoreRecordSet=true" -F "isReturnModel=false" -F "jobId=bb996c1ee5b741c5b4ff6c2c66c371dd" -F "table=user"
- response:
{ "code": 200, "data": { "mode": "global", "summary": { ... }, "graph": { "elements": { "tables": [ ... ], "edges": [ ... ], }, "tooltip": {}, "relationIdMap": { ... }, "listIdMap": { ... } } }, "sessionId": "a9f751281f8ef6936c554432e169359190d392565208931f201523e08036109d_1599531372233" }
-
/sqlflow/job/updateUserJobGraphCache
- Description: update the user job graph cache, then user can call /sqlflow/generation/sqlflow/selectedgraph by sessionId, the sessionId value is from job detail.
- HTTP Method: POST
- Parameters:
- userId: the user id of sqlflow web or client, required true
- token: the token of sqlflow client request. sqlflow web, required false, sqlflow client, required true
- jobId: job id, the value is from user job detail, required true
- Return code:
- 200: successful
- other: failed, check the error field to get error message.
- Sample:
- test sql file: D:\sql.txt
- job id: bb996c1ee5b741c5b4ff6c2c66c371dd
- curl command:
curl -X POST "http://127.0.0.1:8081/gspLive_backend/sqlflow/job/updateUserJobGraphCache" -H "Request-Origion:SwaggerBootstrapUi" -H "accept:application/json;charset=utf-8" -F "userId=google-oauth2|104002923119102769706" -F "token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYxMDEyMTYwMCwiaWF0IjoxNTc4NTg1NjAwfQ.9AAIkjZ3NF7Pns-hRjZQqRHprcsj1dPKHquo8zEp7jE" -F "jobId=bb996c1ee5b741c5b4ff6c2c66c371dd"
- response:
{ "code": 200, "data": { "sessionId": "a9f751281f8ef6936c554432e169359190d392565208931f201523e08036109d_1599531372233" } }
More information, please check the test environment swagger document:
- http://111.229.12.71:8081/gspLive_backend/doc.html?lang=en
- Token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndWR1c29mdCIsImV4cCI6MTYwMzc1NjgwMCwiaWF0IjoxNTcyMjIwODAwfQ.EhlnJO7oqAHdr0_bunhtrN-TgaGbARKvTh2URTxu9iU