You are here:
External Files Contract
Use external file contracts to update the external libraries that are used in the Consumer Goods offline mobile app.
Required Editions
| Available in: Enterprise, Performance, and Unlimited Editions |
By default, the external file contracts for C3JS and D3 libraries are supported. The C3JS and D3 libraries are used in the UIPluginV2 contract to provide charting capabilities in the offline mobile app. The C3JS and D3 contracts reside in $workspace/src/ExternalFiles.
Adding new external file contracts is not supported. You can only edit the C3JS and D3 contracts. For example, an external library is updated with a security patch. After you update the library on your machine, edit the external file contract of that library with the updated data.
The table describes the attributes of the ExternalFiles root node.
| Attribute | Description | Value/Pattern | Required |
|---|---|---|---|
| name | Specifies the name of the external file. | String | Yes |
| npmName | Specifies the name of the npm package of the external file. | String | No |
| displayName | Specifies the descriptive name of the package. | String | No |
| version | Specifies the version of the npm module. | Number | No |
| availableForUI | availableForUI is set to true for both as the only currently supported use case for external files is them being included and used as part of a UIPluginV2 contract. | Boolean | Yes |
The ExternalFiles root node contains only the Content element. The Content element consists of the CDATA block that contains the base64-encoded string of the external file.
- Update an External File Contract
Convert the updated C3JS or D3 library to base-64 encoded string and append the encoded string to the external file contract.

