Publishing and Change Management¶
Divisions play a crucial role in how changes are published and propagated through your ReactorCX environment. Understanding these publishing behaviors helps you maintain control over change deployment.
Independent Publishing¶
Each division can publish independently without blocking others, enabling:
- Parallel Workflows: Multiple teams can work simultaneously
- Division Isolation: Changes don't affect other divisions
- Selective Processing: Only relevant rules are processed during publishing
Hierarchy Publishing¶
When publishing, the system publishes the user's division and all descendant divisions, ensuring:
- Changes propagate appropriately through the hierarchy
- Parent divisions track changes from child levels
- Consistent state across related divisions
Division-aware Program Publishing¶
The program publishing process supports division-based publishing with independent publish states per division hierarchy level.
Program Publish Status by Division¶
RCX maintains a separate publish status for each division through the
programpublishstatus collection:
Schema Structure:
{
"program": "ObjectId reference to program",
"division": "ObjectId reference to division",
"hasChanges": "Boolean flag indicating pending changes",
"lastPublished": "Date of last successful publish",
"org": "ObjectId reference to organization"
}
Division Change Tracking¶
When entities are changed, the system updates hasChanges = true for affected
divisions and all parent divisions in the hierarchy.
Change Propagation Examples
| Changed Entity | Entity Division | Divisions Marked as Changed |
|---|---|---|
| Rule updated | Child | Child + Parent + GrandParent |
| Streak policy updated | Parent | Parent + GrandParent |
| Rule folder updated | GrandParent | GrandParent only |
Hierarchy-Aware Publishing¶
Publishing behavior varies based on the user's division level in the hierarchy.
Publishing from a child division:
- Published Divisions: Child + all GrandChild divisions
- Ancestor Updates: Parent/GrandParent
hasChangesreset tofalseonly if all their changes were inherited from published levels - Independent Changes: Ancestor divisions with direct changes remain
hasChanges = true
Publishing Examples
| Publish From | Divisions Published | Ancestor Behavior |
|---|---|---|
| GrandParent | GrandParent + all descendants | All hasChanges = false |
| Parent | Parent + Child + GrandChild | GrandParent remains true if it has independent changes |
| Child | Child + GrandChild | Parent/GrandParent cleared only if it has no independent changes |
Publishing Information Display¶
Before publishing, the system displays:
- Modified Rules and Streak Policies updated since the division's
lastPublishedtimestamp - Hierarchy-specific changes based on the user's division context
- Impact assessment showing which levels will be published
Key features:
- Division Isolation: Changes by users from one division don't affect rules owned by other divisions
- Hierarchy Publishing: Publishes the user's division and all descendant divisions
- Selective Processing: Only relevant rules are processed during publishing
- Change Inheritance: Parent divisions track changes from child levels
- Independent Publishing: Each division can publish independently without blocking others