Property interactions may vary between Risksheet versions. Test combinations in a development environment before deploying to production.
Interaction Categories
Configuration interactions fall into three categories:
| Category | Description |
|---|
| Override | One property forces the value of another property regardless of explicit setting |
| Dependency | One property requires another property to be set for correct behavior |
| Co-occurrence | Properties that commonly appear together and affect the same feature area |
Column Property Interactions
| Properties | Interaction Type | Behavior |
|---|
columns[].formula + columns[].readOnly | Override | When formula is set, readOnly is automatically forced to true. Setting readOnly: false on a formula column has no effect. |
{
"id": "rpn",
"formula": "commonRpn",
"readOnly": false
}
Result: Column is read-only despite readOnly: false because formula is set.
serverRender, type, and readOnly
| Properties | Interaction Type | Behavior |
|---|
columns[].serverRender + columns[].type + columns[].readOnly | Override | When serverRender is set, type is forced to text and readOnly is forced to true. Explicit values for type and readOnly are ignored. |
{
"id": "traceability",
"serverRender": "traceabilityRenderer.vm",
"type": "itemLink",
"readOnly": false
}
Result: Column is text type and read-only despite explicit settings, because serverRender is set.
binding and id
| Properties | Interaction Type | Behavior |
|---|
columns[].binding + columns[].id | Dependency | If id is not specified, it is auto-generated from header or binding. The binding determines which Polarion work item field the column reads from and writes to. |
Relying on auto-generated IDs can cause issues when other properties reference columns by ID (e.g., cellDecorators, views, sortBy, collapseTo). Always set id explicitly for columns that are referenced elsewhere.
type and binding (auto-detection)
| Properties | Interaction Type | Behavior |
|---|
columns[].type + columns[].binding | Default inference | When type is not specified, Risksheet infers the type from the Polarion field type associated with the binding field ID. If inference fails, the column defaults to string type. |
canCreate and column type
| Properties | Interaction Type | Behavior |
|---|
columns[].canCreate + columns[].type | Conditional | canCreate is only meaningful for itemLink and multiItemLink column types. For other column types, the property is ignored. Default: true. |
headerGroup and collapseTo
| Properties | Interaction Type | Behavior |
|---|
columns[].headerGroup + columns[].collapseTo | Dependency | collapseTo specifies which column ID to collapse into when the header group is collapsed. The referenced column must exist and should belong to the same headerGroup. |
cellRenderer and isContentHtml
| Properties | Interaction Type | Behavior |
|---|
columns[].cellRenderer + columns[].isContentHtml | Co-occurrence | When cellRenderer is set, the rendered output is typically HTML. Set isContentHtml: true to ensure the grid renders the HTML content rather than displaying it as escaped text. |
| Properties | Interaction Type | Behavior |
|---|
columns[].format + columns[].type | Dependency | The format property controls display formatting and is relevant for temporal types (date, datetime, time) and numeric types (int, float, currency). The format string interpretation depends on the column type. |
DataTypes Property Interactions
dataTypes and levels
| Properties | Interaction Type | Behavior |
|---|
dataTypes + levels | Co-occurrence | The dataTypes configuration defines which work item types populate the grid, while levels defines how they are arranged hierarchically. Task-level columns should not have a level property set. The relationship between data types and levels determines the grid’s row structure. |
dataTypes.risk.removeStrategy and rejectedAction/rejectedStatus/rejectedResolution
| Properties | Interaction Type | Behavior |
|---|
removeStrategy + rejectedAction + rejectedStatus + rejectedResolution | Dependency | When removeStrategy uses rejection-based removal (rather than permanent delete), the rejectedAction, rejectedStatus, and rejectedResolution properties define the workflow transition to execute. All three must be valid for the work item type’s workflow. |
{
"dataTypes": {
"risk": {
"type": "failureMode",
"removeStrategy": "delete",
"rejectedAction": "reject",
"rejectedStatus": "rejected",
"rejectedResolution": "invalid"
}
}
}
The rejectedAction must correspond to a valid workflow action available from the work item’s current state. If the action is not available (common with imported work items), the delete/reject operation fails with the error: no rejected action found.
dataTypes type and role
| Properties | Interaction Type | Behavior |
|---|
dataTypes.<name>.type + dataTypes.<name>.role | Co-occurrence | The type property specifies the Polarion work item type, and role specifies the link role used for relationships. Both are evaluated through the expression evaluator, supporting dynamic resolution from project properties. |
dataTypes showInMenu and canCreate
| Properties | Interaction Type | Behavior |
|---|
dataTypes.<name>.showInMenu + columns[].canCreate | Complementary | showInMenu: false hides the “+New” button from the toolbar for that data type. canCreate: false on individual columns disables inline creation from specific link columns. Both can be used independently or together. |
showInMenu: false alone: Toolbar creation hidden, but column-level creation still available
canCreate: false alone: Column-level creation disabled, but toolbar creation still available
- Both
false: No creation path available for that item type
dataTypes document and createInDocument
| Properties | Interaction Type | Behavior |
|---|
dataTypes.<name>.document + dataTypes.<name>.createInDocument | Independent | document controls which document items are loaded from (read scope). createInDocument controls where new items are stored (write target). These paths are completely independent — you can load from the whole project while creating in a specific document. |
{
"dataTypes": {
"task": {
"type": "mitigationTask",
"role": "mitigates",
"createInDocument": "Risks/Tasks"
}
}
}
Use the folder/documentId path format for createInDocument. Without this property, new items go to the project tracker instead of a specific document.
dataTypes and typeProperties
| Properties | Interaction Type | Behavior |
|---|
dataTypes + typeProperties | Override | The typeProperties pattern allows dynamic resolution of type, role, project, and document from Risksheet Configuration Properties (project-level settings). Values resolved through typeProperties take precedence over hardcoded values in dataTypes. |
Global Property Interactions
readonly and revision
| Properties | Interaction Type | Behavior |
|---|
readonly + document revision | Override | When viewing a historical revision (non-empty revision), readonly is automatically forced to true regardless of the configured value. |
readonly and reviewer
| Properties | Interaction Type | Behavior |
|---|
readonly + reviewer | Complementary | readonly: true makes the entire grid non-editable. reviewer: true enables reviewer mode, which restricts editing to review-specific controls. Both result in limited editing, but reviewer mode may allow review actions that readonly mode does not. |
downstreamReadonly and dataTypes
| Properties | Interaction Type | Behavior |
|---|
downstreamReadonly + dataTypes | Scope restriction | downstreamReadonly: true makes all downstream linked items (tasks, controls) read-only. This affects all data types configured as downstream items. Individual column readOnly settings on downstream columns are overridden. |
| Properties | Interaction Type | Behavior |
|---|
global.culture + columns[].format | Dependency | The culture setting affects how date, number, and currency values are formatted. Column-level format strings are interpreted in the context of the active culture. For example, date columns format dates differently for en (MM/DD/YYYY) vs. de (DD.MM.YYYY). |
Styling Interactions
cellDecorators, styles, and columns
| Properties | Interaction Type | Behavior |
|---|
cellDecorators + styles + columns | Chain | Cell decorators reference CSS classes defined in styles. Decorators are applied to columns by matching the decorator key to a column ID or by being referenced from the column’s cellDecorator property. The chain is: column value -> decorator function -> CSS class toggle -> style applied. |
{
"cellDecorators": {
"rpn": "function(info){ $(info.cell).toggleClass('rpn3', info.value > 350); }"
},
"styles": {
".rpn3": "background-color: #f8eae7 !important; color: #ab1c00 !important;"
}
}
headers.rowHeader.renderer and cellDecorators
| Properties | Interaction Type | Behavior |
|---|
headers.rowHeader.renderer + cellDecorators | Dependency | The headers.rowHeader.renderer property references a named function from the cellDecorators section. The referenced function must be defined. |
Views and Column Interactions
views and columns
| Properties | Interaction Type | Behavior |
|---|
views + columns[].id | Dependency | Saved view definitions reference columns by their id. View configurations toggle column visibility. Referenced column IDs must match id values in the columns array. |
sortBy and columns
| Properties | Interaction Type | Behavior |
|---|
sortBy + columns[].id | Dependency | The sortBy array references column IDs to define default sort order. Referenced IDs must match existing column id values. |
Interaction Summary Diagram
| Source Property | Target Property | Interaction |
|---|
formula | readOnly | Forced true |
serverRender | readOnly | Forced true |
serverRender | type | Forced text |
revision | readonly | Forced true |
binding | type | Auto-inferred if missing |
binding | id | Auto-generated if missing |
dataTypes | levels | Row structure |
removeStrategy | rejectedAction / Status / Resolution | Linked settings |
cellDecorators | styles | CSS class references |
rowHeader.renderer | cellDecorators | Function reference |
views | columns[].id | Visibility toggle |
sortBy | columns[].id | Sort target |
collapseTo | columns[].id | Collapse target |
global.culture | Column format | Interpretation |
document | createInDocument | Independent paths |
showInMenu | canCreate | Complementary controls |
See Also