Supply Chain Framework 1.5.0
InterSystems Supply Chain Orchestrator™ includes the InterSystems Supply Chain Framework. This page lists the changes in version 1.5.0 of the Supply Chain Framework. Note that you need IPM client version 0.9.0 in order to obtain this version of the Supply Chain Framework.
Multi-Instance Support
The main feature in this release is support for multiple, independent instances of Supply Chain Orchestrator on the same InterSystems IRIS server. This feature works as follows:
-
Within a single InterSystems IRIS server, each instance of Supply Chain Orchestrator operates within its own namespace and has its own persistent storage and API access. Thus now there can be multiple, independent supply chain namespaces.
All instances of Supply Chain Orchestrator on the same InterSystems IRIS server do share the same physical resources such as CPU and memory.
-
All API end points now include the namespace name. See API Changes.
-
If upgrading an existing Supply Chain Orchestrator instance to the 1.5.x release, the existing instance will be converted to an instance bound to the original namespace. No manual step is required for this although intervention may be needed in the case of custom roles (see below).
-
For each supply chain namespace, there is a set of default supply chain roles, with names that include the namespace name. These replace the existing default supply chain roles. When you upgrade to version 1.5.x, the existing default roles are migrated. For example, the role SC_Business_User will be migrated to SC_NAMESPACE_Business_User where NAMESPACE is the name of the namespace.
For custom roles:
-
If a custom role is defined by extending one of the original supply chain roles, the custom role will be automatically migrated to extend the corresponding new role for the namespace, no manual action is required.
-
If a custom role was defined without using any out-of-box supply chain role, review the role definition carefully, as even this role will work as it was defined in the same namespace, it might also give users too much permission with regarding to other namespaces.
-
-
Users must be carefully managed so that they have access only to the resources in the applicable namespaces:
-
A single InterSystems IRIS server defines a common set of usernames, which are not automatically tied to any particular namespace.
-
A user who has one of the supply chain roles will have that role updated automatically as described above, such as from SC_Business_User will be migrated to SC_NAMESPACE_Business_User. No additional changes to the user profile is needed.
-
For any user assigned to a custom role, make sure to follow instructions above to examine the role definition carefully and make any adjustment as needed. If the role definition is properly configured, no additional user profile change is required.
-
-
When creating a new supply chain namespace in InterSystems IRIS, make sure to create a new database (rather than selecting an existing one). For the new database, do not use the default database resource name; instead, create a new custom resource name to control access only to this database.
-
A supply chain namespace can be used as a new Supply Chain Orchestrator tenant, with the following exceptions:
-
Users are managed at InterSystems IRIS level, not at namespace level, even though a user can be limited to access data and services within a specific namespace. An administrative user with the right permission can make changes to any user provisioned for any namespace.
-
Security configurations, such as user roles, are managed at the InterSystems IRIS level. An administrative user can potentially make security related changes impacting any namespace.
-
Some resources, such as tasks are managed at the InterSystems IRIS level, such as tasks and system logs. For example, supply chain related tasks will be labeled explicitly for their corresponding namespaces, but all tasks from all namespaces are visible to users who have permission to view tasks.
-
API Changes
There are several API related changes in this release, which may impact existing solutions or applications build on top of Supply Chain Orchestrator:
-
API endpoints now include the InterSystems IRIS namespace name. For example:
-
Endpoint in previous releases: HTTPS://{SERVER}/api/scdata/v1/customers
-
Same endpoint in release 1.5.0: HTTPS://{SERVER}/api/{NAMESPACE}/scdata/v1/customers
-
-
All data APIs now have full support for PUT and PATCH:
-
PUT APIs are used to update all data fields in an object based on the request data. Any field not provided in the input will be deleted. This is a change from previous releases.
-
In pre-1.5.0 releases, PUT was implemented using the PATCH logic defined below.
-
If the old logic is to be maintained for your application, change the API calls from PUT to PATCH starting 1.5.0 release.
-
-
PATCH APIs are used to update specific fields in an object based on the request data, and not changing anything in the object not specified in the input.
-
-
API calls now have a maximum number (1000) of records returned. This change prevents potential abuse of data APIs. If a request uses a page size greater than 1000, the request will still be accepted, except that no more than 1000 records will be returned.
Supply Chain Data Model Changes
There is no change in the canonical supply chain data model in this release.
There is a new table, for tracking the task execution metrics: sc_core_metrics.timingdata. Data in this table can be used for monitoring, and is available through the /api/monitor/metrics endpoint provided by InterSystems IRIS.
Other Changes
Release 1.5.0 includes the following additional changes:
-
IPM client update. For 1.5.0 releases, IPM client version 0.9.0 is required. If an older version of IPM is installed on an InterSystems IRIS instance, make sure to upgrade the version to 0.9.0 before doing the Supply Chain Orchestrator 1.5.0 installation or upgrade.
-
Bug fixes.
Known Issues
Currently there is an internal limitation on using InterSystems IRIS with metrics. Specifically the total length (in characters) of all the namespaces with metrics enabled, plus the number of commas needed to separate these names, must be less than 50. If this limit is exceeded, the metrics data will still be stored in the corresponding tables, but the access to the metrics using the InterSystems IRIS standard endpoint will error out.