<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>flightPATH &#8211; Edgenexus Knowledge Base</title>
	<atom:link href="https://kb.edgenexus.io/kb/category/flightpath/feed/" rel="self" type="application/rss+xml" />
	<link>https://kb.edgenexus.io</link>
	<description></description>
	<lastBuildDate>Fri, 19 Apr 2024 10:29:17 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://kb.edgenexus.io/wp-content/uploads/2024/09/cropped-Edgenexus-KB-Icon-3webp-32x32.png</url>
	<title>flightPATH &#8211; Edgenexus Knowledge Base</title>
	<link>https://kb.edgenexus.io</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What variables of my own can I create for use in flightPATH?</title>
		<link>https://kb.edgenexus.io/kb/what-variables-of-my-own-can-i-create-for-use-in-flightpath/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Fri, 19 Apr 2024 08:59:57 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=480</guid>

					<description><![CDATA[In addition to the existing, permanent variables you are free to define your own. The proper syntax to use is $variable_name$. See the example below:]]></description>
										<content:encoded><![CDATA[<p>In addition to the existing, permanent variables you are free to define your own. </p>
<p>The proper syntax to use is $<em>variable_name</em>$. See the example below:</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae74751c67&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img fetchpriority="high" decoding="async" width="2224" height="278" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39.png" alt="" class="wp-image-483" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39.png 2224w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39-300x38.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39-1024x128.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39-768x96.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39-1536x192.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-39-2048x256.png 2048w" sizes="(max-width: 2224px) 100vw, 2224px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What are the built in variables for use in flightPATH?</title>
		<link>https://kb.edgenexus.io/kb/what-are-the-built-in-variables-for-use-in-flightpath/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Fri, 19 Apr 2024 08:54:36 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=477</guid>

					<description><![CDATA[There is a set of built-in variables you can use within flightPATH rules.]]></description>
										<content:encoded><![CDATA[<p>There is a set of built-in variables you can use within flightPATH rules.</p>
<ul class="wp-block-list">
<li>$sourceip$ &#8211; The source IP address of the request</li>
<li>$sourceport$ &#8211; The source port that was used</li>
<li>$clientip$ &#8211; The IP address of the client</li>
<li>$clientport$ &#8211; The port used by the client</li>
<li>$host$ &#8211; The host named in the request</li>
<li>$method$ &#8211; The method used: GET, POST etc</li>
<li>$path$ &#8211; The path specified in the request</li>
<li>$querystring$ &#8211; The querystring used in the request</li>
<li>$version$ &#8211; The version of the HTTP request in the REQUEST.</li>
<li>$resp$ &#8211; The RESPONSE from the server. eg. 200OK, 404 etc.</li>
<li>$geolocation$ &#8211; The GEO location from where the request originated.</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What does the Evaluation feature provide to flightPATH?</title>
		<link>https://kb.edgenexus.io/kb/what-does-the-evaluation-feature-provide-to-flightpath/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Thu, 18 Apr 2024 10:51:14 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=474</guid>

					<description><![CDATA[There will be times when you need to, for example, extract portions of a REQUEST or RESPONSE and then use that extracted data within a flightPATH rule. The Evaluation feature allows you to do that. Let&#8217;s look at an example below:]]></description>
										<content:encoded><![CDATA[<p>There will be times when you need to, for example, extract portions of a REQUEST or RESPONSE and then use that extracted data within a flightPATH rule.</p>
<p>The Evaluation feature allows you to do that.</p>
<p>Let&#8217;s look at an example below:</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae7475389c&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img decoding="async" width="2224" height="803" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38.png" alt="" class="wp-image-475" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38.png 2224w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38-300x108.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38-1024x370.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38-768x277.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38-1536x555.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-38-2048x739.png 2048w" sizes="(max-width: 2224px) 100vw, 2224px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<ul class="wp-block-list">
<li>We have flightPATH rule called Log Spider.</li>
<li>There is a CONDITION where we examine the REQUEST HEADER and it&#8217;s USER-AGENT property to see if it DOES MATCH REG_EX value of Googlebot|Slurp|bingbot|ia_archiver. The | character represents separation of a list of values, in this case, Googlebot, Slurp, bingBot and ia_archiver.</li>
<li>The rule, through Evaluation, also extracts the USER-AGENT content into a variable called $crawler$.</li>
<li>The rule then logs an event into the SystemLog with the information on the Spider type, the URL, and the query it used to crawl.</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What are the available flightPATH commands?</title>
		<link>https://kb.edgenexus.io/kb/what-are-the-available-flightpath-commands/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Wed, 17 Apr 2024 15:36:48 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=468</guid>

					<description><![CDATA[There are two sections that have defined choices: Condition and Actions flightPATH Conditions Condition CONDITION DESCRIPTION EXAMPLE &#60;form&#62; HTML forms are used to pass data to a server Example &#8220;form doesn&#8217;t have length 0&#8221; GEO Location Compares the source IP address to the&#160;ISO 3166&#160;Country Codes GEO Location does equal GB, OR GEO Location does equal [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>There are two sections that have defined choices: Condition and Actions</p>
<h2 class="wp-block-heading">flightPATH Conditions</h2>
<h3 class="wp-block-heading">Condition</h3>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<tbody>
<tr>
<td><strong>CONDITION</strong></td>
<td><strong>DESCRIPTION</strong></td>
<td><strong>EXAMPLE</strong></td>
</tr>
<tr>
<td>&lt;form&gt;</td>
<td>HTML forms are used to pass data to a server</td>
<td>Example &#8220;form doesn&#8217;t have length 0&#8221;</td>
</tr>
<tr>
<td>GEO Location</td>
<td>Compares the source IP address to the&nbsp;ISO 3166&nbsp;Country Codes</td>
<td>GEO Location does equal GB, OR GEO Location does equal Germany</td>
</tr>
<tr>
<td>Host</td>
<td>Host extracted from the URL</td>
<td>www.mywebsite.com or 192.168.1.1</td>
</tr>
<tr>
<td>Language</td>
<td>Language extracted from the language HTTP header</td>
<td>This condition will produce a dropdown with a list of Languages</td>
</tr>
<tr>
<td>Method</td>
<td>Dropdown of HTTP methods</td>
<td>Dropdown that includes GET, POST, etc</td>
</tr>
<tr>
<td>Origin IP</td>
<td>If upstream proxy supports X-Forwarded-for (XFF) it will use the true Origin address</td>
<td>Client IP. It can also use multiple IPs or subnets.&nbsp; 10\.1\.2\.* is 10.1.2.0 /24 subnet<br>10\.1\.2\.3|10\.1\.2\.4 Use | for multiple IP’s</td>
</tr>
<tr>
<td>Path</td>
<td>Path of the website</td>
<td>/mywebsite/index.asp</td>
</tr>
<tr>
<td>POST</td>
<td>POST request method</td>
<td>Check data being uploaded to a website</td>
</tr>
<tr>
<td>Query</td>
<td>Name and value of a query, and can either accept the query name or a value also</td>
<td>&#8220;Best=jetNEXUS&#8221; Where the Match is Best and the Value is edgeNEXUS</td>
</tr>
<tr>
<td>Query String</td>
<td>The whole query string after the ? character</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Request Cookie</td>
<td>Name of a cookie requested by a&nbsp; client</td>
<td>MS-WSMAN=afYfn1CDqqCDqUD::</td>
</tr>
<tr>
<td>Request Header</td>
<td>Any HTTP Header</td>
<td>Referrer, User-Agent, From, Date</td>
</tr>
<tr>
<td>Request Version</td>
<td>The HTTP version</td>
<td>HTTP/1.0 OR HTTP/1.1</td>
</tr>
<tr>
<td>Response Body</td>
<td>A user defined string in the response body</td>
<td>Server UP</td>
</tr>
<tr>
<td>Response Code</td>
<td>The HTTP code for the response</td>
<td>200 OK, 304 Not Modified</td>
</tr>
<tr>
<td>Response Cookie</td>
<td>The name of a cookie sent by the server</td>
<td>MS-WSMAN=afYfn1CDqqCDqUD::</td>
</tr>
<tr>
<td>Response Header</td>
<td>Any HTTP Header</td>
<td>Referrer, User-Agent, From, Date</td>
</tr>
<tr>
<td>Response Version</td>
<td>The HTTP version sent by the server</td>
<td>HTTP/1.0 OR HTTP/1.1</td>
</tr>
<tr>
<td>Source IP</td>
<td>Either the origin IP, proxy server IP, or some other aggregated IP address</td>
<td>Client IP, Proxy IP, Firewall IP. Can also use multiple IP and subnets. You must escape the dots as these are RegEX. Example 10\.1\.2\.3 is 10.1.2.3</td>
</tr>
</tbody>
</table>
</figure>
<h3 class="wp-block-heading">Match</h3>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<tbody>
<tr>
<td><strong>MATCH</strong></td>
<td><strong>DESCRIPTION</strong></td>
<td><strong>EXAMPLE</strong></td>
</tr>
<tr>
<td>Accept</td>
<td>Content-Types that are acceptable</td>
<td>Accept: text/plain</td>
</tr>
<tr>
<td>Accept-Encoding</td>
<td>Acceptable encodings</td>
<td>Accept-Encoding: &lt;compress | gzip | deflate | sdch | identity&gt;</td>
</tr>
<tr>
<td>Accept-Language</td>
<td>Acceptable languages for response</td>
<td>Accept-Language: en-US</td>
</tr>
<tr>
<td>Accept-Ranges</td>
<td>What partial content range types this server supports</td>
<td>Accept-Ranges: bytes</td>
</tr>
<tr>
<td>Authorization</td>
<td>Authentication credentials for HTTP authentication</td>
<td>Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==</td>
</tr>
<tr>
<td>Charge-To</td>
<td>Contains account information for the costs of the application of the method requested</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Content-Encoding</td>
<td>The type of encoding used</td>
<td>Content-Encoding: gzip</td>
</tr>
<tr>
<td>Content-Length</td>
<td>The length of the response body in Octets (8-bit bytes)</td>
<td>Content-Length: 348</td>
</tr>
<tr>
<td>Content-Type</td>
<td>The mime type of the body of the request (used with POST and PUT requests)</td>
<td>Content-Type: application/x-www-form-urlencoded</td>
</tr>
<tr>
<td>Cookie</td>
<td>A HTTP cookie previously sent by the server with Set-Cookie (below)</td>
<td>Cookie: $Version=1; Skin=new;</td>
</tr>
<tr>
<td>Date</td>
<td>Date and time at message was originated</td>
<td>Date = “Date” “:” HTTP-date</td>
</tr>
<tr>
<td>ETag</td>
<td>An identifier for a specific version of a resource, often a message digest</td>
<td>ETag: “aed6bdb8e090cd1:0”</td>
</tr>
<tr>
<td>From</td>
<td>The email address of the user making the request</td>
<td>From: user@example.com</td>
</tr>
<tr>
<td>If-Modified-Since</td>
<td>Allows a 304 Not Modified to be returned if the content is unchanged</td>
<td>If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td>
</tr>
<tr>
<td>Last-Modified</td>
<td>The last modified date for the requested object, in RFC 2822 format</td>
<td>Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT</td>
</tr>
<tr>
<td>Pragma</td>
<td>Implementation: Specific headers that may have various effects anywhere along the request-response chain.</td>
<td>Pragma: no-cache</td>
</tr>
<tr>
<td>Referrer</td>
<td>Address of the previous web page from which a link to the currently requested page was followed</td>
<td>Referrer: HTTP://www.edgenexus.io</td>
</tr>
<tr>
<td>Server</td>
<td>A name for the server</td>
<td>Server: Apache/2.4.1 (Unix)</td>
</tr>
<tr>
<td>Set-Cookie</td>
<td>A HTTP cookie</td>
<td>Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1</td>
</tr>
<tr>
<td>User-Agent</td>
<td>The user agent string of the user agent</td>
<td>User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)</td>
</tr>
<tr>
<td>Vary</td>
<td>Tells downstream proxies how to match future request headers to decide<br>whether the cached response can be used rather than requesting a fresh<br>one from the origin server</td>
<td>Vary: User-Agent</td>
</tr>
<tr>
<td>X-Powered-By</td>
<td>Specifies the technology (e.g. ASP.NET, PHP, JBoss) supporting the web application</td>
<td>X-Powered-By: PHP/5.4.0</td>
</tr>
</tbody>
</table>
</figure>
<h2 class="wp-block-heading">Check</h2>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<tbody>
<tr>
<td><strong>CHECK</strong></td>
<td><strong>DESCRIPTION</strong></td>
<td><strong>EXAMPLE</strong></td>
</tr>
<tr>
<td>Exist</td>
<td>This does not care for the detail of the condition just that it does/doesn&#8217;t exist</td>
<td>Host &gt; Does &gt;Exist</td>
</tr>
<tr>
<td>Start</td>
<td>The string starts with the Value</td>
<td>Path &gt;Does &gt;Start &gt;/secure</td>
</tr>
<tr>
<td>End</td>
<td>The string ends with the Value</td>
<td>Path &gt;Does &gt;End —&nbsp;.jpg</td>
</tr>
<tr>
<td>Contain</td>
<td>The string does contain the Value</td>
<td>Request Header &gt;Accept &gt;Does &gt;Contain &gt;image</td>
</tr>
<tr>
<td>Equal</td>
<td>The string does Equal the Value</td>
<td>Host &gt;Does &gt;Equal &gt;www.edgenexus.io</td>
</tr>
<tr>
<td>Have Length</td>
<td>The string does have a length of the value</td>
<td>Host &gt;Does &gt;Have Length &gt;16<br>www.edgenexus.io = TRUE<br>www.edgenexus.com = FALSE</td>
</tr>
<tr>
<td>Match RegEx</td>
<td>Enables you to enter a full Perl compatible regular expression</td>
<td>Origin IP &gt;Does &gt;Match Regex</td>
</tr>
<tr>
<td>Match List</td>
<td>Enables you to match the value against a list of values. This is useful when there are say, specific IP addresses that need matching against. Values are separated using commas (,) or pip (|).</td>
<td>Source IP &gt; Does &gt; Match List &gt; 10.10.10.1, 10.10.10.2, 10.10.10.3 etc</td>
</tr>
<tr>
<td>Exceed Length</td>
<td>Allows you to check if the value exceeds the length specified.</td>
<td>Path &gt; Does &gt; Exceed Length &gt; 200</td>
</tr>
</tbody>
</table>
</figure>
<h2 class="wp-block-heading">flightPATH Actions</h2>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<tbody>
<tr>
<td><strong>Action</strong></td>
<td><strong>Description</strong></td>
<td><strong>Example</strong></td>
</tr>
<tr>
<td>Add Request Cookie</td>
<td>Add request cookie detailed in the Target section with value in Data section</td>
<td>Target= Cookie&nbsp; Data= MS-WSMAN=afYfn1CDqqCDqCVii</td>
</tr>
<tr>
<td>Add Request Header</td>
<td>Add a request header of Target type with value in Data section</td>
<td>Target= Accept&nbsp; Data= image/png</td>
</tr>
<tr>
<td>Add Response Cookie</td>
<td>Add Response Cookie detailed in the Target section with value in Data section</td>
<td>Target= Cookie&nbsp; Data= MS-WSMAN=afYfn1CDqqCDqCVii</td>
</tr>
<tr>
<td>Add Response Header</td>
<td>Add request header detailed in the Target section with value in the Data section</td>
<td>Target= Cache-Control&nbsp; Data= max-age=8888888</td>
</tr>
<tr>
<td>Body Replace All</td>
<td>Search the Response Body and replace all instances</td>
<td>Target= http:// (Search string)&nbsp; Data= https:// (Replacement string)</td>
</tr>
<tr>
<td>Body Replace First</td>
<td>Search the Response Body and replace first instance only</td>
<td>Target= http:// (Search string)&nbsp; Data= https:// (Replacement string)</td>
</tr>
<tr>
<td>Body Replace Last</td>
<td>Search the Response Body and replace last instance only</td>
<td>Target= http:// (Search string)&nbsp; Data= https:// (Replacement string)</td>
</tr>
<tr>
<td>Drop</td>
<td>This will drop the connection</td>
<td>Target= N/A&nbsp; Data= N/A</td>
</tr>
<tr>
<td>e-Mail</td>
<td>Will send an email to the address configured in Email Events. You can use a variable as the address or the message</td>
<td>Target= “flightPATH has emailed this event”&nbsp; Data= N/A</td>
</tr>
<tr>
<td>Log Event</td>
<td>This will log an event to the System log</td>
<td>Target= “flightPATH has logged this in syslog” Data= N/A</td>
</tr>
<tr>
<td>Redirect 301</td>
<td>This will issue a permanent redirect</td>
<td>Target= http://www.edgenexus.io Data= N/A</td>
</tr>
<tr>
<td>Redirect 302</td>
<td>This will issue a temporary redirect</td>
<td>Target= http://www.edgenexus.io Data= N/A</td>
</tr>
<tr>
<td>Remove Request Cookie&nbsp;</td>
<td>Remove request cookie detailed in the Target section</td>
<td>Target= Cookie&nbsp; Data= MS-WSMAN=afYfn1CDqqCDqCVii</td>
</tr>
<tr>
<td>Remove Request Header&nbsp;</td>
<td>Remove request header detailed in the Target section</td>
<td>Target=Server Data=N/A</td>
</tr>
<tr>
<td>Remove Response</td>
<td>Remove response cookie detailed in the Target section Cookie</td>
<td>Target=jnAccel</td>
</tr>
<tr>
<td>Remove Response</td>
<td>Remove the response header detailed in Target section Header</td>
<td>Target= Etag&nbsp; Data= N/A</td>
</tr>
<tr>
<td>Replace Request Cookie&nbsp;</td>
<td>Replace request cookie detailed in the Target section with value in the Data section</td>
<td>Target= Cookie&nbsp; Data= MS-WSMAN=afYfn1CDqqCDqCVii</td>
</tr>
<tr>
<td>Replace Request Header&nbsp;</td>
<td>Replace request header in the Target with Data value</td>
<td>Target= Connection&nbsp; Data= keep-alive</td>
</tr>
<tr>
<td>Replace Response&nbsp;</td>
<td>Replace the response cookie detailed in Target section with value in Data section Cookie</td>
<td>Target=jnAccel=afYfn1CDqqCDqCVii Date=MSWSMAN=afYfn1CDqqCDqCVii</td>
</tr>
<tr>
<td>Replace Response</td>
<td>Replace the response header detailed in Target section with value in Data section Header</td>
<td>Target= Server&nbsp; Data= Withheld for Security</td>
</tr>
<tr>
<td>Rewrite Path</td>
<td>This will allow you to redirect the request to new URL based on the condition</td>
<td>Target= /test/path/index.html$querystring$&nbsp; Data= N/A</td>
</tr>
<tr>
<td>Use Secure Server</td>
<td>Select which secure server or virtual service to use</td>
<td>Target=192.168.101:443 Data=N/A</td>
</tr>
<tr>
<td>Use Server&nbsp;</td>
<td>Select which server or virtual service to use</td>
<td>Target= 192.168.101:80 Data= N/A</td>
</tr>
<tr>
<td>Encrypt Cookie</td>
<td>This will 3DES Encrypt cookies and then base64 encode them</td>
<td>Target= Enter the cookie name to be encrypted, you may use the * as a wild card at the end Data= Enter a pass phrase for the encryption</td>
</tr>
</tbody>
</table>
</figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How many conditions and actions can I have within a flightPATh rule?</title>
		<link>https://kb.edgenexus.io/kb/how-many-conditions-and-actions-can-i-have-within-a-flightpath-rule/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Wed, 17 Apr 2024 11:40:32 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=464</guid>

					<description><![CDATA[You can have as many conditions, evaluations, and actions as you wish within a rule. The only thing you have to remember is that all operate on a boolean AND basis.]]></description>
										<content:encoded><![CDATA[<p>You can have as many conditions, evaluations, and actions as you wish within a rule.</p>
<p>The only thing you have to remember is that all operate on a boolean AND basis.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae74755b40&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img decoding="async" width="2212" height="851" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37.png" alt="" class="wp-image-465" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37.png 2212w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37-300x115.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37-1024x394.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37-768x295.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37-1536x591.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-37-2048x788.png 2048w" sizes="(max-width: 2212px) 100vw, 2212px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Can I have multiple flightPATH rules on a Virtual Service?</title>
		<link>https://kb.edgenexus.io/kb/can-i-have-multiple-flightpath-rules-on-a-virtual-service/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Wed, 17 Apr 2024 09:29:59 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=461</guid>

					<description><![CDATA[Absolutely, you can. All you need to do is define them, and follow the procedure below. You can have as many flightPATH rules assigned to a Virtual Service, and you can also use the flightPATH rule on as many other Virtual Services as you wish. Also, you can move the assigned flightPATH rules up and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Absolutely, you can.</p>
<p>All you need to do is define them, and follow the procedure below.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2225" height="614" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36.png" alt="" class="wp-image-457" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36.png 2225w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-300x83.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-1024x283.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-768x212.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-1536x424.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-2048x565.png 2048w" sizes="auto, (max-width: 2225px) 100vw, 2225px" /></figure>
<ul class="wp-block-list">
<li>In the image above, you can see that we have assigned several flightPATH rules to a Virtual Service.</li>
<li>All you have to do is highlight a flightPATH rule on the left panel, and then either drag it to the right side, or use the right arrow button to move it.</li>
<li>Of course, to unassign it, you just do the opposite—drag it to the left panel or use the left arrow button.</li>
</ul>
<p>You can have as many flightPATH rules assigned to a Virtual Service, and you can also use the flightPATH rule on as many other Virtual Services as you wish.</p>
<p>Also, you can move the assigned flightPATH rules up and down in order by dragging them or using the up and down arrow buttons.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How do I create a flightPATH rule?</title>
		<link>https://kb.edgenexus.io/kb/how-do-i-create-a-flightpath-rule/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Tue, 16 Apr 2024 15:22:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=448</guid>

					<description><![CDATA[flightPATH rules can be written in many ways, depending on their use case and ultimate requirement in terms of expression, evaluation, and action. However, we will describe what a flightPATH rule comprises of, and how to construct a simple one. Let us take a simple problem. To achieve this in flightPATH we would need to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>flightPATH rules can be written in many ways, depending on their use case and ultimate requirement in terms of expression, evaluation, and action.</p>
<p>However, we will describe what a flightPATH rule comprises of, and how to construct a simple one.</p>
<p>Let us take a simple problem. </p>
<ul class="wp-block-list">
<li>I have a three websites that are load-balanced across three sets of web servers.</li>
<li>Site www.a.com is served by web server set A, www.b.com by web server set B, and www.c.com by web server set C.</li>
<li>I have a single public IP coming into my firewall.</li>
<li>The public IP is NAT&#8217;d from the firewall to the Virtual IP on the EdgeADC.</li>
<li>I want traffic addressed to each host/domain to be sent to the respective web server set.</li>
<li>I also want all traffic from Burundi to go to a third single web server.</li>
</ul>
<p>To achieve this in flightPATH we would need to define three rules, one for each of the web server sets, plus one for redirecting requests from Burundi.</p>
<ul class="wp-block-list">
<li>Navigate to Library &gt; flightPATH. It will look like the image below.</li>
</ul>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2560" height="1239" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33.png" alt="" class="wp-image-452" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33.png 2560w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33-300x145.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33-1024x496.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33-768x372.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33-1536x743.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-33-2048x991.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure>
<ul class="wp-block-list">
<li>There are four sections to a flightPATH Rule.
<ul class="wp-block-list">
<li>Detail &#8211; the name of the rule, which Virtual Service it is used in and a description.</li>
<li>Condition &#8211; These are the conditions that define whether the rule will apply. You can choose from several condition values with relevant Match values, followed by boolean Sense, what to check, and the value to check for. Full details are available in the Administration Guide.<br><strong>Multiple</strong> <strong>Conditions are are enacted on an &#8216;AND&#8217; basis. Multiple rules should be defined for &#8216;OR&#8217; usage.</strong></li>
<li>Evaluation &#8211; Provides the ability to create variables for use in the rule.</li>
<li>Action &#8211; The actions that will be performed if the Condition is met. </li>
</ul>
</li>
<li>We will define the following Virtual IPs (VIP) in our ADC.
<ul class="wp-block-list">
<li>VIP1 = 10.0.0.100 to Real Server(s) 10.0.0.200 (this is a dummy address that must exist).</li>
<li>VIP2 = 10.0.0.102 to Real Servers 10.0.0.110,10.0.0.111, 10.0.0.112 (web servers for www.a.com)</li>
<li>VIP3 = 10.0.0.103 to Real Servers 10.0.0.114,10.0.0.115, 10.0.0.116 (web servers for www.b.com)</li>
<li>VIP2 = 10.0.0.104 to Real Servers 10.0.0.117,10.0.0.118, 10.0.0.119 (web servers for www.c.com)</li>
</ul>
</li>
<li>So, in our case we need to define the following rules:
<ul class="wp-block-list">
<li>IF <strong>HOST</strong> <strong>CONTAINS</strong> a.com<strong> USE SERVER</strong> 10.0.0.102</li>
<li>IF <strong>HOST</strong> <strong>CONTAINS</strong> b.com<strong> USE SERVER</strong> 10.0.0.103</li>
<li>IF <strong>HOST</strong> <strong>CONTAINS</strong> c,com<strong> USE SERVER</strong> 10.0.0.104</li>
<li>IF <strong>GEO LOCATION</strong> <strong>DOES</strong> <strong>EQUAL</strong> BURUNDI <strong>USE</strong> <strong>SERVER</strong> 10.0.0.120</li>
</ul>
</li>
<li>The first rule will look like the below image. We have removed the distracting information and only included the rule.</li>
</ul>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae74757a05&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="2209" height="695" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34.png" alt="" class="wp-image-455" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34.png 2209w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34-300x94.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34-1024x322.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34-768x242.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34-1536x483.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-34-2048x644.png 2048w" sizes="auto, (max-width: 2209px) 100vw, 2209px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>You will need to do the same with the other two rules for b.com and c.com.</p>
<p>Finally, we come to the Country redirection if the country is Burundi.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae74757ce3&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="2221" height="698" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35.png" alt="" class="wp-image-456" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35.png 2221w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35-300x94.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35-1024x322.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35-768x241.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35-1536x483.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-35-2048x644.png 2048w" sizes="auto, (max-width: 2221px) 100vw, 2221px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>The final step is to add these to the 10.0.0.100 Virtual IP.</p>
<p>To do this:</p>
<ul class="wp-block-list">
<li>Go to IP Services</li>
<li>Click on the 10.0.0.100 VIP/VS</li>
<li>In the Real Servers section click on flightPATH.</li>
<li>You will see the rules on the left-side scrolling container.</li>
<li>Locate them and drag-and-drop them to the right-side, or use the right-arrow.</li>
<li>The result should look like the image below:</li>
</ul>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae74758023&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="2225" height="614" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36.png" alt="" class="wp-image-457" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36.png 2225w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-300x83.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-1024x283.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-768x212.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-1536x424.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-36-2048x565.png 2048w" sizes="auto, (max-width: 2225px) 100vw, 2225px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is flightPATH and what is it used for?</title>
		<link>https://kb.edgenexus.io/kb/what-is-flightpath-and-what-is-it-used-for/</link>
		
		<dc:creator><![CDATA[jsavoor@edgenexus.io]]></dc:creator>
		<pubDate>Tue, 16 Apr 2024 11:41:54 +0000</pubDate>
				<guid isPermaLink="false">https://kb.edgenexus.io/?post_type=epkb_post_type_1&#038;p=444</guid>

					<description><![CDATA[Edgenexus flightPATH is a Layer 7 routing engine designed to manage HTTP traffic effectively. It forms part of the jetNEXUS ALB-X load balancer, enabling administrators to create, edit, or delete traffic management rules directly from a user-friendly graphical interface. This capability allows for sophisticated traffic distribution and management based on specific conditions and rules defined [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Edgenexus flightPATH is a Layer 7 routing engine designed to manage HTTP traffic effectively. It forms part of the jetNEXUS ALB-X load balancer, enabling administrators to create, edit, or delete traffic management rules directly from a user-friendly graphical interface. This capability allows for sophisticated traffic distribution and management based on specific conditions and rules defined within the flightPATH framework.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;68aae747591d3&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="2560" height="1239" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32.png" alt="" class="wp-image-446" srcset="https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32.png 2560w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32-300x145.png 300w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32-1024x496.png 1024w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32-768x372.png 768w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32-1536x743.png 1536w, https://kb.edgenexus.io/wp-content/uploads/2024/04/image-32-2048x991.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>The tool offers various functionalities that enhance application delivery and security. For instance, flightPATH can modify HTTP headers and manage redirections, enhancing security by masking sensitive information or preventing information leakage by removing certain HTTP headers. It also provides features like the ability to redirect traffic based on error codes, which helps maintain smooth and efficient web operations.</p>
<p>Furthermore, flightPATH&#8217;s advanced features include content switching at Layer 7, which allows decisions on traffic routing to be made based on the content of incoming requests, enhancing the adaptability and efficiency of the load-balancing process. This is particularly useful for applications requiring intelligent management of diverse and dynamic web traffic patterns. The integration of such features ensures that Edgenexus flightPATH provides not just load balancing but a comprehensive suite of tools for optimizing application delivery and security.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
