Added: 2026-08-14
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CF-44065Â
Fixed the Servers panel on the dashboard, which reported "Scheduling stopped" with a red light for servers that were running normally. The scheduling library now includes the instance name in its start and stop log messages (for example "Scheduling started on SADXFTEST1"), and the status lookup was still matching the old messages exactly, so it found nothing and fell back to reporting stopped. The lookup now matches on the message prefix, so it works with both the old and new message formats.
Last restart times on the same panel were affected by this too and are now correct.
Added: 2026-08-14
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CD-411Â
Fixed the Routes screen search, which since the route name field was added only matched the route's own name. Typing a transport name found nothing, and routes created before that change have no name of their own so could not be found at all. The search now matches the route name as well as the From and To transport names.
Added a MessagingRouteSearchIncludeTransportNames setting for environments that want the narrower behaviour. It is on by default (search everything); setting it to 0 on the Settings screen limits the search to the route name only.
Added: 2026-08-14
Added by: Nick
Ticket: https://sandfield.atlassian.net/browse/CF-44094Â
Stopped auditing engine-written telemetry columns on transports and schedules (last run time, last message processed, retry and notification counters, schedule last/next run times and the executing-instance heartbeat) whose constant churn flooded the change tables and caused memory pressure.
The change-auditing allow-list now supports per-column exclusions, validated on apply — a mistyped column name, or a column the framework can't exclude, fails the migration loudly instead of being silently ignored.
Pending change data is drained into the audit log before the capture instances are rebuilt, so already-recorded history is not lost.
Reviewed every audited table column-by-column; user-configuration columns (transport status, snooze-until date, schedule server assignment, setting values, credentials) remain audited.
Added: 2026-08-12
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CD-411Â
Add perms for Messaging when using API and updated Logs directory
Fixed old migration which adds Created,CreatedBy,LastModified & LastModifiedBy
Added: 2026-08-10
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CD-411Â
Updated the scheduling library to its latest release, picking up the failover improvements made there. Scheduled jobs continue to run as before.
Added: 2026-08-07
Added by: Nikhil Kamble
Tickets: CF-43267, CF-43268, CF-43269, CF-43270, CF-43271, CF-43272, CF-43273, CF-43275, CF-43277, CF-43278, CF-43279, CF-43280, CF-43303, CF-43304, CF-43305, CF-43306, CF-43307, CF-43308
Database connections are now encrypted in transit. Messaging will only connect to SQL Servers that present a certificate the host trusts, so each environment's SQL Server certificate needs to be verified before this is deployed. An environment whose certificate is not trusted can set TrustServerCertificate=True in its own connection string; encryption still applies. The development configs in this repository now set it, so local SQL Servers with a self-signed certificate keep working. (CF-43280)
Updated several third-party components to patched releases to clear known vulnerabilities: the JSON library, the image processing library and the XML cryptography library. (CF-43269, CF-43271, CF-43272, CF-43270)
Removed the duplicated copies of the Excel, File, Physical Archive, FTP, SFTP, HTTP, OleDb and WebAPI transports. Each already has its own repository, and the copies here were several versions behind, so the compression library upgrade those transports needed now ships from those repositories instead. (CF-43268, CF-43273, CF-43275)
The transports admin screens now send an anti-framing header, preventing the pages from being embedded in a third-party site. (CF-43303)
Fixed the transport flow diagram so its parameters are properly encoded in the page address, removing a cross-site scripting risk. Diagram labels may look slightly different, as the previous version was also stripping out digits and capital letters. (CF-43307, CF-43308)
Added a global error handler so unhandled errors return a clean response instead of leaking detail. (CF-43278)
Build now runs in Release with debug binaries disabled. (CF-43279)
Credentials are no longer written to log files or the log table. Error logs record full exception detail, and messages from failed database, key vault, FTP and API connections often contain passwords, account keys or access tokens. Passwords, keys, tokens and credentials embedded in addresses are now replaced with a redaction marker before anything is stored, while the surrounding detail (server, database, user, host) is kept so logs remain useful for diagnosis. (CF-43305, CF-43306)
SMTP mail can now be sent over TLS via an optional SMTPEnableSsl setting. It defaults to off so existing mail delivery is unchanged; each environment opts in once its relay is known to support TLS. (CF-43306)
Exception detail was being recorded twice in every logged error, doubling both log file size and the exposure above. Now recorded once. (CF-43305)
Remaining alerts not addressed by this release: seven come from files inside a restored third-party package (not our code) and one from a bundled third-party script library still in use (tracked on CF-43277). The OleDb transport's old compression library is bundled inside another package and needs that package updated first, which now happens in that transport's own repository (CF-43268). The weak encryption helper in a 2013 database migration is also left in place: nothing calls it, and rewriting a migration that has already run everywhere is the greater risk, so it is being confirmed before any change is made (CF-43304). These need dismissing in the scanning dashboard.
Added: 2026-08-04
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CD-321Â
Fixed transport import leaving the partner unassigned when the partner already exists; the partner code is now matched tolerantly so surrounding whitespace no longer prevents a match.
Fixed transport import failing to create routes: previously a single route whose name already existed aborted the entire import (so no routes were created); now only the name-clashing route is skipped and the remaining routes import.
Fixed transport import causing a transaction error when called as part of a larger process import (the "duplicate if already exists" process import option); a failed transport import no longer breaks the enclosing import's transaction, so the real error message is now shown instead of a generic transaction mismatch error.
Added: 2026-08-04
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CF-43758
Ticket: https://sandfield.atlassian.net/browse/CF-43675Â
Support long secret values on transports (CF-43758)
Transport secret fields (such as API keys and OAuth client secrets) can now be saved at any length. Previously a long value failed to save with a "Bad Length" error.
Short secrets continue to be stored in the original format, so they stay readable by environments that have not been updated yet.
Existing saved secrets continue to work as-is, with no re-entry and no data migration needed.
Added a temporary warning shown when exporting a transport whose secret is too long for older environments. It explains that importing into an environment that has not been upgraded yet will succeed but the transport will then fail when opened or run, and offers changing the field on the transport type from PasswordBox to TextBox (storing it unencrypted) as a temporary workaround. It is controlled by the MessagingTransportShowLongSecretExportWarning setting (added by a migration, on by default) and should be switched off by setting its value to 0 once every environment has been upgraded. No restart is needed to change it.
Fix Bulk Processing date filter 'On' and pass Entity on settings (CF-43675)
Fixed the date filter on Bulk Processing: picking 'On' and then changing the date now returns only messages from that single day, instead of everything between that day and today.
While 'On' is selected, the end date shown on screen now follows the date you pick, so the filter displayed matches the results returned.
Date filters now run right to the end of the end date, so messages from the final moments of a day are no longer left out of the results.
The date boxes are now locked or unlocked to match the selected filter option as soon as the page opens, instead of only after the option is changed.
The Account Settings list now accepts the entity filter, bringing it in line with every other Messaging list.
Added: 2026-07-17
Added by: Eve Ryan
Ticket: https://sandfield.atlassian.net/browse/CF-43274Â
Updated Sandfield.Keyvault dependency from 5.2.0 to 5.2.2 to address a security vulnerability in DPAPI for a 3rd party library with a transient reference to System.Drawing.Common.
Removed the KeyProvider configuration setting; whether Azure Key Vault is used is now determined automatically by whether KeyVaultUri is configured.
Added an optional KeyVaultPrefix setting so Key Vault secret names can be namespaced per application, falling back to the unprefixed name if no prefixed secret exists.
The prefix defaults to Messaging-.
Added: 2026-08-01
Added by: Nick
Ticket: https://sandfield.atlassian.net/browse/CD-390 , https://sandfield.atlassian.net/browse/CD-537Â
Added a new "History" tab to the main Messaging Work With screens — Transport, Transport Route, Server, Schedule, AWS Account and Setting — showing an audit trail of changes to that record and its child rows, as Modified, Modified By, Table, Field, From and To.
Introduced database change auditing (Change Data Capture) for Messaging configuration data, so changes are recorded — what changed, who changed it, and when — and can be reviewed directly from the record's edit page.
Added a configurable allow-list that controls exactly which tables are audited, so auditing can be turned on or off per table without code changes; all other tables are left un-audited, and the list is validated on apply so a mistyped table name fails loudly.
Restructured the settings table so it can be audited: added a numeric identity primary key and the standard audit columns (created / last-modified and by whom), while keeping the setting key unique so lookups by name are unchanged.
Installed and enabled the shared Sandfield Change Data Capture framework as part of the Messaging migration, and added the change-history stored procedures that power the new History tab.
Added the change-logging database connection settings the migrator needs to provision the auditing account.
Added: 2026-07-20
Added by: Scott
Ticket: https://sandfield.atlassian.net/browse/CD-460Â
Migration to insert enginev3 ext system into the ext system table.
Error inbound messages if they fail to route or pass to an external system. Previously they would get stuck with time to send yr9999
Added: 2026-07-20
Added by: Scott
Ticket: https://sandfield.atlassian.net/browse/CD-460Â
Messages can now be submitted to the MessagingAPI against a transport by its ID as well as by its name. Using the ID is more reliable because transport names can change.
Added: 2026-07-22
Added by: Nick
Ticket: https://sandfield.atlassian.net/browse/CF-43345Â
Database Migrator project was removed from the Messaging solution file by accident, now added it back in.
Added: 2026-07-19
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CF-43345Â
Installed the .NET 10 SDK in every build pipeline and switched the build step from VSBuild to the .NET CLI, so builds no longer fail after the migrator upgrade.
The messaging build now publishes the Messaging API as a ready-to-run artifact, so deployments can use the pre-built files instead of compiling from source.
Published the messaging SDK as a downloadable build artifact.
Added: 2026-07-16
Added by: Nick
Ticket: https://sandfield.atlassian.net/browse/CF-43345Â
Upgraded the database migrator project to run on .NET 10 (previously .NET Standard 2.0).
Updated the underlying migration and versioning packages to their latest compatible releases.
Moved NuGet packaging details into the project file and removed the separate legacy packaging file.
Removed obsolete files that are no longer used by the build (empty helper class, legacy batch scripts, and old source-control metadata).
Tidied up stale pipeline references in the solution file.
Added: 2026-07-14
Added by: Nikhil Kamble
Ticket: https://sandfield.atlassian.net/browse/CF-43249
Ticket: https://sandfield.atlassian.net/browse/CF-43233
Ticket: https://sandfield.atlassian.net/browse/CF-43203Â
Fixed transport and server settings dropdowns whose options were stored in the older packed format; they were showing every choice mashed into a single line and now render as individual selectable options.
Made settings dropdown rendering more resilient so a setting that is missing its value or caption no longer causes the page to error.
Delete confirmation prompts across the messaging admin pages (Server, Transport, Transport Type, Route, Schedule, Schedule Group, Certificate, Channel Advisor Entity, Xero Entity, Setting) now show the record's name and type, for example "Are you sure you want to delete this TEST Server?", instead of a generic or blank label.
Added: 2026-07-08
Added by: Nick
Ticket: https://sandfield.atlassian.net/browse/CF-40718Â
Improved the Message Lifecycle Purger to handle orphaned records more efficiently by checking for null references in related tables before deletion.
It was previously purging lifecycle based on the created date of the lifecycle record, which could leave orphaned records in related tables. Now it checks for related records and only purges lifecycles that have no associated messages or related data.
Assigned to: Nick
Updated: 2026-06-22
Ticket: https://sandfield.atlassian.net/browse/CF-40718
Fix update job schedule by delete and then create the schedule instead of trying to update it, which is more reliable and works better where schedules have server-assigned IDs that can't be updated.
Assigned to: Nick
Updated: 2026-06-22
Ticket: https://sandfield.atlassian.net/browse/CF-40718
Fixed the Certificate Near Expiry Alert job migration so it installs correctly on AWS RDS, where jobs cannot be owned by `sa`. The owner is now only set on non-RDS instances, and the schedule is created with a server-assigned ID instead of a fixed identifier.
Fixed the nightly "Turn off logging" job migration to install reliably on AWS RDS. The job is now recreated cleanly within a transaction, the required job category is created if missing, `sa` ownership is skipped on RDS, and a daily 1 AM schedule is attached.
Fix 202606181631 migration, switch msg database back
Assigned to: Â Nikhil, Josh, Nick, ScottÂ
Updated: 2026-06-19
Ticket: https://sandfield.atlassian.net/browse/CF-41294
Ticket: https://sandfield.atlassian.net/browse/CF-41298
Ticket: https://sandfield.atlassian.net/browse/CF-34480
Ticket: https://sandfield.atlassian.net/browse/CD-451
Ticket: https://sandfield.atlassian.net/browse/CF-41083
Ticket: https://sandfield.atlassian.net/browse/CD-458
Fixed Queued Messages Summary View rows not being clickable and not linking to the correct message detail page.
Fixed Bulk Processing pagination so it no longer allows page 0 or negative pages, the Previous button works, the page size has a minimum of 1, and changing the page size no longer reloads the grid.
Fixed the delete popup not closing on the transport page.
Fixed transport type fields failing to load after using special characters in a display caption. Entering a double quote (or other special characters) in a transport type field's display caption previously caused an error and prevented the Fields tab from opening, even after refreshing.
Added browser cache-busting on deployment, plus a `?nocache` option to force fresh JS/CSS loads during development.
Added new OAuth 2.0 configuration fields to the Server page: Resource, Payload Type, Headers, and Payload Fields.
Simplified OAuth 2.0 field visibility — Access Token URL and Client Secret are now always shown when OAuth 2.0 is selected, regardless of grant type.
Update [MSG].[Server_Update] to insert RunInPrivateDomain as 0. Update the RunInPrivateDomain to not be nullable and default to 0.
Added missing nonclustered index `IX_LifecycleID` on `[MSG].[MessageLifeCycle](LifecycleID ASC)` to improve query performance
Assigned to: Josh ShiuÂ
Updated: 2026-06-18
Ticket: https://sandfield.atlassian.net/browse/CF-41826
The daily error report now always includes a header row as the first line of the exported CSV, so each column is clearly labelled regardless of how the file is generated.
Assigned to: Josh ShiuÂ
Updated: 2026-06-16
Ticket: https://sandfield.atlassian.net/browse/CF-41826
Added a daily error report for the Tri-Star to Spicers integration. It lists the transport errors logged against that customer/partner for the previous day, keeping every retry so duplicate errors are shown rather than collapsed.
The report can be filtered by transport type and returned at partner, transport, or individual error level so it can be emailed to Spicers via a transport.
Added the reporting schema, role and user permissions needed for the report to be run by the email transport (no-ops where they already exist).
Assigned to: Nikhil KambleÂ
Updated: 2026-05-07
Ticket: https://sandfield.atlassian.net/browse/CD-411
Update Scheduling to 22.1.2 version
Ticket: https://sandfield.atlassian.net/browse/CD-394
Assigned to: Lennox
Updated: 21 April 2026
Added new Server API endpoints for retrieving servers and logging against them (new ServerController and ServerService)
Updated the messaging SDK (both .NET Core and .NET Framework) to support the new server functionality
Restructured message insertion architecture to first insert message meta data, then upload the attachment as a stream, and finally mark the message as ready
Changed the get message endpoint to return only meta data, requiring a separate API call to download the attachment
Updated insert attachment to use a stream rather than byte[] for memory optimization
Added option to compress attachments before inserting and decompress attachments on retrieval
Fixed bug with processing priority enum in the insert message function
Fixed naming of classes to keep consistency between Framework and Core implementations
Removed model class from SDK
Assigned to: Nikhil KambleÂ
Updated: 19 April 2026Â
Ticket: https://sandfield.atlassian.net/browse/CD-411
Made legacy 2024 migrations idempotent so they can be safely re-run on databases that partially applied them.
Replaced OBJECT_ID(..., 'UQ') constraint checks with sys.key_constraints lookups in 202401251534 Up/Down scripts.
Wrapped WKW.Setting insert in 202404101530 with a NOT EXISTS guard, and scoped the WorkWith insert in 202402261553 to the target tab/name so it no longer relies on CreatedBy = @MigrationID.
Updated oleDb Settings name to match transport settings this was reading incorrect configuration value and then defaulting value to ","
Ticket: https://sandfield.atlassian.net/browse/CF-38756
Assigned to: Josh
Updated: 13 April 2026
When a Transport's "Keep for Days" is set to 0, message archives are created with null Text Body, HTML Body, and no attachments (header only).
Updated dbo.MES_stpMessage_ProcessSentMessage to null body fields and skip attachments when KeepForDays = 0.
Updated MSG.PurgeMessageDataCustom and MSG.Purge_MessageData_Batched to treat KeepForDays = 0 as 1-day retention, preventing immediate purge of header-only records.
Added MSG.Purge_MessageData_Batched to source control (previously existed in DB only). - Added tooltip to the Keep for Days field in the WorkWithModule UI to explain the behaviour.
Ticket: https://sandfield.atlassian.net/browse/CD-390 Assigned to: Nick
Updated: 14 April 2026
Upgrade all Messaging Database Migrator nugets.
Ticket: https://sandfield.atlassian.net/browse/CD-387Â
Assigned to: Josh
Updated: 10 April 2026
Add stored proc for SQL Disk performance into Messaging under SCH schema for new XF Dashboard.
Ticket: https://sandfield.atlassian.net/browse/CD-387 Assigned to: Josh
Updated: 09 April 2026
Add new table for SQL Disk performance into Messaging under SCH schema for new XF Dashboard.
Ticket: https://sandfield.atlassian.net/browse/CD-453
Assigned to: Nikhil
Updated: 16 March 2026
Update Migration.cs for older migartion which was causing issues with migrator
Ticket: https://sandfield.atlassian.net/browse/CD-411
Assigned to: Nikhil
Updated: 27 February 2026
Replaced Octopus deploy steps with Azure Pipeline artifact publishing
Build outputs for Sandfield.Messaging and Sandfield.Messaging.WorkWithModule are now published as pipeline artifacts
Added GitVersion.SemVer variable to the pipeline
Ticket: https://sandfield.atlassian.net/browse/CD-104
Assigned to: Gavin
Updated: 20 February 2025
Fix the migration for servers debug logging option
Ticket: https://sandfield.atlassian.net/browse/CD-340
Assigned to: Lennox Young
Updated: 19 February 2026
Updated SDK response DTOs to hide certain fields which are not usable
Updated SDK to support functionality to update a Message
Ticket: https://sandfield.atlassian.net/browse/CF-34987
Assigned to: Josh Shiu
Updated: 13 February 2025
Message Routing Retry Number inheriting source retries, changing to destination retries
Ticket: https://sandfield.atlassian.net/browse/CD-340
Assigned to: Lennox Young
Updated: 30 January 2026
Added an API interface for Messaging
Assigned to: Remus
Updated: 19 January 2026
Ticket: https://sandfield.atlassian.net/browse/CF-23349Â
Bulk resetting message failures now clears their error message. This change makes it consistent with individually resetting a messages failure count.
Assigned to: Remus
Updated: 19 January 2026
Ticket: https://sandfield.atlassian.net/browse/CD-282Â
Cleaned up the existing pagination code to make it easier to include this new functionality.
Assigned to: Remus
Updated: 19 January 2026
Ticket: https://sandfield.atlassian.net/browse/CF-23349Â
Changed code to show button regardless of message direction
The stored procedures called by the buttons were updated prior to this by other devs to allow for this functionality.
Assigned to: Nikhil
Updated: 19 January 2026
Ticket: https://sandfield.atlassian.net/browse/CD-343Â
Fixed dbo.MES_stpMessage_ProcessSentMessage - was using outdated 2015 version, now uses latest version
Renamed file from MES_stpMessage_ProcessSentMessage.sql to dbo.MES_stpMessage_ProcessSentMessage.sql to match correct naming convention
Assigned to: Nick
Updated: 16 January 2026
Ticket: https://sandfield.atlassian.net/browse/CF-37575Â
Previous size was only 100, so it wasn't store the encrypted password properly. So I increased it to 2000.
Add password decryption on AwsAccount UI.
Assigned to: Eve
Updated: 2 January 2026
Ticket: https://mainfreight1.aha.io/releases/CF-R-13Â
Load Secrets from Azure Key Vault if KeyProvider is set to Azure.
Assigned to: Gavin
Updated: 2 December 2025
Ticket: https://mainfreight1.aha.io/develop/features/CF-98Â
Update the transport type for Crossfire Notification transports and filter notifications by transport.
Assigned to: Nikhil
Updated: 27 November 2025
Ticket: https://sandfield.atlassian.net/browse/CD-343Â
Updated WorkWithList stored procedures to use Message.PartnerID instead of DeliveryTypeDetail.PartnerID for correct partner display and filtering
Updated MSG.WorkWithList_FailedMessage, MSG.WorkWithList_Message, MSG.WorkWithList_MessageSummary,MSG.WorkWithList_MessageArchive
Updated MES_stpMessage_ProcessSentMessage to preserve PartnerID when archiving messages from tblMessage to tblMessageArchive
Routes "Keep Partner from Source" feature
Ticket: CD-104
Assigned to: Gavin
Updated: 24 October 2025
Add debug logging option to servers
Ticket: https://sandfield.atlassian.net/browse/CF-36259
Assigned to: Josh Shiu
Updated: 24 November 2025
Change Unlogged Error on dashboard to Error Message has been Purged
Ticket: https://sandfield.atlassian.net/browse/CF-36002
Assigned to: Michael Xie
Updated: 20 November 2025
Updated OpenPgpEncryptionProvider to correctly handle PGP private keys without passphrases.
Ticket: https://sandfield.atlassian.net/browse/CD-332
Assigned to: Scott Ferguson
Updated: 11 November 2025
Prevent page locking when bulk updating schedules by using a table variable instead of a temp table.
Ticket: https://sandfield.atlassian.net/browse/CF-34801
Assigned to: Nikhil Kamble
Updated: 16 October 2025
Removed all references of TinyMCE
Ticket: https://sandfield.atlassian.net/browse/CF-35029
Assigned to: Nikhil Kamble
Updated: 08 September 2025
Updated MSG.Certificate_EmailNearExpiryAlert_Active SP to return MessageID and set the message to "Ready" & aded SQL Job
Assigned to: Scott
Updated: 3 October 2025
Add indexes from XF cloud that are not in the initial install
Assigned to: Gavin
Updated: 5 September 2025
Use the default keep for days setting for transports
Ticket: https://sandfield.atlassian.net/browse/CF-35029
Assigned to: Nikhil Kamble
Updated: 15 August 2025
Added SP to get Active Certificates which are expiring in next 30 days
Ticket: https://sandfield.atlassian.net/browse/CD-275
Assigned to: Nikhil Kamble
Updated: 15 August 2025
Added Name field to Route for better identification of Routes
Implemented unique constraint for Route names (allows multiple null values)
Updated Transport Routes list with Route Name as the primary column & Sort
Added DeliveryTypeDetail filter by Transport Routes
Updated default sorting to prioritise Route Name
Added Route name validation to prevent duplicate names during creation/updates
Assigned to: Nick
Updated: 20 Aug 2025
Refactored the following items:
Set the default WarningLevel -> 1, so it will only log the errors. It was logging the Debugs (3).
Refactored the code ReplaceValues() by callling TSql function inside it.
App.config file doesn't need to be deployed as it is the Sandfield.Messaging.dll.config.
Assigned to: Nick
Updated: 18 Aug 2025
Fix opening up partner from Aws account window - missing association
Fix storing the username instead of user ID for CreatedBy & LastModifiedBy
Assigned to: Eve
Updated: 28 Mar 2025
Don't let users delete certificates if they are being used by a transport.
Show a warning message if they try.
Add Issuer Name and Serial Number field to certificates (read-only).
These fields are updated when the certificate is uploaded to the DB.
Assigned to: Nick
Updated: 29 July 2025
This stored procedure was manually added in XF env, so all the new envs don't have this SP.
Assigned to: Scott
Updated: 30 May 2025
Fix owner for schemas when they are created by migrator
Assigned to: Eve
Updated: 16 May 2025
Fix transport entity lookup not being filtered to permitted entity codes.
Assigned to: Nick
Updated: 06 May 2025
Improved the Transport Type Work With List by including the transport type name.
Assigned to: Jacob
Updated: 29 April 2025
Updates the nvarchar limit from 50 to 255 in the MSG.Lookup_DeliveryTypeDetail for the @Value parameter.
Assigned to: Nick
Updated: 28 Apr 2025
When updating the Partner's Schedule Threads, it will error missing SELECT and INSERT permissions on the tables.
Assigned to: Nick
Updated: 23 Apr 2025
Match 'Sandfield.Database.Migrator' nuget version with the main database migrator v4.0.1
Assigned to: Nick
Updated: 25 Mar 2025
Increase Address string length to 500 on the Server page (UI)
Increase Address string length in database as well
Data fix on the OAuthToken table
Add HTTP transports Setting "ServerOverride"
Add UI for ServerOverride
Assigned to: Nick
Updated: 21 Mar 2025
Missing WKW.ObjectAssociation for the new work with object "MSG.Setting"
Assigned to: Nick
Updated: 18 Mar 2025
Messaging WorkWithModule is now using the new version of nugets, including SAL.Messaging
Assigned to: Scott
Updated: 12 Mar 2025
Assigned to: Scott
Updated: 12 Mar 2025
Assigned to: Nick
Updated: 11 Mar 2025
Assigned to: Nick
Updated: 05 Mar 2025
It should be using string.IsNullOrEmpty()
Assigned to: Nick
Updated: 03 Mar 2025
Downgrade Microsoft.Identity.Client to 4.56.0
Assigned to: Scott Ferguson
Updated: 12 Feb 2025
Performance improvements to the transport attachments tab proc and dbo.tblMessageArchive index rework
Assigned to: Scott Ferguson
Updated: 30 Jan 2025
Two schedules on one transport issue still persists. Fix the trigger and it should be fixed now.
Assigned to: Scott Ferguson
Updated: 23 Jan 2025
Performance fix and supporting indexes for Notification_SelectAggregate
Assigned to: Jacob Clark
Updated: 9 Jan 2025
Implemented CustomRoute boolean result so that if false, we do not route the message.
Assigned to: Scott
Updated: 07 January 2025
Add new fields to the WKW Certificate listing from Henrys change.
Assigned to: Scott
Updated: 14 Jan 2025
Fix transport attachments / Logs tab loading time
Assigned to: Nick
Updated: 4 Dec 2024
Fix transport setting for previous commit
Assigned to: Michael
Updated: 3 Dec 2024
Fixed the attachments tab resizing issue so that the container resizes dynamically.
Assigned to: Nick
Updated: 29 Nov 2024
Fix OAuth2 functionality to make it useable
Refactor the UI and add OAuth 2 Scope field
Fix creating transport route from the transport. This error occurs when the transport name has the apostrophe symbol.
Assigned to: Scott Ferguson
Updated: 17 Dec 2024
Add index for notifications feature since the procs were slow
Assigned to: Scott Ferguson
Updated: 31 Oct 2024
Fix scheduling bug when changing the schedule that a transport is running on. The old schedule would not get reloaded and thus the transport would run on two schedules at once
Assigned to: Nick
Updated: 15 Nov 2024
Upgrade Scheduling nuget
Assigned to: Nick
Updated: 13 Nov 2024
Fix server insert as it was missing inserting a column, which will cause the engine to unable to start
Clean up and update the nugets to match the version with Crossfire and scheduling
Vulnerable patching System.Text.Json -> 8.0.5
Assigned to: Nick
Updated: 05 Nov 2024
It was previously pulling instances that aren't even enabled
Assigned to: Nick
Updated: 18 Oct 2024
When open HTML Body on message, when you inspect, it will complain that "page2.js" is not found even though that file never existed even from older commits.
Assigned to: Nick
Updated: 08 Oct 2024
MSG.Partner synonym was missing if run the database migration from scratch
Assigned to: Nick
Updated: 16 Sept 2024
Missing data in tblDataType, tblPriority
Missing permissions
Improve [MSG].[Lookup_Entity] to also check if entity is active
Fix [SCH].[Schedule_Import_Internal] on hard coded engine location
Missing SP [MSG].[Message_Logs]
Fix logic issue in transport Flow tab
Add indices to tblStatusLog
Fix server insert with settings
Assigned to: Davi Oliveira
Updated: 26 Sept 2024
Introduced a new migration class _202409261648_Migration using FluentMigrator to add a nullable Status column to the MessageArchive table. Created a new stored procedure [dbo].[MessageArchive_Update] to update tblMessageArchive with conditional updates and set LastModified timestamp.
Assigned to: Nick
Updated: 10 Sept 2024
Fix hard coded messaging user
Assigned to: Nick
Updated: 09 Sept 2024
Rename variable "EDIDatabaseName" in config file in Database Migration
Assigned to: Nick
Updated: 06 Sept 2024
Drop column "CustomXMLFilters" in table DeliveryTypeDetail from Messaging as it is not being used
Assigned to: Lennox
Updated: 06 Sept 2024
Fixed typo
Added release docs to solution
Assigned to: Lennox
Updated: 06 Sept 2024
Updated migrator to add certificate workwith object when it doesn't exist
Assigned to: Nick
Updated: 04 Sept 2024
Missing SPs when running the database migration from scratch
Update vulnerable version of moment.js
Assigned to: Gavin Cheng
Updated: 21 Aug 2024
Include the server name when exporting a transport.
Use the server name (if exists) to match a server when importing a transport.
Assigned to: Nick
Updated: 15 Aug 2024
Better warning for deleting aws account
Fixed route UI
Assigned to: Nick
Updated: 31 Jul 2024
Fix invalid column
Assigned to: Nick
Updated: 24 Jul 2024
Add missing synonyms in 202212211314.
Fix incorrectly assigned security context in 202212211314.
Add missing column in 202303211203.
Fix invalid file path in 202407011550.
Fix incorrect security context permission in 202407011550.
In 202407171600:
Add the same missing synonyms from 202212211314.
Add the same missing column from 202303211203.
Add missing column, constraint and value in [SCH].[Instance]
SCH.Instance was missing constraint and missing default value. So add a query for those.
Add AWS Account base URL to tblSetting
Add AWS transfer family domain to WKW.Setting
Add missing WKW.ObjectAssociation
Missing necessary AWS fields in Transport types
Other Stored Proc changes
Missing migration for some SP.
Missing Entity and password when reopen Aws Account page.
Improve UX on Aws Account
Fix missing server in transport when select aws account
Aws account and protocol arent stored correctly in transport table
In the server vb, MT() function should check the null and empty value after the encryption and not before the encryption.
When server insert, we never pass in the setting xml. We only add the value when update the server.
Updated SFTP transport to prefill the input/output folders
Assigned to: Gavin Cheng
Updated: 17 Jul 2024
Upgrade BouncyCastle.Cryptography to 2.4.0.
Remove BouncyCastle and BouncyCastle.Crypto.dll.
Assigned to: Lennox Young
Updated: 17 Jul 2024
Fixed migration issues with AWS Transfer Family
Assigned to: Gavin Cheng
Updated: 11 Jul 2024
Add back deprecated names for SettingXml for compatibility.
Updated the transport settings to decrypt all passwords when used within the application
Assigned to: Lennox Young
Updated: 1 July 2024
Assigned to: Gavin Cheng
Updated: 30 May 2024
Add MSG Settings to Messaging -> Advanced -> Settings. You can open, update, or delete any setting.
Update Cryptography SDK to 2.0.5, the version that fixed the async issue
Assigned to: Nick Huang
Updated: 13 June 2024
Remove AutoRestart option for Schedules
Assigned to: Gavin Cheng
Updated: 14 June 2024
Wrong schema for schedule step
Assigned to: Nick Huang
Updated: 11 June 2023
Fix variable in code for migration
Assigned to: Nick Huang
Updated: 11 June 2023
Fix pipeline for subfolder deployment
Assigned to: Nick Huang
Updated: 11 June 2023
Move messaging to subfolder, so update the messaging location and the schedule steps
Assigned to: Nick Huang
Updated: 10 June 2023
Added extra Interface that we alter for new changes and keep existing Interface functionality the same. (This does mean that any changes to the new interface will require changes to the custom routes that use the Extended Interface.)
Added a new toggle for the Extended use and hid this button if there is not a CustomRoute present. Furthermore, we have also altered the extended functionality features to be hidden if ExtendedCustomRoute is not checked.
Assigned to: Jacob Clark
Updated: 7 June 2024
Fix - Forgot to route original message in custom route
Assigned to: Nick Huang
Updated: 17 May 2024
Add a checkbox in Transport Route to allow user to route the original message or not
Update all stored procedures that associate to Route
Add a new function CustomRoute() and update MessageQueue class to allow the Custom Route to choose to route the original message or a list of processed messages.
Assigned to: Nick Huang
Updated: 06 Oct 2023
Assigned to: Lennox Young
Updated: 07 May 2024
Fixed procs to remove encryption id
Assigned to: Lennox Young
Updated: 07 May 2024
Fixed objects to not do the entity check when it's not provided e.g. when you create a new object.
Assigned to: Lennox Young
Updated: 01 May 2024
Updated salcor to version 3.4.1
Updated scheduling to 21.2.1