From c781313de5e8964db988830d402e0bd22887f394 Mon Sep 17 00:00:00 2001 From: hectorzhao Date: Tue, 15 Sep 2026 15:58:29 +0800 Subject: [PATCH] feat: add HTTP signature tools and fix independent HTTP send validation --- api/src/open-api/open-api-remediation.spec.ts | 24 ++ api/src/open-api/open-api.service.ts | 4 + api/src/send-chain/http-send-gate.spec.ts | 61 +++ .../send-chain/send-batch-entry.service.ts | 14 +- api/src/send-chain/send-submission.service.ts | 246 ++++++++---- docs/client-http-api-guide.md | 4 +- .../first-version-development-requirements.md | 5 + docs/http-api-assessment-20260910.md | 19 + docs/system-functional-test-cases.md | 9 + docs/testing-progress.md | 13 + package-lock.json | 13 + package.json | 1 + .../SignatureReportModals.tsx | 155 ++++---- src/apps/client/ClientEnterpriseAuthPage.tsx | 362 +++++++++++++----- .../http-signature/HttpSignaturePage.css | 34 ++ .../http-signature/HttpSignaturePage.test.tsx | 17 + .../http-signature/HttpSignaturePage.tsx | 159 ++++++++ .../shared/http-signature/signature.test.ts | 41 ++ src/apps/shared/http-signature/signature.ts | 47 +++ src/layouts/AdminLayout.tsx | 1 + src/layouts/ClientLayout.tsx | 1 + src/routes/AppRoutes.tsx | 6 + tools/quality/css-ownership.json | 5 + 23 files changed, 986 insertions(+), 255 deletions(-) create mode 100644 api/src/send-chain/http-send-gate.spec.ts create mode 100644 src/apps/shared/http-signature/HttpSignaturePage.css create mode 100644 src/apps/shared/http-signature/HttpSignaturePage.test.tsx create mode 100644 src/apps/shared/http-signature/HttpSignaturePage.tsx create mode 100644 src/apps/shared/http-signature/signature.test.ts create mode 100644 src/apps/shared/http-signature/signature.ts diff --git a/api/src/open-api/open-api-remediation.spec.ts b/api/src/open-api/open-api-remediation.spec.ts index 7944e41..5f2f35a 100644 --- a/api/src/open-api/open-api-remediation.spec.ts +++ b/api/src/open-api/open-api-remediation.spec.ts @@ -12,6 +12,30 @@ const auth = { }; describe('HTTP API remediation boundaries', () => { + it.each([ + { mobile: 'abc' }, + { mobile: '1' }, + { mobile: '' }, + { mobile: '138001380001' }, + { accessNumber: '