Configuration Promotion Process



This topic defines the process for promoting configuration changes performed by the customer in his/her development environment to his/her production environment. The purpose of this topic is to define the software development methodologies to be used by both parties for promotion of configurations from the customer’s development environment to his/her production environment.

Janrain Environments

For a given project, Janrain typically provisions two separate environments, one for development (dev) and one for production (prod). An environment consists of:

This topic refers specifically to the configurations that are intended to be changed through the Configuration API.

Flow Names and Versions

A single Janrain environment can contain one or more named flow configurations. The default configuration is named “standard”.

Each named flow configuration is assigned a version string every time it is changed. The flow version is globally unique and is not the same across application instances or Janrain environments. This is illustrated in the final row of the following table. The dev and prod version identifiers are different despite the fact that the flows themselves are otherwise identical.

For example, the following table displays three changes made to a flow configuration in a dev environment followed by a promotion of the changes to a prod environment. Changes to the flow versions are highlighted in yellow.

Description of Change Dev Version Prod Version
1. Configured registration experience 20160101 20151225
2. Imported translations for es-MX 20160102 20151225
3. Imported translations for ru-RU 20160103 20151225
4. Promote to production 20160103 20160105

Flow Version Strategy for JavaScript Implementations

When using the Social Registration JavaScript UI, the flow name and version are specified using JavaScript settings.

Flow Version Strategy for Mobile Library Implementations

When using the Janrain mobile libraries for Android or iOS, the flow name and version are specified in Class variables prior to the initialization of the primary class.

The recommended strategy for using flow versions in a mobile implementation is to explicitly specify the flow version in the dev environment and the prod environment.

An advantage of using specific flow versions is that if a Mobile SDK implementation and a JavaScript implementation are using the same flow configuration, the use of explicit versions in each will allow the developer to change the configuration for each at separate times. For example, the changes can be made in the JavaScript implementation before the next release of the mobile app, without affecting the mobile app.

Release Process Checklist

Specifying specific flow versions allows flow configurations to be pushed to production in advance of a customer’s code release. Then, in the release of the implementation code the customer includes the new flow version explicitly.  This allows the customer to determine exactly when changes take place and also allows the customer to easily roll back the changes to the configurations by rolling back the implementation code, which has the previous flow version specified.

Request to Promote Configurations to Production

Promoting Configurations refers to the process of replicating the configuration from one Janrain environment to another. With the Configuration API, the customer will have made changes to the configuration in his/her development environment and tested them. To promote a specific configuration from the dev to production environment, the customer should open a support ticket that includes:

Janrain will promote the specified configuration to prod with a new flow version. Janrain will then inform the customer that the configuration has been pushed and the new flow version is on prod. The customer can confirm this is completed using the Configuration API to get that version from prod, and include this version in the next code release using the following flow version strategies.


Figure 1: Promotion from Dev to Prod


Not Promoted: