Edit attribute {{ attribute.attribute_display_name }}

{{ attribute.attribute_display_name }} attributes

Attributes allow to extend the fields available for analysts when they add or edit {{ attribute.attribute_display_name }}.

Attributes can be added by administrator in this UI, or they can be pushed by modules.
This means each {{ attribute.attribute_display_name }} object may have a different set of attributes. Updating the default objects here will result in an update of every existing object, which might take a huge amount of time.

Typing wrong attributes here might result in UI breaks. IRIS will attempt to validate the attributes' taxonomy before committing.

To avoid this, use the Preview button before saving. It displays a 1-to-1 UI representation of the attributes
More details

These attributes are stored in each {{ attribute.attribute_display_name }} object in the form of a JSON structure.

Attributes in this page represent the default attributes of each new {{ attribute.attribute_display_name }} objects. Existing object are updated if they don't hold the specified attributes. Other existing attributes are not deleted.

Attributes can have the following purposes:
  • Inputs: Offer analysts the possibility to fill additional details. Multiple types of inputs are supported. See taxonomy for more details
  • Raw: A static content rendered in raw text. HTML is not interpreted.
  • HTML: A static content rendered as HTML for infinite possibilities. Careful, this is by nature prone to vulnerabilities.
Attributes taxonomy
Attributes are defined as below.
{
    "Tab Name 1": {                     // Defines a new tab in the {{ attribute.attribute_display_name }} modal
        "Field 1": {                    // Defines a new field within the Tab Name 1
            "type": "input_string",     // Defines the type of field, here a standard string input
            "mandatory": true,          // Indicates whether the field is mandatory upon saving
            "value": ""                 // Default value if any, else empty
        },
        "Field 2": {                    // Defines a second field within the tab Tab Name 1
            "type": "input_checkbox",   // Defines an input checkbox
            "mandatory": false,         // Indicates whether the field is mandatory upon saving
            "value": true               // Default value
        }
    },
    "VT report": {                      // Defines a second tab named VT report
        "Content": {                    // Defines a new field Content within the VT Report
            "type": "html",             // Defines an HTML interpreted content
            "value": ""                 // Default value if any, else empty
        }
    }
}
                                    

Field types

The supported fields types are:
  • input_string: Standard input text
  • input_textfield: Standard input textfield
  • input_checkbox: Standard checkbox
  • input_date: Standard date input
  • input_datetime: Standard date and time input
  • input_select: Standard select input. Need "options" tag to describe the available options
  • raw: A static content rendered in raw text. HTML is not interpreted.
  • html: A static content rendered as HTML. Careful, this is by nature prone to vulnerabilities.
Overwrite features

Changing types of fields in attributes might result in incompatibles types and existing objects being unable to be migrated.

When this happens, IRIS will not update the fields of these objects and let them as is to prevent any data loss.

This behavior can however be changed by using the Complete overwrite and Partial overwrite buttons.

Partial overwrite basically resets the attributes values of every {{ attribute.attribute_display_name }} objects that matches the current ones, and then applies the current attributes. All associated values are lost. This does not impact attributes pushed by modules.

Complete overwrite resets all attributes of every {{ attribute.attribute_display_name }} objects, including the ones created by modules, and then applies the current attributes. All associated values are lost.

In any case, none of the native values of the {{ attribute.attribute_display_name }} objects are modified. This only concerns custom attributes.
{{ form.hidden_tag() }}
{{ attribute.attribute_content|tojsonsafe }}

Logs: