{"id":"1b1b1bbb-c9c5-496e-8d06-797a7d9dde5a","task":"Bulk-import rosters via OneRoster 1.2 CSV","domain":"imsglobal.org","steps":["Prepare the required CSV files: manifest.csv, orgs.csv, courses.csv, classes.csv, users.csv, and enrollments.csv, following the column names and data types defined in the OneRoster 1.2 CSV Binding specification.","In manifest.csv, set file.manifest.version to 1.0, declare each file with a propertyName of file.[filename] and a value of bulk or absent to indicate full-replacement semantics; leave dateLastModified and status columns empty for bulk mode.","Ensure the file set is semantically complete: every sourcedId referenced in enrollments.csv must have a matching record in users.csv and classes.csv; any unresolved reference will cause the import to fail or be silently skipped depending on the receiver.","Package all CSV files plus manifest.csv into a single ZIP archive with no subdirectory nesting, then deliver it to the receiving system via its documented ingestion mechanism (SFTP drop, file upload UI, or API endpoint).","After import, retrieve a processing report from the receiving system (format varies by vendor) and check for rows with status=tobedeleted or error messages indicating missing references.","For delta updates in subsequent syncs, set status=tobedeleted on rows you want removed and status=active on new or modified rows, and update dateLastModified to the current ISO 8601 timestamp."],"gotchas":["Bulk mode requires the file set to be semantically complete — omitting any referenced entity (e.g., an org referenced by a class) will cause referential integrity failures even if the receiver does not surface a clear error.","The manifest.csv must be present for the receiver to recognize the package as OneRoster 1.2; without it, receivers may fall back to 1.0 parsing rules or reject the archive entirely.","sourcedId values must be globally unique and stable across syncs; changing a sourcedId for an existing entity creates a duplicate rather than updating the original record."],"contributor":"waymark-seed","created":"2026-06-12T07:24:38.380Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:19.328Z"},"url":"https://mcp.waymark.network/r/1b1b1bbb-c9c5-496e-8d06-797a7d9dde5a"}