Skip to main content
ℹ️ Tip: The easiest way to manage configuration is through Menu > Configuration > Edit Risksheet Configuration, which provides visual editing with syntax highlighting and validation. Starting with version 25.5.0, the editor opens in a new tab, allowing you to view your Risksheet and its configuration side by side.

Configuration File Location

Nextedy RISKSHEET searches for risksheet.json in this order:
PriorityConfiguration Source
1 (highest)Document attachment — risksheet.json attached to the Risksheet document
2Template attachment — risksheet.json attached to the template document
3 (fallback)Built-in default — Fallback configuration if no file found
Load OrderSourcePrecedenceUse Case
1stDocument attachmentHighestDocument-specific customization
2ndTemplate attachmentMediumTemplate-wide defaults
3rdBuilt-in defaultLowestNo customization applied

File Structure Overview

{
  "global": { },
  "headers": { },
  "formulas": { },
  "cellDecorators": { },
  "styles": { },
  "levels": [ ],
  "dataTypes": { },
  "columns": [ ],
  "views": [ ],
  "reviews": { }
}

Global Settings

Global settings control culture, refresh behavior, and UI appearance.
PropertyTypeDefaultDescription
global.culturestringenLocalization culture code (e.g., en, de, fr, es). Controls date formats, number separators, and translated UI elements. See Culture Codes for full list.
global.refreshOnSavebooleantrueAutomatically refresh the Risksheet after saving changes. When true, cursor and scroll position are preserved on the last edited cell.
global.addAsSubmenubooleanfalseDisplay “Add New” actions in a submenu instead of directly in the toolbar.
global.suggestTextFieldsbooleanfalseEnable autocomplete suggestions for text field columns when users are typing values.
global.helpstringnullURL to custom help documentation displayed when users request help.
global.readonlybooleanfalseForce the entire Risksheet into read-only mode. Overridden to true when viewing historical revisions.
Example:
{
  "global": {
    "culture": "en",
    "refreshOnSave": true,
    "addAsSubmenu": false,
    "suggestTextFields": true
  }
}

Headers Configuration

Control the appearance and behavior of column headers and row headers.

Column Headers

PropertyTypeDefaultDescription
headers.columnHeader.heightnumber32Height in pixels for the main column header row. Increase for multi-line headers.
headers.columnGroupHeader.heightnumber32Height in pixels for grouped column headers (when columns are organized into headerGroup).

Row Headers

PropertyTypeDefaultDescription
headers.rowHeader.widthnumber90Width in pixels of the row header column on the left side.
headers.rowHeader.rendererstringnullName of a custom renderer function (defined in cellDecorators) to style row headers. Applied to the row number column. Common examples: rowHeaderRpnNew, rowHeaderRisk.
Example:
{
  "headers": {
    "columnHeader": {
      "height": 52
    },
    "columnGroupHeader": {
      "height": 42
    },
    "rowHeader": {
      "width": 120,
      "renderer": "rowHeaderRpnNew"
    }
  }
}

Formulas

Define JavaScript functions for calculated columns and dynamic values.
PropertyTypeDefaultDescription
formulas.<name>stringnullNamed JavaScript function that calculates a derived value. Function receives an info object with info.item (row data) and info.cell (DOM element). Return null for empty cells.
Available Context in Formulas:
VariableTypeDescription
info.itemobjectRow data object. Access column values via info.item['columnId'].
info.cellDOM elementHTML cell element (rarely used, mainly for decorators).
Example: RPN Calculation
{
  "formulas": {
    "commonRpn": "function(info) { var value = info.item['occ'] * info.item['det'] * info.item['sev']; return value ? value : null; }",
    "commonRpnNew": "function(info) { var value = info.item['occNew'] * info.item['detNew'] * info.item['sevNew']; return value ? value : null; }"
  }
}

Cell Decorators

Define JavaScript functions that apply conditional CSS classes to cells based on their content or context.
PropertyTypeDefaultDescription
cellDecorators.<name>stringnullNamed JavaScript function that conditionally applies CSS classes to cells. Function receives info object with info.item, info.cell, and info.value. Use $(info.cell).toggleClass() to set classes.
⚠️ Important: Do not set inline styles directly. Cells are reused as the user scrolls, so use toggleClass() to apply CSS classes defined in the styles section. Example: RPN Risk Thresholds
{
  "cellDecorators": {
    "rpn": "function(info) { var val = info.value; $(info.cell).toggleClass('rpn1', val > 0 && val <= 150); $(info.cell).toggleClass('rpn2', val > 150 && val <= 350); $(info.cell).toggleClass('rpn3', val > 350); }",
    "rowHeaderRpnNew": "function(info) { var val = info.item['rpnNew']; $(info.cell).toggleClass('rpn1', val > 0 && val <= 150); $(info.cell).toggleClass('rpn2', val > 150 && val <= 350); $(info.cell).toggleClass('rpn3', val > 350); }"
  }
}

