flowchart TD
S1["1 · District SIS
holds official enrollment — outside this LRS"]:::ext
S2["2 · Admin configures a roster source
OneRoster REST/CSV; creds in a secret manager"]:::ext
S3["3 · Roster sync runs on a schedule
data exported in OneRoster format"]:::lrs
S4["4 · Roster API ingests the sync
inbound member of the Analytics Plane APIs"]:::lrs
S5["5 · School / Course / Section / Enrollment
created or updated
in the Tenancy Hierarchy"]:::lrs
Dry["Dry-run diff preview
admin reviews added / removed enrollments before apply — nothing overwritten silently"]:::branch
S1 --> S2 --> S3 --> S4 --> S5
S3 -.-> Dry
classDef ext fill:#9aa7b4,stroke:#5f6e82,color:#fff,font-size:14px
classDef lrs fill:#2a9d8f,stroke:#1f7a6f,color:#fff,font-size:14px
classDef branch fill:#e9e2d0,stroke:#b3a67e,color:#4a4326,font-size:13px
linkStyle default stroke:#999,stroke-width:2px