Item logo image for ZipDiff

ZipDiff

ExtensionWorkflow & Planning2 users
Item media 3 (screenshot) for ZipDiff
Item media 1 (screenshot) for ZipDiff
Item media 2 (screenshot) for ZipDiff
Item media 3 (screenshot) for ZipDiff
Item media 1 (screenshot) for ZipDiff
Item media 1 (screenshot) for ZipDiff
Item media 2 (screenshot) for ZipDiff
Item media 3 (screenshot) for ZipDiff

Overview

Offline side-by-side diff of two roster exports (OneRoster CSV / Savvas Legacy TFF). Shows exactly what a bulk upload would delete.

ZipDiff compares a BEFORE and an AFTER roster export and shows what a differential import would actually do with them — before anyone bypasses a data-threshold guard. Drop two .zip files (or two sets of loose .csv/.txt files) and ZipDiff: • Detects the format automatically: OneRoster v1.2 CSV, OneRoster v1.1 CSV, or the Savvas Legacy TFF format. • Tells bulk files from delta files (from manifest.csv and the rows themselves). Missing rows in a bulk file are deletions; in a delta file only rows marked status=tobedeleted are. • Applies auto-rostering threshold rules: an ingestion is blocked when 50% or more of any file's records would be deleted, or 70% for staff, students and schools during New Year Rollover — which ZipDiff detects from the school-year data and lets you override. • Lists every record that would be deleted, every orphaned reference in the new upload (an enrollment pointing at a user that no longer exists), and the deletion blast radius (everything downstream of a deleted school, user, class or course). • Flags silent delete-and-replace patterns where source IDs changed and the row count barely moved. • Exports a purge-review manifest (Markdown) to attach to a bypass-approval ticket. Privacy: everything runs locally in the extension's own tab. No network access, no permissions, no third-party code, no analytics. Customer data never leaves the machine. Built for teams supporting auto-rostering onboarding; useful for any OneRoster CSV workflow.

Details

  • Version
    0.2.0
  • Updated
    October 23, 2026
  • Offered by
    ryangoodwindev
  • Size
    70.69KiB
  • Languages
    English
  • Developer
    ryangoodwindev
    Laveen Village Phoenix, AZ 85339 US
    Email
    ryan@ryangoodwin.dev
  • Non-trader
    This developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.

Privacy

Manage extensions and learn how they're being used in your organization
The developer has disclosed that it will not collect or use your data. To learn more, see the developer’s privacy policy.

This developer declares that your data is

  • Not being sold to third parties, outside of the approved use cases
  • Not being used or transferred for purposes that are unrelated to the item's core functionality
  • Not being used or transferred to determine creditworthiness or for lending purposes

Support

For help with questions, suggestions, or problems, please open this page on your desktop browser

Google apps