Specifying Module Version Information and Providing JSON Metadata
MLE modules may carry optional metadata in the form of a version string and free-form JSON-valued metadata.
Both kinds of metadata are purely informational and do not influence the behavior of MLE. They are stored alongside the module in the data dictionary.
The VERSION
flag can be used as an internal reminder about what
version of the code is deployed. The information stored in the
VERSION
field allows developers and administrators to identify
the code in the version control system.
The format for JSON metadata is not bound to a schema; anything useful or informative
can be added by the developer. In case the MLE module is an aggregation of sources created by a tool such as
rollup.js
or webpack, it can be useful to store the associated
package-lock.json
file alongside the module.
The metadata field can be used to create a software bill of material (SBOM), allowing security teams and administrators to track information about deployed packages, especially in the case where third-party modules are used.
Tracking dependencies and vulnerabilities in the upstream repository supports easier identification of components in need of update after security vulnerabilities have been reported.
See Also:
- Dictionary Views Related to MLE JavaScript Modules
- Software Bill of Material for more information about using the metadata field to store a SBOM
Example 3-7 Specification of a VERSION string in CREATE MLE MODULE
CREATE OR REPLACE MLE MODULE version_mod
LANGUAGE JAVASCRIPT
VERSION '1.0.0.1.0'
AS
export function sq(num) {
return num * num;
}
/
Example 3-8 Addition of JSON Metadata to the MLE Module
This example uses the module version_mod
, created in
Example 3-7.
ALTER MLE MODULE version_mod
SET METADATA USING CLOB
(SELECT
'{
"name": "devel",
"lockfileVersion": 2,
"requires": true,
"packages": {}
}'
)
/
Parent topic: Using JavaScript Modules in MLE