Styles

Define CSS classes for visual styling applied by cell decorators and columns.
PropertyTypeDefaultDescription
styles.<className>stringnullCSS rule applied when the class name is active on a cell. Use !important to override default styles.
Example: Risk Level Styling
{
  "styles": {
    ".rpn1": "background-color: #eaf5e9 !important; color: #1d5f20 !important;",
    ".rpn2": "background-color: #fff3d2 !important; color: #735602 !important;",
    ".rpn3": "background-color: #f8eae7 !important; color: #ab1c00 !important;",
    ".boldCol": "font-weight: 600;",
    ".rowHeadRpn1": "background-color: #eaf5e9 !important; border-left: 4px solid #1d5f20 !important;"
  }
}

Levels Configuration

Define the hierarchical structure of the Risksheet (e.g., system requirements → risks → mitigation tasks).
PropertyTypeDefaultDescription
levels[].namestringnullDisplay name for this level in navigation menus and UI.
levels[].controlColumnstringnullColumn ID that determines which column controls expand/collapse for this level.
levels[].zoomColumnstringnullColumn ID used to identify and zoom focus on items at this level.
levels[].showInMenubooleantrueWhether this level appears in the navigation menu for quick access.
Example: Three-Level Hierarchy
{
  "levels": [
    {
      "name": "Requirement",
      "controlColumn": "requirementId",
      "showInMenu": true
    },
    {
      "name": "Risk",
      "controlColumn": "riskId",
      "showInMenu": true
    },
    {
      "name": "Mitigation",
      "controlColumn": "taskId",
      "showInMenu": false
    }
  ]
}

Data Types Configuration

Define the work item types for risks and mitigation tasks, including how they are created and linked.

Risk Items

PropertyTypeDefaultDescription
dataTypes.risk.typestringnullWork item type(s) for risk items (e.g., risk, fmea). Can be comma-separated for multiple types. Evaluated through PolarionExpressionEvaluator for dynamic values.
dataTypes.risk.rolestringnullLink role name used to connect upstream items to risk items (e.g., causes, depends_on). Evaluated through PolarionExpressionEvaluator.
dataTypes.risk.namestringRiskDisplay name for risk items in menus and dialogs.
dataTypes.risk.showInMenubooleantrueWhether risk creation options appear in the “Add New” menu.
dataTypes.risk.removeStrategystringdeleteStrategy when removing risk items: delete (permanent) or other custom strategy.
dataTypes.risk.rejectedActionstringrejectWorkflow action to execute when a risk is rejected during review.
dataTypes.risk.rejectedStatusstringrejectedStatus value to set when a risk is rejected.
dataTypes.risk.rejectedResolutionstringinvalidResolution value to set when a risk is rejected.

Task Items (Mitigations)

PropertyTypeDefaultDescription
dataTypes.task.typestringnullWork item type(s) for mitigation task items (e.g., task, action). Can be comma-separated for multiple types. Evaluated through PolarionExpressionEvaluator.
dataTypes.task.rolestringnullLink role name used to connect risk items to task items (e.g., mitigation, implementation). Evaluated through PolarionExpressionEvaluator.
dataTypes.task.namestringTaskDisplay name for task items in menus and dialogs.
dataTypes.task.showInMenubooleantrueWhether task creation options appear in the “Add New” menu.
dataTypes.task.zoomColumnstringnullColumn ID for identifying task items during zoom operations.
Example:
{
  "dataTypes": {
    "risk": {
      "type": "risk",
      "role": "causes",
      "name": "Risk",
      "showInMenu": true,
      "removeStrategy": "delete",
      "rejectedAction": "reject",
      "rejectedStatus": "rejected"
    },
    "task": {
      "type": "task",
      "role": "mitigation",
      "name": "Mitigation",
      "showInMenu": true
    }
  }
}

Columns Configuration

