Files
brazil-swift-ops/PLACEHOLDER_REVIEW.md
2026-01-23 16:16:37 -08:00

7.0 KiB

Placeholder Review Report

Summary

This document identifies all placeholders, hardcoded values, and incomplete implementations that should be addressed before production deployment.

Review Date: 2026-01-23
Status: All critical placeholders have been fixed


Fixed Placeholders

1. E&O Uplift Functions - Empty IDs FIXED

Location: packages/utils/src/eo-uplift.ts

  • Fixed: transactionId and batchId are now required parameters
  • Status: Resolved

2. Hardcoded BIC Code FIXED

Location:

  • packages/utils/src/institution-config.ts (new file)
  • packages/iso20022/src/pacs008.ts
  • packages/iso20022/src/pain001.ts
  • Fixed: BIC is now configurable via INSTITUTION_CONFIG in utils package
  • Status: Resolved

3. Hardcoded Effective Dates FIXED

Location: packages/rules-engine/src/config.ts

  • Fixed: Changed from new Date('2024-01-01') to new Date() with comment
  • Status: Resolved (uses current date, should be updated when rates/rules change)

⚠️ Documented Implementation Notes (Intentional for MVP)

These are documented as simplified implementations that would need enhancement in production:

1. Currency Converter

Location: packages/utils/src/currency.ts:23

  • Note: "In production, this would integrate with a real-time FX rate service"
  • Status: Documented - default rates are placeholders for testing
  • Action: Replace with real-time FX service integration

2. Transaction History Store

Location: packages/rules-engine/src/aml.ts:19

  • Note: "Transaction history for structuring detection (in production, this would be a database)"
  • Status: Documented - in-memory store is intentional for MVP
  • Action: Implement database persistence

3. FX Contract Store

Location: packages/rules-engine/src/fx-contract.ts

  • Note: In-memory store (would be database in production)
  • Status: Documented - intentional for MVP
  • Action: Implement database persistence

4. Account Store

Location: packages/treasury/src/accounts.ts

  • Note: In-memory store (would be database in production)
  • Status: Documented - intentional for MVP
  • Action: Implement database persistence

5. ISO 20022 XML Export

Location: packages/iso20022/src/exporter.ts:8

  • Note: "Simplified XML export - in production would use proper XML serialization"
  • Status: Documented - basic implementation for MVP
  • Action: Implement proper XML serialization library

6. ISO 20022 to MT103 Conversion

Location: packages/iso20022/src/mt-mapper.ts:81

  • Note: "This is a simplified conversion - in production would need full mapping"
  • Status: Documented - basic implementation for MVP
  • Action: Implement complete field mapping

7. Audit Log Deletion

Location: packages/audit/src/retention.ts:61

  • Note: "In production, would actually delete from persistent storage"
  • Status: Documented - TODO comment added
  • Action: Implement actual deletion logic

🟢 Hardcoded Values (Acceptable/Configurable)

1. Default FX Rates

Location: packages/utils/src/currency.ts:29-31

BRL: 0.2,  // Example: 1 USD = 5 BRL
EUR: 1.1,  // Example rate
GBP: 1.27, // Example rate
  • Status: ⚠️ Example rates - should be replaced with real FX service
  • Action: Document as example/test data, integrate real-time service

2. Default Risk Weights

Location: packages/risk-models/src/risk-weights.ts:7-23

  • Payment: 10% (0.1)
  • FX Settlement: 35% (0.35)
  • Nostro Exposure: 100% (1.0)
  • Status: These are reasonable defaults, configurable via createRiskWeightTable()

3. Default Thresholds

Location: packages/rules-engine/src/config.ts

  • USD Reporting Threshold: 10,000 (matches regulatory requirement)
  • AML Single Transaction Threshold: 10,000 (matches regulatory requirement)
  • Structuring Threshold: 10,000 (matches regulatory requirement)
  • Structuring Window: 30 days (reasonable default)

4. Default IOF Rates

Location: packages/rules-engine/src/config.ts:25-26

  • Inbound: 0.38% (0.0038) (matches regulatory requirement)
  • Outbound: 3.5% (0.0350) (matches regulatory requirement)

5. Version Numbers

Location: Multiple files

  • Status: ⚠️ Version '1.0.0' is acceptable for initial release
  • Note: Should be updated when rules/rates change, but not a critical placeholder

🔵 Incomplete UI Components (Placeholders)

1. Dashboard Page

Location: apps/web/src/pages/DashboardPage.tsx

  • Status: ⚠️ Placeholder UI with border-dashed box
  • Action: Needs full dashboard implementation with:
    • Transaction statistics
    • Risk metrics
    • Recent activity
    • Compliance status

2. Transactions Page

Location: apps/web/src/pages/TransactionsPage.tsx

  • Status: ⚠️ Placeholder UI with just title
  • Action: Needs:
    • Transaction entry form
    • Batch transaction table
    • Rules evaluation panel
    • E&O uplift column display

3. Treasury Page

Location: apps/web/src/pages/TreasuryPage.tsx

  • Status: ⚠️ Placeholder UI with just title
  • Action: Needs:
    • Account management UI
    • Subledger creation/editing
    • Balance displays
    • Transfer interface

4. Reports Page

Location: apps/web/src/pages/ReportsPage.tsx

  • Status: ⚠️ Placeholder UI with just title
  • Action: Needs:
    • BCB report generation UI
    • Report export (JSON/CSV)
    • Report history
    • Filtering and date range selection

📋 Recommendations

Completed

  1. Fixed E&O uplift functions to require transactionId/batchId
  2. Made BIC code configurable via institution-config
  3. Updated effective dates to use current date
  4. Added comprehensive placeholder review documentation

Short-term Enhancements

  1. Replace example FX rates with real-time service integration
  2. Implement full UI components for all pages
  3. Add proper XML serialization for ISO 20022
  4. Implement database persistence for stores

Long-term Enhancements

  1. Full ISO 20022 to MT103 mapping
  2. Real-time FX rate service integration
  3. Database persistence layer
  4. Complete UI implementation with all features

Verified as Non-Placeholders

  • All TypeScript types are complete
  • All function signatures are correct
  • All imports are valid
  • All package.json files are complete
  • All tsconfig.json files are properly configured
  • Regulatory thresholds match requirements
  • IOF rates match regulatory requirements
  • Risk weights are reasonable defaults
  • Institution configuration is now centralized

Summary

Critical Placeholders: All fixed
Documented Simplifications: All properly documented
UI Placeholders: ⚠️ Need implementation (expected for MVP)
Hardcoded Values: Acceptable defaults or configurable

The codebase is ready for development with all critical placeholders resolved. UI components are intentionally minimal as placeholders for future implementation.