Attributes
Attributes are metadata objects, which in contrast to Properties, do not need to be pre-defined before being attached to an object. They consist of a key-value pair where both the key and value are string type.
Any user with write permission to an object can create, modify, or delete an attribute on that object.
The following Helix IPLM objects support attributes:
Object | Command | Widget support |
---|---|---|
Library | pi library attribute | Widgets are displayed on the Library details page. |
IP | pi ip attribute |
Widgets are displayed on the Details page. |
IPV (release) | pi ip attribute | Widgets are displayed on the IPV details tab. |
IPL (line or branch) | pi ip attribute | Widget display is not supported. |
Saved query | pi query attribute | Widgets are displayed on Advanced search Saved query page. |
Using attributes
A common way to use attributes is to put a JSON dictionary into the value of a particular key. This JSON attribute can be used by other users and flows to make meaningful decisions about the IP.
For example, an IP owner might want to annotate the results of a regression onto the IP (say lib.myip@10.TRUNK) after having run it on that release. This result would contain the number of tests run, the number of tests passed, the date on which the regression was run, the path to the detailed results etc. All of this can be annotated into the IPV by using attributes.
Attributes
> pi ip attribute set lib.myip@10.TRUNK 'regr_results' '{"date": "Jan 1 2019", "num tests": "10", "num failed": 5, "results": "/proj/regressio/ip1/results/"}'
Attribute restrictions
Note these limits on Attributes are on a per attribute basis (not a global restriction in the system)
Parameter | Limit |
---|---|
Maximum Attribute Name Length | 1K Characters |
Maximum Attribute Value Length | 100K Characters |
Maximum Attributes per design object | 10K Attributes |
Attribute Name | No Whitespace Allowed |
Attribute naming restrictions
Forbidden Characters | Reason for restriction |
---|---|
No Whitespace | Command parsing |