Nodes and Edges
Understand source, transform, and publish nodes
Nodes and Edges
Flows are built from nodes (data processing steps) connected by edges (data flow paths).
Data Format
All data flows internally in OneRoster format. Regardless of your input source (CSV, API, MS SDS), it's converted to OneRoster format for processing. The Publish node then converts to your chosen output format (ASM CSV or OneRoster CSV).
Input (any format) → [Source Node] → OneRoster → [Transforms] → OneRoster → [Publish] → Output (ASM or OneRoster CSV)Node Types
Source Nodes
Source nodes bring data into your flow and convert it to OneRoster format.
| Node | Input Format | Output |
|---|---|---|
| OneRoster API | OneRoster v1.2 REST API | OneRoster data |
| OneRoster CSV | OneRoster v1.2 CSV files | OneRoster data |
| MS SDS v1 | Microsoft SDS v1 CSV | OneRoster data |
| MS SDS v2.1 | Microsoft SDS v2.1 CSV | OneRoster data |
| Generic | Generated test data | OneRoster data |
Transform Nodes
Transform nodes receive OneRoster data and output OneRoster data. They modify the data as it passes through.
| Node | Description | Input → Output |
|---|---|---|
| Consolidation | Merge multiple classes into one | OneRoster → OneRoster |
| Manual Edits | Apply changeset corrections | OneRoster → OneRoster |
Merge Node
Combines data from multiple sources with conflict resolution. Required when using multiple source nodes.
| Aspect | Description |
|---|---|
| Input | Multiple OneRoster data streams |
| Output | Single merged OneRoster dataset |
| Conflict Resolution | When same entity exists in multiple sources, priority determines which version wins |
Publish Node
Sends data to the destination. This is where format conversion happens.
| Aspect | Description |
|---|---|
| Input | OneRoster data |
| Output Format | ASM CSV (6 files) or OneRoster CSV (6 files) |
| Destination | SFTP upload to Apple School Manager |
Edges
Edges connect nodes and show data flow direction.
Edge Rules
- One output can connect to multiple inputs
- One input can receive from one source (except Merge)
- Edges cannot create cycles (no loops)
- Data flows left to right
Building a Flow
Minimum Viable Flow
[Source] → [Publish]Transform Flow
[Source] → [Transform] → [Publish]Multi-Source Flow
[Source 1] →
[Merge] → [Transform] → [Publish]
[Source 2] →