Skip to content

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 hasChanges reset to false only 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 lastPublished timestamp
  • 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