Breaking Changes

On this page:

Itential Automation Platform

BREAKING CHANGE for 2020.2.4 - 2020.2.5

Changes to the Pronghorn.getMethods permission for Custom Roles

In 2020.2.5, the GET /methods/registry API is no longer included in the Pronghorn.getMethods permission for custom roles. Access to the GET /methods/registry API is now included under the Pronghorn.getMethodsRegistry permission instead, and the Pronghorn.getMethods permission solely includes the GET /methods API.

What should I do?

If any custom role contains the Pronghorn.getMethods permission and does not need access to the GET /methods API, please add the new Pronghorn.getMethodsRegistry permission to that role in Authorization Manager.

BREAKING CHANGE for 2020.2.3 - 2020.2.4

$where in Workflow Engine API Calls

Due to a vulnerability with Mongo, the $where key is no longer supported as part of the query object for several API calls. The $where key is specifically used in Mongo to support a JavaScript expression or function to be used as part of a query. Any APIs that were vulnerable to the usage of $where will now return with an error if $where is included in the query. The following APIs are affected by this, with the relevant parameter noted for each.

API Parameter
POST /workflow_engine/getJobFromTaskQuery task_query
POST /workflow_engine/queryJobs query
POST /workflow_engine/jobs/find query
POST /workflow_engine/queryTasksBrief query
POST /workflow_engine/getTask query


BREAKING CHANGE for 2020.1 -> 2020.2

The following are breaking changes for the 2020.2 release.

API Removal Due to Scheduled Deprecations

The table below shows a list of APIs that have been removed from IAP. Our policy is to provide a deprecation notice two (2) release cycles in advance (at a minimum) before the API is removed.

API Removed Description Deprecation Release Actual Removal Release Replacement
/mop/ping Tool to determine the reachability of a device. N/A 2020.2 /configuration_manager/isAlive
/importWorkflow Import a workflow. 2019.2 2020.2 /workflow_builder/importWorkflow
/exportWorkflow Export a workflow. 2019.2 2020.2 /workflow_builder/exportWorkflow
/queryTasks Query tasks. 2019.3 2020.2 /workflow_engine/searchTasks
/claimJob Claim a job. 2019.3 2020.2 None
/releaseJob Release a job. 2019.3 2020.2 None


What should I do?

Review any custom apps and adapters that might reference any APIs on the list and change them to the replacement call (or remove them if no replacement call is given.)

Jade to Pug Update (Custom/Manual Task potentially affected)

Due to security concerns with jade, we have updated to the most recent library named pug. With this change, some custom applications may be affected and need to be tested and updated with a minor adjustment.

What to Modify

Review any custom applications with manual tasks that reference jade and change them to the pug equivalent.

For instance, this code block:

extends ../../../@itential/pronghorn-core/ui/views/layout.jade
block append content

Must be updated to:

extends ../../../@itential/pronghorn-core/ui/views/layout.pug
block append content

Or to this:

extends ../../../@itential/pronghorn-core/ui/views/layout
block append content

Additionally, any filenames ending in .jade need to be changed to .pug.

Device Broker

The following have been removed in Device Broker.

Item Description Deprecation Release Actual Removal Release Replacement
connectDevice Checks a device connection from Pronghorn (IAP) to a device through NSO. 2018.3 2020.2 Device Broker
isAlive
getDeviceGroupsForDevices Gets the device groups for all devices. 2018.3 2020.2 Itential no longer supports NSO device groups and auth groups as brokerable constructs. Use adapter tasks instead.
liveStatus Attempts to send data directly to a device. 2018.3 2020.2 adapter-nso
liveStatus
liveStatusScanHosts Will search all hosts that recognize the device. 2018.3 2020.2 adapter-nso
liveStatus
syncTo Syncs the device config to NSO. 2018.3 2020.2 adapter-nso
syncTo
updateDeviceSetting Updates an NSO device setting. 2018.3 2020.2 adapter-nso
addDevice (with settings)


Service Broker

The following have been removed in Service Broker.

Item Description Deprecation Release Actual Removal Release Replacement
dryRunService Get a dryrun from adding a service instance. 2018.3 2020.2 None
dryRunXML Dryrun an XML object. 2018.3 2020.2 adapter-nso
dryRunXML
fetchData Performs a search on all currently running NSO instances (set as service types). 2018.3 2020.2 adapter-nso
fetchData
findService Retrieve service data. 2018.3 2020.2 None
getServiceModelMap Gets all the service models IAP (Itential Automation Platform) currently has access to. 2018.3 2020.2 adapter-nso
getServiceModelMap
provisionXML Provision a service with an XML object. 2018.3 2020.2 adapter-nso
provisionXML
runAction Executes an action on the adapter. 2018.3 2020.2 adapter-nso
runAction


Service Manager

The dryRunService method was removed in Service Manager.

Item Description Deprecation Release Actual Removal Release Replacement
dryRunService Get a dryrun from adding a service instance. 2018.3 2020.2 testInstances


Tags UI Moved to Admin Essentials

The Tags user interface has been removed from its previous location of <base URL>/tags and a new Tags interface has been added to the Admin Essentials home page. Users accessing the previous Tags URI will be redirected to the Admin Essentials home page to access the new Tags interface.

Platform Naming Conventions

All adapters, applications, and brokers must have method parameters and return names that adhere to the new platform naming conventions. For releases in the near future, all non-validating names will cause the adapter, application, or broker to not start in the platform and an error log message will be written to the log files and to standard output (stdout).

The platform naming conventions are also used to validate job variable names in workflows, and any non-validating names will cause the workflow to have errors and be put in "draft" mode. Users cannot start a job from a workflow if it is in "draft" mode.

What should I do?

Consult the documentation explaining the naming conventions. Ensure each job variable defined within all workflows follow the conventions. Use the Level of Effort (LOE) tool to quickly identify any violations to the naming convention.

For any custom applications, adapters, and tasks, review all method parameters and return names to ensure adherence to the naming conventions. Please remember, even though this release will not have any ill-effects and will behave the same as it does in the previous release, future releases will cause these adapters, applications, and tasks to not start.

Return Type Change for getOutOfSyncConfig() in adapter-nso

The getOutOfSyncConfig() function returns a string format configuration containing many out-of-sync configs. However, when a device is in-sync, the function returns an empty array instead of an empty string. This change modifies the return value to an empty string.

BREAKING CHANGE for 2020.1.1 -> 2020.2

RabbitMQ Properties Moved from Service Config to Profile

Upon upgrade from the 2020.1.1 maintenance patch version to the 2020.2 bundle, the RabbitMQ properties will be automatically moved from all service configs to the profile. Additionally, these settings will be changed in the database; therefore all systems that share this database connection will be affected also. Please note, if you have a disaster recovery (DR) system in your setup, the changes made to the database will take effect once the first system is updated and affect all systems using that database. This basically means that all systems will need to be upgraded at the same time.

Rollback Instructions

Since the RabbitMQ properties will be auto-migrated from the service config to the profile, if a rollback is necessary, those properties must be restored manually to each relevant service config prior to upgrade.