@onereach/or-pro
v1.13.0
Published
Pro tools for OneReach CS2.0
Downloads
1
Readme
OR-PRO is a command-line tool for management and migration of bots, flows, and steps in OneReach CS2.0.
This version is released for beta use only, and is not an official, supported product of OneReach.
System requirements
- It is recommended to use OR-PRO on Linux or Mac. Windows has constraints on characters that can be used in directory names that can cause OR-PRO to fail to download or unpack files. To avoid this problem on Windows, don't use prohibited characters in the names of bots, flows, or step templates.
- To avoid possible problems using OR-PRO, you should be running Node.js version 14.x.x or 16.x.x with the latest, stable minor and patch version.
- To check your Node.js version, run
node -v
in a console. - If you haven't installed Node.js yet, you can find an installer for your OS here.
- If you've previously installed Node.js using a utility (e.g., nvm or apt-get), search the web for instructions on how to install a different Node.js version with that utility.
- To check your Node.js version, run
- Use the latest stable version of NPM, or minimally NPM version 6.x.x.
- To check your NPM version, run
npm -v
in a console. - NPM is included in Node.js so it's likely already installed. To update NPM, run
npm install -g npm
.
- To check your NPM version, run
Recent changes
v1.13.0
- Attempt to repair an issue that could cause crashes depending on the structure of an entry in
config/users.json
. - Significant code refactoring.
v1.12.0
- Fixes to Knowledge Model context migration.
- Improve logging for API failures.
- Add support for verbose logging for improved troubleshooting, add
verboseLogging: true
toconfig/config.json
. - Enforce Node.js version requirement, add system requirements information to readme.
v1.11.8-9
- Update token verify URL structure used in auto-configuration of environments.
- Apply a workaround to a bug in the KM context list API method that can cause less than all contexts to be retrieved.
Table of contents
- Installation
- Running OR-PRO
- Tasks supported by OR-PRO
- Unpacking flows
- Packing flows
- Downloading bots & flows
- Uploading bots & flows
- Migration mapping
- Transferring bots
- Split flows into steps
- Combining steps into flows
- Getting started, environment considerations
- Configuring environments - easy method
- Configuring user access credentials - easy method
- Configuring environments - fallback method
- Configuring user access credentials - fallback method
- Optional command parameters
- Uninstalling
- Past changes
Installation
npm i -g @onereach/or-pro
- Check
@onereach/or-pro
installed:npm list -g @onereach/or-pro
- Check
@onereach/or-pro
version:npm view @onereach/or-pro version
Node.js must be installed on your machine. To check whether it is, run:
node -v
If a version number isn't echoed back, get the installer for Node.js here.
Running OR-PRO
To start OR-PRO, run the command or-pro
in your terminal. You will be taken through a series of prompts to choose what task you want to perform and make the required choices for that task.
=== MAIN MENU ===
? Choose action: (Use arrow keys)
❯ Download bots
Upload bots
Transfer bots (without saving locally)
Unpack flows
Pack flows
Split flow into steps
Combine steps into flow
Edit config
Edit users
Edit environments
Change working directory
Exit
The first time you run OR-PRO you will be prompted to choose a working directory in your file system. This is the directory where configuration files and any downloaded bots/flows will be stored. If you create a directory and then navigate to it in the terminal before running OR-PRO, that directory will be the default value for the working directory prompt and you can simply hit enter without having to type the path.
If you need to run the same task with the same parameters frequently, you can bypass the prompts by supplying the parameters as arguments in the initial command. See the Optional command parameters section for more details.
Tasks supported by OR-PRO
OR-PRO supports a number of tasks that are useful primarily for developers, environment managers, and people working with complex solutions across multiple accounts and environments.
Unpacking flows
CS2.0 flow sources are large JSON objects. One of the challenges for professional developers working with these sources is they're not well suited for maintenance outside of the CS2.0 UI and don't diff well in code repositories. This is primarily because the JS code in step template logic and in wildcards is stored as a long string, which cannot be properly diffed. To resolve this issue, OneReach has created a script that transforms a flow source from JSON into a directory structure containing a collection of separate files: .yaml files for general configurations, .js files for JS. The general configurations of the flow source are stored in flow.yaml
in the root directory, step templates stored in subdirectories of the templates
directory using the step template ID as the subdirectory name, and any Action Desk views associated with the flow are stored in the views
directory.
Unpacking can be done as its own task, or in the process of downloading bots and flows from an account.
Compatibility with Synchronizer
The unpacking script is based on the one used by the OneReach internal tool called Synchronizer, but it has been modified in two ways:
- Instead of the dot-prefixed filenames used by Synchronizer, which are likely to be hidden in OS file system browsers, it uses filenames without dot prefixes.
- Wildcard components in step template UIs are unpacked, whereas with Synchronizer they are not.
These changes are meant to improve the usefulness of the unpacked files for many people using OR-PRO but they prevent it from being used in conjunction with Synchronizer. OneReach staff who need OR-PRO to produce unpacked flows compatible with Synchronizer should add the following property to the JSON object in config/config.json
in their working directory: "synchronizerCompatible": true
. If that property is absent or false
the modified unpacker file structure will be used.
Packing flows
Packing is the reverse of unpacking, i.e., a flow source represented by a directory of unpacker files is reassembled into the JSON object that can be used in CS2.0. Any valid changes made to the unpacker files will be applied in the re-packed flow source, which means you can make changes to unpacked flow sources in the unpacked format if it's more convenient.
Packing can be done as its own task, or in the process of uploading bots and flows to an account.
Downloading bots & flows
OR-PRO can connect to your CS2.0 account and download one or more bots to your local file system. Any Action Desk views associated with flows in the downloaded bot(s) will also be downloaded. By default, the downloaded bots will be stored in a directory called bots
in your OR-PRO working directory. Each bot will be stored as its own directory containing each of its constituent flows. Flows from downloaded bots can be stored as their original flow source JSON or unpacked.
The downloading task has a number of useful purposes, including:
- Pulling a copy of flows locally for maintenance in a code editor
- Quickly creating a backup copy of flows on your local file system
- Quickly deriving unpacked flows directly from their source
- Positioning flow sources on your file system where they can subsequently be committed to a source control system such as Git
If you use your OR-PRO working directory as the root directory of a code repository, be sure to ignore/exclude the
config/users.json
file from tracking as it is unhelpful to other team members and potentially contains sensitive data.
When downloading bots from an account, you will be prompted whether you want to use migration mapping, which you will typically want to do if you expect to upload the bots to a different account. See the Migration mapping section below for more information.
After downloading completes, if a Git repository exists in your working directory OR-PRO will give you the option to commit the files with a commit message.
Uploading bots & flows
OR-PRO can upload bots (and their constitutent flows, including the Action Desk views associated with those flows), whether packed or unpacked, from your local file system to a CS2.0 account. By default, it will look for bots (as directories) in the bots
directory in your OR-PRO working directory. The upload task requires bots and flows to be stored using the same directory structure and .yaml files that is used when downloading bots from an account.
When uploading bots to an account, you will be prompted whether you want to use migration mapping, which you will typically want to do if you are migrating the bots from a different account. See the Migration mapping section below for more information.
Migration mapping
A key challenge in migrating bots from one account to another, whether within the same environment or across environments, is that flows often contain ID references to resources that are only valid within that account. For many CS2.0 resources, though those resources are identified by label in CS2.0 and step UIs, they are actually referred to by IDs in the flow sources. Simply copying the flow source from one account and pasting it into another account often is not enough as those ID references are invalid in the new context. OR-PRO includes a feature helps mitigate that problem by automatically detecting ID references when downloading a bot from a source account, then attempting to match them to corresponding references in the destination account based on their names or labels. When uploading flows, it scans the flow sources for references to the mapped resources from the source account and overwrites those references with the corresponding values from the destination account.
Mapped resources
Currently, OR-PRO handles migration mapping for the following ID-referenced CS2.0 resources:
Bots
Bots are mapped based on the bot name. If a bot is included in an upload but a matching one doesn't yet exist in the destination account, OR-PRO will give you the option to create it automatically to complete the map and so flows can be uploaded into it.
Flows
Flows are mapped based on the flow name and the name of the bot containing the flow. Flows with the same name in different bots will not automatically be mapped to each other. If a flow is included in an upload but a matching one doesn't yet exist in the destination account, OR-PRO will give you the option to create it automatically so its ID can be added to the map in case it is referenced by other flows being uploaded, as in the Trigger Another Flow... step templates.
Tables
Tables are mapped based on the table name. OR-PRO does not support automatic creation of missing tables in the destination account; all tables for which ID migration is desired must already exist in the source and destination account, and they should have the same structure (i.e., identical column names and types). It is not necessary for the tables in either account to have any data.
Knowledge models
KMs are mapped based on the KM title. OR-PRO does not support automatic creation of missing KMs in the destination account; all KMs for which ID migration is desired must already exist in the source and destination account, and they should include the same contexts. The IDs of KMs and KM contexts, which are what OR-PRO maps in migration, are not generated until the model is trained, and a context must have at least one phrase-response pair to be trained. So the source account and destination account must have corresponding KMs with matching contexts and at least one phrase-response pair in each context, and must have been trained at least once.
Identifiers
Identifiers are phone numbers or short-codes for SMS and voice. Identifiers are mapped based on their name (sometimes identified as "friendly name") as defined by an account admin in CS2.0. When identifiers are created/purchased, their default name is just a formatted version of the phone number or short-code, which means their default name will be globally unique and will differ between the source and destination account. To support automatic mapping, an admin user in the account should assign a custom name (typically describing the identifier's purpose for your business or case, e.g., "Main IVR line" or "Notification SMS") to the corresponding identifiers in the source and destination accounts. This can be done by going to Action Desk > Dashboard and clicking Manage identifiers in the "Identifiers" card, then again clicking the Manage identifiers button just above the table. This will enable an edit control on the name column of the table.
When downloading or uploading, OR-PRO will prompt you to enter a name for any affected identifiers that don't already have names or their names haven't been customized. This is stored in the Map.json
file for use in migration, but is not stored in CS2.0. If OR-PRO detects that the CS2.0-managed name of an identifier has changed since the map was last built, it will prompt you whether to use the new name or keep the original one for the purposes of migration.
Handling of missing resources when uploading
As previously discussed, OR-PRO will give you the option to automatically create any bots and flows that are missing in the destination account. All other resources must already exist in the destination account. For any resources that are missing when uploading to a destination account or that cannot be automatically mapped based on label/name, OR-PRO will give you the option to create/relabel the resource in CS2.0 and retry, manually enter the ID reference of the resource in the destination account, or skip mapping for the resource.
Collaboration and the Map.json file
The migration map data is stored by default in your working directory as Map.json
. This file can be shared within a team and committed to repositories to ensure anyone is able to run the same migration and doesn't have to repeat the map creation process. You can also manually modify this file to create mappings between resources in accounts where the labels used in CS2.0 are not identical. In that case, use a common label for them in the Map.json
file. The migration process only updates the IDs in the flow sources so having a different label in your Map.json
file than is used in CS2.0 will not affect the labels in CS2.0.
The Map.json
file is meant to address one group of accounts that can be migrated between (e.g., dev, test, live). If you are migrating between multiple different groups of account, you should use different map files for each group. You can accomplish this by swapping your Map.json
file in your working directory, or use the option to specify a different path to a Map.json
file when prompted when uploading, downloading, or transferring bots.
Transferring bots
Use this task if you just want to copy/migrate a bot from one account to another but don't need to save it locally. You will still have the option to run the migration mapping process on flows transfered this way.
Split flows into steps
This task reads in a flow source and extracts the step templates it contains into separate directories on your file system in packed or unpacked form. This is most often used as part of maintaining the flows used in the library (sandbox
) account.
Combine steps into flow
This task takes a collection of step template source .json files from a directory and creates a flow source with all of those step templates in it. This is most often used as part of maintaining the flows used in the library (sandbox
) account.
Getting started, environment considerations
As of v1.7.0
, it is significantly easier to get started using OR-PRO and the authentication method is more secure. However, those improvements rely on recent updates to the CS2.0 platform that may not yet have been applied to your environment. If your environment has those updates applied, you'll be able to use the "easy methods" described below. If not, you will need to use the fallback setup methods. The fallback setup methods are somewhat complicated and technical, so if you want to enable the easy methods in your environment ask your OneReach account manager to have the "providers alias for URL paths" and "2FA user self-administration" features patched into your environment.
OR-PRO needs two types of information from you in order to run:
- Which environment(s) you need to interact with
- User access credentials to any account(s) you need to interact with in any given environment
Configuring environments - easy method
The starting installation for OR-PRO includes the configuration for the OneReach Staging environment. You don't need to configure this environment.
When you run OR-PRO and invoke a task that requires interacting with an environment, you'll be given the option to add a new environment. When prompted to "Enter environment label", enter a friendly name (e.g., "OneReach_QA" or "Acme_Production") that will be used to describe the environment.
Note: Due to a temporary issue, please do not use spaces or special characters in environment labels for now. This issue will be fixed in an upcoming release, at which point there will be no restrictions on environment labels.
When asked "How would you like to populate the API URLs?", choose "Enter environment URL part". Then type the part of CS2.0 web and API URLs that specifically identify the environment (case sensitive). For example, the OneReach Staging environment's URL part is staging
, as can be seen in its CS2.0 web URL of studio.staging.onereach.ai
and its API URL of sdkapi.staging.onereach.ai
.
This will add the environment configuration to the config/environments.json
file in your working directory. If you need to update the environment in the future, you can do it via the corresponding menu options in OR-PRO or by editing the environments.json
file.
Configuring user access credentials - easy method
For commands that operate on data in an account in a CS2.0 environment, OR-PRO requires authentication credentials for a user in that account. If OR-PRO needs access to an account, you will be prompted to enter your CS2.0 username and password, and to enter a 2FA code, which OR-PRO will use to generate an authentication token. That token will be retained for the remainder of the session and invalidated when the session ends. You must have two-factor authentication (2FA) enabled for that user.
Enabling 2FA
To enable 2FA, go to:
https://auth.{environment}.onereach.ai/two-factor
(replacing {environment} with your environment's URL part)
Self-administration of 2FA is a new feature of the platform that was released on Jan. 5 2021. If your environment has not been patched with that release yet, logging in via the CLI will not work and you'll need to use the fallback method. If an error occurs while OR-PRO is attempting to access data in an account, it is likely because you don't have 2FA enabled.
Logging in via OR-PRO
When you run an OR-PRO task that requires interacting with CS2.0 account data, after selecting an environment you'll be prompted to select an existing user or add a new one. When you add a new user for the "easy method" of logging in, you'll be prompted to enter the username. This will be saved permanently in the config/users.json
file so you don't have to enter it again. Once you've selected an existing user or added a new one, you'll be prompted to enter the password and then the 2FA verification code.
Configuring environments - fallback method
The fallback method for adding an environment configuration to OR-PRO involves determining the environment's configuration properties (comprised of the URLs of the various CS2.0 API methods OR-PRO interacts with) and saving them in the JSON file located at config/environments.json
in your working directory. You can edit the file directly, or run OR-PRO and scroll to the Edit environments option to create or edit a user.
Determining the environment configuration properties
This JSON object describes the configuration for the OneReach Staging environment:
{
"label": "OneReach Staging",
"dataHubUrl": "https://datahub.staging.api.onereach.ai",
"tokenVerifyUrl": "https://sdkapi.staging.api.onereach.ai/auth/token",
"phoneNumbersUrl": "https://sdkapi.staging.api.onereach.ai/http/873c0f61-4dfc-4f8a-860e-f574616703c8/provider-numbers-list",
"tablesUrl": "https://tables.staging.api.onereach.ai/{accountId}/{userId}/indexes-statistics",
"knowledgeModelsUrl": "https://nlu.staging.api.onereach.ai/knowledge-base",
"knowledgeModelsContextUrl": "https://nlu.staging.api.onereach.ai/applications",
"deployerUrl": "https://deployer.staging.api.onereach.ai"
}
To update this for your environment, modify the label and replace staging
in all of the URLs with the URL part for your environment. You'll also need to update the UUID (873c0f61-4dfc-4f8a-860e-f574616703c8
in the Staging config) in the phoneNumbersUrl
property with the providers ("onereach") account ID in your environment. There are several ways of obtaining this value:
- From an environment administrator, who can look it up using the
GET /accounts
environment API method. - Logging the value of
this.helpers.providersAccountId
in a flow execution. - Logging the value of
this.$helpers.providersAccountId
from a wildcard component's logic in a step template or from a card template's logic in Action Desk.
Alternatively, you can copy the fully formed configuration object for your environment using a pre-made Action Desk card:
Skip steps 3-5 if you already have a view you want to attach this card to.
- Copy the Action Desk card source located in your OR-PRO working directory at
extra/env-config-card.json
- Browse to Action Desk > Views in CS2.0
- Click the blue plus icon in the lower-right of the screen
- Choose Create a new blank view at the bottom of the screen
- Customize the Name (and optionally Description) field indicating the purpose of the view (perhaps "OR-PRO Support") and click Save
- Click on the Card Templates sub-menu
- Click the blue plus icon in the lower-right of the screen
- Choose Create a new blank card template at the bottom of the screen
- Go to the Source tab, and paste the copied value into the code input (replacing/overwriting the existing value) and click Save
- Select the new card template called "OR-PRO environment config" then click the plus icon in the right-hand pane ("Add card to view")
- Check the box next to the new view you just created and click Add card
- Browse to the Views area of Action Desk and click the Open view icon at the rigthand end of the view you just added the card to
- Copy the JSON object shown, which is the fully formed configuration object for your environment
The enviroment's label
value is automatically generated in this card based on the environment's URL part. You can change that value if needed.
Updating the environments configuration file
Open the file config/environments.json
in your OR-PRO working directory with a plain text editor or code editor. This file should contain a JSON object, and each environment configuration is stored as a property in that object. The initial version of this file that comes with the base installation of OR-PRO should contain an object with a single object property with the key or-staging
that defines the OneReach Staging environment. That environment uses the "easy method," so its configuration object is simpler than the one you've obtained for your environment.
To add your environment configuration, create another property key in the object. The simplest choice for the key is just to use the URL part for your environment, since that's guaranteed to be a safe property key and completely unique. Then paste the environment configuration object as the value for that key and save the file.
The environment configuration is universal to all accounts/users in the environment and is not sensitive data, so if other people on your team are using OR-PRO you may want to share your config/environments.json
file with them or push it to a repository to help them avoid having to go through this process.
Configuring user access credentials - fallback method
This method involves storing CS2.0 access tokens permanently in a file in your file system, which is a bad security practice. If you use this method, it is recommended that you delete tokens from the
config/users.json
file or by running OR-PRO and using the Edit users > Delete user option after you're done using OR-PRO.
The fallback method for providing authentication involves obtaining a token from the CS2.0 web application and saving it in the JSON file located at config/users.json
in your working directory. You can edit the file directly, or run OR-PRO and scroll to the Edit users option to create or edit a user. If you haven't already defined the environment for that user, you will need to do that first by editing config/environments.json
or running OR-PRO and choosing the Edit environments option.
Obtaining your user token
You can obtain the authentication token used by your browser when accessing CS2.0 and use it for OR-PRO. If you're familiar with browser developer tools, the token can be found in the Authentication
header in authenticated requests in the Network monitor, or in the cookie associated with the environment. Otherwise, follow these instructions to create an Action Desk view that will show your current user token:
Skip steps 3-5 if you already have a view you want to attach this card to.
- Copy the Action Desk card source located in your OR-PRO working directory at
extra/user-token-card.json
- Browse to Action Desk > Views in CS2.0
- Click the blue plus icon in the lower-right of the screen
- Choose Create a new blank view at the bottom of the screen
- Customize the Name (and optionally Description) field indicating the purpose of the view (perhaps "OR-PRO Support") and click Save
- Click on the Card Templates sub-menu
- Click the blue plus icon in the lower-right of the screen
- Choose Create a new blank card template at the bottom of the screen
- Go to the Source tab, and paste the copied value into the code input (replacing/overwriting the existing value) and click Save
- Select the new card template called "View current user token" then click the plus icon in the right-hand pane ("Add card to view")
- Check the box next to the new view you just created and click Add card
- Browse to the Views area of Action Desk and click the Open view icon at the rigthand end of the view you just added the card to
- Click on the text field showing your token and it will automatically be copied to your clipboard.
Anytime you need your user token, repeat step 12-13.
Updating the users configuration file
Open the file config/users.json
in your OR-PRO working directory with a plain text editor or code editor. This file should contain a JSON array, and each user you add is an object element in that array. This is the template for a user configuration object when using the fallback method:
{
"label": "Sample_staging_user",
"environment": "or-staging",
"token": ""
}
Customize the label
value and paste the token you obtained earlier in the token
value. The environment
property value should match the property key that the associated environment's configuration is stored under in config/environments.json
in your OR-PRO working directory, which may differ from the label
and envUrlPart
in that environment config object.
Note: Due to a temporary issue, please do not use spaces or special characters in user labels for now. This issue will be fixed in an upcoming release, at which point there will be no restrictions on user labels.
Add the completed user configuration object as an element in the config/users.json
array and save the file. Be sure to add it as an element in the array rather than overwriting the array with the single user configuration object, as this will cause OR-PRO to fail to be able to read this file properly.
Optional command parameters
or-pro [params]
All parameters are optional, the tool can be launched without any arguments and you will be prompted to make choices through the CLI dialog interface instead.
Unpack flows
or-pro unpack
Unpacks flow sources into yaml files. Works in conjunction with or-pro pack
.
Params:
--flowPath=path
- path to base directory of flow(s)
Pack flows
or-pro unpack
Packs unpacked flows into flow source JSON. Works in conjunction with npm run unpack
.
Params:
--flowPath=path
- path to base directory of flow(s)
Download bots
or-pro download
Downloads and unpacks flows from specified environment, also creates map of flows|tables|identifiers|knowledge models used in flow data. Requires configurations from config.json
, environments.json
and users.json
. Works in conjunction with npm run upload
.
Params:
--env=environment
- key of the environment fromenvironments.json
--useDefaultDir=TRUE|FALSE
- if default directory fromconfig.json
should be used--dir=path
- path to default directory, ignored ifuseDefaultDir
isTRUE
--botId=botId
- bot ID to look for to download--flowId=flowId
- flow ID to look for to download--botName=botName
- bot label to look for to download--flowName=flowName
- flow label to look for to download--doNotUnpack=TRUE|FALSE
- if downloaded flows should not be unpacked--gitCommit=TRUE|FALSE
- if git commit should be run after downloading--commitMessage=commitMessage
- message for git commit, ignored ifgitCommit
isFALSE
--useDefaultMapPath=useDefaultMapPath
- if default path for map file fromconfig.json
should be used--mapPath=path
- path to map file, ignored ifuseDefaultMapPath
isTRUE
Upload bots
or-pro upload
Packs and uploads flows to specific environment, also fills existing map with matching flows|tables|phones|knowledge models and replaces those values in uploaded flows. Requires configurations from config.json, environments.json and users.json. Works in conjunction with npm run download
.
Params:
--env=environment
- key of the target environment fromenvironments.json
--useDefaultDir=TRUE|FALSE
- if default directory fromconfig.json
should be used--dir=path
- path to default directory, ignored ifuseDefaultDir
isTRUE
--botName=botName
- bot label to look for to upload--flowName=flowName
- flow label to look for to upload--overwriteAll=TRUE|FALSE
- if existing flows at target environment should be automatically overwritten--originEnv=environment
- key of the environment fromenvironments.json
from which flows were downloaded--useDefaultMapPath=useDefaultMapPath
- if default path for Map file fromconfig.json
should be used--mapPath=path
- path to map file, ignored ifuseDefaultMapPath
isTRUE
--activateFlows=TRUE|FALSE
- if flows should be activated after uploading
Uninstalling
Run npm uninstall -g @onereach/or-pro
Past changes
v1.11.5 - 6
- Fix documentation related to fallback method of user authentication. The correct property key for tokens is
token
, notuserToken
. - Improved documentation related to optional command parameters.
v1.11.4
- Improved migration of step data to address problems related to identifiers in voice steps.
- Modified process for uploading views to reduce unneeded console messages.
- Handle case where user-specified bot label for uploading does not exist locally.
v1.11.3
- Updated the method used to find resource IDs in flow sources during migration to cover a greater range of variability in step instance data. This should address currently known problems with migration related to specific step templates, and lessen the chance of future such problems.
- Made API error messages more verbose to aid in identifying the underlying causes of errors and failures.
- If an error occurs during a task, OR-PRO will now return to the main menu rather than quitting.
v1.11.2
- When configured to operate compatibly with Synchronizer, OR-PRO no longer retrieves views and cards.
- If a user token is present for a user in
users.json
, OR-PRO will no longer request login credentials and will skip prompts for a user token.
v1.11.1
- Implemented a workaround for an error that can occur when uploading views for a flow that didn't previously exist in the destination account. The error displayed is
TypeError: Cannot read property 'views' of undefined
. Previously this would cause OR-PRO to crash, potentially leaving upload and activation tasks unfinished. Now OR-PRO will catch the error and continue upload and activation tasks, although the affected view will not have uploaded. Re-running the upload should successfully upload any views that failed to upload in the previous attempt. - Fixed repacker handling of files related to compatibility with Synchronizer.
- Removed unused and deprecated dependencies.
- Revised documentation regarding downloading and uploading to mention that any Action Desk views associated with the affected flows will also be downloaded or uploaded. This has long been a feature of OR-PRO, it was just neglected in the documentation until now.
v1.11.0
- Added a feature to migration mapping for phone/SMS identifiers that supports mapping based on the friendly names of identifiers that can be defined in CS2.0, see: Identifiers
- Updated package dependencies to reduce or eliminate warnings and audit issues on installation.
- Revised documentation to better describe how migration mapping works for each of type of resource.
v1.10.0
- Added a feature that makes the flow unpacker produce a file structure compatible with the OneReach-internal tool Synchronizer, see: Compatibility with Synchronizer.
- Further fixes related to an issue that could cause migration not to fully work for the Trigger step templates.
v1.9.4
- Fixed an issue that could cause migration not to fully work for the Trigger step templates.
- If an API error occurs when uploading a flow, OR-PRO will now retry once to attempt to avoid incomplete uploads due to transitory API issues.
- Fixed a bug during user creation where it wouldn't prompt for a user token if 2FA is disabled for the user.
v1.9.3
- Fixed an issue with the combine steps action that caused the process to crash if the default path to the steps directory was chosen.
v1.9.2
- Fixed an issue with re-packing wildcards.
v1.9.1
- Fixed an issue with migration that could cause flowIds in some step instance data to not be migrated.
v1.9.0
- When uploading using migration, OR-PRO will now only create flows in the destination account if those flows exist in your local file system. Previously it could create blank flows based on all flows it had created map data for based on the source account even if those flows were not present locally to migrate.
- The unpacker script now unpacks wildcard UI components within a step template.
v1.8.5
- Bug fix that caused user authentication to fail
v1.8.4
- Bug fixes that could cause uploading with mapping to fail in v1.8.0-1.8.3. It may be necessary to delete and rebuild your Map.json file.
v1.8.3
- Bug fixes that could cause tasks in the 1.8.0-1.8.2 versions to fail
v1.8.0-1.8.2
Migration map (
Map.json
) files built using previous versions of OR-PRO will no longer work in this version and will need to be rebuilt.
- Migration map is now based on environment + accountId whereas previously it was based on environment + user label. This ensures the Map.json file can be shared within a team and be proper for all users within the migrated accounts without needing special user labeling conventions.
- Refactored user object in
users.json
to store accountId, and updated user maintenance tasks accordingly. - Improved API timeout handling.
v1.7.13
- Fixed a bug that could cause uploading to fail
v1.7.10 - 1.7.12
- Documentation improvements
v1.7.9
- Fixed a bug that could cause uploading to fail
- Unpacking no longer creates dot-prefixed YAML and JS files. Packing can consume bots that use either dot-prefixed or non-dot-prefixed files.
v1.7.0 - 1.7.8
- (for up-to-date environments) OR-PRO no longer requires copying a user token from Studio, you can now log into your Studio account through the tool itself. It will create and destroy a token for the client session. This feature requires two-factor authentication to be enabled on your user.
- (for up-to-date environments) Environment configurations no longer need to be defined manually on first use of OR-PRO. The tool is now able to autopopulate configurations based on the environment subdomain. If you need to override an environment configuration, you can do so in the
config/environments.json
file. - Improved the getting started process
- Bug fixes
v1.6.1 - 1.6.3
- Fixed an issue with the auto-updater
- It may be necessary to reinstall the package:
npm uninistall -g @onereach/or-pro
v1.6.0
- Improved the way that flow name mapping works
- When uploading, the tool will now create missing flows
- Added user option to skip mapping process, and map application is skipped if source == destination
v1.5.0 - 1.5.4
- User can now specify a working directory for config files, extras, and bot/flow/step sources. Previously those had been stored in the globally installed package directory, making it difficult to find and reference.
- Added an initialization process and menu options for specifying the path to the working directory.
- Fixed an issue that could cause creation of the Map.json file to fail.
- Fixed a bug in the phone/sms identifier mapping process
- Fixed an issue that could cause the auto-update behavior to fail