Set your OneRoster data extraction endpoints for the current school year, including all historical and future data within the school year as defined by your system. Additionally, include all data objects in the data extract with necessary end dates to avoid undesired deletion of data in the target systems.
If a user has multiple enrollment records for the same class, provide only the current enrollment record.
For example, if Student A in Class 123, is enrolled in the class, removed, and then re-enrolled, provide the most appropriate enrollment status at the time the API call is made instead of Student A’s multiple enrollment records.
Enrollment Start and End Dates
Every enrollment record must include both a startDate and endDate, even if those dates are the same as the term dates. By comparing enrollment and term dates, Canvas can maintain correct enrollment statuses.
If your institution supports the use of the Canvas observer role (for parents, guardians, etc.), it is recommended that you include these user profiles in your implementation configuration.
Incremental Data Syncs
Instead of using full data pulls, you can configure incremental data syncs using a dateLastModified query filter.
Note: To reliably implement incremental data syncs, you must include the deleted status or end date for every enrollment record. Without this information, enrollment drops can only be calculated by diffing a new full data sync against a full data sync.