uSync Version 4.0 Changelog Version 4.0.5 Final - 8/04/2026 Added: Added the ability to create Year Level variants of SMS groups with their own naming and ability to choose which year levels get variants. This of course only makes sense for stuent related groups. Update: Updated the SMS Groups page to show the new Year Level variant options only on groups where it makes sense as well as no only showing the Staff as Manager option on groups where it makes sense. Update: Updated the {year-rel-yearlevel} merge field to accept any year level to the relative year level. Just add ":N" in the merge field name with N representing the year level. i.e. {year-rel-yearlevel:7}. The original field still works as it did with year 9 as the default. Change: All emails are now represented in lowercase. All groups emails were already made sure to be lowercase, but users had no mechanism to make sure they were lowercase. Improvement: More optimizations, Sync's now taking mere seconds! (internal testing) Version 4.0.4 RC3 - unreleased Added: Added de-duplication of users in the data from SMS's. It was found some SMS's occasionally send users twice which causes issue when processing. Improved: Focused AD queries to the listed DC server in the settings. Some functions may have jumped to a secondary DC while processing a user causing issues as the DCs werent in lock-step due to replciation timing. Added: Added a Domain wide check for accounts in the event a staff or srtudent user was not discovered under the configured base OU to prevent issue when creating account. Improved: Improved error handling and reporting on user creation. Added: Added support for {year} merge field in SMS Group name formatting. this will place the current year in 4 digit format. i.e. {groupname}_{year} = 10ENG_2026 Version 4.0.3 RC2 - unreleased Added: [Experimental] Added support for Apple School Manager. As part of the daily sync process uSync can now generate the required CSV files in both Apple and OneRoster 1.1 format and upload via SFTP. Fixed: Fixed sAMAccountName comparison bugs that caused false redundant account detections and unnecessary username change processing every sync cycle. Fixed: Resolved an issue where disabling Staff or Student processing in settings could cause an "invalid DN syntax" error during the sync cache build phase, which also incorrectly reported the sync status as "error." Improvement: Added upfront validation of configured Distinguished Name paths before querying Active Directory, providing clear and actionable error messages when paths are misconfigured or unreachable. Fixed: Resolved an issue where posting sync results to the admin portal would fail with a "disposed object" warning, preventing sync status from appearing in the admin portal. Version 4.0.2 RC1 - unreleased Fixed: Fixed/Improved the sanitization of names for AD compatibility. Improved: Improved the error logging for AD constraint violations to include the likely cause for the error. Fixed: Fixed carry over bug from version 3.x where redundant users arent always correctly processed and set to expired when grace period has lapsed. Added: Added support for student Year Level of 14. Version 4.0.1 Beta - unreleased Updated: Updated .net 10 requirement to latest version 10.0.3 - https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.3/dotnet-hosting-10.0.3-win.exe Added: [HELIX] Added support for Helix Vertical and Horizontal Group fields. Merge fields {helix:verticalgroup} and {helix:horizontalgroup} Added: [HELIX] Added support for Helix Custom Categories. Merge fields work by defining the name of the category, i.e. {helix:category:} replacing with the Category name in Helix. As some Categories can have multiple values, the merge field can be suffixed with the index of the value required (0-indexed), i.e. {helix:category::0} this will get the first value from this category. See documentation for details. Added: Added API Ingest testing. There is now a Test API Ingest button under the SMS tab for both Helix and Wonde and a toggle for Kamar to test and log the ingest from these SMS's. This is similar to Audit Mode expect it only does the data fetching and pre-processing and not the sync processing against AD. This is useful for diagnosing issues and testing communication to the SMS's API. Version 4.0.0 - Beta - unreleased -General: Updated from .net 8.0 to .net 10 - This requires the .net 10 Hosting bundle to be installed. -Improvement: Processing performance increased by ~200% (internal testing). -Added: Internal caching to reduce AD lookups. Caches are persisted to disk with a lifetime of 7 days, they are rebuilt at the start of each sync. -Added: Added a new tab for Cache Status under the General section. -Improvement: Memory usage has been reined in. fixed many memory leaks and have employed routine garbage collection (more strict than whats built into .net framework). -Added: Cancel button now added to the 'Sync in progress' banner. Sync sessions can now be cancelled gracefully when required, instead of restarting the service. -Added: Added a 'check-in' background service for uSync to check in to a new management portal. It will 'check-in' on application start and every 6 hours after. No data is sent as part of this process. In addition to a periodic check-in, a basic summary of a full sync will be sent to the management portal along with the full sync log. Details on what is sent can be found in the documentation and on the Telemtry tab under the General section of the UI. This is opt-in by default, but can be disabled, please read the documentation around this feature before making a decision to opt-out. -Added: With the new management platform, Licence keys can be automatically updated and new expiry dates applied when payments have been received. *This functionality only works if if Telemtry is enabled. -Improvement: Moved processing of home directory archiving to a background queue. This will allow a sync session to complete as quickly as normal while pushing the long process of archiving folder(s) to a background service to process. -Added: There is now a new page and side menu option 'Archive Queue' (only visible if Archive Home Directory enabled [Students or Staff]). This page is for monitoring the processing of the archiving. This queue is stored in a json file in the data directory (Do not Delete). The queue will continue being processed if the service is restarted. -Added: Implemented a email queueing system. All emails are now sent via the queue (except for test email). This allows for retries and to delay sending of welcome emails by 90 minutes to allow downstream processes to take place such as the creation of new account(s) in Entra ID or Google (whether using the built in Google pre-staging or not). -Changed: New User Welcome emails and Leaver emails are now stored as html files in the /Content directory rather than basic html/text stored in the settings.json file. This allows for creation of 'branded' emails. -Updated: Updated the email template editor to work with the new html files, giving the ability to restore the default template (if you make a big mistake ;)) as well as saving the file (when you make changes). There is now an added insert merge field tool item so you can browse the list of merge fields and insert the appropriate one. -Updated: Sending of test email now asks for the email address to send to and gives immediate feed back on pass/fail. -Updated: Full Sync Logs, you can now choose to email only if there are Errors or Warnings and Errors. You can also choose to embed the log in the email rather than an attachment. -Improvement: Full Sync Logs are sent as formatted html emails with job details and processing stats. -Added: Built in documentation! There is now a slide out panel on the right (click the blue Help tab) which contains the documentation relevant to the page you're on, it will even scroll to right section based on the tab your on. -Improvement: Many UI/UX tweaks, changes, and quality of life improvements. -Improvement: External Commands: Improved management of running external processes with 5 minute timeout, better error handling and logging. -Added: Setup Wizard for new installations. The setup appears on new/clean installations on first login to apply your licence key, fill in AD details and set a new password. You can also import the settings.json file from a previous installation (i.e. v3.x) as part of the setup. -Improvement: The Log Viewer has been supercharged! It now has log level (Info, Warning, Error) filtering, search with highlighting, mini map to know where you are and move around in the log, dark mode, can increase/descrease font size, and a new font. -Improvement: If migrating from v2 and you have multiple group types in the same OU, uSync will now correctly filter the older v2 group types as to not remove non-matching groups. -Fixed: Fixed issue with SMS group types being created/saved without a Name. Will default to using {groupname}. -Fixed: Fixed/Improved the sanitization of usernames (sAMAccountName and upn) as well as email addresses to remove illegal characters AD does not like which causes constraint violation errors. -Fixed: Fixed/Improved the sanitization of illegal characters in the sAMAccountName attribute for groups as well as the email address. Group renaming also now updates the sAMAccountName where it wasn't previously. -Improvement: Normalized identification fields to unicode on ingest from SMS to improve/correct downstream issues with string comparisons and lookups. -Fixed: Various minor bug fixes.