4.5.0 Release Notes
For Red Hat Mobile Application Platform 4.5
Abstract
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.
This feature is a technical preview. The hosted Build Farm remains the default configuration.
For more information, see:
- Installing RHMAP for prerequisites and installation instructions.
- Mobile Developer Guide for information required by mobile developers to build apps.
- Administrator’s Guide for information on administering the Build Farm, including specific information about Configuring a macOS Server for Customization. If you want to revert to using the hosted build farm, follow the instructions in the Using the RHMAP Hosted Build Farm section.
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:
- Open the submission from the Review menu.
- Unselect the previously selected check boxes, leaving unselected check boxes unchanged.
- 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-inappbrowsermust be upgraded to 1.6.1 or higher -
com.ionic.keyboardmust be upgraded to 2.2.1 or higher. Also note that this plugin is now namedionic-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.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:
-
Make a note of the current values of the 2 environment variables,
FH_REDIS_HOSTandFH_REDIS_PORTbefore pushing environment variables to your Cloud App from the Studio. The values can be found in the Environment Variables screen of the Studio. - Push your required environment variables to your OpenShift 3 Cloud App.
-
Manually set the values for
FH_REDIS_HOSTandFH_REDIS_PORTin 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_PORTvalue is always6379. -
The
FH_REDIS_HOSTvalue starts withredis-and has the same suffix as the Cloud App service. For example, if the Cloud App service isnodejs-1474446716082eh2c, theFH_REDIS_HOSTvalue isredis-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
