Repository navigation
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
The focused security change preserves migration state and is adequately covered by regression tests.
0 open findings
What changed in this PR
Redacts legacy stored verifiers from migration responses while preserving migration behavior and persisted policy data.
Changes:
- Returns
nullinstead of the stored verifier. - Adds regression coverage for redaction, persistence, and mapping updates.
| File | Description |
|---|---|
src/services/assistedKeys.ts/ss-signer/signerV3.ts |
Redacts the verifier in migration responses. |
tests/unit/signerV3.test.ts |
Tests migration compatibility and verifier redaction. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
R4 backend acceptance handoff — 12 October 2026State: BLOCKED_ON_STAGING_OPERATOR_ACCEPTANCE Source/compatibility evidence: Public Relay runtime pin ee935359f22ff7932ea0a62e9084d4b49801f4aa passed Node 22 compile, 105/105 baseline/local-mode and 104/104 Mongo 7 replica-set backup tests during this continuation. SigningServer #1 3cc7728, #2 7339939 and #5 7c14b6e merged without conflicts into isolated unpushed verification SHA 8de93e58358d0f9066c4ccda27fbeac474c9279d; Node 22.23.3 compile and 127/127 tests in 6 suites passed. All three source PRs and Relay #3 have Utkarsh's 9 October approvals on the pinned heads; hosted source/test checks on those unchanged heads are green. These are source/local-fixture results, not a deployed-service claim. Operator/staging acceptance still required:
Native Mac testing is not required to review backend source itself. The final app/Desktop Local handoff must separately record iOS/Android/physical signer round trips against explicitly identified compatible services. |
Summary
migrationSuccessfuland signer setup metadata.verification.verifier.twoFAKeyto the scalar string required by the V3 model when creating a V3 signer. Preserve the V2 policy and restrictions; leave an existing V3 signer unchanged on retry.Compatibility and verification
migrationSuccessful; new Server Key enrollment is unchanged.SignerV3.migrateSignersV2ToV3with real Mongoose V2/V3 schemas and synthetic data. The persisted V3 verifier equals the original scalar key, a synthetic TOTP validates, restrictions and the V2 record remain intact, first/retry responses are redacted, and retry leaves one V3 signer/map. The unique database was dropped. This was a direct service check with wallet/cloud dependencies stubbed, not an HTTP or hosted test.7c14b6e, Node 22 compilation and the full local suite pass: 110/110 tests (2 suites). Source secret scan andgit diff --checkpass.3cc7728c), Redact Signing Server access and operational logs #2 (73399398), and this PR (7c14b6e) was conflict-free; Node 22 compile and 127/127 tests across 6 suites passed. This merge was not pushed.7c14b6e(test, current-source scan, and history scan jobs).Review and rollout
This PR does not authorize a wallet operation, change route policy, or deploy. The post-fix persisted service fixture passed, while HTTP authorization and hosted configuration remain untested. Existing V3 documents created by an earlier migration attempt are not rewritten here. The backend operator must inventory any such malformed records and obtain a separately reviewed repair/compatibility decision before rollout, then attest the running artifact, effective route controls, and aggregate old-route usage. Utkarsh approved exact head
7c14b6e67325eab6be95fa1a5e03e855d96e985bon 9 October 2026; that source approval does not establish hosted HTTP/operator acceptance.Cloud continuation (12 October 2026): this source head is unchanged and was approved by Utkarsh on 9 October. Exact-head GitHub source/test checks remain successful. An isolated unpushed integration of #1/#2/#5 at
8de93e58358d0f9066c4ccda27fbeac474c9279dpassed Node 22.23.3 compile and 127/127 tests across six suites. This is compatibility evidence only, not a deployment or production route/log/provider attestation. Mac-native testing is not needed for backend source review; staging/operator and app/hardware integration acceptance remain open.