Skip to content

fix: emover batches#773

Merged
coodos merged 1 commit intomainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit intomainfrom
fix/emover-batches

Conversation

@sosweetham
Copy link
Member

@sosweetham sosweetham commented Feb 4, 2026

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes #772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@sosweetham sosweetham requested a review from coodos as a code owner February 4, 2026 17:45
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s) Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant MigrationController
    participant MigrationService
    participant eVault

    Client->>MigrationController: POST /migrate
    MigrationController->>MigrationService: processMigration(migrationId)
    Note over MigrationController: Fire-and-forget (no await)
    MigrationController->>Client: 200 OK (migration started)
    
    par Async Background Process
        MigrationService->>eVault: Batch 1/N (size: 10)
        eVault-->>MigrationService: ✓
        MigrationService->>eVault: Batch 2/N (size: 10)
        eVault-->>MigrationService: ✓
        Note over MigrationService: ... continue batches
        opt Error occurs
            MigrationService->>MigrationService: Log error
        end
    end
Loading
sequenceDiagram
    participant Client
    participant SigningService
    participant SessionData
    participant SignatureVerifier

    Client->>SigningService: processSignedPayload(payload)
    
    SigningService->>SessionData: Get migration owner eName
    SessionData-->>SigningService: eName
    
    SigningService->>SigningService: Validate: payload.signer.w3id == eName?
    
    alt w3id matches eName
        SigningService->>SignatureVerifier: Verify signature
        SignatureVerifier-->>SigningService: ✓ Valid
        SigningService-->>Client: Signed payload accepted
    else w3id mismatch
        SigningService-->>Client: ✗ Error (signer mismatch)
        Note over SigningService: Validation fails early<br/>before signature verification
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed. Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check ❓ Inconclusive The changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated. Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check ✅ Passed All changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos coodos merged commit 7c471b7 into main Feb 4, 2026
4 checks passed
@coodos coodos deleted the fix/emover-batches branch February 4, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] eMover batches

2 participants