4.5.0 Release Notes

Red Hat Mobile Application Platform 4.5

For Red Hat Mobile Application Platform 4.5

Red Hat Customer Content Services

Abstract

This document provides a high-level description of known issues, fixed issues, and new features in RHMAP 4.5.0.

Chapter 1. Release Announcement

1.1. Technical Preview of Self-managed Build Farm

This release includes the option of provisioning a self-managed Build Farm on your infrastructure, to build Client Apps without relying on hosted Build Farm.

Note

This feature is a technical preview. The hosted Build Farm remains the default configuration.

For more information, see:

1.1.1. Android and iOS SDKs

If you want to use the RHMAP hosted Build Farm to build Android and iOS apps, the versions of the target platforms are restricted to those versions listed on the RHMAP Supported Configurations page.

When you use the self-managed Build Farm, the versions of the target platforms are determined by the installed versions of the Android SDK and XCode. By default the following is installed:

  • XCode 8.3.3 (iOS 8,9,10)
  • Android Studio (Android levels 22,23,24,25,26) and Android SDK extra components.

1.1.2. Cordova Framework

Cordova allows you target Android and iOS platforms with one code base. The default Cordova version installed with the self-managed build farm is 7.0.1.

1.1.3. Docker-formatted Container Images for Build Farm

As part of the technical preview, the Ansible playbook retrieves the Build Farm Docker-formatted container images from https://hub.docker.com/. Make sure you have access to this site before attempting installation.

1.2. Performance Improvement for Cloud App Deployments

In previous releases of RHMAP, deploying a Cloud App into Environment required a Cloud App source-to-image (S2I) build that creates a new Docker-formatted container image. In this release, RHMAP reuses the Docker-formatted container image created in the previous Environment when reuse is appropriate, that is, when both the commit hashes and Node.JS runtime versions are identical. This provides more consistency and better performance for Cloud App deployments.

1.3. Improved MongoDB Resiliency

This release includes features to improve MongoDB resiliency.

1.4. Node.js Versions

This release includes a new deployment option for Cloud Apps and MBaaS services, Node.js version 6.9.1. You might want to use this version of Node.js for performance and security improvements.

1.5. FHC

A new version of FHC, the RHMAP command line interface, is available, including many resolved issues. Install or update FHC using the following command:

npm install -g fh-fhc

For more information about FHC, see the Local Development Guide and the FHC Package details.

1.6. Health Checks

If you perform a fresh installation of RHMAP 4.5, all pods include health checks. If you upgrade from RHMAP 4.4 all pods, except the MongoDB replica set pods, include health checks. If you require health checks for the MongoDB replica set pods, enter the following commands:

$ oc rsh <mongodb-pod-name>
$ mongo admin -u admin -p ${MONGODB_ADMIN_PASSWORD}
$ rs.reconfig(rs.config(), {force: true});

To learn more about health checks, see the OpenShift Developer Guide.

1.7. Red Hat Enterprise Linux and OpenShift Container Platform versions

RHMAP now supports OpenShift Container Platform 3.6 and uses Red Hat Enterprise Linux 7.4 to improve security.

Chapter 2. Patch Releases

To see a high-level description of the patches to RHMAP 4.5, see the Patch Release Notes.

Chapter 3. Known Issues

3.1. Push Notifications Incorrectly Showing as Pending

When you create a push notification, it is delivered by push notification networks, such as FCM and APNS. Sometimes, the RHMAP status of the notification remains at 'Pending', despite being accepted by the push notification network.

3.2. WFM Workflow Deletion

If you delete a WFM workflow, work orders associated with that workflow show incorrect template data. To work around this issue, create new work orders, and note that you cannot delete the incorrect work orders.

3.3. Issue with Forms Using Check Boxes

If you click submit on a draft or review form, sometimes a check box selection error is displayed, despite the correct selection of check boxes.

To work around this issue:

  1. Open the submission from the Review menu.
  2. Unselect the previously selected check boxes, leaving unselected check boxes unchanged.
  3. Click Submit.

3.4. Upgrading Swift SDK for XCode

To develop apps for iOS with Swift using XCode 8.3 or later, you must upgrade the iOS Swift SDK to build an app using RHMAP. To download the latest SDK, see fh-ios-swift-sdk.

3.5. Cordova Plugins

If you use the Build Farm to build Cordova apps and use the following plugins, then you must update them as follows:

  • cordova-plugin-inappbrowser must be upgraded to 1.6.1 or higher
  • com.ionic.keyboard must be upgraded to 2.2.1 or higher. Also note that this plugin is now named ionic-plugin-keyboard.

3.6. Studio Unresponsive

Very large files or repos may cause your browser to become unresponsive when accessing the Studio editor.

3.7. Sorting of Items in Studio

The lists for Projects and Environments in the Studio are not sorted based on creation time. There is no workaround for this issue at the moment. Studio allows you to sort items, for example, you can view a list of Projects sorted by last update. However, only the current page is sorted, if you click the next page, the sorting is lost. There is no workaround for this issue at the moment.

3.8. Studio Not Reporting Deployment

