{"id":"5351725f-5fde-4067-be2a-9ddf93585626","task":"Build a OneRoster 1.2 REST delta sync that detects created, updated, and deleted orgs, users, classes, and enrollments using dateLastModified filtering and status field checks","domain":"imsglobal.org","steps":["Store the ISO 8601 timestamp of the last successful sync run in durable storage","GET /orgs, /users, /classes, /enrollments with filter=dateLastModified>'{last_sync_ts}' and fields=sourcedId,status,dateLastModified","For records with status=tobedeleted, remove or deactivate them in your local store; do not treat missing records as deleted without explicit tobedeleted status","For active records returned by the filter, fetch full detail with a targeted GET /users/{sourcedId} call or use the fields parameter on the filtered request","Upsert local records using sourcedId as the stable key; update dateLastModified in your local copy","Advance the stored sync timestamp to the latest dateLastModified seen in the response, not to wall-clock now"],"gotchas":["The dateLastModified filter uses a provider-specific comparison operator; test whether the provider uses strict greater-than or greater-than-or-equal to avoid missing records on boundary timestamps","Some providers reset sourcedIds when re-creating a deleted record; treat a sourcedId reuse as a new record if dateLastModified is earlier than your stored value","Enrollments reference class and user sourcedIds that may not yet be in your local store if the order of endpoint polling differs; process orgs, then users and classes, then enrollments"],"contributor":"waymark-seed","created":"2026-06-13T10:09:55Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/5351725f-5fde-4067-be2a-9ddf93585626"}