Fix agent onboarding critical gaps: real OCR/KYC/KYB integrations, DB-backed endpoints, AML screening API#6
Open
devin-ai-integration[bot] wants to merge 4 commits intomainfrom
Conversation
Co-Authored-By: Patrick Munis <pmunis@gmail.com>
- activities_next_5.py: Replace 37 TODOs with production-ready Temporal workflow activities (QR payments, offline sync, 2FA, recurring payments, commission tracking, etc.) - agent-performance/main.py: Implement uptime calculation, float utilization, percentile ranking, and peer comparison queries - ml_monitoring.py: Implement AUC-PR calculation for ML model evaluation - generate_all_routers.py: Replace TODO with real database query execution - user-service/main.go: Implement email/phone verification, password reset, resend verification with Redis token storage and messaging integration - agent-hierarchy/main.go: Implement audit trail logging for agent suspension - kafka_consumer.py: Implement Kafka message processing with proper error handling - example_service_with_auth.py: Implement Keycloak token validation Co-Authored-By: Patrick Munis <pmunis@gmail.com>
…lders, enforce env vars - Remove all hardcoded secrets/credentials across services - Enforce required env vars (JWT_SECRET, ILP_SECRET, ENCRYPTION_KEY, etc.) - Replace signature_placeholder with HMAC-SHA256 signing - Replace demo/hardcoded users with env-var-loaded user stores - Implement MFA setup/verify handlers in security-service - Implement message signing in POS management server - Replace mock exchange rate provider with fallback provider - Implement all 39 workflow activity stubs - Implement all 17 video KYC orchestrator stubs - Wire up TigerBeetle resilient client with conditional import - Replace mock Keycloak token with real API call - Remove hardcoded docker-compose passwords (use env var substitution) Co-Authored-By: Patrick Munis <pmunis@gmail.com>
…-backed endpoints, AML screening API - agent_onboarding_service.py: Fix import typo (create_database_url -> create_engine), replace mock OCR with real OCR service call + fallback, replace mock KYC with real provider HTTP call + retry, replace mock KYB with real Ballerine workflow call + retry, require DATABASE_URL env var, restrict CORS origins - agent_onboarding_service_enhanced.py: Implement all 8 placeholder endpoints with real DB queries (list docs/verifications/reviews, approve/reject/suspend/reactivate, assign reviewer, search with filters, statistics with aggregations), require DATABASE_URL env var, restrict CORS origins - kyc_kyb_service.py: Replace pattern-matching AML screening with external sanctions/PEP API calls with retry, expand high-risk countries list - kyc_encryption.py: Require KYC_MASTER_KEY env var (fail hard instead of ephemeral key), add DB persistence for audit trail entries - agent_service.go: Implement 15 stub methods with real DB queries (transaction/commission/customer/compliance metrics, performance scoring, ranking, achievements, recommendations, bulk operations, CSV/XLSX export, admin check, new agent/approval processing) Co-Authored-By: Patrick Munis <pmunis@gmail.com>
Author
Original prompt from Patrick |
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
There was a problem hiding this comment.
Trivy found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
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.
Fix agent onboarding critical gaps: real service integrations, DB-backed endpoints, Go stub implementations
Summary
Replaces mock/placeholder implementations across the agent onboarding pipeline with real service integrations and database-backed logic. Built on top of the platform merge branch.
Python onboarding services (
backend/python-services/onboarding-service/):agent_onboarding_service.py: Fixedcreate_database_urlimport typo →create_engine. Replaced mockprocess_document_ocr(),perform_kyc_verification(), andperform_kyb_verification()with real HTTP calls to OCR, KYC provider, and Ballerine APIs respectively, each with retry logic (exponential backoff, 3 attempts) and fallback behavior.DATABASE_URLnow required via env var (raisesRuntimeErrorif missing). CORS restricted fromallow_origins=["*"]toALLOWED_ORIGINSenv var with localhost defaults.agent_onboarding_service_enhanced.py: Implemented 8 previously-empty endpoints (list_documents,list_verifications,list_reviews,approve,reject,suspend,reactivate,assign_reviewer,search,statistics) with real SQLAlchemy database queries, pagination, filtering, and aggregation.kyc_kyb_service.py: Replaced string pattern-matching AML screening ("president", "minister") with real HTTP calls to external sanctions/PEP/adverse media APIs with retry logic.kyc_encryption.py:KYC_MASTER_KEYenv var now required (no more ephemeral key fallback). Addedasyncpg-based database persistence for audit trail entries.Go agent service (
services/go-services/agent-management/services/agent_service.go):calculateTransactionMetrics,calculateCommissionMetrics,calculateCustomerMetrics,calculateComplianceMetrics,calculatePerformanceScore,getAgentRanking,getAgentAchievements,generatePerformanceRecommendations,validateTransactionLimits,processBulkOperation,exportToCSV,exportToXLSX,isAdmin,processNewAgent,processAgentApproval.Review & Testing Checklist for Human
s.notificationService,s.kycService,s.auditServiceinprocessNewAgent/processAgentApprovaland model types likemodels.Notification,models.AuditEvent,models.Achievement— verify these exist on theAgentServicestruct and in the models package. These were never compiled.OnboardingDocument,VerificationRecord,ReviewRecordtables with specific column names. Go code queriestransactions,commissions,customers,compliance_checks,agent_achievementstables. Verify these match the actual database schema incustomer_onboarding.sql.POST /api/v1/ocr/processreturns{"extracted_data": {...}}). Verify these match the actual service APIs.["http://localhost:3000", "http://localhost:5173"]ifALLOWED_ORIGINSenv var is not set. Deployed environments must set this var or requests will be rejected.Test Plan
DATABASE_URL,OCR_SERVICE_URL,KYC_PROVIDER_URL,BALLERINE_URL,SANCTIONS_API_URL,KYC_MASTER_KEY,ALLOWED_ORIGINScd services/go-services/agent-management && go buildcd backend/python-services/onboarding-service && uvicorn agent_onboarding_service:appGetAgentPerformanceand verify DB queries return correct dataNotes
Link to Devin run: https://app.devin.ai/sessions/d1d1a2af0045435da944c1a7e061484d
Requested by: @munisp