When deploying a Cloud App using the Studio, the progress bar sometimes hangs on In progress even after the App has been successfully deployed

The progress log bar on deploy screen is still in an In progress rather than Success state. The deployment history table entry for this deploy is marked as Complete/Success, but the progress bar does not reflect this. When this issue occurs, the App is actually deployed and it is safe for you to ignore the progress bar and continue normally.

3.9. WFM Apps

If you created an app using the WFM template from RHMAP 3.14 or 4.2, you can no longer build that app using the Build Farm. To work around this issue, remove the 'hooks' directory from the app directory.

3.10. Editing Items in WFM Demo Portal

WFM includes a demo portal app that allows you create and edit workflows and workorders. However, if you create a workflow or workorder and immediately edit it after creation, your edits might not be saved. To workaround this issue, always navigate to an old workorder or workflow after creating a new workorder or workflow, before attempting to edit or delete the workflow or workorder you just created.

3.11. Form-based Email Notifications

RHMAP includes a feature that allows you to create a form that triggers an email after each submission. One of the email options is to include the app name, however the emails sent from RHMAP do not include the app name. There is no known workaround for this issue at this time.

3.12. Error Messages If an MBaaS is Unavailable

If you perform an action that applies to all environments, but one or more environments is associated with an MBaaS that is currently unavailable, you may see messages that are unhelpful. For example, if you delete a form for a project that is associated with an environment MBaaS that is unstable might result in a 401 error. To work around this problem, ensure all MBaaS instances are available.

3.13. RHMAP 4.x: Pushing from Environment Variables Screen Corrupts Some REDIS Environment Variables

On the Environment Variables screen in the Studio, you can push any environment variables to your OpenShift 3 Cloud App. However, if you do this and Cloud Apps deploy to Openshift 3, the FH_REDIS_HOST and FH_REDIS_PORT environment variables in the Cloud App DeploymentConfig will be removed. If you don’t intend to use the fh.cache API, or you don’t intend to push any custom environment variables from the Studio, this issue does not affect you.

If you encounter this issue, the fh.cache API in the Cloud App will not work.

To workaround this issue:

  1. Make a note of the current values of the 2 environment variables, FH_REDIS_HOST and FH_REDIS_PORT before pushing environment variables to your Cloud App from the Studio. The values can be found in the Environment Variables screen of the Studio.
  2. Push your required environment variables to your OpenShift 3 Cloud App.
  3. Manually set the values for FH_REDIS_HOST and FH_REDIS_PORT in the Cloud App DeploymentConfig using the values noted in step 1.

If you have already pushed environment variables to the Cloud App, and the FH_REDIS_HOST and FH_REDIS_PORT env vars have been removed, it is possible to determine what the values should be:

  • The FH_REDIS_PORT value is always 6379.
  • The FH_REDIS_HOST value starts with redis- and has the same suffix as the Cloud App service. For example, if the Cloud App service is nodejs-1474446716082eh2c, the FH_REDIS_HOST value is redis-1474446716082eh2c

3.14. Upgrading from RHMAP 4.4 to 4.5 when Using OpenShift 3.3

If you are using OpenShift 3.3 and upgrade from RHMAP 4.4 to 4.5, you encounter a known OpenShift issue relating to ConfigMaps. Environment variable values are not read from ConfigMaps, and the issue is described in https://bugzilla.redhat.com/show_bug.cgi?id=1475264. RHMAP functionality is not affected.

3.15. Export Button

The Data Browser Export button is incorrectly presented to user as being disabled. However, clicking the button will export data.

3.16. Failing Mail Alerts

If you set up SMTP for cloud app alerts as described in https://access.redhat.com/documentation/en-us/red_hat_mobile_application_platform/4.2/html/mbaas_administration_and_installation_guide/setting-up-smtp-for-cloud-app-alerts and your OCP cluster is behind a HTTP proxy, the mails will fail. To workaround this issue, add a firewall rule to allow outbound traffic to the IP address and the port specified in the SMTP_SERVER and SMTP_PORT environment variables in the millicore deployment configuration of the RHMAP Core project.

3.17. Editing Jenskinsfile in Studio

You cannot edit a Jenkinsfile using the Studio editor. To work around this issue, edit the file in your cloned git repo and push the changes.

3.18. Sync Framework Storage Issues

If you are using the Sync Framework, note that there is a known issue with iOS apps that use webkit-sqlite for storage. After the app is running for longer than a few minutes, you might encounter storage failures. Use indexDB for storage instead.

Chapter 4. Known Issues for Self-managed Build Farm

4.1. Node.js Versions

The self-managed Build Farm supports Node.js 4.4 client code by default. As a result, the Ionic template will fail if you try to build a client app. Also, any Node 6 specific code in your client app may also fail. There is no workaround available, however this issue will be addressed in a future release.

4.2. Building Cordova Apps

If you want to build your existing Cordova apps using the self-managed Build Farm, update the app to be compatible with Cordova 7. For example, to make apps based on SAML, Forms and Raincatcher (Technology Preview) templates, upgrade the following plugins in the config.xml file:

  • cordova-plugin-file-transfer plugin to 1.6.3
  • fh-cordova-plugin-device to 0.0.4 or newer
  • h-cordova-plugins-api to 0.0.7 or newer

