Migrating to Profound.js 7 From Earlier Versions

Migrating to Profound.js 7 From Earlier Versions

This page covers the process for upgrading to Profound.js / Profound API version 7 from earlier versions. Security enhancements in version 7 require some configuration changes in addition to the standard upgrade process.

If upgrading from version 5 or earlier, first work through the legacy guide Migrating to Profound.js 6 From Earlier Versions, retained for reference in the Legacy Versions folder.

Overview

Profound.js and Profound API version 7 introduce important security enhancements that strengthen how the product handles encryption, authentication, and inter-system communication. While the core upgrade process remains the same as previous versions, these security improvements require additional configuration changes that affect core functionality.

This page compiles the full upgrade process and migration steps into a single reference, guiding you through everything from obtaining a new license key to verifying your applications are compatible with the updated APIs. It is recommended to review all sections before beginning the upgrade, and to test in a non-production environment.

Table of Contents

 

What is Changing?

  • New License Key Required - Versions 7 and higher require a new license key. License keys for older versions will not work with version 7 and higher. This does NOT require a new purchase for existing customers;

  • User-Defined Encryption Key - In previous versions, built-in file encryption utilities (such as for DB credentials and Profound API data files) worked using an encryption key that was built into the product. Starting in version 7, these utilities work with a user-defined encryption key that needs to be generated and configured;

  • IBM i Security Keys - In previous versions, authentication for PJSCALL and proxy program connections worked using built-in encryption keys. Starting in version 7, Profound.js will only accept connections from IBM i systems identified by a security key that is unique to each IBM i system;

  • pjs.sendRequest() Removed - The pjs.sendRequest() API is removed in this release. Any applications still using it will need to be adjusted to use pjs.httpRequest() instead.

Why is This Changing?

These changes were made to enhance security. The previous built-in encryption keys and authentication mechanisms have been replaced with user-defined and system-specific keys to provide stronger, more customizable security for each installation.

Upgrade Commands

The process for upgrading is very similar to installing for the first time (see the installation guide for more details).

The update process is initiated from a shell command line. On IBM i, this is done using a PASE shell (not QShell). The best way to use a PASE shell is to connect to your IBM i server via SSH using a Unix-style terminal emulator, such as PuTTY or Git Bash for Windows.

Use the cd command to navigate to your installation directory, then run the following commands:

npm install profoundjs@latest-7 node complete_install.js

For an upgrade installation (config.js file is present), the complete_install.js script will proceed silently using the existing configuration values. To force the script to prompt for new configuration values, add the --configure switch:

node complete_install.js --configure

Migration Process

Follow these steps in order when upgrading to version 7:

  1. Obtain a Version 7 License Key - Before upgrading, obtain a license key compatible with version 7 for each of your target systems by contacting your Profound Logic account representative, or keys@profoundlogic.com.

    • To generate new keys, your account representative will need a copy of your existing license keys. To retrieve them, use the License Key interface on each target system at http://your_system:port/key, then copy/paste the keys and send them along with your request;

    • If the target system does not yet have a license key applied, provide the machine identifier shown on that same screen instead;

    • If you have not yet purchased a license, you can use the Request Trial Key button to request a temporary key after upgrading.

  2. Test in a Non-Production Environment - Upgrade to version 7 in a test environment first to verify the new configuration before upgrading any production instances.

  3. Upgrade IBM i Instances First (if applicable) - If connecting to IBM i instances from off-platform using Remote Connector, or connecting from IBM i to Profound.js via PJSCALL or proxy programs, upgrade the IBM i instances and associated Connector libraries first (steps 1 through 8) before upgrading your other instances.

  4. Run the Upgrade - Upgrade the instance to version 7 using the upgrade commands described above.

  5. Configure File Encryption (if applicable) - If using file encryption features (such as for DB connections and/or Profound API data files):

    • Generate and configure an encryption key as described in File Encryption;

    • Regenerate any encrypted credentials files using the store_credentials or store_options tools.

  6. Configure PJSCALL/Proxy Security (if applicable) - If using PJSCALL and/or Profound.js proxy programs to connect to Profound.js, add the security key(s) for any IBM i systems that need to connect to the instance to the configuration file, as described in Security for PJSCALL Command and Proxy Programs.

  7. Apply License Key - Start your version 7 instance, go to the License Key interface, and apply your version 7 license key.

  8. Restart the Instance - Restart your version 7 instance.

  9. Replace pjs.sendRequest() Usage - Check applications for any use of pjs.sendRequest(), replace with pjs.httpRequest(), and retest. In many cases (unless using advanced request options), pjs.httpRequest() will work as a simple drop-in replacement.

An issue was identified that caused the dashboard users file (api-dashboard.dat) to be created and used from the current working directory. As of version 7.8.0, the system has been changed to create and use this file in the installation directory, but it will continue to use this file in the current working directory if one is not found in the installation directory and will only create a new one if it is not found in either location.

Video Resources

Here is a video that elaborates on some things you should know before upgrading to version 7.0.0:


Related Pages