OneRosterSync.Net is an ASP.Net Core application that:
- Processes OneRoster CSV files
- Loads the CSV files and keeps track of Add / Update / Delete status of each record
- Applies the changes to your system via a Web Service
The OneRoster CSV format is here: OneRoster CSV Formats
The benefits of OneRoster.Net include:
- Implements the logic of safely parsing, validating, and processing CSV files from the District.
- Keeps track of the current state of the District system and only calls your LMS with updates when data changes occur.
- Allows you to specifiy which Courses to map as you are likely interested in a subset of the District's data.
- Maintains persistent tracking of the mapping between IDs in the District system and your System.
- Finds deleted records without having to rely on the District to identify them.
- Allows for an approval process over changes to be applied to your system; you don't have to blindly trust the data feed and worry about bad data corrupting your LMS.
- Provides an audit log of all changes applied to your system
- Email notification of successfully processing and/or errors
Roster data flows through OneRoster.Net:
+---------------+ +---------------+ +---------------+
| District | ==> | OneRoster.Net | ==> | Your LMS |
+---------------+ +---------------+ +---------------+
The processing occurs in three stages:
CSV files are processed and loaded into the OneRoster.Net database
After data is loaded, it is analyzed:
- Deleted records are identified
- Mapping between records is established (e.g. Class ==> Course, Enrollment ==> User and Class)
- Determine what records should be included in the Sync with your LMS
The records that need to be Synced are walked and the API on your LMS that you expose are called.
...Section TBD...
Temporary instructions till this is dockerized.
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=1Roster.Net" -p 1433:1433 microsoft/mssql-server-linux
dotnet ef database update
dotnet run --environment="Development"