How Interactions Work
When two properties co-occur frequently in the source code, they likely depend on each other. A configuration change to one may affect the behavior controlled by the other. The interaction data below is extracted from static analysis of 1,396 property co-occurrence pairs across the RISKSHEET codebase.
Interaction Complexity by Section:
pdfExport ████████████████████████████████████████████ 98/100
styles ███████████████████████████████████████████ 89/100
columns[] ██████████████████████████████████████████ 88/100
dataTypes ████████████████████████████████████ 74/100
formulas ████████████████████████████████ 64/100
headers ██████████████████████████████ 55/100
cellDecor. ████████████████████████ 48/100
queryFact. ████████████████████ 40/100
global ███████████████████ 38/100
reviews ███████████████████ 38/100
levels █████████████████ 33/100
The complexity score (0-100) combines property count, nesting depth, number of interactions, validation rules, and type diversity. Higher scores mean more configuration care is needed.
High-Impact Interactions
These are the property pairs that interact most frequently — changing one almost always requires reviewing the other.
dataTypes.risk + dataTypes.task.type
Co-occurrence: 299 times across 62 files
These two properties define the fundamental data model. Changing the risk type requires reviewing all column bindings, level configurations, and downstream task types.
| When you change… | Also review… |
|---|
dataTypes.risk.type | All columns[].bindings that reference risk fields |
dataTypes.task.type | dataTypes.task.role, dataTypes.task.name |
| Either type | levels[].controlColumn references |
dataTypes.task.name + dataTypes.task.type
Co-occurrence: 252 times across 52 files
The task display name appears in toolbar buttons, context menus, and dialog labels. It must match the conceptual role of the task type.
columns[].readOnly + dataTypes.task.type
Co-occurrence: 167 times across 33 files
Column editability depends on the work item type being displayed. Task columns behave differently from risk columns regarding read-only enforcement.
columns[].bindings + dataTypes configurations
Co-occurrence: 72+ times
Column bindings must reference fields that exist on the configured work item types. Changing dataTypes.risk.type from risk to hazard means all bindings values must map to fields defined on the hazard type.
Section Interaction Map
columns[] (Complexity: 88/100)
The columns array interacts with nearly every other configuration section:
| Interacts With | Relationship |
|---|
dataTypes | Column bindings must reference fields from configured types |
levels | Column level must align with defined levels |
formulas | Formula columns reference other column bindings |
cellDecorators | Decorators apply CSS based on column values |
styles | Style rules target column-specific CSS classes |
pdfExport | Export column lists must match defined columns |
queryFactories | Link columns use query factories for autocomplete |
dataTypes (Complexity: 74/100)
| Interacts With | Relationship |
|---|
columns[] | Determines available field bindings |
levels | Risk type determines level merging behavior |
reviews | Review configuration depends on item types |
queryFactories | Query factories filter by item type |
pdfExport (Complexity: 98/100)
The most complex section due to deep nesting and multiple grid/rating definitions:
| Interacts With | Relationship |
|---|
columns[] | Export grids reference column definitions |
dataTypes | Export filters by configured types |
styles | Export applies style rules to rendered output |
levels | Export respects level hierarchy for merging |
When modifying columns[], always check pdfExport.pages[].dataGrids[].columns — the export configuration maintains its own column list that must be kept in sync manually.
| Interacts With | Relationship |
|---|
columns[] | Formulas reference column bindings via info.item['fieldName'] |
cellDecorators | Decorators often style formula result cells |
reviews (Complexity: 38/100)
| Interacts With | Relationship |
|---|
dataTypes.task | Review workflows create/link work items |
columns[].typeProperties.linkRole | Review columns use specific link roles |
Configuration Change Checklist
When making configuration changes, use this checklist to ensure consistency:
Related Pages