feat: dual approvals, audit log search, bulk SKU mapping, and compliance calendar - #1180
Merged
vjuliaife merged 1 commit intoAug 30, 2026
Conversation
…and vjuliaife#1041 - Issue vjuliaife#1038: Dual Sign-Off Approval Workflow - Added dual sign-off settings & withdrawal requests table - Intercepted withdrawals exceeding threshold - Added approve, reject, and cancel workflow endpoints - Issue vjuliaife#1039: Surety Admin Audit Log Search & Filter UI - Added search across action, email, target ID, and payload - Filter by action type, actor, and date range - Added CSV export and URL search sync - Issue vjuliaife#1040: Bulk HS Code Mapping Table Import - Added SKU mapping table with versioning and bulk endpoints - Auto-resolved SKU to HTS codes in tariff uploads - Flagged unmapped SKUs with HTTP 422 - Issue vjuliaife#1041: Document Expiration Calendar View - Added expiration date tracking on KYC and license records - Aggregated 30/60/90-day upcoming expirations - Built ComplianceExpirationCalendar UI component
|
@chizzy192 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
Deployment failed for project tariff-shield-web with the following error: Learn More: https://vercel.com/docs/concepts/projects/project-configuration |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request addresses and resolves Issues #1038, #1039, #1040, and #1041.
1. Dual Sign-Off Approval Workflow for Large Collateral Withdrawals (#1038)
dual_approval_enabled,dual_approval_threshold_stroops,second_approver_id, andsecond_approver_emailcolumns onimporters.withdrawal_requeststable tracking pending, approved, rejected, and cancelled requests with full actor timestamps.POST /importers/:id/withdrawto detect withdrawals meeting or exceeding the configured threshold and place them intopendingapproval state instead of immediate on-chain submission.withdraw_requested_pending_approval,withdraw_approved,withdraw_rejected,withdraw_cancelled,dual_approval_configured).2. Search and Filter UI for Surety Admin Audit Log (#1039)
GET /admin/audit-logwith free-text search across action names, actor emails, target IDs, and payload contents.from/to), along with limit/offset pagination.format=csv).SuretyAuditLogPage(/surety/audit-log) in Next.js with shareable URL search parameter syncing, collapsible payload viewer, and CSV download.3. Bulk HS Code Mapping Table Import for Product Catalogs (#1040)
importer_sku_mappingsdatabase table with catalog versioning, SKU uniqueness constraints, and active flags.POST /importers/:id/sku-mappings/bulksupporting batch JSON payloads and raw CSV parsing.GET,POST,PUT,DELETE).POST /importers/:id/upload-tariff-csvto resolve line items by product SKU against active mapping catalog and return HTTP 422 withunmappedSkuswhen unmapped SKUs are supplied.4. Document Expiration Calendar View for Importer Compliance Documents (#1041)
expiration_dateand metadata columns tokyc_documentsandsurety_state_licenses.GET /importers/:id/compliance-calendaraggregating compliance document expirations and classifying urgency (critical≤ 30d,warning≤ 60d,upcoming≤ 90d,normal> 90d).ComplianceExpirationCalendarUI component adhering to the month-grid layout pattern with visual urgency badges, empty state, and deep links to document renewal flows.Related Issues
Closes #1038
Closes #1039
Closes #1040
Closes #1041