- 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
config
in same directory where you have placed above jar - Inside
config
create two folders namedcommands
andenv
- 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 nameddev
- Similarly if you have
qa
environment for which url differs create file namedqa
- If you have
- e.g.
- 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, seeTextTemplate
section 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/Journeys
for how to configure commands
- More about
- 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
- 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 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
- 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
TextTemplate
that has combination of Hardcoded data and variables, ReferDefining TextTemplate
for 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
TextTemplate
that 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for 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
TextTemplate
that has combination of Hardcoded data and variables, ReferDefining TextTemplate
for 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for more details - Or with
Text=
and any validTextTemplate
referDefining TextTemplate
for 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
TextTemplate
that 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for 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
TextTemplate
that has combination of Hardcoded data and variables, ReferDefining TextTemplate
for 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for more details - Or with
Text=
and any validTextTemplate
referDefining TextTemplate
for 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
TextTemplate
that 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for 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
TextTemplate
that has combination of Hardcoded data and variables, ReferDefining TextTemplate
for 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for more details - Or with
Text=
and any validTextTemplate
referDefining TextTemplate
for 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
TextTemplate
that 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for 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
TextTemplate
that has combination of Hardcoded data and variables, ReferDefining TextTemplate
for 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for more details - Or with
Text=
and any validTextTemplate
referDefining TextTemplate
for 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
TextTemplate
that 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
ExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
SingleText=
and any validSingleVariableTextTemplate
referDefining SingleVariableTextTemplate
for more details - Or with
Exgractable=
and any validExtractableTemplate
referDefining ExtractableTemplate
for more details - Or with
Json=
and any validJsonTemplate
referDefining JsonTemplate
for more details - Or with
Xml=
and any validXMLTemplate
referDefining XMLTemplate
for 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
.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
- 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 anyTextTemplate
that results in integer seeDefining TextTemplate
for 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
.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
- 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
.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
- 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