<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<base href="https://issues.jboss.org">
<title>Message Title</title>
</head>
<body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">
<table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt" bgcolor="#f5f5f5">
<!-- header here -->
<tbody>
<tr>
<td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">
<table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="https://static.jboss.org/developer/gravatar/84386cc35cecf75d5eed5c9142e5f154?d=mm&s=48" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td>
<td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="davidmartin" id="email_davidmartin" href="https://issues.jboss.org/secure/ViewProfile.jspa?name=davidmartin" style="color:#3b73af;; color: #3b73af; text-decoration: none">David Martin</a> <strong>updated</strong> an issue </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">
<table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">
<tbody>
<tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff"> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff">
<table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td class="page-title-pattern-first-line " style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://issues.jboss.org/browse/AEROGEAR" style="color: #3b73af; text-decoration: none">AeroGear</a> / <a href="https://issues.jboss.org/browse/AEROGEAR-2549" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-59f01405-f5a8-4aff-a5dd-220752173355" height="16" width="16" border="0" align="absmiddle" alt="Epic" style="vertical-align: text-bottom"></a> <a href="https://issues.jboss.org/browse/AEROGEAR-2549" style="color: #3b73af; text-decoration: none">AEROGEAR-2549</a> </td>
</tr>
<tr>
<td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://issues.jboss.org/browse/AEROGEAR-2549" style="color: #3b73af; text-decoration: none">OpenWhisk/Serverless proof of concept for Mobile</a> </span> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand wrapper-special-margin" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 10px; padding-bottom: 5px" bgcolor="#ffffff">
<table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Change By:</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="davidmartin" id="email_davidmartin" href="https://issues.jboss.org/secure/ViewProfile.jspa?name=davidmartin" style="color:#3b73af;; color: #3b73af; text-decoration: none">David Martin</a> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand issue-description-container" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 5px; padding-bottom: 10px" bgcolor="#ffffff">
<table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px">
<tbody>
<tr>
<td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> <span class="diffcontext">*What*<br><br>An end to end proof of concept working for an Android App (using the AeroGear SDK) calling a Serverless function/action in an OpenWhisk isntance provisioned to a local OpenShift cluster from the Service Catalog.<br>Circulate a short demo video to the AeroGear group (aerogear@googlegroups.com).<br><br>*Why*<br><br>* identify any potential issues with this integration, creating the APB or SDK changes<br>* so feedback can be got about how much value a supported integration between the AeroGear SDK and OpenWhisk could bring<br><br>*Demo Steps*<br><br>* Provision OpenWhisk from the Service Catalog to a project<br>* Create an 'action' in OpenWhisk using the 'wsk' CLI<br>* Create an Android App (Mobile Client) from the Service Catalog<br>* Create a binding (client binding, similar to Keycloak or UPS) from the Mobile Client to the OpenWhisk service instance (This will need to prompt for an 'auth string' so the App can use it to call actions)<br>* Copy the mobile-services.json from the Project Overview screen in OpenShift to the Android App code (The Android App is the current Aerogear security template, with changes on a branch for 'Serverless' integration)<br>* Build the App and run it on the Android Emulator<br>* Navigate to the 'Serverless' option in the App</span> <span class="diffaddedchars" style="background-color:#ddfade;">, enter a string to be reversed</span> <span class="diffcontext"> and trigger a call to the action in OpenWhisk</span> <span class="diffaddedchars" style="background-color:#ddfade;">. The response from OpenWhisk will be shown in the App</span> <span class="diffcontext"><br><br>*</span> <span class="diffaddedchars" style="background-color:#ddfade;">Stretch Goal*<br><br>* The OpenWhisk action implementation also calls the sender API in a running UPS instance, which sends the result of the reversed string as a push message to the</span> <span class="diffcontext">Android App</span> <span class="diffaddedchars" style="background-color:#ddfade;"> too.<br>* The API key for the sender API in UPS can be manually created & copied into the OpenWhisk action for the purpose of this POC (automating the generation & inserting of the key could be a future followup task)<br><br>*Android App</span> <span class="diffcontext"> Notes*<br><br>* The current android template is at https://github.com/feedhenry/mobile-security-android-template. This may change or be moved to the aerogear org.<br>* The current template has a menu for the various integrations i.e. Auth, Push, Metrics, Self Defense checks. A new item for 'Serverless' can be added<br>* The UI can prompt for</span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;"> an action name</span> <span class="diffaddedchars" style="background-color:#ddfade;"> a string</span> <span class="diffcontext"> to</span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;"> call</span> <span class="diffaddedchars" style="background-color:#ddfade;"> send to the action</span> <span class="diffcontext">, and have a 'Call Action' button. The result of the call should be displayed in the UI</span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;">.</span> <span class="diffaddedchars" style="background-color:#ddfade;"> (expected to be the reversed version of the string)</span> <span class="diffcontext"><br>* These changes should remain on a branch i.e. not merged back to master as this is just a proof of concept<br><br>*Exising work*<br><br>[~peter.braun] has already done some great work trying out the https://github.com/projectodd/openwhisk-openshift repo,<br>and has a nice Readme for trying it out<br>https://github.com/pb82/openwhisk-chatty/blob/master/README.md.<br>This could be the basis of creating an APB<br><br></span> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff">
<table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">
<tbody>
<tr>
<td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0">
<table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://issues.jboss.org/browse/AEROGEAR-2549#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-c1d2cdff-8bd9-4a72-b86a-aa05264f0f13" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td>
<td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://issues.jboss.org/browse/AEROGEAR-2549#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table> </td>
</tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<tr>
<td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff"> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px">
<table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian JIRA <span id="footer-build-information">(v7.5.0#75005-<span title="fd8c849d4e278dd8bbaccc61e707a716ad697024" data-commit-id="fd8c849d4e278dd8bbaccc61e707a716ad697024}">sha1:fd8c849</span>)</span> </td>
<td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top">
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-002e032e-32d9-482a-8bf9-4604755f77eb" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix"> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
</body>
</html>