You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Configuring Tool
Create folder named config in same directory where you have placed above jar
Inside config create two folders named commands and env
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 dev environments for which urls differ create file named dev
Similarly if you have qa environment for which url differs create file named qa
Each environment file should have simple name=value formatted configurations
name can be name of any variable, see Variable naming conventions for more details
value can be any hardcoded value or a TextTemple that can result into value, see TextTemplate section for more details
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/Journeys for how to configure commands
Configuring Commands/Journeys
Each command is
Sequence of steps see How to define step for more details
And a file where you want to initialize certain variables, see How to define initial variables for 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 output for more details
And hardcoded data for certain environment combinations, see How to define hardcoded environment specific data for more details
How to define step
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 Request for more details
Post Request Unit - Refer Defining Post Request for more details
Patch Request Unit - Refer Defining Patch Request for more details
Put Request Unit - Refer Defining Put Request for more details
Delete Request Unit - Refer Defining Delete Request for more details
Static Loop Unit - Refer Defining Static Loop for more details
Block Unit - Refer Defining Block Unit for more details
Poll Unit - Refer Defining Poll Unit for more details
Journey Unit - Refer Defining Journey Unit for more details
Defining Get Request
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 TextTemplate that has combination of Hardcoded data and variables, Refer Defining TextTemplate for more details
e.g.
This line can look like ${BaseUrl}/posts
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 TextTemplate that result in value
e.g.
This line can look like RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
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 ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
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>
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"}
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
Defining Post Request
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 TextTemplate that has combination of Hardcoded data and variables, Refer Defining TextTemplate for more details
e.g.
This line can look like ${BaseUrl}/posts
Second Line
This line is all about Request that you want to send
It should start with Body= and proceed
directly with any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
Or with Text= and any valid TextTemplate refer Defining TextTemplate for more details
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
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 TextTemplate that result in value
e.g.
This line can look like RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
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 ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
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>
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"}
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
Defining Patch Request
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 TextTemplate that has combination of Hardcoded data and variables, Refer Defining TextTemplate for more details
e.g.
This line can look like ${BaseUrl}/posts
Second Line
This line is all about Request that you want to send
It should start with Body= and proceed
directly with any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
Or with Text= and any valid TextTemplate refer Defining TextTemplate for more details
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
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 TextTemplate that result in value
e.g.
This line can look like RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
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 ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
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>
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"}
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
Defining Put Request
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 TextTemplate that has combination of Hardcoded data and variables, Refer Defining TextTemplate for more details
e.g.
This line can look like ${BaseUrl}/posts
Second Line
This line is all about Request that you want to send
It should start with Body= and proceed
directly with any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
Or with Text= and any valid TextTemplate refer Defining TextTemplate for more details
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
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 TextTemplate that result in value
e.g.
This line can look like RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
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 ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
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>
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"}
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
Defining Delete Request
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 TextTemplate that has combination of Hardcoded data and variables, Refer Defining TextTemplate for more details
e.g.
This line can look like ${BaseUrl}/posts
Second Line
This line is all about Request that you want to send
It should start with Body= and proceed
directly with any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
Or with Text= and any valid TextTemplate refer Defining TextTemplate for more details
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
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 TextTemplate that result in value
e.g.
This line can look like RequestHeader={"content-type":"application/json","JWT":"${JWT}"}
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 ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with SingleText= and any valid SingleVariableTextTemplate refer Defining SingleVariableTextTemplate for more details
Or with Exgractable= and any valid ExtractableTemplate refer Defining ExtractableTemplate for more details
Or with Json= and any valid JsonTemplate refer Defining JsonTemplate for more details
Or with Xml= and any valid XMLTemplate refer Defining XMLTemplate for more details
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>
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"}
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
Defining Static Loop
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 .info contents of the .info file 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
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 any TextTemplate that results in integer see Defining TextTemplate for more details
e.g
This line can look like Times=${Value-2}
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
Defining Block Unit
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 .info contents of the .info file 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
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
Defining Poll Unit
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 .info contents of the .info file 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
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