CopyStorm 9.46.1

Release Date: 18-Jun-2019

This is a  major feature, API,  and bug fix release. As always, existing CopyStorm configuration files are backwards compatible.

Patch Levels

18-Jun-2019 Original Release
12-Jun-2019 Fix race condition in field history retention policy initialization.
25-Jun-2019 Add UNKNOWN_EXCEPTION analysis code. Trim spaces on usernames and passwords.
02-Jul-2019 Salesforce Summer’19 used a new MySQL reserved word (Release). Make UNKNOWN_EXCEPTION analysis an opt-in feature.
09-Jul-2019 Fix problem with command line -sfhost option.
15-Jul-2019 Small patch to support customer specified PostgreSQL search path. Fix for SQL/Server integrated security in batch mode.
24-Jul-2019 Fix field history retention policy implementation for SQL/Server.
12-Aug-2019 Salesforce used another Oracle Keyword for a column name — Resource. Renamed to Resource2.
16-Aug-2019 Salesforce introduced a table label that is >64 characters long. Patch older version of CopyStorm configuration tables to be long enough to hold the label. The label value is __MISSING LABEL__ PropertyFile – val AuthorizationFormDataUse not found in section StandardHistoryLabel for the table AuthorizationFormDataUseHistory
19-Aug-2019 Install library required for visual calendar date picker. Install upgrade to traceback reporting.

Upgrade to Summer’19 API

Salesforce’s Summer’19 API went GA last weekend and CopyStorm supports it with this release. The primary reason we upgraded to quickly is that  Summer’19 API added a new data type, “json”, in a few event tables and to back these tables up CopyStorm needs Summer’19

Functionally, this release is almost identical to CopyStorm 9.44.1 and 9.44.2.  CopyStorm 9.44.1 was a major feature release and CopyStorm 9.44.2 was a minor release that patches around a few problems with pre Summer’19 applications working on Summer’19 instances.

Support New Authentication Salesforce Methods

This release adds support for Salesforce authentication using:

  • JWT – including support for:

Support User Supplied Key Store for Database Credentials

A few releases ago CopyStorm started supporting storage of credentials in 3rd party key stores (like Kedpass or Vault). This upgrade adds the same level of support for database credentials.

Major Upgrades to Field History Tracking

CopyStorm’s field history tracking now includes data retention policy management including to enforce different policies on a per table basis. For example, your general field history retention policy may be for 90 days while Accounts, Contacts, Opportunities, etc. are assigned a 365 day policy.

Upgraded Log Viewer Includes CopyStorm/Medic Job Logs

The CopyStorm internal logging system has been upgrade to also log CopyStorm/Medic jobs. The difference you will notice is a small pull-down menu for selecting between CopyStorm and CopyStorm/Medic log history.

Add Multi Org Protection Code

CopyStorm now records the Salesforce Organization Id it is backing up and will warn a user if the same backup database is used for multiple Salesforce orgs. It is hard to imagine a scenario where two Salesforce instances should be backed up to the same database tables.

Fix a KnowledgeArticle Backup Bug

Knowledge articles in a Archived state must be backed up using a technique different that those in Online or Draft state. CopyStorm now understands the magic.

Upgrade CopyForceTableField With New Properties

Customers asked for Salesforcefield properties nullability, autonumber, caseSensitive, and polymorphicForeignKey to be added to the field information cached by CopyStorm — so we did it.

Totally Ignore Compound Salesforce Fields

Salesforce compound fields like BillingAddress have never been backed up by Salesforce since their components (BillingStreet, BillingCity, etc.) are backed up in other columns. In this update a compound field will no longer appear in the backup database.

Warn a User When They Do Not Have the ViewAllData Permission

Ideally, the Salesforce credentials doing a backup will have the Salesforce ViewAllData permission. Without this permission data may be missed and, more importantly, Salesforce is force to run row security rules during a backup — often making a backup run more slowly.

Odd Summer’19 Features

In Summer’19 Salesforce introduced four new tables whose default label is more than 100 characters long. For example, the label for one table is:

  • __MISSING LABEL__ PropertyFile – val AuthorizationFormConsent not found in section StandardHistoryLabel

You have to wonder who or what made this the primary label for a table?

Older CopyStorm databases have a couple of columns in the table CopyForceTabl limited to 64 characters and these need to be updated to process the problem tables properly. Note that all of the problem tables start with “AuthorizationForm”.  Here is the SQL to fix the problem on various database flavors:

SQL Server

ALTER TABLE CopyForceTable ALTER COLUMN label NVARCHAR(128) NOT NULL;
ALTER TABLE CopyForceTable ALTER COLUMN labelPlural NVARCHAR(128) NOT NULL;

PostgreSQL

ALTER TABLE CopyForceTable ALTER COLUMN label TYPE VARCHAR(128);
ALTER TABLE CopyForceTable ALTER COLUMN labelPlural TYPE VARCHAR(128);

ORACLE

ALTER TABLE CopyForceTable MODIFY  label  NVARCHAR2(128);
ALTER TABLE CopyForceTable MODIFY  labelPlural  NVARCHAR2(128);

MySQL

ALTER TABLE CopyForceTable MODIFY  label  VARCHAR(128);
ALTER TABLE CopyForceTable MODIFY  labelPlural  VARCHAR(128);