Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Drafts
    • User wants to add a new draft or save the pipeline he is working as a draft

    • User can update an existing draft of a pipeline as new version – previous version of pipelines are saved (upto 20 versions)
    • User can go back to previous version of draft or for any version of draft
    • User wants to retrieve the latest version of draft for a pipeline
    • User wants to view all available pipeline drafts across all users
    • User wants the ability to write a pipeline draft
    • User has access to only those pipelines that are available in the namespace the user is in.
  • Plugin Output Schema
    • User using DB-Source wants to enter connection-string, table name and automatically populate table schema information. 
    • User using TeraData-Source wants to enter connection-string, table name and automatically populate table schema information. 
  • List Field values 
    • User provides connection-string, user-name and password and expects list of available tables returned in DB-Source.
    • User provides initial-address, key-space, user-name and password for key space and expects list of available column families in Cassandra.
    • User provides either kafka-broker or zoo-keeper connection string and expects the list of available kafka topics. 
    • User provides elastic search hostname and expects the list of available indexes to choose from.

 Proposed REST APIs

 

HTTP Request Type

Endpoint

Request Body

Response Status

Response Body
POST

/extensions/hydrator/drafts/{draft-name}

 

200 OK: draft created and saved successfully

409 CONFLICT: draft-name already exists

500 Error: while creating the draft

 
PUT/extensions/hydrator/drafts/{draft-name} 

200 OK: draft updated successfully

404 NOT Found : draft doesn't exist already, cannot be updated.

500 Error while updating the draft

 
GET

/extensions/hydrator/drafts/{draft-name}

 

200 return the draft identified by the draft-name

404 draft not found

500 error while getting draft

Code Block
languagejs
{ 
"config": {
 "source" : {
    ....
  }, 
 "transforms" : [...],
 "sinks" [...]
 "connections" : [..]
}
GET/extensions/hydrator/drafts/ 

200 return the list of all saved drafts

500 error

[ 
  "streamToTPFS",
  "DBToHBase",
   ...
]
DELETE/extensions/hydrator/drafts/ 

200 successfully deleted all drafts

500 error while deleting

 
DELETE/extensions/hydrator/drafts/{draft-name} 

200 successfully deleted the specified draft

404 draft does not exist

500 error while deleting

 
POST

/extensions/hydrator/plugins/{plugin-name}/schema

 

Code Block
languagejs
{ 
"artifact" : {
  "name" : "...",
  "version":"...",
  "scope":"..."
},
"jdbcConnectionString": ..., 
 "jdbcPluginName": ..., 
 "tableName" : ...
}

 

200 based on the plugin and plugin-properties

 determine output schema and return output schema

404 unrecognized plugin-name

500 Error

Code Block
languagejs
{ 
  "field1" : Integer,
  "field2" : String,
   ...
  "fieldN" : Double
}
POST

/extensions/hydrator/plugins/{plugin-name}/list

QueryParam : target

Example: target=table

Example:

Code Block
languagejs
{ 
"artifact" : {
  "name" : "...",
  "version":"...",
  "scope":"..."
}
"connectionString":   ..., 
 "username": ..., 
 "password" : ...
}

For the specified plugin, based on the provided connection information, get the list of available target field and return the list.

200 , list of available values for target type field. Example: list of tables in a database.

500 error while retrieving.

Code Block
languagejs
[ 
  "tableA",
  "tableB"
   ...
  "tableN" 
]

Design

...