Hi Experts,
I'm trying to add validation on my Appian Portal Page which doesn't support Regex Functions and hence I have created a Web API which is validating weather entered IP is valid or not and calling it on the UI using an Integration Object, when I test the API using Postman, I receive the correct response. However, when I use Appian's Integration Object to call the same API, the response body comes back without any value.
Valid Test Value: "1.1.1.1"
Postman Response:
{ "ipInfo": true }
Appian Response:
HTTP/1.1 200 200 Date: Thu, 02 Jan 2025 13:43:42 GMT Content-Type: text/html;charset=UTF-8 Connection: keep-alive Server: Apache Strict-Transport-Security: max-age=31536000; includeSubdomains; preload Cache-Control: private X-Trace-Id: a1956c41e9dd44f6226e475d8d145803 Referrer-Policy: strict-origin-when-cross-origin X-Frame-Options: SAMEORIGIN Content-Security-Policy-Report-Only: style-src 'unsafe-inline' 'self' https://web-assets.appian-cdn.com; child-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://web-assets.appian-cdn.com; object-src https:; frame-src https:; img-src https:; default-src 'self'; font-src 'self' https: data:; report-to /suite/rest/a/logging/latest/csp/report; Content-Security-Policy: report-to /suite/rest/a/logging/latest/csp/report; Vary: Accept-Encoding Set-Cookie: JSESSIONID=E39CE1C3B5B14568DBD7ADBC0B200225.node1; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:10 GMT; Path=/suite; Secure; HttpOnly; SameSite=None; Partitioned; HttpOnly Set-Cookie: JSESSIONID=E39CE1C3B5B14568DBD7ADBC0B200225.node1; Path=/suite; Secure; HttpOnly; SameSite=None; HttpOnly X-Robots-Tag: none X-XSS-Protection: 1; mode=block <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/banner.css?appian_environment=tempo" type="text/css" /> <script type="text/javascript"> var hasSiteWideBanner = "true"; if (window.APPIAN) { window.APPIAN.bannerInfo = { hasSiteWideBanner: hasSiteWideBanner === 'true', bannerMessage: "###TESTSERVER###dev", bannerColor: "#666666", bannerTextColor: "#ffffff" }; } </script> <html lang="en" dir=""> <head> <!-- IMPORTANT: this cannot have any style/script between it and the top of the head! IE requires it to handle versions properly. See http://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible for more --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="content-type" content="text/html" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/standard_styles_static.css?appian_environment=tempo" type="text/css" /> <script type="text/javascript"> function isInIframe() { try { return window.self !== window.top; } catch (exception) { // if in cross-origin, cannot access window.top return true; } } </script> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/login.css?appian_environment=tempo" type="text/css" /> <link rel="shortcut icon" href="https://###TESTSERVER###dev.appiancloud.com/suite/rest/a/content/latest/branding/favicon/1660077611000" /> <style> body.appian-body { background: #ebf1f7; } body.appian-body.mobile-landing { background: #fff; } .appian-body .message { color: red; } .appian-body form .field input { color: #333; border-color: #ccc; } .appian-body .submitButton { background-color: #E8E8E8; border: 1px solid #B0B0B0; color: #333333; font-size: 11px; font-weight: bold; } .appian-body .login_background { background-color: #416b88; } .appian-body .login_box input[type=text]:focus, .appian-body .login_box input[type=password]:focus { border: 1px solid #1d659c; } .appian-body .button_box_links a:active { border-color: #1d659c; } .appian-body #back_link, .appian-body .button_box_links a, .appian-body .logoutForm #returnLink { color: #1d659c; } .appian-body .button_box_links a:hover, .appian-body .button_box_links a:focus { border-bottom: 1px solid #1d659c; color: #1d659c; } .appian-body .btn { color: #1d659c; border: 1px solid #1d659c; } .appian-body input.iBlueButton { border: 1px solid #1d659c; background-color: #1d659c; } .appian-body .btn.primary { background-color: #1d659c; } .appian-body .btn:active, .appian-body .btn:focus, .appian-body .btn:hover, .appian-body .choice_pair input[type=checkbox]:focus + label:before, .appian-body input.iBlueButton:active, .appian-body input.iBlueButton:focus, .appian-body input.iBlueButton:hover { box-shadow: 0 0px 5px #1d659c; } .appian-body input.iText:focus { border: 1px solid #1d659c !important; /* ASI styles using !important to set blue border color */ } .appian-body .logoutForm #returnLink:hover { border-bottom: 1px solid #1d659c } .appian-body #back_link:hover { color: #1d659c; border-bottom: 1px solid #1d659c; } .appian-body .choice_pair input[type=checkbox]:checked + label:before { background-color: #1d659c; border-color: #1d659c; } .appian-body .mobile_landing_links { color: #777; } .appian-body .mobile_landing_links a { color: #1d659c; } .appian-body a.mobile_landing_button.primary { color: #fff; background-color: #1d659c; } .appian-body a.mobile_landing_button.secondary { color: #1d659c; border: 1px solid #1d659c; } </style> <title>Appian for TELUS (Cloud)</title> </head> <body class="appian-body"> <div id="systemMessages" style="display: none"> <div role="banner" class="banner" title="###TESTSERVER###dev" style="background-color: #666666; color: #ffffff;"> <div class="banner_text"> ###TESTSERVER###dev </div> </div> </div> <script type="text/javascript"> if (!isInIframe()) { document.getElementById("systemMessages").style.display="block"; } </script> <div class="appian_logo"> </div> <div class="login_background"> </div> <div id="loginBox" class="login_box "> <div class="login_box_inner"> <div class="login_logo"> <img id="logo" src="https://###TESTSERVER###dev.appiancloud.com/suite/rest/a/content/latest/branding/logo/1660077611000" alt="Logo"/> </div> <div id="selfSelectionPrompt" class="selfSelectionPrompt">Use local or SSO login?</div> <div class="button_box_links wrap"> <div class="selfSelectionBlock"> <a href=/suite/webapi/isIPAddressValid?targetIp=1.1.1.1&signin=native> Local Login</a> </div> <div class="selfSelectionBlock"> <a href=/suite/webapi/isIPAddressValid?targetIp=1.1.1.1&signin=telus> SSO</a> </div> </div> </div> </div> <div id="copyright"> ©2003-2025 Appian Corporation </div> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/fonts/open-sans.css?appian_environment=tempo" type="text/css" /> </body> </html>
Invalid Test Values: "1.1..1"
{ "ipInfo": "Entered IP Addresses either Invalid or Private IP Addresses : 1.1..1" }
HTTP/1.1 200 200 Date: Thu, 02 Jan 2025 13:38:47 GMT Content-Type: text/html;charset=UTF-8 Connection: keep-alive Server: Apache Strict-Transport-Security: max-age=31536000; includeSubdomains; preload Cache-Control: private X-Trace-Id: 9fe1f66a83c2146ab13212fcbb7f72b9 Referrer-Policy: strict-origin-when-cross-origin X-Frame-Options: SAMEORIGIN Content-Security-Policy-Report-Only: style-src 'unsafe-inline' 'self' https://web-assets.appian-cdn.com; child-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://web-assets.appian-cdn.com; object-src https:; frame-src https:; img-src https:; default-src 'self'; font-src 'self' https: data:; report-to /suite/rest/a/logging/latest/csp/report; Content-Security-Policy: report-to /suite/rest/a/logging/latest/csp/report; Vary: Accept-Encoding Set-Cookie: JSESSIONID=B4D59D4F1C55293A4680DF7C4EB24A9F.node1; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:10 GMT; Path=/suite; Secure; HttpOnly; SameSite=None; Partitioned; HttpOnly Set-Cookie: JSESSIONID=B4D59D4F1C55293A4680DF7C4EB24A9F.node1; Path=/suite; Secure; HttpOnly; SameSite=None; HttpOnly X-Robots-Tag: none X-XSS-Protection: 1; mode=block <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/banner.css?appian_environment=tempo" type="text/css" /> <script type="text/javascript"> var hasSiteWideBanner = "true"; if (window.APPIAN) { window.APPIAN.bannerInfo = { hasSiteWideBanner: hasSiteWideBanner === 'true', bannerMessage: "###TESTSERVER###dev", bannerColor: "#666666", bannerTextColor: "#ffffff" }; } </script> <html lang="en" dir=""> <head> <!-- IMPORTANT: this cannot have any style/script between it and the top of the head! IE requires it to handle versions properly. See http://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible for more --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="content-type" content="text/html" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/standard_styles_static.css?appian_environment=tempo" type="text/css" /> <script type="text/javascript"> function isInIframe() { try { return window.self !== window.top; } catch (exception) { // if in cross-origin, cannot access window.top return true; } } </script> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/login.css?appian_environment=tempo" type="text/css" /> <link rel="shortcut icon" href="https://###TESTSERVER###dev.appiancloud.com/suite/rest/a/content/latest/branding/favicon/1660077611000" /> <style> body.appian-body { background: #ebf1f7; } body.appian-body.mobile-landing { background: #fff; } .appian-body .message { color: red; } .appian-body form .field input { color: #333; border-color: #ccc; } .appian-body .submitButton { background-color: #E8E8E8; border: 1px solid #B0B0B0; color: #333333; font-size: 11px; font-weight: bold; } .appian-body .login_background { background-color: #416b88; } .appian-body .login_box input[type=text]:focus, .appian-body .login_box input[type=password]:focus { border: 1px solid #1d659c; } .appian-body .button_box_links a:active { border-color: #1d659c; } .appian-body #back_link, .appian-body .button_box_links a, .appian-body .logoutForm #returnLink { color: #1d659c; } .appian-body .button_box_links a:hover, .appian-body .button_box_links a:focus { border-bottom: 1px solid #1d659c; color: #1d659c; } .appian-body .btn { color: #1d659c; border: 1px solid #1d659c; } .appian-body input.iBlueButton { border: 1px solid #1d659c; background-color: #1d659c; } .appian-body .btn.primary { background-color: #1d659c; } .appian-body .btn:active, .appian-body .btn:focus, .appian-body .btn:hover, .appian-body .choice_pair input[type=checkbox]:focus + label:before, .appian-body input.iBlueButton:active, .appian-body input.iBlueButton:focus, .appian-body input.iBlueButton:hover { box-shadow: 0 0px 5px #1d659c; } .appian-body input.iText:focus { border: 1px solid #1d659c !important; /* ASI styles using !important to set blue border color */ } .appian-body .logoutForm #returnLink:hover { border-bottom: 1px solid #1d659c } .appian-body #back_link:hover { color: #1d659c; border-bottom: 1px solid #1d659c; } .appian-body .choice_pair input[type=checkbox]:checked + label:before { background-color: #1d659c; border-color: #1d659c; } .appian-body .mobile_landing_links { color: #777; } .appian-body .mobile_landing_links a { color: #1d659c; } .appian-body a.mobile_landing_button.primary { color: #fff; background-color: #1d659c; } .appian-body a.mobile_landing_button.secondary { color: #1d659c; border: 1px solid #1d659c; } </style> <title>Appian for TELUS (Cloud)</title> </head> <body class="appian-body"> <div id="systemMessages" style="display: none"> <div role="banner" class="banner" title="###TESTSERVER###dev" style="background-color: #666666; color: #ffffff;"> <div class="banner_text"> ###TESTSERVER###dev </div> </div> </div> <script type="text/javascript"> if (!isInIframe()) { document.getElementById("systemMessages").style.display="block"; } </script> <div class="appian_logo"> </div> <div class="login_background"> </div> <div id="loginBox" class="login_box "> <div class="login_box_inner"> <div class="login_logo"> <img id="logo" src="https://###TESTSERVER###dev.appiancloud.com/suite/rest/a/content/latest/branding/logo/1660077611000" alt="Logo"/> </div> <div id="selfSelectionPrompt" class="selfSelectionPrompt">Use local or SSO login?</div> <div class="button_box_links wrap"> <div class="selfSelectionBlock"> <a href=/suite/webapi/isIPAddressValid?targetIp=1.1..1&signin=native> Local Login</a> </div> <div class="selfSelectionBlock"> <a href=/suite/webapi/isIPAddressValid?targetIp=1.1..1&signin=telus> SSO</a> </div> </div> </div> </div> <div id="copyright"> ©2003-2025 Appian Corporation </div> <link rel="stylesheet" href="https://web-assets.appian-cdn.com/YWUtMjQuMy40NTAuMA/portal/css/fonts/open-sans.css?appian_environment=tempo" type="text/css" /> </body> </html>
Please suggest what might be causing this issue or if there's something I might be overlooking?
Discussion posts and replies are publicly visible
Which authentication method are you using from the integration in Appian?
Hi David,
It was my bad for overlooking the authentication aspect earlier. I assumed that since both the API and integration are within Appian, authentication wouldn’t be required. The issue has already been resolved after adding the API key authentication.