Frontend Aligned with Backend Timestamp Rename and Hardened Folder Deletion (QA)
Executive summary
This QA release synchronizes the DSM web apps (Mail, Admin) with a backend data-model change that renamed every record's timestamp fields from created_on/updated_on to created_at/updated_at and replaced the is_deleted flag with an is_active flag. It also realigns the Admin folder-deletion flow with the backend's updated contract so deletions report precise per-folder outcomes. The bulk of the change is a wide-reaching field-rename migration that keeps dates and statuses displaying correctly after the backend update.
Why this was needed
The backend renamed its timestamp fields and inverted its soft-delete flag (is_deleted → is_active). Until the frontend matched, any screen reading created_on/updated_on would have shown blank or incorrect Created/Updated dates, and folder deletion would have failed because the API now expects folder IDs as repeated query parameters and returns a richer result object instead of a simple count.
Client / user impact
Created/Updated timestamps render correctly again across mail grids, document and folder details, page-statistics, organization, document-type, and upload-center views once the backend change is live. Admin folder deletion (single and bulk) now gives clearer feedback: success when folders are removed, a warning when a delete is skipped, and a specific error message otherwise. Comment threads keep sorting and live-update ordering intact under the new field names.
Technical scope
- Batch merge of
devintoqacovering feature PRs #828, #829, #830, and #831. - Field-rename migration (PR #831): updated ~14 hand-written type files and ~15 component files across the
mailandadminapps, regenerated API types, and switched allcreated_on/updated_onreferences tocreated_at/updated_at. - Removed the
is_deletedfield fromDocumentDetailsTypeand related types in favor ofis_active. - Comments module (message bubbles, drawer hooks, newest-item signature, sorting/optimistic updates and WebSocket events) repointed to
created_at. - Excel-export date detection and column-detection logic now recognize the
_atsuffix; hardcoded sort params updated toupdated_at. - Admin folder delete (PR #829):
deleteFolder/bulkDeleteFoldersnow callDELETE /admin/api/folderswith repeatedfolder_idsquery params; newBulkFolderDeleteResponsetype carriesdeleted_count,skipped_count,failed_count,total_mails_reassigned, and per-folder details, driving success/warning/error toasts viagetApiErrorMessage. - Added Admin notification digest/policy/template response types (
NotificationDigest*,NotificationPolicy*,NotificationTemplate*). - Net: +2279 / -478 across 100 files; mostly type and field updates, not new product surfaces. Note: vendor-portal parity work referenced in commits landed in earlier
devcommits and is not part of this diff.
Risk & mitigation
Primary risk is coupling: the frontend now expects created_at/updated_at and is_active, so it must ship together with (or after) the matching backend rename, or dates will appear blank and folder deletes will error. Because the rename touched many files, the chief regression risk is a missed reference showing an empty timestamp. Mitigation: all three apps were reported passing lint, the changes are mechanical field swaps with no business-logic change, and folder-delete error handling was made more explicit. This is a QA-stage promotion, not a Production release.
QA validation focus
- Confirm Created/Updated dates render (not blank) on mail grids, document/folder details, page-statistics, organization, document-types, and upload-center screens.
- Delete a single Admin folder and bulk-delete several; verify the correct success / skipped-warning / error toast and that mail reassignment counts are reflected.
- Verify comment threads sort newest-correctly and live updates land in order.
- Export a grid to Excel and confirm date columns are formatted as dates.
- Smoke-test Mail and Admin portals for any blank timestamp or status field.