- To Create Executable jar file run command
gradle clean build - Grab cli-0.0.1.jar from cli/build/libs directory
- Place this file into any directory where you want to configure your data journeys
- Create folder named
configin same directory where you have placed above jar - Inside
configcreate two folders namedcommandsandenv- More about
env- This is the place where you want to create different environments
- for each environment create file directly with the name of environment
- e.g.
- If you have
devenvironments for which urls differ create file nameddev - Similarly if you have
qaenvironment for which url differs create file namedqa
- If you have
- e.g.
- Each environment file should have simple
name=valueformatted configurations- name can be name of any variable, see
Variable naming conventionsfor more details - value can be any hardcoded value or a
TextTemplethat can result into value, seeTextTemplatesection for more details
- name can be name of any variable, see
- More about
commands- Each folder created in commands directory is your separate command or data journey that you want to configure
- Name each of this folders wisely, as this names will be directly treated as command names which will be displayed as options or choosed based on filters
- See
Configuring Commands/Journeysfor how to configure commands
- More about
- Each command is
- Sequence of steps see
How to define stepfor more details - And a file where you want to initialize certain variables, see
How to define initial variablesfor more details - And a file where you want to list variables that should be ultimately displayed after command execution, see
How to define variables that i want to list as outputfor more details - And hardcoded data for certain environment combinations, see
How to define hardcoded environment specific datafor more details
- Sequence of steps see
- Each step must start with some number so that they are sorted properly
- Each step in command can be any one of this
- Get Request Unit - Refer
Defining Get Requestfor more details - Post Request Unit - Refer
Defining Post Requestfor more details - Patch Request Unit - Refer
Defining Patch Requestfor more details - Put Request Unit - Refer
Defining Put Requestfor more details - Delete Request Unit - Refer
Defining Delete Requestfor more details - Static Loop Unit - Refer
Defining Static Loopfor more details - Block Unit - Refer
Defining Block Unitfor more details - Poll Unit - Refer
Defining Poll Unitfor more details - Journey Unit - Refer
Defining Journey Unitfor more details
- Get Request Unit - Refer
- By This step yu can send Get Request to any url with templated inputs that you specify
- Create file with extention
.get - Content of the file should be
- First line
- This line is all about URL to which you want to send request
- So it should be a plain text representing url template
- This can be any
TextTemplatethat has combination of Hardcoded data and variables, ReferDefining TextTemplatefor more details - e.g.
- This line can look like
${BaseUrl}/posts
- This line can look like
- Second Line
- This line is all about Headers That you want to send with Request
- It should start with
RequestHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be populated and value represents any
TextTemplatethat result in value - e.g.
- This line can look like
RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
- This line can look like
- Your should leave this line with empty json object
{}in case you dont have any Request headers
- Third Line
- This line is all about response that you want to process and capture data from.
- It should start with
Response=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A>
- This line can look like
- Forth Line
- This line is all about data to be captured from Response Headers
- It should start with
ResponseHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be captured and value represents any name of the variable in which it needs to be captured
- e.g.
- This line can look like
RequestHeader={"JWT":"CapturedJWT"}
- This line can look like
- Your should leave Forth line with empty json object
{}in case you dont want to capture anything from response headers
- Fifth Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- First line
- By This step yu can send Post Request to any url with templated inputs that you specify
- Create file with extention
.post - Content of the file should be
- First line
- This line is all about URL to which you want to send request
- So it should be a plain text representing url template
- This can be any
TextTemplatethat has combination of Hardcoded data and variables, ReferDefining TextTemplatefor more details - e.g.
- This line can look like
${BaseUrl}/posts
- This line can look like
- Second Line
- This line is all about Request that you want to send
- It should start with
Body=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details - Or with
Text=and any validTextTemplatereferDefining TextTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A> - Or This line can look like
Response=Text=Hello ${Result} World
- This line can look like
- You should leave
Body=in case you dont have anu body to be passed
- Third Line
- This line is all about Headers That you want to send with Request
- It should start with
RequestHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be populated and value represents any
TextTemplatethat result in value - e.g.
- This line can look like
RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont have any Request headers
- Fourth Line
- This line is all about response that you want to process and capture data from.
- It should start with
Response=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A>
- This line can look like
- Fifth Line
- This line is all about data to be captured from Response Headers
- It should start with
ResponseHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be captured and value represents any name of the variable in which it needs to be captured
- e.g.
- This line can look like
RequestHeader={"JWT":"CapturedJWT"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont want to capture anything from response headers
- Sixth Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- First line
- By This step yu can send Patch Request to any url with templated inputs that you specify
- Create file with extention
.patch - Content of the file should be
- First line
- This line is all about URL to which you want to send request
- So it should be a plain text representing url template
- This can be any
TextTemplatethat has combination of Hardcoded data and variables, ReferDefining TextTemplatefor more details - e.g.
- This line can look like
${BaseUrl}/posts
- This line can look like
- Second Line
- This line is all about Request that you want to send
- It should start with
Body=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details - Or with
Text=and any validTextTemplatereferDefining TextTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A> - Or This line can look like
Response=Text=Hello ${Result} World
- This line can look like
- You should leave
Body=in case you dont have anu body to be passed
- Third Line
- This line is all about Headers That you want to send with Request
- It should start with
RequestHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be populated and value represents any
TextTemplatethat result in value - e.g.
- This line can look like
RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont have any Request headers
- Fourth Line
- This line is all about response that you want to process and capture data from.
- It should start with
Response=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A>
- This line can look like
- Fifth Line
- This line is all about data to be captured from Response Headers
- It should start with
ResponseHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be captured and value represents any name of the variable in which it needs to be captured
- e.g.
- This line can look like
RequestHeader={"JWT":"CapturedJWT"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont want to capture anything from response headers
- Sixth Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- First line
- By This step yu can send Put Request to any url with templated inputs that you specify
- Create file with extention
.put - Content of the file should be
- First line
- This line is all about URL to which you want to send request
- So it should be a plain text representing url template
- This can be any
TextTemplatethat has combination of Hardcoded data and variables, ReferDefining TextTemplatefor more details - e.g.
- This line can look like
${BaseUrl}/posts
- This line can look like
- Second Line
- This line is all about Request that you want to send
- It should start with
Body=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details - Or with
Text=and any validTextTemplatereferDefining TextTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A> - Or This line can look like
Response=Text=Hello ${Result} World
- This line can look like
- You should leave
Body=in case you dont have anu body to be passed
- Third Line
- This line is all about Headers That you want to send with Request
- It should start with
RequestHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be populated and value represents any
TextTemplatethat result in value - e.g.
- This line can look like
RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont have any Request headers
- Fourth Line
- This line is all about response that you want to process and capture data from.
- It should start with
Response=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A>
- This line can look like
- Fifth Line
- This line is all about data to be captured from Response Headers
- It should start with
ResponseHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be captured and value represents any name of the variable in which it needs to be captured
- e.g.
- This line can look like
RequestHeader={"JWT":"CapturedJWT"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont want to capture anything from response headers
- Sixth Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- First line
- By This step yu can send Delete Request to any url with templated inputs that you specify
- Create file with extention
.delete - Content of the file should be
- First line
- This line is all about URL to which you want to send request
- So it should be a plain text representing url template
- This can be any
TextTemplatethat has combination of Hardcoded data and variables, ReferDefining TextTemplatefor more details - e.g.
- This line can look like
${BaseUrl}/posts
- This line can look like
- Second Line
- This line is all about Request that you want to send
- It should start with
Body=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details - Or with
Text=and any validTextTemplatereferDefining TextTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A> - Or This line can look like
Response=Text=Hello ${Result} World
- This line can look like
- You should leave
Body=in case you dont have anu body to be passed
- Third Line
- This line is all about Headers That you want to send with Request
- It should start with
RequestHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be populated and value represents any
TextTemplatethat result in value - e.g.
- This line can look like
RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont have any Request headers
- Fourth Line
- This line is all about response that you want to process and capture data from.
- It should start with
Response=and proceed- directly with any valid
ExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
SingleText=and any validSingleVariableTextTemplatereferDefining SingleVariableTextTemplatefor more details - Or with
Exgractable=and any validExtractableTemplatereferDefining ExtractableTemplatefor more details - Or with
Json=and any validJsonTemplatereferDefining JsonTemplatefor more details - Or with
Xml=and any validXMLTemplatereferDefining XMLTemplatefor more details
- directly with any valid
- e.g.
- This line can look like
Response={"result":${Result}} - Or This line can look like
Response=SingleText=${Result} - Or This line can look like
Response=Extractable={"result":${Result}} - Or This line can look like
Response=Json={"result":${Result}} - Or This line can look like
Response=Xml=<A>${Result}</A>
- This line can look like
- Fifth Line
- This line is all about data to be captured from Response Headers
- It should start with
ResponseHeader=and proceed with json object represented in one line - json object structure should be key value pairs where key represents header to be captured and value represents any name of the variable in which it needs to be captured
- e.g.
- This line can look like
RequestHeader={"JWT":"CapturedJWT"}
- This line can look like
- Your should leave This line with empty json object
{}in case you dont want to capture anything from response headers
- Sixth Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- First line
- By This step you can loop over group of steps specific number of times
- Create Folder whose name ends with
.loop - Inside This Folder create plain text file
.infocontents of the.infofile should be as follow- This file is all about information for loop unit all its Lines should be as follow
- First Line
- This line is all about counter variable value
- It should start with
Counter=and proceed with name of the variable in which you want to store counter value - e.g.
- This line can look like
Counter=counter - by this variable named counter will be saving the value of current loop count
- This line can look like
- Second Line
- This line is all about number of times you want to execute contents of the loop
- It should start with
Times=and proceed with anyTextTemplatethat results in integer seeDefining TextTemplatefor more details - e.g
- This line can look like
Times=${Value-2}
- This line can look like
- Third Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- Create any steps within this file same way you create step in Command, all this steps will be executed sequentially per iteration
- By This step you can loop over group of steps specific until there are values in counter array variable
- Create Folder whose name ends with
.block - Inside This Folder create plain text file
.infocontents of the.infofile should be as follow- This file is all about information for block unit all its Lines should be as follow
- First Line
- This line is all about counter array variable that you want to iterate over
- It should start with
Variable=and proceed with name of the variable on which you want to iterate - e.g.
- This line can look like
Variable=data
- This line can look like
- Second Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer
- Third Line (optional)
- This line is optional and represents filter criteria for iteration
- It should start with
Filter=and proceed with valid json object with key value pairs - e.g.
- This line can look like `Filter={"name":"Hello"}
- By placing above line we will filter all values that match name property of inner looped object exactly as
Hello
- Create any steps within this file same way you create step in Command, all this steps will be executed sequentially per iteration
- By This step you can poll untill perticular variable has desired value
- Create Folder whose name ends with
.poll - Inside This Folder create plain text file
.infocontents of the.infofile should be as follow- This file is all about information for poll unit all its Lines should be as follow
- First Line
- This line is all about variable for which you want to poll for desired vaue
- It should start with name of the variable for which you want to poll for proceed by
=and proceed with value till which you want to poll for - e.g.
- This line can look like
Status=Processed
- This line can look like
- Second Line (optional)
- This line is optional and represents wait time in milliseconds that journey processor should wait before executing next Step.
- It should start with
Wait=and proceed with any integer reate any steps within this file same way you create step in Command, all this steps will be executed sequentially per iteration