4.3. Data Browser Export

If you try to export BSON data as described in Storing Data, the export fails. To workaround this issue, export data as JSON or CSV.

4.4. Issues with using HTTP Proxy

4.4.1. HTTP proxy with macOS Jenkins node

When configuring Jenkins to work behind a HTTP proxy, there is an issue in the way slave nodes use the Git plugins due to the slaves inheriting proxy information from the master.

The macOS node, which is the Jenkins slave responsible for iOS builds, attempts to checkout application source code through a HTTP proxy address and port if one has been specified during the provisioning of Build Farm.

This may not be an issue if all nodes are on the same network. Two workarounds are:

  • Add networking rules to allow the macOS server to route requests through the proxy. Red Hat recommends this approach as it allows you to keep your Jenkins configuration intact.
  • Remove the proxy configuration in Jenkins by navigating to Manage Jenkins then Manage Plugins, then Advanced. If you then need to checkout source code behind a proxy for specific builds, the required configuration steps can be added to the Jenkinsfile.

4.4.2. HTTP proxy authentication in Android builds

When building Android apps, the pod in which the apps are built cannot use a proxy that requires authentication. This is due to a issue within Gradle.

4.4.3. Android SDK Manager tools don’t support HTTP proxy with authentication

When installing the Android SDK into the SDK pod during provisioning, the Android sdkmanager tools used don’t support HTTP Proxy that requires authentication.

4.5. iOS Build Limitations

4.5.1. No Build Isolation Support

If an iOS build process changes settings or the build environment, it impacts all iOS build processes. A future release of RHMAP will address this issue.

4.5.2. No Parallel Builds Support On A Single macOS Server

If you need to support parallel iOS builds, you must configure multiple macOS servers. This is because each iOS build needs to change at least one global configuration item, for example, a certificate or a key.

Chapter 5. Resolved Issues

  • RHMAP-16701 Do not allow the value of masked env variables to appear via * inspect code
  • RHMAP-16696 Edit or delete data issues in DataBrowser
  • RHMAP-16690 Environment dropdown lacks node6 option for Openshift targets
  • RHMAP-16635 Dedicated DB check fails when mbaas is not reachable
  • RHMAP-16514 Apache Tomcat Error when using fh-mbaas-api
  • RHMAP-16246 sync.init causes MongoDB connection error
  • RHMAP-16063 Client apps using the JS-SDK are still working when their connection tag has been disabled
  • RHMAP-16061 Update FHC to honour the mask-value options for environment variables
  • RHMAP-15481 Re-deployment via fhc does not work with incorrect runtime specified
  • RHMAP-15329 [FH-FHC] Command $ fhc admin teams userteams <userId> is not returning the teams associated to the user
  • RHMAP-15285 Login after closing app failing verification
  • RHMAP-15225 Deploying app with module version "latest" throws an EACCESS error
  • RHMAP-15172 User Session not syncing as expected after logout-login
  • RHMAP-14888 Link into npm page of FHC Cli tool to the repository is wrong
  • RHMAP-14228 Users without permission to edit data into DataBrowser UI feature can see and use the edition button
  • RHMAP-13723 Cannot deploy Blank Web App of Hello World Project template to FH MBaaS
  • RHMAP-12347 [FHC tool] - Message "Error: Missing 'tag' parameter"is shown when the build command is executed without the tag parameter.
  • RHMAP-11670 Remove the command $fhc files list <APPID> from FHC tool
  • RHMAP-11108 Remove files CRUDL commands from fh-fhc
  • RHMAP-8621 fh-fhc should be able to verify environment ids
  • RHMAP-8290 A number of FHC commands arguments don’t support Aliases
  • RHMAP-8220 Cannot delete credentials bundle if creating user is removed
  • RHMAP-7690 fhversion defaults to 2 in .fhcrc if not logged into studio first
  • RHMAP-7509 FHC runtimes command does not work
  • RHMAP-4818 Incorrect resource usage (CPU/Memory) reported for Dynofarm apps
  • RHMAP-3845 FHC commands for credentials (credential bundles)
  • RAINCATCH-837 Default Workflow message is not correct
  • RAINCATCH-825 Sync datasetClients job timeout should be adjusted for performance
  • RAINCATCH-815 Selecting a workorder causes an error of reading steps property
  • RAINCATCH-796 When auth service not setup, error message showing [object Object]
  • RAINCATCH-651 Cancel Button does not cancel New Workflow operation
  • FH-3657 Improve output data when the commands has table in the output and they are used as dependency
  • FH-3652 fhc services list --json doesn’t work properly
  • FH-3616 Remove the Warn "(node) sys is deprecated. Use util instead." from FHC tool
  • FH-3610 FHC tool - Add GitHub links to the package.json
  • FH-3598 FHC Tool - Add commands FH3 to V3 standard
  • FH-3458 Remove block to use fhc with upper versions
  • FH-3115 Remove the 'Cordova App App' template
  • FH-2939 Save a flag in any newly created Apps to record which app template they were initialised from

Chapter 6. Resolved Issues

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.