Define which columns appear in the Risksheet and how they behave.
PropertyTypeDefaultDescription
columns[].idstringauto-generatedUnique identifier for the column. Auto-generated from header or bindings if not specified.
columns[].headerstringnullDisplay name shown in the column header.
columns[].headerGroupstringnullGroup name for organizing related columns under a header section.
columns[].bindingsstringnullWork item field ID or custom field name to bind this column to.
columns[].typestringauto-detectedData type: string, int, float, enum, workflow, itemLink, taskLink, date, richText, etc. Auto-detected from Polarion field type if not specified.
columns[].levelnumber1Hierarchical level (1 = top, 2 = second, etc.). Controls cell merging.
columns[].widthnumber200Width in pixels.
columns[].filterablebooleantrueAllow users to filter the Risksheet by this column.
columns[].readOnlybooleanfalseMake column read-only. Automatically set to true for formula columns, server-rendered columns, and system fields (author, created, updated, type).
columns[].formulastringnullName of formula function from formulas section. Column becomes read-only when set.
columns[].serverRenderstringnullServer-side rendering script. When set, column becomes text type and read-only.
columns[].cellDecoratorstringnullName of decorator function from cellDecorators section to apply conditional styling.
columns[].canCreatebooleantrueFor itemLink and multiItemLink columns, allow creating new linked items directly from the cell.
columns[].allowMultiplebooleanfalseFor enum columns, allow selecting multiple values.
Example: Risk Item Columns
{
  "columns": [
    {
      "headerGroup": "Identification",
      "header": "Risk ID",
      "bindings": "id",
      "id": "riskId",
      "level": 2,
      "width": 120,
      "readOnly": true
    },
    {
      "headerGroup": "Identification",
      "header": "Causes",
      "bindings": "causes",
      "id": "causes",
      "type": "string",
      "level": 2,
      "width": 250
    },
    {
      "headerGroup": "Assessment",
      "header": "Severity",
      "bindings": "severity",
      "id": "severity",
      "type": "enum",
      "level": 2,
      "width": 100
    },
    {
      "headerGroup": "Assessment",
      "header": "RPN",
      "id": "rpn",
      "formula": "commonRpn",
      "width": 100,
      "cellDecorator": "rpn"
    }
  ]
}

Views Configuration

Define saved views that users can quickly switch between.
PropertyTypeDefaultDescription
views[].namestringnullDisplay name for the saved view.
views[].descriptionstringnullTooltip description shown when hovering over the view name.
views[].columnsarray[]Array of column IDs to display in this view. Columns appear in the order specified.
views[].expandLevelsnumber2How many hierarchy levels are expanded by default in this view.
views[].sortBystringnullColumn ID to sort by when this view is selected.
Example:
{
  "views": [
    {
      "name": "Assessment",
      "description": "Risk identification and severity assessment",
      "columns": ["riskId", "description", "severity", "occurrence", "detection", "rpn"],
      "expandLevels": 2
    },
    {
      "name": "Mitigation",
      "description": "Mitigation tasks and effectiveness",
      "columns": ["riskId", "description", "mitigation", "effectiveness", "status"],
      "expandLevels": 3
    }
  ]
}

Reviews Configuration

Configure how reviews and approvals are handled in your Risksheet.
PropertyTypeDefaultDescription
reviews.reviewManagerstringnullReview workflow mechanism: CommentBased, WorkitemBased, or ApprovalBased. See Review Workflows for details.
reviews.typePropertiesobject{}Custom type properties for review-specific configurations (e.g., approval status fields, review queues).
Example:
{
  "reviews": {
    "reviewManager": "CommentBased",
    "typeProperties": {
      "risk": {
        "reviewField": "reviewStatus",
        "reviewerField": "reviewer"
      }
    }
  }
}

Configuration Flow Diagram

diagram

Common Configuration Patterns

FMEA Risk Assessment

{
  "formulas": {
    "rpn": "function(info) { return (info.item['occurrence'] || 0) * (info.item['severity'] || 0) * (info.item['detection'] || 0); }"
  },
  "cellDecorators": {
    "rpnColor": "function(info) { var val = info.value; $(info.cell).toggleClass('low', val <= 100); $(info.cell).toggleClass('medium', val > 100 && val <= 300); $(info.cell).toggleClass('high', val > 300); }"
  },
  "styles": {
    ".low": "background-color: #d4edda !important;",
    ".medium": "background-color: #fff3cd !important;",
    ".high": "background-color: #f8d7da !important;"
  }
}

Header Tooltips

{
  "columns": [
    {
      "header": "Severity",
      "bindings": "severity",
      "headerTooltip": "Risk severity on scale 1-10"
    }
  ]
}

Validation and Troubleshooting

IssueCauseSolution
Configuration not appliedFile not in correct locationCheck Menu > Configuration > File Location. Verify attachment name is exactly risksheet.json.
”No issues found” but configuration failsValidation gapsCheck browser console for JavaScript errors in formulas or decorators.
Enum parsing errorInvalid enum value in bindingEnsure enum ID in column bindings matches Polarion custom field name exactly.
Column not visibleColumn ID missing or not listed in columnsAdd column object to columns array with correct bindings and id.
Styling not appliedMissing CSS class definitionEnsure style class name matches decorator class name. Include !important in CSS rules.
See Configuration Properties Index for a searchable reference of all available properties.
KB ArticlesSupport TicketsSource Code
  • PolarionAppConfigManager.java
  • risksheet.json
  • AppConfigParser.ts
  • AppConfig.ts
  • OpenHelpCommand.ts