Glossary

AeroGear Mobile Services Terminology

Mobile Service

A mobile service accelerates your mobile app development by providing solutions for common mobile development use cases such as Push notifications. Mobile services are hosted on OpenShift and you use the OpenShift console to provision and associate services with your mobile apps. For more information, see Mobile Services.

Mobile App

A Mobile App is the representation of a mobile app in an OpenShift project. This allows you connect and disconnect an app with any mobile service in the same OpenShift project. For more information, see Registering a mobile app.

mobile app

A mobile app is your code for Android, iOS, Cordova or Xamarin that uses Mobile Services.

Binding

You can associate a Mobile Service with a mobile app to allow your mobile app use the mobile service.

Mobile Services configuration file

The mobile-services.json file provides the information your mobile app needs to use Mobile Services.

Back-end

Your server-side code, typically Node.js or Java.

Data Sync Terminology

This section describes terminology that is associated with Data Sync.

GraphQL

A query language for data that is more powerful than a REST API. See GraphQL

Apollo

A client side library to work with a GraphQL based server. See Apollo

Identity Management Terminology

This section describes terminology that is associated with Identity Management.

SSO

Single Sign On, the ability to share a login between multiple services

OpenID Connect

a standard for providing identity on top of OAuth 2.0

Keycloak

Red Hat’s implementation of SSO and OpenID used as the identity provider

Client ID

is the client identifier for OpenID Connect requests, a simple alpha-numeric string

User Attributes

additional properties for user accounts (besides name and email) managed by Keycloak

Push Notifications Terminology

This section describes terminology that is associated with Push Notifications.

Push Application

A logical construct that represents an Mobile App, for example, Mobile HR.

Push Notification Message

A simple message to be sent to a Push Application.

Sender Endpoint API

A RESTful API that receives Push Notification Message requests for a PushApplication or some of its different Variants. The Server translates this request into the platform specific details and delivers the payload to the 3rd party cloud providers, which eventually might deliver the message to the physical device.

Variant

A variant of the Push Application, representing a specific mobile platform, like iOS or Android, or even more fine-grained differentiation like iPad or iPhone. There can be multiple variants for a single Push Application (for example, Mobile HR Android, Mobile HR iPad, Mobile HR iOS free or _Mobile HR iOS premium). Each supported variant type contains some platform specific properties, such as a Google API key (Android) or passphrase and certificate (Apple).

APNs

Apple Push Notification service.

Installation

Represents an actual device, registered with the UnifiedPush Server. User1 running HR Android app, while User2 runs HR iPhone premium on his phone.

Administrative User Interface

(AUI) The Unified Push Admin UI Web UI that allows you manage Push Applications and Variants, view statistics and send Push Notifications to devices.

Mobile CI/CD Terminology

This section describes terminology that is associated with Mobile CI/CD.

CI/CD

Continuous Integration / Continuous Delivery

Jenkins

A tool that helps to automate the software build process.

Build

A single run of Jenkins against a source code repository.

Artifact

The result of a succesful build in Jenkins, this is the binary that can be installed on to a mobile device.

Jenkinsfile

This is a file contained in the source code repository which instructs Jenkins on how to build an artifact with this source code.

Device Security Terminology

This section describes terminology that is associated with Device Security.

Root Access Detection (ROOT_ENABLED)

Use it to help prevent your app running in a device that has been rooted/jailbroken. A device is considered rooted if any of the following are true:

  • A custom key has been used to sign the kernel

  • The su binaries are present

Android

DeviceChecks.ROOT_ENABLED.

This function uses the Rootbeer library to check if root access is present on the device.

iOS

This check is not available for iOS.

Cordova

This check is not available for Cordova.

Xamarin

This check is not available for Xamarin.

Developer Mode Detection (DEVELOPER_MODE_ENABLED)

To detect if Developer Mode has been enabled on the device the DeviceCheckType#DEVELOPER_MODE_ENABLED function can be used. This function uses Android’s Settings class.

Debugger Detection (DEBUGGER_ENABLED)

To detect if an Android debugger is attached to the app the DeviceCheckType#DEBUGGER_ENABLED function can be used. This function uses Android’s Debug class.

Emulator Detection (IS_EMULATOR)

To detect if the app is being run on an emulator the DeviceCheckType#IS_EMULATOR function can be used. This function uses Android’s Build class.

Device Lock Detection (SCREEN_LOCK_ENABLED)

To detect if a device has a lock screen set (with pin, fingerprint, pattern) the DeviceCheckType#SCREEN_LOCK_ENABLED function can be used. This function uses Android’s KeyguardManager class.

App Data Backup Detection (BACKUP_ENABLED)

To detect whether the application’s data is configured to be synchronized across devices the DeviceCheckType#BACKUP_ENABLED function can be used. The allowBackup flag determines whether to allow the application to participate in the backup and restore infrastructure, which might be interesting to avoid depending on your app’s needs.

Device Encryption Detection (ENCRYPTION_ENABLED)

To detect whether the devices' filesystem is encrypted the DeviceCheckType#ENCRYPTION_ENABLED function can be used. This function uses Android’s DevicePolicyManager class.