From 3c2ca16fd6b5a9556339b2e7dddfe414a7d28238 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 00:53:30 +0200 Subject: [PATCH 01/15] DfxApproval-GSheets durch API-Workflow ersetzen --- .env.example | 2 + .env.local.example | 1 + docs/dfx-approval-migration.md | 107 +++++ .../1785537000000-AddKycFileGenerationKey.js | 28 ++ src/config/config.ts | 1 + src/shared/services/process.service.ts | 1 + .../kyc/controllers/kyc-admin.controller.ts | 13 +- .../generic/kyc/dto/kyc-file.dto.ts | 1 + .../kyc/dto/output/dfx-approval-status.dto.ts | 47 +++ .../generic/kyc/entities/kyc-file.entity.ts | 4 + src/subdomains/generic/kyc/kyc.module.ts | 9 + .../dfx-approval-check.service.spec.ts | 129 ++++++ .../dfx-approval-pdf.service.spec.ts | 82 ++++ .../dfx-approval-workflow.service.spec.ts | 149 +++++++ .../services/dfx-approval-check.service.ts | 97 +++++ .../services/dfx-approval-document.service.ts | 62 +++ .../kyc/services/dfx-approval-pdf.service.ts | 374 ++++++++++++++++++ .../services/dfx-approval-workflow.service.ts | 370 +++++++++++++++++ .../__tests__/kyc-document.service.spec.ts | 85 +++- .../integration/kyc-document.service.ts | 48 +++ .../generic/kyc/services/kyc-file.service.ts | 10 + .../__tests__/support.controller.spec.ts | 14 + .../support/__tests__/support.service.spec.ts | 100 +++++ .../generic/support/dto/onboarding-pdf.dto.ts | 14 +- .../generic/support/support-pdf.service.ts | 68 ++-- .../generic/support/support.controller.ts | 14 +- .../generic/support/support.service.ts | 98 ++++- 27 files changed, 1875 insertions(+), 53 deletions(-) create mode 100644 docs/dfx-approval-migration.md create mode 100644 migration/1785537000000-AddKycFileGenerationKey.js create mode 100644 src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts create mode 100644 src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts create mode 100644 src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts create mode 100644 src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts create mode 100644 src/subdomains/generic/kyc/services/dfx-approval-check.service.ts create mode 100644 src/subdomains/generic/kyc/services/dfx-approval-document.service.ts create mode 100644 src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts create mode 100644 src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts diff --git a/.env.example b/.env.example index 68300ecaac..6563e83838 100644 --- a/.env.example +++ b/.env.example @@ -30,6 +30,8 @@ KYC_TRANSACTION_PREFIX= KYC_APP_TOKEN= KYC_SECRET_KEY= KYC_WEBHOOK_KEY= +# Keep false until all eight legacy DfxApproval Apps Script timers have been disabled. +KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false MAIL_USER= MAIL_PASS= diff --git a/.env.local.example b/.env.local.example index c81eb259e0..5ff11a8d7b 100644 --- a/.env.local.example +++ b/.env.local.example @@ -28,6 +28,7 @@ ENVIRONMENT=loc NETWORK=testnet DISABLED_PROCESSES=* REQUEST_LIMIT_CHECK=false +KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false # Database (matches docker-compose.yml) SQL_HOST=localhost diff --git a/docs/dfx-approval-migration.md b/docs/dfx-approval-migration.md new file mode 100644 index 0000000000..c1decfb5a5 --- /dev/null +++ b/docs/dfx-approval-migration.md @@ -0,0 +1,107 @@ +# Ablösung der acht DfxApproval-GSheets + +## Umfang + +Der neue API-Workflow ersetzt ausschliesslich die acht minütlichen Personal-Onboarding-Projekte: + +1. DfxApproval-Freigabe +2. Initialisierung von `pep`, `highRisk`, `complexOrgStructure`, `depositLimit` und `amlAccountType` +3. `GwGFileCover` +4. `IdentificationForm` +5. `CustomerProfile` +6. `RiskProfile` +7. `FormA` +8. `DfxNameCheck` + +`IdentReport` und `PersonalNameCheck` werden weiterhin von ihren bestehenden KYC-Prozessen erzeugt. +Sie gehören zum Freigabe-Gate, sind aber keine der acht abzulösenden GSheets. Organisationen sind +nicht Teil dieser Personal-GSheet-Migration. + +## Ablauf in der API + +`DfxApprovalWorkflowService` sucht jede Minute höchstens 50 der ältesten Personal-Fälle mit +`DfxApproval = ManualReview` und `kycLevel = 40`. Der Prozess ist standardmässig ausgeschaltet und +wird erst mit `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` aktiviert. + +Pro Fall gilt: + +1. Ein PostgreSQL-Advisory-Lock verhindert parallele Verarbeitung durch mehrere API-Instanzen. +2. Nur nach einem gültigen, abgeschlossenen NameCheck werden noch leere Personal-Risikofelder mit + den bisherigen GSheet-Werten initialisiert. Vorhandene Werte werden nie überschrieben und die + Änderung wird im `kyc_log` protokolliert. +3. Die sechs fehlenden PDF-Nachweise werden mit PDFKit erzeugt und über einen eindeutigen + `generationKey` idempotent im WORM-Storage gespeichert. Ein `kyc_file` wird erst nach erfolgreichem + Upload als gültig markiert. +4. Das serverseitige Gate prüft alle fachlichen Voraussetzungen und alle acht Dokumenttypen. +5. Nur ein vollständig freier Fall wird in einer DB-Transaktion auf `DfxApproval = Completed`, + `kycLevel = 50` und `kycStatus = Completed` gesetzt. Step- und KYC-Logs werden in derselben + Transaktion geschrieben; die Benachrichtigung folgt erst nach dem Commit. + +Unvollständige oder ungültige JSON-Daten, fehlende Dokumente, offene NameChecks und Storage-Fehler +stoppen den Fall sichtbar. Leere Compliance-Werte werden nicht als `false` interpretiert. + +## Automatisches Freigabe-Gate + +Die automatische Freigabe verlangt: + +- Personal-Konto, DfxApproval `ManualReview`, `kycLevel = 40` +- `verifiedName`, `kycHash`, Vorname, Geburtstag und E-Mail +- `complexOrgStructure = false`, `highRisk = false`, `pep = false` +- zulässigen User- und KYC-Status +- aktiviertes Land ohne manuelle Länderprüfung; Brasilien bleibt ausgeschlossen +- erlaubten Identifikationsdokumenttyp und vorhandene Dokumentnummer +- erlaubte Nationalität oder einen abgeschlossenen erforderlichen Aufenthaltstitel +- keinen offenen sanktionierten NameCheck +- gültige Dateien für `GwGFileCover`, `IdentReport`, `IdentificationForm`, `CustomerProfile`, + `RiskProfile`, `FormA`, `DfxNameCheck` und `PersonalNameCheck` + +Der Endpoint `GET /v1/kyc/admin/dfx-approval/:stepId/status` liefert die aktuellen Blocker für das +Compliance-UI. + +## Manuelle Freigabe in Services + +Für Personal-Fälle verwendet Services nur noch +`POST /v1/support/:userDataId/dfx-approval`. Die API erzeugt zuerst den Onboarding-Bericht. Erst nach +erfolgreicher Speicherung führt sie Entscheidung, UserData-Änderungen und Audit-Logs atomar aus. +Eine fehlgeschlagene PDF-Erzeugung kann deshalb keinen bereits freigegebenen Teilzustand mehr +hinterlassen. Der bestehende Organisationsablauf bleibt ausserhalb dieser Migration unverändert. + +## Produktiver Cutover + +Die Reihenfolge ist verbindlich, damit GSheets und API niemals parallel schreiben: + +1. API inklusive DB-Migration deployen, während `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` bleibt. +2. Services deployen und Statusanzeige sowie manuelle Personal-Entscheidung mit einem Testfall prüfen. +3. Alle acht minütlichen `admin@dfx.swiss`-Trigger deaktivieren, aber für einen schnellen Rollback + noch nicht löschen. +4. Mindestens drei Minuten prüfen, dass keines der acht Projekte mehr ausgeführt wird. +5. `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` setzen und die API kontrolliert neu starten. +6. Über mehrere Minuten Durchsatz, ältesten wartenden Fall, neue `kyc_file`-Subtypen, Step-Logs und + Fehlerlogs beobachten. +7. Erst nach stabiler Beobachtung die acht alten Trigger endgültig entfernen. + +Zusätzlich bleibt `Process.KYC_DFX_APPROVAL` über die bestehende `disabledProcesses`-Einstellung als +schneller Kill-Switch verfügbar. + +## Rollback + +1. `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` setzen oder `KycDfxApproval` über + `disabledProcesses` ausschalten. +2. Sicherstellen, dass keine API-Ausführung mehr läuft. +3. Die acht alten Trigger wieder aktivieren und deren Ausführungen sowie den Rückstau überwachen. + +Die Schema-Migration wird nicht zurückgerollt: `generationKey` ist für bestehende Dateien nullable +und beeinträchtigt den alten Ablauf nicht. Bereits korrekt erzeugte API-Dokumente bleiben gültige +KYC-Nachweise; die alten Sheets müssen vorhandene Subtypen wie bisher überspringen. + +## Betriebsüberwachung + +Alarmiert werden muss bei: + +- wachsender Anzahl `DfxApproval = ManualReview` mit `kycLevel = 40` +- steigendem Alter des ältesten wartenden Falls +- fehlenden oder ungültigen Dokument-Subtypen +- wiederholten `DfxApproval workflow failed`-Logs +- Storage-, PDF-, JSON- oder NameCheck-Fehlern + +Ein Rückstau von null ist nur eine Momentaufnahme. Massgeblich sind Durchsatz und Alter der Fälle. diff --git a/migration/1785537000000-AddKycFileGenerationKey.js b/migration/1785537000000-AddKycFileGenerationKey.js new file mode 100644 index 0000000000..b5ba41aeed --- /dev/null +++ b/migration/1785537000000-AddKycFileGenerationKey.js @@ -0,0 +1,28 @@ +/** + * @typedef {import('typeorm').MigrationInterface} MigrationInterface + * @typedef {import('typeorm').QueryRunner} QueryRunner + */ + +/** + * Adds an idempotency key for API-generated KYC documents. Existing Sheet-generated files remain + * untouched (NULL); a new workflow can create every document at most once per version and step. + * + * @class + * @implements {MigrationInterface} + */ +module.exports = class AddKycFileGenerationKey1785537000000 { + name = 'AddKycFileGenerationKey1785537000000'; + + /** @param {QueryRunner} queryRunner */ + async up(queryRunner) { + await queryRunner.query(`SET LOCAL lock_timeout = '5s'`); + await queryRunner.query(`ALTER TABLE "kyc_file" ADD "generationKey" character varying(256)`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dfx_kyc_file_generation_key" ON "kyc_file" ("generationKey")`); + } + + /** @param {QueryRunner} queryRunner */ + async down(queryRunner) { + await queryRunner.query(`DROP INDEX "public"."IDX_dfx_kyc_file_generation_key"`); + await queryRunner.query(`ALTER TABLE "kyc_file" DROP COLUMN "generationKey"`); + } +}; diff --git a/src/config/config.ts b/src/config/config.ts index 785a112b1d..d6b2897dad 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -343,6 +343,7 @@ export class Configuration { kyc = { transactionPrefix: process.env.KYC_TRANSACTION_PREFIX, + dfxApprovalWorkflowEnabled: process.env.KYC_DFX_APPROVAL_WORKFLOW_ENABLED === 'true', identFailAfterDays: 30, reminderAfterDays: 2, appToken: process.env.KYC_APP_TOKEN, diff --git a/src/shared/services/process.service.ts b/src/shared/services/process.service.ts index 97d79a09b5..409ef88c26 100644 --- a/src/shared/services/process.service.ts +++ b/src/shared/services/process.service.ts @@ -29,6 +29,7 @@ export enum Process { KYC_NATIONALITY_REVIEW = 'KycNationalityReview', KYC_FINANCIAL_REVIEW = 'KycFinancialReview', KYC_RECOMMENDATION_REVIEW = 'KycRecommendationReview', + KYC_DFX_APPROVAL = 'KycDfxApproval', KYC_MAIL = 'KycMail', BANK_ACCOUNT = 'BankAccount', BANK_TX = 'BankTx', diff --git a/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts b/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts index 7030b86dd7..b6b77618cb 100644 --- a/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts +++ b/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { ApiBearerAuth, ApiExcludeController, ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { GetJwt } from 'src/shared/auth/get-jwt.decorator'; @@ -15,6 +15,8 @@ import { UpdateNameCheckLogDto } from '../dto/input/update-name-check-log.dto'; import { KycWebhookTriggerDto } from '../dto/kyc-webhook-trigger.dto'; import { NameCheckLog } from '../entities/name-check-log.entity'; import { KycAdminService } from '../services/kyc-admin.service'; +import { DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; +import { DfxApprovalWorkflowService } from '../services/dfx-approval-workflow.service'; import { KycLogService } from '../services/kyc-log.service'; import { KycService } from '../services/kyc.service'; import { NameCheckService } from '../services/name-check.service'; @@ -30,8 +32,17 @@ export class KycAdminController { private readonly kycLogService: KycLogService, private readonly settingService: SettingService, private readonly userDataService: UserDataService, + private readonly dfxApprovalWorkflowService: DfxApprovalWorkflowService, ) {} + @Get('dfx-approval/:id/status') + @ApiBearerAuth() + @ApiExcludeEndpoint() + @UseGuards(AuthGuard(), RoleGuard(UserRole.SUPPORT), UserActiveGuard()) + async getDfxApprovalStatus(@Param('id') id: string): Promise { + return this.dfxApprovalWorkflowService.getStatus(+id); + } + @Put('nameCheck/:id') @ApiBearerAuth() @ApiExcludeEndpoint() diff --git a/src/subdomains/generic/kyc/dto/kyc-file.dto.ts b/src/subdomains/generic/kyc/dto/kyc-file.dto.ts index d7e6c5a91c..8aa74a371e 100644 --- a/src/subdomains/generic/kyc/dto/kyc-file.dto.ts +++ b/src/subdomains/generic/kyc/dto/kyc-file.dto.ts @@ -69,6 +69,7 @@ export interface KycFileBlob extends Blob { } export class CreateKycFileDto { + generationKey?: string; name: string; type: FileType; protected: boolean; diff --git a/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts b/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts new file mode 100644 index 0000000000..7f9b59f124 --- /dev/null +++ b/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts @@ -0,0 +1,47 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { FileSubType } from '../kyc-file.dto'; + +export enum DfxApprovalBlocker { + WRONG_ACCOUNT_TYPE = 'WrongAccountType', + WRONG_STEP_STATUS = 'WrongStepStatus', + WRONG_KYC_LEVEL = 'WrongKycLevel', + MISSING_VERIFIED_NAME = 'MissingVerifiedName', + MISSING_KYC_HASH = 'MissingKycHash', + MISSING_FIRST_NAME = 'MissingFirstName', + MISSING_BIRTHDAY = 'MissingBirthday', + MISSING_MAIL = 'MissingMail', + COMPLEX_ORGANIZATION = 'ComplexOrganization', + RISK_DATA_PENDING = 'RiskDataPending', + HIGH_RISK = 'HighRisk', + PEP = 'Pep', + INVALID_USER_STATUS = 'InvalidUserStatus', + INVALID_KYC_STATUS = 'InvalidKycStatus', + MISSING_COUNTRY = 'MissingCountry', + COUNTRY_DISABLED = 'CountryDisabled', + COUNTRY_REQUIRES_MANUAL_REVIEW = 'CountryRequiresManualReview', + COUNTRY_EXCLUDED = 'CountryExcluded', + MISSING_NATIONALITY = 'MissingNationality', + NATIONALITY_DISABLED = 'NationalityDisabled', + MISSING_RESIDENCE_PERMIT = 'MissingResidencePermit', + MISSING_IDENT_DOCUMENT_TYPE = 'MissingIdentDocumentType', + IDENT_DOCUMENT_TYPE_DISABLED = 'IdentDocumentTypeDisabled', + MISSING_IDENT_DOCUMENT_ID = 'MissingIdentDocumentId', + OPEN_NAME_CHECK = 'OpenNameCheck', + MISSING_DOCUMENT = 'MissingDocument', +} + +export class DfxApprovalBlockerDto { + @ApiProperty({ enum: DfxApprovalBlocker }) + code: DfxApprovalBlocker; + + @ApiProperty({ enum: FileSubType, required: false }) + documentSubType?: FileSubType; +} + +export class DfxApprovalStatusDto { + @ApiProperty() + ready: boolean; + + @ApiProperty({ type: DfxApprovalBlockerDto, isArray: true }) + blockers: DfxApprovalBlockerDto[]; +} diff --git a/src/subdomains/generic/kyc/entities/kyc-file.entity.ts b/src/subdomains/generic/kyc/entities/kyc-file.entity.ts index 15bd84cb76..570399f236 100644 --- a/src/subdomains/generic/kyc/entities/kyc-file.entity.ts +++ b/src/subdomains/generic/kyc/entities/kyc-file.entity.ts @@ -8,6 +8,10 @@ import { KycStep } from './kyc-step.entity'; @Entity() export class KycFile extends IEntity { + @Index('IDX_dfx_kyc_file_generation_key', { unique: true }) + @Column({ length: 256, nullable: true }) + generationKey?: string; + @Column({ type: 'text' }) name: string; diff --git a/src/subdomains/generic/kyc/kyc.module.ts b/src/subdomains/generic/kyc/kyc.module.ts index 8ed614b6dd..718fc2e07c 100644 --- a/src/subdomains/generic/kyc/kyc.module.ts +++ b/src/subdomains/generic/kyc/kyc.module.ts @@ -27,6 +27,10 @@ import { NameCheckLogRepository } from './repositories/name-check-log.repository import { StepLogRepository } from './repositories/step-log.repository'; import { TfaLogRepository } from './repositories/tfa-log.repository'; import { DilisenseService } from './services/integration/dilisense.service'; +import { DfxApprovalCheckService } from './services/dfx-approval-check.service'; +import { DfxApprovalDocumentService } from './services/dfx-approval-document.service'; +import { DfxApprovalPdfService } from './services/dfx-approval-pdf.service'; +import { DfxApprovalWorkflowService } from './services/dfx-approval-workflow.service'; import { FinancialService } from './services/integration/financial.service'; import { KycDocumentService } from './services/integration/kyc-document.service'; import { SumsubService } from './services/integration/sum-sub.service'; @@ -74,6 +78,10 @@ import { TfaService } from './services/tfa.service'; StepLogRepository, TfaLogRepository, DilisenseService, + DfxApprovalCheckService, + DfxApprovalDocumentService, + DfxApprovalPdfService, + DfxApprovalWorkflowService, FinancialService, KycFileService, KycLogRepository, @@ -94,6 +102,7 @@ import { TfaService } from './services/tfa.service'; KycService, KycFileService, ScorechainDocumentService, + DfxApprovalWorkflowService, ], }) export class KycModule {} diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts new file mode 100644 index 0000000000..d5387c849a --- /dev/null +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts @@ -0,0 +1,129 @@ +import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; +import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { KycLevel, KycStatus, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; +import { FileSubType, FileType } from '../../dto/kyc-file.dto'; +import { DfxApprovalBlocker } from '../../dto/output/dfx-approval-status.dto'; +import { KycFile } from '../../entities/kyc-file.entity'; +import { KycStep } from '../../entities/kyc-step.entity'; +import { KycStepName } from '../../enums/kyc-step-name.enum'; +import { ReviewStatus } from '../../enums/review-status.enum'; +import { DFX_APPROVAL_REQUIRED_DOCUMENTS, DfxApprovalCheckService } from '../dfx-approval-check.service'; + +describe('DfxApprovalCheckService', () => { + const service = new DfxApprovalCheckService(); + + function eligibleInput(): { userData: ReturnType; step: KycStep; files: KycFile[] } { + const country = createCustomCountry({ + symbol: 'CH', + dfxEnable: true, + manualReviewRequired: false, + nationalityEnable: true, + enabledKycDocuments: 'PASSPORT;ID_CARD', + }); + const step = Object.assign(new KycStep(), { + id: 11, + name: KycStepName.DFX_APPROVAL, + status: ReviewStatus.MANUAL_REVIEW, + sequenceNumber: 1, + }); + const userData = createCustomUserData({ + id: 7, + accountType: AccountType.PERSONAL, + status: UserDataStatus.ACTIVE, + kycStatus: KycStatus.NA, + kycLevel: KycLevel.LEVEL_40, + verifiedName: 'Test User', + firstname: 'Test', + surname: 'User', + birthday: new Date('1990-01-01'), + mail: 'test@example.com', + kycHash: 'HASH', + complexOrgStructure: false, + highRisk: false, + pep: false, + country, + nationality: country, + identDocumentId: 'DOC-1', + identDocumentType: 'PASSPORT', + kycSteps: [step], + }); + step.userData = userData; + const files = DFX_APPROVAL_REQUIRED_DOCUMENTS.map((subType, index) => + Object.assign(new KycFile(), { id: index + 1, type: FileType.USER_NOTES, subType, valid: true }), + ); + return { userData, step, files }; + } + + it('accepts a personal onboarding only when every prerequisite and document is present', () => { + const { userData, step, files } = eligibleInput(); + + expect(service.evaluatePersonal(userData, step, files, false)).toEqual({ ready: true, blockers: [] }); + }); + + it('fails closed for unset risk data and missing documents', () => { + const { userData, step, files } = eligibleInput(); + userData.pep = undefined; + userData.highRisk = undefined; + const withoutRiskProfile = files.filter((file) => file.subType !== FileSubType.RISK_PROFILE); + + const result = service.evaluatePersonal(userData, step, withoutRiskProfile, false); + + expect(result.ready).toBe(false); + expect(result.blockers).toEqual( + expect.arrayContaining([ + { code: DfxApprovalBlocker.RISK_DATA_PENDING }, + { code: DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType: FileSubType.RISK_PROFILE }, + ]), + ); + }); + + it('never auto-approves a manual country, an open name check or a high-risk user', () => { + const { userData, step, files } = eligibleInput(); + userData.country.manualReviewRequired = true; + userData.highRisk = true; + + const result = service.evaluatePersonal(userData, step, files, true); + + expect(result.ready).toBe(false); + expect(result.blockers.map((blocker) => blocker.code)).toEqual( + expect.arrayContaining([ + DfxApprovalBlocker.COUNTRY_REQUIRES_MANUAL_REVIEW, + DfxApprovalBlocker.HIGH_RISK, + DfxApprovalBlocker.OPEN_NAME_CHECK, + ]), + ); + }); + + it('requires a completed residence permit for configured nationalities', () => { + const { userData, step, files } = eligibleInput(); + userData.kycSteps.push( + Object.assign(new KycStep(), { + name: KycStepName.RESIDENCE_PERMIT, + status: ReviewStatus.MANUAL_REVIEW, + sequenceNumber: 1, + }), + ); + + const result = service.evaluatePersonal(userData, step, files, false); + + expect(result.blockers).toContainEqual({ code: DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT }); + }); + + it('accepts a disabled nationality only after its required residence permit was completed', () => { + const { userData, step, files } = eligibleInput(); + userData.nationality.nationalityEnable = false; + userData.kycSteps.push( + Object.assign(new KycStep(), { + name: KycStepName.RESIDENCE_PERMIT, + status: ReviewStatus.COMPLETED, + sequenceNumber: 1, + }), + ); + + const result = service.evaluatePersonal(userData, step, files, false); + + expect(result.blockers).not.toContainEqual({ code: DfxApprovalBlocker.NATIONALITY_DISABLED }); + expect(result.blockers).not.toContainEqual({ code: DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT }); + }); +}); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts new file mode 100644 index 0000000000..50a03d7240 --- /dev/null +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts @@ -0,0 +1,82 @@ +import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; +import { createDefaultLanguage } from 'src/shared/models/language/__mocks__/language.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; +import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { FileSubType } from '../../dto/kyc-file.dto'; +import { KycStep } from '../../entities/kyc-step.entity'; +import { NameCheckLog, NameCheckRiskStatus } from '../../entities/name-check-log.entity'; +import { KycStepName } from '../../enums/kyc-step-name.enum'; +import { ReviewStatus } from '../../enums/review-status.enum'; +import { DfxApprovalPdfContext, DfxApprovalPdfService } from '../dfx-approval-pdf.service'; + +describe('DfxApprovalPdfService', () => { + const service = new DfxApprovalPdfService(); + const generatedAt = new Date('2026-07-31T20:00:00.000Z'); + + function context(): DfxApprovalPdfContext { + const country = createCustomCountry({ name: 'Switzerland', symbol: 'CH' }); + const financialStep = Object.assign(new KycStep(), { + name: KycStepName.FINANCIAL_DATA, + status: ReviewStatus.COMPLETED, + sequenceNumber: 1, + result: JSON.stringify([ + { key: 'occupation', value: 'employed' }, + { key: 'occupation_description', value: 'Software development' }, + { key: 'sector', value: 'it' }, + { key: 'income', value: '50k_100k' }, + { key: 'assets', value: '100k_500k' }, + { key: 'source_of_funds', value: 'employment_income' }, + { key: 'risky_business', value: 'no_risky_business' }, + ]), + }); + const userData = createCustomUserData({ + id: 42, + accountType: AccountType.PERSONAL, + firstname: 'Test', + surname: 'Person', + verifiedName: 'Test Person', + birthday: new Date('1990-01-01'), + street: 'Example Street', + houseNumber: '1', + zip: '8000', + location: 'Zurich', + country, + verifiedCountry: country, + nationality: country, + language: createDefaultLanguage(), + phone: '+41000000000', + identDocumentType: 'PASSPORT', + identDocumentId: 'TEST-DOC', + identificationType: 'Online' as never, + pep: false, + highRisk: false, + complexOrgStructure: false, + kycSteps: [financialStep], + }); + return { + userData, + steps: [financialStep], + generatedAt, + nameCheck: Object.assign(new NameCheckLog(), { + created: new Date('2026-07-31T19:00:00.000Z'), + riskStatus: NameCheckRiskStatus.NOT_SANCTIONED, + result: JSON.stringify({ total_hits: 0, found_records: [] }), + }), + }; + } + + it.each([ + [FileSubType.GWG_FILE_COVER, 1], + [FileSubType.DFX_NAME_CHECK, 1], + [FileSubType.FORM_A, 1], + [FileSubType.IDENTIFICATION_FORM, 4], + [FileSubType.CUSTOMER_PROFILE, 2], + [FileSubType.RISK_PROFILE, 3], + ])('creates a valid %s PDF with %i page(s)', async (subType, expectedPages) => { + const pdf = await service.generate(subType, context()); + const source = pdf.toString('latin1'); + + expect(source.startsWith('%PDF-')).toBe(true); + expect(source.match(/\/Type\s*\/Page\b/g)).toHaveLength(expectedPages); + }); +}); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts new file mode 100644 index 0000000000..3bdd7c3705 --- /dev/null +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -0,0 +1,149 @@ +import { createMock } from '@golevelup/ts-jest'; +import { Config, ConfigService } from 'src/config/config'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; +import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { KycLevel } from '../../../user/models/user-data/user-data.enum'; +import { FileSubType } from '../../dto/kyc-file.dto'; +import { DfxApprovalBlocker } from '../../dto/output/dfx-approval-status.dto'; +import { KycStep } from '../../entities/kyc-step.entity'; +import { KycStepName } from '../../enums/kyc-step-name.enum'; +import { ReviewStatus } from '../../enums/review-status.enum'; +import { KycStepRepository } from '../../repositories/kyc-step.repository'; +import { DfxApprovalCheckService } from '../dfx-approval-check.service'; +import { DfxApprovalDocumentService } from '../dfx-approval-document.service'; +import { DfxApprovalWorkflowService } from '../dfx-approval-workflow.service'; +import { KycNotificationService } from '../kyc-notification.service'; +import { NameCheckService } from '../name-check.service'; + +describe('DfxApprovalWorkflowService', () => { + let service: DfxApprovalWorkflowService; + let stepRepo: jest.Mocked; + let documentService: jest.Mocked; + let notificationService: jest.Mocked; + let checkService: jest.Mocked; + + function pendingStep(): KycStep { + const userData = createCustomUserData({ + id: 42, + accountType: AccountType.PERSONAL, + kycLevel: KycLevel.LEVEL_40, + kycFiles: [], + kycSteps: [], + }); + const step = Object.assign(new KycStep(), { + id: 11, + name: KycStepName.DFX_APPROVAL, + status: ReviewStatus.MANUAL_REVIEW, + sequenceNumber: 1, + userData, + }); + userData.kycSteps = [step]; + return step; + } + + beforeEach(() => { + if (!Config) new ConfigService(); + Config.kyc.dfxApprovalWorkflowEnabled = true; + stepRepo = createMock(); + documentService = createMock(); + notificationService = createMock(); + checkService = createMock(); + checkService.evaluatePersonal.mockReturnValue({ + ready: false, + blockers: [{ code: DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType: FileSubType.RISK_PROFILE }], + }); + service = new DfxApprovalWorkflowService( + stepRepo, + checkService, + documentService, + createMock(), + notificationService, + ); + }); + + afterEach(() => { + Config.kyc.dfxApprovalWorkflowEnabled = false; + }); + + it('stays inactive until the explicit cutover flag is enabled', async () => { + Config.kyc.dfxApprovalWorkflowEnabled = false; + + await service.reviewPersonalApprovals(); + + expect(stepRepo.find).not.toHaveBeenCalled(); + }); + + it('serializes every pending candidate through the cross-instance step lock', async () => { + const first = pendingStep(); + const second = pendingStep(); + second.id = 12; + stepRepo.find.mockResolvedValue([first, second]); + const lock = jest.spyOn(service as any, 'withStepLock').mockResolvedValue(undefined); + + await service.reviewPersonalApprovals(); + + expect(lock).toHaveBeenCalledTimes(2); + expect(lock).toHaveBeenNthCalledWith(1, 11, expect.any(Function)); + expect(lock).toHaveBeenNthCalledWith(2, 12, expect.any(Function)); + }); + + it('uses a blocking cross-instance lock for a manual decision', async () => { + const lock = jest.spyOn(service as any, 'withStepLock').mockResolvedValue(undefined); + + await service.applyManualDecision(11, 99, ReviewStatus.COMPLETED, '{}', undefined, { + complexOrgStructure: false, + highRisk: false, + depositLimit: 100000, + amlAccountType: 'natural person', + }); + + expect(lock).toHaveBeenCalledWith(11, expect.any(Function), true); + }); + + it('initializes risk data, creates documents and only then completes and notifies', async () => { + const step = pendingStep(); + jest.spyOn(service as any, 'loadStep').mockResolvedValue(step); + const initialize = jest.spyOn(service as any, 'initializePersonalRiskData').mockResolvedValue(undefined); + const complete = jest.spyOn(service as any, 'completeIfReady').mockResolvedValue(step.userData); + (service as any).nameCheckService.hasOpenNameChecks.mockResolvedValue(false); + + await (service as any).processPersonalApproval(step.id); + + expect(initialize.mock.invocationCallOrder[0]).toBeLessThan( + (documentService.generateMissingPersonalDocuments as jest.Mock).mock.invocationCallOrder[0], + ); + expect((documentService.generateMissingPersonalDocuments as jest.Mock).mock.invocationCallOrder[0]).toBeLessThan( + complete.mock.invocationCallOrder[0], + ); + expect(notificationService.kycChanged).toHaveBeenCalledWith(step.userData, KycLevel.LEVEL_50); + }); + + it('does not touch documents after the step has already advanced', async () => { + const step = pendingStep(); + step.status = ReviewStatus.COMPLETED; + jest.spyOn(service as any, 'loadStep').mockResolvedValue(step); + + await (service as any).processPersonalApproval(step.id); + + expect(documentService.generateMissingPersonalDocuments).not.toHaveBeenCalled(); + expect(notificationService.kycChanged).not.toHaveBeenCalled(); + }); + + it('does not generate documents while a non-document prerequisite is blocked', async () => { + const step = pendingStep(); + jest.spyOn(service as any, 'loadStep').mockResolvedValue(step); + jest.spyOn(service as any, 'initializePersonalRiskData').mockResolvedValue(undefined); + (service as any).nameCheckService.hasOpenNameChecks.mockResolvedValue(false); + checkService.evaluatePersonal.mockReturnValue({ + ready: false, + blockers: [ + { code: DfxApprovalBlocker.MISSING_BIRTHDAY }, + { code: DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType: FileSubType.RISK_PROFILE }, + ], + }); + + await (service as any).processPersonalApproval(step.id); + + expect(documentService.generateMissingPersonalDocuments).not.toHaveBeenCalled(); + }); +}); diff --git a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts new file mode 100644 index 0000000000..4eb8df34bb --- /dev/null +++ b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts @@ -0,0 +1,97 @@ +import { Injectable } from '@nestjs/common'; +import { AccountType } from '../../user/models/user-data/account-type.enum'; +import { UserData } from '../../user/models/user-data/user-data.entity'; +import { KycLevel, KycStatus, UserDataStatus } from '../../user/models/user-data/user-data.enum'; +import { IdentDocumentType } from '../dto/ident-result-data.dto'; +import { FileSubType } from '../dto/kyc-file.dto'; +import { + DfxApprovalBlocker, + DfxApprovalBlockerDto, + DfxApprovalStatusDto, +} from '../dto/output/dfx-approval-status.dto'; +import { KycFile } from '../entities/kyc-file.entity'; +import { KycStep } from '../entities/kyc-step.entity'; +import { KycStepName } from '../enums/kyc-step-name.enum'; +import { ReviewStatus } from '../enums/review-status.enum'; + +export const DFX_APPROVAL_REQUIRED_DOCUMENTS = [ + FileSubType.GWG_FILE_COVER, + FileSubType.IDENT_REPORT, + FileSubType.IDENTIFICATION_FORM, + FileSubType.CUSTOMER_PROFILE, + FileSubType.RISK_PROFILE, + FileSubType.FORM_A, + FileSubType.DFX_NAME_CHECK, + FileSubType.PERSONAL_NAME_CHECK, +] as const; + +@Injectable() +export class DfxApprovalCheckService { + evaluatePersonal( + userData: UserData, + step: KycStep, + files: KycFile[], + hasOpenNameChecks: boolean, + ): DfxApprovalStatusDto { + const blockers: DfxApprovalBlockerDto[] = []; + const add = (code: DfxApprovalBlocker, documentSubType?: FileSubType): void => { + blockers.push({ code, documentSubType }); + }; + + if (userData.accountType !== AccountType.PERSONAL) add(DfxApprovalBlocker.WRONG_ACCOUNT_TYPE); + if (step.name !== KycStepName.DFX_APPROVAL || step.status !== ReviewStatus.MANUAL_REVIEW) + add(DfxApprovalBlocker.WRONG_STEP_STATUS); + if (userData.kycLevel !== KycLevel.LEVEL_40) add(DfxApprovalBlocker.WRONG_KYC_LEVEL); + + if (!userData.verifiedName) add(DfxApprovalBlocker.MISSING_VERIFIED_NAME); + if (!userData.kycHash) add(DfxApprovalBlocker.MISSING_KYC_HASH); + if (!userData.firstname) add(DfxApprovalBlocker.MISSING_FIRST_NAME); + if (!userData.birthday) add(DfxApprovalBlocker.MISSING_BIRTHDAY); + if (!userData.mail) add(DfxApprovalBlocker.MISSING_MAIL); + if (userData.complexOrgStructure !== false) add(DfxApprovalBlocker.COMPLEX_ORGANIZATION); + + if (userData.highRisk == null || userData.pep == null) add(DfxApprovalBlocker.RISK_DATA_PENDING); + if (userData.highRisk === true) add(DfxApprovalBlocker.HIGH_RISK); + if (userData.pep === true) add(DfxApprovalBlocker.PEP); + + if (![UserDataStatus.NA, UserDataStatus.ACTIVE, UserDataStatus.KYC_ONLY].includes(userData.status)) + add(DfxApprovalBlocker.INVALID_USER_STATUS); + if (![KycStatus.NA, KycStatus.COMPLETED].includes(userData.kycStatus)) + add(DfxApprovalBlocker.INVALID_KYC_STATUS); + + const country = userData.verifiedCountry ?? userData.country; + if (!country) { + add(DfxApprovalBlocker.MISSING_COUNTRY); + } else { + if (!country.dfxEnable) add(DfxApprovalBlocker.COUNTRY_DISABLED); + if (country.manualReviewRequired) add(DfxApprovalBlocker.COUNTRY_REQUIRES_MANUAL_REVIEW); + if (country.symbol === 'BR') add(DfxApprovalBlocker.COUNTRY_EXCLUDED); + if (!userData.identDocumentType) { + add(DfxApprovalBlocker.MISSING_IDENT_DOCUMENT_TYPE); + } else if (!country.isKycDocEnabled(userData.identDocumentType as IdentDocumentType)) { + add(DfxApprovalBlocker.IDENT_DOCUMENT_TYPE_DISABLED); + } + } + + const residencePermitSteps = userData.getStepsWith(KycStepName.RESIDENCE_PERMIT); + const hasCompletedResidencePermit = residencePermitSteps.some((residencePermit) => residencePermit.isCompleted); + if (!userData.nationality) { + add(DfxApprovalBlocker.MISSING_NATIONALITY); + } else if (!userData.nationality.nationalityEnable && !hasCompletedResidencePermit) { + add(DfxApprovalBlocker.NATIONALITY_DISABLED); + } + + if (residencePermitSteps.length > 0 && !hasCompletedResidencePermit) + add(DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT); + + if (!userData.identDocumentId) add(DfxApprovalBlocker.MISSING_IDENT_DOCUMENT_ID); + if (hasOpenNameChecks) add(DfxApprovalBlocker.OPEN_NAME_CHECK); + + for (const documentSubType of DFX_APPROVAL_REQUIRED_DOCUMENTS) { + if (!files.some((file) => file.valid && file.subType === documentSubType)) + add(DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType); + } + + return { ready: blockers.length === 0, blockers }; + } +} diff --git a/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts new file mode 100644 index 0000000000..8255e184c8 --- /dev/null +++ b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts @@ -0,0 +1,62 @@ +import { Injectable } from '@nestjs/common'; +import { Util } from 'src/shared/utils/util'; +import { UserData } from '../../user/models/user-data/user-data.entity'; +import { FileSubType, FileType } from '../dto/kyc-file.dto'; +import { KycFile } from '../entities/kyc-file.entity'; +import { KycStep } from '../entities/kyc-step.entity'; +import { NameCheckLogRepository } from '../repositories/name-check-log.repository'; +import { DfxApprovalPdfService } from './dfx-approval-pdf.service'; +import { KycDocumentService } from './integration/kyc-document.service'; + +export const DFX_APPROVAL_GENERATED_DOCUMENTS = [ + FileSubType.GWG_FILE_COVER, + FileSubType.IDENTIFICATION_FORM, + FileSubType.CUSTOMER_PROFILE, + FileSubType.RISK_PROFILE, + FileSubType.FORM_A, + FileSubType.DFX_NAME_CHECK, +] as const; + +@Injectable() +export class DfxApprovalDocumentService { + constructor( + private readonly nameCheckLogRepo: NameCheckLogRepository, + private readonly pdfService: DfxApprovalPdfService, + private readonly documentService: KycDocumentService, + ) {} + + async generateMissingPersonalDocuments(userData: UserData, step: KycStep, files: KycFile[]): Promise { + const missing = DFX_APPROVAL_GENERATED_DOCUMENTS.filter( + (subType) => !files.some((file) => file.subType === subType && file.valid), + ); + if (!missing.length) return; + + const nameCheck = await this.nameCheckLogRepo.findOne({ + where: { userData: { id: userData.id } }, + order: { created: 'DESC' }, + }); + if (!nameCheck) throw new Error(`NameCheck evidence is missing for userData ${userData.id}`); + + const generatedAt = new Date(); + for (const subType of missing) { + const data = await this.pdfService.generate(subType, { + userData, + steps: userData.kycSteps, + nameCheck, + generatedAt, + }); + const version = 'v1'; + const generationKey = `dfx-approval:${step.id}:${subType}:${version}`; + const date = Util.isoDate(generatedAt).replace(/-/g, ''); + await this.documentService.ensureGeneratedUserFile( + generationKey, + userData, + FileType.USER_NOTES, + subType, + `${date}-${subType}-${userData.id}-${step.id}-${version}.pdf`, + data, + { workflow: 'DfxApproval', version, stepId: String(step.id) }, + ); + } + } +} diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts new file mode 100644 index 0000000000..430cb79597 --- /dev/null +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -0,0 +1,374 @@ +import { Injectable } from '@nestjs/common'; +import PDFDocument from 'pdfkit'; +import { PdfUtil } from 'src/shared/utils/pdf.util'; +import { Util } from 'src/shared/utils/util'; +import { UserData } from '../../user/models/user-data/user-data.entity'; +import { KycIdentificationType } from '../../user/models/user-data/kyc-identification-type.enum'; +import { KycFinancialResponse } from '../dto/input/kyc-financial-in.dto'; +import { FileSubType } from '../dto/kyc-file.dto'; +import { KycStep } from '../entities/kyc-step.entity'; +import { NameCheckLog, NameCheckRiskStatus } from '../entities/name-check-log.entity'; +import { KycStepName } from '../enums/kyc-step-name.enum'; + +type Pdf = InstanceType; +type FinancialData = Record; + +export interface DfxApprovalPdfContext { + userData: UserData; + steps: KycStep[]; + nameCheck: NameCheckLog; + generatedAt: Date; +} + +const MEMBER_NUMBER = '100919'; +const FORM_VERSION = 'DFX API v1 / 31.07.2026'; + +@Injectable() +export class DfxApprovalPdfService { + async generate(subType: FileSubType, context: DfxApprovalPdfContext): Promise { + switch (subType) { + case FileSubType.GWG_FILE_COVER: + return this.createPdf((pdf) => this.renderCover(pdf, context)); + case FileSubType.IDENTIFICATION_FORM: + return this.createPdf((pdf) => this.renderIdentificationForm(pdf, context)); + case FileSubType.CUSTOMER_PROFILE: + return this.createPdf((pdf) => this.renderCustomerProfile(pdf, context)); + case FileSubType.RISK_PROFILE: + return this.createPdf((pdf) => this.renderRiskProfile(pdf, context)); + case FileSubType.FORM_A: + return this.createPdf((pdf) => this.renderFormA(pdf, context)); + case FileSubType.DFX_NAME_CHECK: + return this.createPdf((pdf) => this.renderNameCheck(pdf, context)); + default: + throw new Error(`Unsupported DfxApproval document subtype ${subType}`); + } + } + + private createPdf(render: (pdf: Pdf) => void): Promise { + return new Promise((resolve, reject) => { + try { + const pdf = new PDFDocument({ size: 'A4', margin: 42, info: { Producer: 'DFX API' } }); + const chunks: Buffer[] = []; + pdf.on('data', (chunk) => chunks.push(chunk)); + pdf.on('end', () => resolve(Buffer.concat(chunks))); + pdf.on('error', reject); + render(pdf); + pdf.end(); + } catch (error) { + reject(error); + } + }); + } + + private renderCover(pdf: Pdf, context: DfxApprovalPdfContext): void { + this.header(pdf, 'GwG-File', context); + this.fields(pdf, [ + ['User Data ID', context.userData.id], + ['DFX Dokument Nr.', this.documentNumber(context, FileSubType.GWG_FILE_COVER)], + ['Timestamp Dokument', context.generatedAt.toISOString()], + ['Art der Gegenpartei', 'Privatperson'], + ['Kunde', context.userData.completeName], + ['Konversationspartner', context.userData.naturalPersonName], + ['Status der Geschäftsbeziehung', 'aktiv'], + ]); + this.footer(pdf); + } + + private renderNameCheck(pdf: Pdf, context: DfxApprovalPdfContext): void { + this.header(pdf, 'NameCheck Sanktions- und PEP-Prüfung', context); + this.fields(pdf, [ + ['User Data ID', context.userData.id], + ['DFX Dokument Nr.', this.documentNumber(context, FileSubType.DFX_NAME_CHECK)], + ['Timestamp Dokument', context.generatedAt.toISOString()], + ['Art der Gegenpartei', 'Privatperson'], + ['Kunde', context.userData.completeName], + ]); + this.section(pdf, 'Prüfnachweis'); + this.fields(pdf, [ + ['Prüfung durchgeführt mit', 'dilisense.com API'], + ['Timestamp API-Abfrage', context.nameCheck.created?.toISOString()], + ['Ergebnis', this.nameCheckResult(context.nameCheck)], + ['Risikobewertung', context.nameCheck.riskStatus], + ['RAW-Datei Original', context.nameCheck.result], + ]); + this.footer(pdf); + } + + private renderFormA(pdf: Pdf, context: DfxApprovalPdfContext): void { + this.header(pdf, 'Feststellung des wirtschaftlich Berechtigten (A)', context); + this.fields(pdf, [ + ['Vertragspartner', context.userData.completeName], + ['Name(n)', context.userData.surname], + ['Vorname(n)', context.userData.firstname], + ['Geburtsdatum', this.date(context.userData.birthday)], + ['Nationalität', context.userData.nationality?.name], + ['Effektive Wohnadresse', this.address(context.userData)], + ]); + this.paragraph( + pdf, + 'Der Vertragspartner erklärt, dass er selbst allein an den in die Geschäftsbeziehung eingebrachten Vermögenswerten wirtschaftlich berechtigt ist. Änderungen sind DFX unaufgefordert mitzuteilen.', + ); + this.section(pdf, 'Bestätigung'); + this.fields(pdf, [ + ['Bestätigt durch', 'Onboarding mit TAN-Verfahren'], + ['Zeitpunkt', context.generatedAt.toISOString()], + ['Datengrundlage', 'KYC-Schritte und unveränderbar gespeicherte Nachweise'], + ]); + this.paragraph( + pdf, + 'Die vorsätzliche Angabe falscher Informationen kann eine strafbare Handlung darstellen. VQF Dok. Nr. 902.9; DFX-Fassung vom 1. Dezember 2023.', + ); + this.footer(pdf); + } + + private renderIdentificationForm(pdf: Pdf, context: DfxApprovalPdfContext): void { + this.header(pdf, 'Identifizierungsformular', context); + this.section(pdf, '1. Angaben zur Vertragspartei'); + this.fields(pdf, [ + ['Vorname/Nachname', context.userData.naturalPersonName], + ['Wohnsitzadresse', this.address(context.userData)], + ['Telefon', context.userData.phone], + ['Mail', context.userData.mail], + ['Geburtsdatum', this.date(context.userData.birthday)], + ['Staatsangehörigkeit', context.userData.nationality?.name], + ['Identifizierungsdokument', context.userData.identDocumentType], + ['Dokumentnummer', context.userData.identDocumentId], + ['Kopie im Anhang', 'Ja'], + ]); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); + + pdf.addPage(); + this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); + this.section(pdf, '2. Eröffner für juristische Personen'); + this.paragraph(pdf, 'Nicht anwendbar: Die Vertragspartei ist eine natürliche Person.'); + this.section(pdf, '3. Aufnahme der Geschäftsbeziehung'); + this.fields(pdf, [ + ['Datum (Vertragsschluss)', this.date(context.generatedAt)], + ['Aufnahme durch', this.identificationMethod(context.userData.identificationType)], + ['Art der Korrespondenzzustellung', 'elektronisch'], + ['Sprache', context.userData.language?.name], + ]); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); + + pdf.addPage(); + this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); + this.section(pdf, '4. Wirtschaftlich berechtigte Person / Kontrollinhaber'); + this.check(pdf, true, 'Natürliche Person; wirtschaftliche Berechtigung bei der Vertragspartei selbst'); + this.check(pdf, false, 'Juristische Person oder Personengesellschaft'); + this.section(pdf, '5. Embargomassnahmen / Terrorismuslisten'); + this.paragraph( + pdf, + `Die Vertragspartei wurde über die Dilisense-Sanktions- und PEP-Prüfung geprüft. Ergebnis: ${this.nameCheckResult(context.nameCheck)}. Der Einzelnachweis ist als DfxNameCheck und PersonalNameCheck gespeichert.`, + ); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); + + pdf.addPage(); + this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); + this.section(pdf, '6. Art und Zweck der Geschäftsbeziehung'); + this.check(pdf, true, 'Geldwechsel'); + this.check(pdf, true, 'Geldwechsel von Fiat-Währungen zu digitalen Vermögenswerten'); + this.check(pdf, true, 'Geldwechsel zwischen digitalen Vermögenswerten'); + this.section(pdf, '7. Beilagen'); + for (const label of [ + 'Identifizierungsdokument', + 'Feststellung des wirtschaftlich Berechtigten (Formular A)', + 'Kundenprofil', + 'Risikoprofil', + 'NameCheck-Nachweise', + ]) + this.check(pdf, true, label); + this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Formular zu aktualisieren.'); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); + } + + private renderCustomerProfile(pdf: Pdf, context: DfxApprovalPdfContext): void { + const financial = this.financialData(context.steps); + this.header(pdf, 'Kundenprofil', context); + this.paragraph(pdf, 'Für dauernde Geschäftsbeziehungen und Stammkunden.'); + this.fields(pdf, [ + ['Vertragspartei', context.userData.completeName], + ['Beruf / geschäftliche Aktivität', financial.occupation], + ['Beschreibung Arbeitgeber / Tätigkeit', financial.occupation_description], + ['Branche', financial.sector], + ['Jährliches Einkommen', financial.income], + ['Vermögen', financial.assets], + ['Herkunft der Vermögenswerte', financial.source_of_funds], + ['Geplantes Handelsvolumen in CHF', financial.income], + ]); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.5'); + + pdf.addPage(); + this.pageTitle(pdf, 'Kundenprofil – Fortsetzung'); + this.section(pdf, 'Art und Zweck der Geschäftsbeziehung'); + this.check(pdf, true, 'Geldwechsel'); + this.check(pdf, true, 'Geldwechsel von Fiat-Währungen zu digitalen Vermögenswerten'); + this.check(pdf, true, 'Geldwechsel zwischen digitalen Vermögenswerten'); + this.fields(pdf, [ + ['Entwicklung der Geschäftsbeziehung', 'Wachstum und weitere Investitionen nach Marktsituation'], + ['Beziehung zu Dritten', 'Keine Angaben / keine Drittpartei aus den Onboarding-Daten'], + ['Weitere Informationen', financial.risky_business], + ]); + this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Kundenprofil zu aktualisieren.'); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.5'); + } + + private renderRiskProfile(pdf: Pdf, context: DfxApprovalPdfContext): void { + this.header(pdf, 'Risikoprofil GwG', context); + this.paragraph( + pdf, + 'Ermittlung von Geschäftsbeziehungen mit erhöhtem Risiko und Festlegung von Kriterien zur Transaktionsüberwachung.', + ); + this.section(pdf, '1. Politisch exponierte Personen (PEP)'); + this.check(pdf, context.userData.pep === false, 'Kein PEP-Hinweis'); + this.check(pdf, context.userData.pep === true, 'PEP-Hinweis vorhanden – automatische Freigabe unzulässig'); + this.fields(pdf, [['NameCheck-Nachweis', this.nameCheckResult(context.nameCheck)]]); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); + + pdf.addPage(); + this.pageTitle(pdf, 'Risikoprofil GwG – Fortsetzung'); + this.section(pdf, '2. High-Risk- oder nicht kooperatives Land'); + this.check(pdf, context.userData.highRisk === false, 'Kein High-Risk-Merkmal in den Onboarding-Daten'); + this.check(pdf, context.userData.highRisk === true, 'High-Risk-Merkmal vorhanden'); + this.fields(pdf, [ + ['Wohnsitzland', context.userData.country?.name], + ['Verifiziertes Land', context.userData.verifiedCountry?.name], + ['Nationalität', context.userData.nationality?.name], + ]); + this.section(pdf, '3. Komplexe Struktur'); + this.check(pdf, context.userData.complexOrgStructure === false, 'Keine komplexe Organisationsstruktur'); + this.section(pdf, '4. Herkunft der Vermögenswerte'); + this.fields(pdf, Object.entries(this.financialData(context.steps))); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); + + pdf.addPage(); + this.pageTitle(pdf, 'Risikoprofil GwG – Fortsetzung'); + this.section(pdf, '5. DFX-eigene Kriterien'); + this.paragraph( + pdf, + 'Eine Blockchain-Analyse wird nicht pauschal als bestanden bescheinigt. Adressen und Transaktionen werden in den dafür vorgesehenen AML-Prozessen geprüft; deren Einzelnachweise bleiben separat erhalten.', + ); + this.section(pdf, 'Gesamtbewertung'); + this.check(pdf, context.userData.highRisk === false, 'Geschäftsbeziehung ohne erhöhtes Onboarding-Risiko'); + this.check(pdf, context.userData.highRisk === true, 'Geschäftsbeziehung mit erhöhtem Risiko'); + this.section(pdf, '6. Transaktionsüberwachung'); + this.paragraph( + pdf, + 'Reglementarische Schwellen, Länder- und Sanktionsrisiken sowie auffällige Transaktionsmuster werden durch die laufenden AML-Prüfungen bewertet. Dieses Dokument ersetzt keinen transaktionsbezogenen Prüfnachweis.', + ); + this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Risikoprofil zu aktualisieren.'); + this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); + } + + private header(pdf: Pdf, title: string, context: DfxApprovalPdfContext): void { + PdfUtil.drawLogo(pdf); + pdf.moveDown(2.2).font('Helvetica-Bold').fontSize(19).fillColor('#072440').text(title); + pdf.moveDown(0.7); + this.fields(pdf, [ + ['VQF Mitglied Nr.', MEMBER_NUMBER], + ['User Id.', context.userData.id], + ['Erstellt', context.generatedAt.toISOString()], + ]); + } + + private pageTitle(pdf: Pdf, title: string): void { + pdf.font('Helvetica-Bold').fontSize(16).fillColor('#072440').text(title).moveDown(1); + } + + private section(pdf: Pdf, title: string): void { + if (pdf.y > 720) pdf.addPage(); + pdf.moveDown(0.7).font('Helvetica-Bold').fontSize(12).fillColor('#072440').text(title).moveDown(0.35); + } + + private fields(pdf: Pdf, rows: [string, unknown][]): void { + for (const [label, rawValue] of rows) { + const value = rawValue == null || rawValue === '' ? '–' : String(rawValue); + if (pdf.y > 755) pdf.addPage(); + const y = pdf.y; + pdf.font('Helvetica').fontSize(8.5).fillColor('#333333').text(label, 42, y, { width: 170 }); + pdf.font('Helvetica-Bold').fillColor('#0824d8').text(value, 215, y, { width: 335 }); + pdf.y = Math.max(pdf.y, y + 17); + pdf + .moveTo(42, pdf.y - 3) + .lineTo(553, pdf.y - 3) + .lineWidth(0.3) + .stroke('#999999'); + } + } + + private paragraph(pdf: Pdf, text: string): void { + if (pdf.y > 700) pdf.addPage(); + pdf.moveDown(0.5).font('Helvetica').fontSize(9).fillColor('#222222').text(text, { align: 'left' }).moveDown(0.5); + } + + private check(pdf: Pdf, checked: boolean, label: string): void { + if (pdf.y > 755) pdf.addPage(); + const y = pdf.y; + pdf.rect(44, y, 10, 10).lineWidth(1).stroke('#0824d8'); + if (checked) + pdf + .font('Helvetica-Bold') + .fontSize(10) + .fillColor('#0824d8') + .text('X', 45, y - 1); + pdf.font('Helvetica').fontSize(9).fillColor('#222222').text(label, 62, y, { width: 485 }); + pdf.y = Math.max(pdf.y, y + 17); + } + + private formMeta(pdf: Pdf, context: DfxApprovalPdfContext, source: string): void { + this.section(pdf, 'Dokumentation'); + this.fields(pdf, [ + ['Ausgefüllt / aktualisiert von', 'DFX API (automatisierter, regelgebundener Workflow)'], + ['Zeitpunkt', context.generatedAt.toISOString()], + ['Vorlage / Grundlage', `${source}; ${FORM_VERSION}`], + ]); + this.footer(pdf); + } + + private footer(pdf: Pdf): void { + pdf.font('Helvetica').fontSize(7).fillColor('#777777').text(FORM_VERSION, 42, 790, { width: 511 }); + } + + private financialData(steps: KycStep[]): FinancialData { + const financialStep = steps + .filter((step) => step.name === KycStepName.FINANCIAL_DATA && step.isCompleted) + .sort((a, b) => b.sequenceNumber - a.sequenceNumber)[0]; + if (!financialStep?.result) throw new Error('Completed FinancialData result is missing'); + + let responses: KycFinancialResponse[]; + try { + responses = JSON.parse(financialStep.result) as KycFinancialResponse[]; + } catch (error) { + throw new Error(`FinancialData result is invalid JSON: ${(error as Error).message}`); + } + if (!Array.isArray(responses) || responses.some((response) => !response?.key || !response?.value)) + throw new Error('FinancialData result has an invalid structure'); + + return Object.fromEntries(responses.map((response) => [response.key, response.value])); + } + + private nameCheckResult(nameCheck: NameCheckLog): string { + return nameCheck.riskStatus === NameCheckRiskStatus.NOT_SANCTIONED + ? 'keine Treffer gefunden' + : `Treffer vorhanden; Bewertung ${nameCheck.riskEvaluation ?? 'offen'}`; + } + + private documentNumber(context: DfxApprovalPdfContext, subType: FileSubType): string { + return `${Util.isoDate(context.generatedAt).replace(/-/g, '')}-${subType}-${context.userData.id}`; + } + + private address(userData: UserData): string { + return [userData.street, userData.houseNumber, userData.zip, userData.location, userData.country?.name] + .filter(Boolean) + .join(', '); + } + + private date(value?: Date): string { + return value ? Util.localeDataString(value, 'DE') : '–'; + } + + private identificationMethod(type?: string): string { + if (type === KycIdentificationType.VIDEO_ID) return 'Online-Registrierung mittels Video-Identifikation'; + if (type === KycIdentificationType.MANUAL) return 'Persönliche / manuelle Identifikation'; + return 'Online-Registrierung mittels Online-Identifikation'; + } +} diff --git a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts new file mode 100644 index 0000000000..baee44b399 --- /dev/null +++ b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts @@ -0,0 +1,370 @@ +import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common'; +import { CronExpression } from '@nestjs/schedule'; +import { Config } from 'src/config/config'; +import { DfxLogger } from 'src/shared/services/dfx-logger'; +import { Process } from 'src/shared/services/process.service'; +import { DfxCron } from 'src/shared/utils/cron'; +import { EntityManager, IsNull } from 'typeorm'; +import { AccountType } from '../../user/models/user-data/account-type.enum'; +import { UserData } from '../../user/models/user-data/user-data.entity'; +import { KycLevel, KycStatus } from '../../user/models/user-data/user-data.enum'; +import { DfxApprovalBlocker, DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; +import { KycLog } from '../entities/kyc-log.entity'; +import { KycStep } from '../entities/kyc-step.entity'; +import { NameCheckLog, NameCheckRiskStatus } from '../entities/name-check-log.entity'; +import { StepLog } from '../entities/step-log.entity'; +import { KycStepName } from '../enums/kyc-step-name.enum'; +import { KycLogType } from '../enums/kyc.enum'; +import { ReviewStatus } from '../enums/review-status.enum'; +import { KycStepRepository } from '../repositories/kyc-step.repository'; +import { DFX_APPROVAL_REQUIRED_DOCUMENTS, DfxApprovalCheckService } from './dfx-approval-check.service'; +import { DfxApprovalDocumentService } from './dfx-approval-document.service'; +import { KycNotificationService } from './kyc-notification.service'; +import { NameCheckService } from './name-check.service'; + +const ADVISORY_LOCK_NAMESPACE = 1145466968; + +@Injectable() +export class DfxApprovalWorkflowService { + private readonly logger = new DfxLogger(DfxApprovalWorkflowService); + + constructor( + private readonly kycStepRepo: KycStepRepository, + private readonly checkService: DfxApprovalCheckService, + private readonly documentService: DfxApprovalDocumentService, + private readonly nameCheckService: NameCheckService, + private readonly notificationService: KycNotificationService, + ) {} + + @DfxCron(CronExpression.EVERY_MINUTE, { process: Process.KYC_DFX_APPROVAL, timeout: 900 }) + async reviewPersonalApprovals(): Promise { + if (!Config.kyc.dfxApprovalWorkflowEnabled) return; + + const steps = await this.kycStepRepo.find({ + where: { + name: KycStepName.DFX_APPROVAL, + status: ReviewStatus.MANUAL_REVIEW, + userData: { accountType: AccountType.PERSONAL, kycLevel: KycLevel.LEVEL_40 }, + }, + order: { created: 'ASC' }, + take: 50, + }); + + for (const step of steps) { + try { + await this.withStepLock(step.id, () => this.processPersonalApproval(step.id)); + } catch (error) { + this.logger.error(`DfxApproval workflow failed for step ${step.id}:`, error); + } + } + } + + async getStatus(stepId: number): Promise { + const step = await this.loadStep(stepId); + const hasOpenNameChecks = await this.nameCheckService.hasOpenNameChecks(step.userData); + return this.checkService.evaluatePersonal(step.userData, step, step.userData.kycFiles, hasOpenNameChecks); + } + + async applyManualDecision( + stepId: number, + actorUserDataId: number, + status: ReviewStatus.COMPLETED | ReviewStatus.FAILED, + result: string, + comment: string | undefined, + userDataUpdate: Pick, + ): Promise { + await this.withStepLock( + stepId, + () => this.applyManualDecisionTransaction(stepId, actorUserDataId, status, result, comment, userDataUpdate), + true, + ); + } + + private async applyManualDecisionTransaction( + stepId: number, + actorUserDataId: number, + status: ReviewStatus.COMPLETED | ReviewStatus.FAILED, + result: string, + comment: string | undefined, + userDataUpdate: Pick, + ): Promise { + const completedUser = await this.kycStepRepo.manager.transaction(async (manager) => { + const step = await manager.findOne(KycStep, { + where: { id: stepId }, + lock: { mode: 'pessimistic_write' }, + }); + if (!step || step.name !== KycStepName.DFX_APPROVAL) throw new NotFoundException('DfxApproval step not found'); + if (step.status !== ReviewStatus.MANUAL_REVIEW) + throw new BadRequestException(`DfxApproval step is not in ${ReviewStatus.MANUAL_REVIEW}`); + + const userData = await this.loadUserData(manager, step.userData.id); + if (status === ReviewStatus.COMPLETED) { + const missingDocuments = DFX_APPROVAL_REQUIRED_DOCUMENTS.filter( + (subType) => !userData.kycFiles.some((file) => file.valid && file.subType === subType), + ); + if (missingDocuments.length) + throw new BadRequestException(`Required DfxApproval documents are missing: ${missingDocuments.join(', ')}`); + + const hasOpenNameChecks = await manager.exists(NameCheckLog, { + where: { + userData: { id: userData.id }, + riskEvaluation: IsNull(), + riskStatus: NameCheckRiskStatus.SANCTIONED, + }, + }); + if (hasOpenNameChecks) throw new BadRequestException('Open sanctioned name check'); + } + + const before = { + stepStatus: step.status, + kycLevel: userData.kycLevel, + kycStatus: userData.kycStatus, + complexOrgStructure: userData.complexOrgStructure, + highRisk: userData.highRisk, + depositLimit: userData.depositLimit, + amlAccountType: userData.amlAccountType, + }; + const userStatusUpdate = + status === ReviewStatus.COMPLETED + ? { ...userDataUpdate, kycLevel: KycLevel.LEVEL_50, kycStatus: KycStatus.COMPLETED } + : userDataUpdate; + + await manager.save( + manager.create(KycLog, { + type: KycLogType.MANUAL, + userData: { id: userData.id }, + result: JSON.stringify({ + workflow: 'DfxApproval', + action: 'ManualDecision', + actorUserDataId, + before, + after: { ...userStatusUpdate, stepStatus: status }, + }), + }), + ); + await manager.update(UserData, userData.id, userStatusUpdate); + await manager.update(KycStep, step.id, { status, result, comment: comment ?? null }); + await manager.save( + manager.create(StepLog, { + type: KycLogType.STEP, + userData: { id: userData.id }, + kycStep: { id: step.id }, + status, + result, + }), + ); + if (status === ReviewStatus.COMPLETED) + await manager.save( + manager.create(KycLog, { + type: KycLogType.KYC, + userData: { id: userData.id }, + result: `KycLevel changed to ${KycLevel.LEVEL_50} by DfxApproval manual workflow`, + }), + ); + + Object.assign(userData, userStatusUpdate); + return status === ReviewStatus.COMPLETED ? userData : undefined; + }); + + if (completedUser) await this.notificationService.kycChanged(completedUser, KycLevel.LEVEL_50); + } + + private async processPersonalApproval(stepId: number): Promise { + let step = await this.loadStep(stepId); + if (step.status !== ReviewStatus.MANUAL_REVIEW || step.userData.kycLevel !== KycLevel.LEVEL_40) return; + + const hasOpenNameChecks = await this.nameCheckService.hasOpenNameChecks(step.userData); + await this.initializePersonalRiskData(step.userData, hasOpenNameChecks); + + step = await this.loadStep(stepId); + const preflight = this.checkService.evaluatePersonal( + step.userData, + step, + step.userData.kycFiles, + hasOpenNameChecks, + ); + if (preflight.blockers.some((blocker) => blocker.code !== DfxApprovalBlocker.MISSING_DOCUMENT)) return; + + await this.documentService.generateMissingPersonalDocuments(step.userData, step, step.userData.kycFiles); + + const completedUser = await this.completeIfReady(stepId); + if (completedUser) await this.notificationService.kycChanged(completedUser, KycLevel.LEVEL_50); + } + + private async initializePersonalRiskData(userData: UserData, hasOpenNameChecks: boolean): Promise { + if (!userData.hasValidNameCheckDate || hasOpenNameChecks) return; + + const update: Partial = {}; + if (userData.pep == null) update.pep = false; + if (userData.highRisk == null) update.highRisk = false; + if (userData.complexOrgStructure == null) update.complexOrgStructure = false; + if (userData.depositLimit == null) update.depositLimit = 100000; + if (userData.amlAccountType == null) update.amlAccountType = 'natural person'; + if (!Object.keys(update).length) return; + + await this.kycStepRepo.manager.transaction(async (manager) => { + const current = await manager.findOne(UserData, { + where: { id: userData.id }, + lock: { mode: 'pessimistic_write' }, + }); + if (!current) throw new NotFoundException('UserData not found'); + + const effectiveUpdate = Object.fromEntries( + Object.entries(update).filter(([key]) => current[key as keyof UserData] == null), + ) as Partial; + if (!Object.keys(effectiveUpdate).length) return; + + await manager.save( + manager.create(KycLog, { + type: KycLogType.KYC, + userData: { id: current.id }, + result: JSON.stringify({ + workflow: 'DfxApproval', + action: 'InitializePersonalRiskData', + before: Object.fromEntries( + Object.keys(effectiveUpdate).map((key) => [key, current[key as keyof UserData]]), + ), + after: effectiveUpdate, + }), + }), + ); + await manager.update(UserData, current.id, effectiveUpdate); + }); + } + + private async completeIfReady(stepId: number): Promise { + return this.kycStepRepo.manager.transaction(async (manager) => { + const step = await manager.findOne(KycStep, { + where: { id: stepId }, + lock: { mode: 'pessimistic_write' }, + }); + if (!step || step.status !== ReviewStatus.MANUAL_REVIEW) return undefined; + + const userData = await this.loadUserData(manager, step.userData.id); + step.userData = userData; + const hasOpenNameChecks = await manager.exists(NameCheckLog, { + where: { + userData: { id: userData.id }, + riskEvaluation: IsNull(), + riskStatus: NameCheckRiskStatus.SANCTIONED, + }, + }); + const status = this.checkService.evaluatePersonal(userData, step, userData.kycFiles, hasOpenNameChecks); + if (!status.ready) return undefined; + + const result = JSON.stringify({ + workflow: 'DfxApproval', + mode: 'Automatic', + version: 'v1', + completedAt: new Date().toISOString(), + complianceReview: { + complexOrgStructure: 'Nein', + highRisk: 'Nein', + depositLimit: String(userData.depositLimit), + amlAccountType: userData.amlAccountType, + processedBy: 'DFX API', + finalDecision: 'Akzeptiert', + }, + }); + + await manager.save( + manager.create(KycLog, { + type: KycLogType.KYC, + userData: { id: userData.id }, + result: JSON.stringify({ + workflow: 'DfxApproval', + action: 'AutomaticApproval', + before: { stepStatus: step.status, kycLevel: userData.kycLevel, kycStatus: userData.kycStatus }, + after: { + stepStatus: ReviewStatus.COMPLETED, + kycLevel: KycLevel.LEVEL_50, + kycStatus: KycStatus.COMPLETED, + }, + }), + }), + ); + await manager.update(KycStep, step.id, { status: ReviewStatus.COMPLETED, result, comment: null }); + await manager.save( + manager.create(StepLog, { + type: KycLogType.STEP, + userData: { id: userData.id }, + kycStep: { id: step.id }, + status: ReviewStatus.COMPLETED, + result, + }), + ); + await manager.update(UserData, userData.id, { + kycLevel: KycLevel.LEVEL_50, + kycStatus: KycStatus.COMPLETED, + }); + await manager.save( + manager.create(KycLog, { + type: KycLogType.KYC, + userData: { id: userData.id }, + result: `KycLevel changed to ${KycLevel.LEVEL_50} by DfxApproval API workflow`, + }), + ); + + Object.assign(userData, { kycLevel: KycLevel.LEVEL_50, kycStatus: KycStatus.COMPLETED }); + return userData; + }); + } + + private async loadStep(stepId: number): Promise { + const step = await this.kycStepRepo.findOne({ + where: { id: stepId }, + relations: { + userData: { + country: true, + verifiedCountry: true, + nationality: true, + language: true, + wallet: true, + kycSteps: true, + kycFiles: true, + }, + }, + }); + if (!step) throw new NotFoundException('DfxApproval step not found'); + return step; + } + + private async loadUserData(manager: EntityManager, userDataId: number): Promise { + const userData = await manager.findOne(UserData, { + where: { id: userDataId }, + relations: { + country: true, + verifiedCountry: true, + nationality: true, + language: true, + wallet: true, + kycSteps: true, + kycFiles: true, + }, + }); + if (!userData) throw new NotFoundException('UserData not found'); + return userData; + } + + private async withStepLock(stepId: number, action: () => Promise, wait = false): Promise { + const runner = this.kycStepRepo.manager.connection.createQueryRunner(); + await runner.connect(); + let acquired = false; + try { + if (wait) { + await runner.query('SELECT pg_advisory_lock($1, $2)', [ADVISORY_LOCK_NAMESPACE, stepId]); + acquired = true; + } else { + const rows = (await runner.query('SELECT pg_try_advisory_lock($1, $2) AS acquired', [ + ADVISORY_LOCK_NAMESPACE, + stepId, + ])) as { acquired: boolean }[]; + acquired = rows[0]?.acquired === true; + } + if (acquired) await action(); + } finally { + if (acquired) await runner.query('SELECT pg_advisory_unlock($1, $2)', [ADVISORY_LOCK_NAMESPACE, stepId]); + await runner.release(); + } + } +} diff --git a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts index 77f8b25e0e..200f200c20 100644 --- a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts +++ b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts @@ -2,17 +2,20 @@ // spy and no real S3/Azure/mock storage is touched. const uploadWormBlobMock = jest.fn(); const copyBlobsMock = jest.fn(); +const getBlobMock = jest.fn(); jest.mock('src/integration/infrastructure/storage/storage.factory', () => ({ createStorageService: jest.fn(() => ({ uploadWormBlob: (...args: any[]) => uploadWormBlobMock(...args), copyBlobs: (...args: any[]) => copyBlobsMock(...args), + getBlob: (...args: any[]) => getBlobMock(...args), + blobUrl: (name: string) => `https://storage/${name}`, })), })); import { createMock } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { UserData } from 'src/subdomains/generic/user/models/user-data/user-data.entity'; -import { FileType } from '../../../dto/kyc-file.dto'; +import { FileSubType, FileType } from '../../../dto/kyc-file.dto'; import { KycFile } from '../../../entities/kyc-file.entity'; import { ContentType } from '../../../enums/content-type.enum'; import { KycFileService } from '../../kyc-file.service'; @@ -65,6 +68,86 @@ describe('KycDocumentService - storage', () => { expect(uploadWormBlobMock).not.toHaveBeenCalled(); }); + describe('ensureGeneratedUserFile', () => { + it('stores an invalid row and marks it valid only after the WORM upload succeeds', async () => { + const generated = Object.assign(new KycFile(), { id: 17, name: 'generated.pdf', valid: false }); + (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(null); + (kycFileService.createKycFile as jest.Mock).mockResolvedValue(generated); + + await service.ensureGeneratedUserFile( + 'dfx-approval:11:RiskProfile:v1', + userData, + FileType.USER_NOTES, + FileSubType.RISK_PROFILE, + generated.name, + Buffer.from('pdf'), + ); + + expect(kycFileService.createKycFile).toHaveBeenCalledWith( + expect.objectContaining({ generationKey: 'dfx-approval:11:RiskProfile:v1', valid: false }), + ); + expect(uploadWormBlobMock).toHaveBeenCalled(); + expect(kycFileService.markValid).toHaveBeenCalledWith(generated); + }); + + it('verifies and reuses an already valid generated document', async () => { + const generated = Object.assign(new KycFile(), { id: 17, name: 'generated.pdf', valid: true }); + (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(generated); + getBlobMock.mockResolvedValue({ data: Buffer.from('pdf') }); + + await service.ensureGeneratedUserFile( + 'dfx-approval:11:RiskProfile:v1', + userData, + FileType.USER_NOTES, + FileSubType.RISK_PROFILE, + generated.name, + Buffer.from('pdf'), + ); + + expect(getBlobMock).toHaveBeenCalled(); + expect(uploadWormBlobMock).not.toHaveBeenCalled(); + expect(kycFileService.markValid).not.toHaveBeenCalled(); + }); + + it('continues with the winning row when two workers create the same generation key', async () => { + const generated = Object.assign(new KycFile(), { id: 18, name: 'generated.pdf', valid: false }); + (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValueOnce(null).mockResolvedValueOnce(generated); + (kycFileService.createKycFile as jest.Mock).mockRejectedValue({ + driverError: { code: '23505', constraint: 'IDX_dfx_kyc_file_generation_key' }, + }); + + await service.ensureGeneratedUserFile( + 'dfx-approval:11:RiskProfile:v1', + userData, + FileType.USER_NOTES, + FileSubType.RISK_PROFILE, + generated.name, + Buffer.from('pdf'), + ); + + expect(kycFileService.getByGenerationKey).toHaveBeenCalledTimes(2); + expect(uploadWormBlobMock).toHaveBeenCalled(); + expect(kycFileService.markValid).toHaveBeenCalledWith(generated); + }); + + it('does not hide unrelated database errors', async () => { + const error = { driverError: { code: '23505', constraint: 'some_other_constraint' } }; + (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(null); + (kycFileService.createKycFile as jest.Mock).mockRejectedValue(error); + + await expect( + service.ensureGeneratedUserFile( + 'dfx-approval:11:RiskProfile:v1', + userData, + FileType.USER_NOTES, + FileSubType.RISK_PROFILE, + 'generated.pdf', + Buffer.from('pdf'), + ), + ).rejects.toBe(error); + }); + }); + describe('copyFiles', () => { it('copies each target key from all three prefixes', async () => { const targetKey = 'user/99/Identification/passport.pdf'; diff --git a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts index 8a18cbb4f7..a6b54dcf27 100644 --- a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts +++ b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts @@ -118,6 +118,47 @@ export class KycDocumentService { return { file, url }; } + async ensureGeneratedUserFile( + generationKey: string, + userData: UserData, + type: FileType, + subType: FileSubType, + name: string, + data: Buffer, + metadata?: Record, + ): Promise<{ file: KycFile; url: string }> { + let file = await this.kycFileService.getByGenerationKey(generationKey); + if (file?.valid) { + const blobName = this.toFileId(FileCategory.USER, userData.id, type, file.name); + await this.storageService.getBlob(blobName); + return { file, url: this.storageService.blobUrl(blobName) }; + } + + if (!file) { + try { + file = await this.kycFileService.createKycFile({ + generationKey, + name, + type, + subType, + protected: true, + valid: false, + userData, + }); + } catch (error) { + if (!this.isGenerationKeyConflict(error)) throw error; + file = await this.kycFileService.getByGenerationKey(generationKey); + if (!file) throw error; + } + } + + const blobName = this.toFileId(FileCategory.USER, userData.id, type, file.name); + const url = await this.storageService.uploadWormBlob(blobName, data, ContentType.PDF, metadata); + await this.kycFileService.markValid(file); + + return { file, url }; + } + async downloadFile(category: FileCategory, userDataId: number, type: FileType, name: string): Promise { return this.storageService.getBlob(this.toFileId(category, userDataId, type, name)); } @@ -144,4 +185,11 @@ export class KycDocumentService { private isPermittedFileType(fileType: ContentType): boolean { return [ContentType.PNG, ContentType.JPEG, ContentType.JPG, ContentType.PDF].includes(fileType); } + + private isGenerationKeyConflict(error: unknown): boolean { + const candidate = error as { code?: string; driverError?: { code?: string; constraint?: string } }; + const code = candidate.driverError?.code ?? candidate.code; + const constraint = candidate.driverError?.constraint; + return code === '23505' && (!constraint || constraint === 'IDX_dfx_kyc_file_generation_key'); + } } diff --git a/src/subdomains/generic/kyc/services/kyc-file.service.ts b/src/subdomains/generic/kyc/services/kyc-file.service.ts index 8baa3ff0f4..cb50a72e27 100644 --- a/src/subdomains/generic/kyc/services/kyc-file.service.ts +++ b/src/subdomains/generic/kyc/services/kyc-file.service.ts @@ -30,6 +30,16 @@ export class KycFileService { }); } + async getByGenerationKey(generationKey: string): Promise { + return this.kycFileRepository.findOne({ where: { generationKey } }); + } + + async markValid(file: KycFile): Promise { + await this.kycFileRepository.update(file.id, { valid: true }); + file.valid = true; + this.kycFileRepository.invalidateCache(); + } + async getUserDataKycFiles(userDataId: number, relations: FindOptionsRelations = {}): Promise { return this.kycFileRepository.findCached(`userData-${userDataId}-${JSON.stringify(relations)}`, { where: { userData: { id: userDataId } }, diff --git a/src/subdomains/generic/support/__tests__/support.controller.spec.ts b/src/subdomains/generic/support/__tests__/support.controller.spec.ts index ce3e06238d..d3bc0622ad 100644 --- a/src/subdomains/generic/support/__tests__/support.controller.spec.ts +++ b/src/subdomains/generic/support/__tests__/support.controller.spec.ts @@ -1,6 +1,8 @@ import { createMock } from '@golevelup/ts-jest'; import { Test } from '@nestjs/testing'; +import { JwtPayload } from 'src/shared/auth/jwt-payload.interface'; import { TestUtil } from 'src/shared/utils/test.util'; +import { ComplianceDecision } from '../dto/onboarding-pdf.dto'; import { RecommendationGraph } from '../dto/user-data-support.dto'; import { SupportIssueTemplateService } from '../services/support-issue-template.service'; import { SupportNoteService } from '../services/support-note.service'; @@ -64,4 +66,16 @@ describe('SupportController', () => { expect(result).toBe(graph); }); }); + + it('passes the authenticated actor to the atomic personal DfxApproval endpoint', async () => { + const dto = { stepId: 11, finalDecision: ComplianceDecision.ACCEPTED, processedBy: 'Compliance Test' }; + const response = { pdfData: 'cGRm', fileName: 'onboarding.pdf' }; + const spy = jest.spyOn(supportService, 'decidePersonalDfxApproval').mockResolvedValue(response); + + await expect(controller.decidePersonalDfxApproval({ account: 99 } as JwtPayload, '42', dto)).resolves.toBe( + response, + ); + + expect(spy).toHaveBeenCalledWith(42, 99, dto); + }); }); diff --git a/src/subdomains/generic/support/__tests__/support.service.spec.ts b/src/subdomains/generic/support/__tests__/support.service.spec.ts index 1c42c8403f..308957bc4e 100644 --- a/src/subdomains/generic/support/__tests__/support.service.spec.ts +++ b/src/subdomains/generic/support/__tests__/support.service.spec.ts @@ -16,13 +16,22 @@ import { Transaction } from 'src/subdomains/supporting/payment/entities/transact import { TransactionService } from 'src/subdomains/supporting/payment/services/transaction.service'; import { RecallService } from 'src/subdomains/supporting/recall/recall.service'; import { KycService } from '../../kyc/services/kyc.service'; +import { KycStep } from '../../kyc/entities/kyc-step.entity'; +import { KycStepName } from '../../kyc/enums/kyc-step-name.enum'; +import { ReviewStatus } from '../../kyc/enums/review-status.enum'; +import { KycDocumentService } from '../../kyc/services/integration/kyc-document.service'; +import { DfxApprovalWorkflowService } from '../../kyc/services/dfx-approval-workflow.service'; +import { KycFileService } from '../../kyc/services/kyc-file.service'; import { Recommendation } from '../../user/models/recommendation/recommendation.entity'; import { RecommendationService } from '../../user/models/recommendation/recommendation.service'; import { UserData } from '../../user/models/user-data/user-data.entity'; +import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserDataService } from '../../user/models/user-data/user-data.service'; import { User } from '../../user/models/user/user.entity'; import { UserService } from '../../user/models/user/user.service'; import { ComplianceSearchType, RecommendationGraphEdgeKind } from '../dto/user-data-support.dto'; +import { ComplianceDecision } from '../dto/onboarding-pdf.dto'; +import { SupportPdfService } from '../support-pdf.service'; import { SupportService } from '../support.service'; // --- entity builders --- // @@ -79,6 +88,10 @@ describe('SupportService', () => { let payInService: PayInService; let transactionService: TransactionService; let scorechainScreeningService: ScorechainScreeningService; + let dfxApprovalWorkflowService: DfxApprovalWorkflowService; + let supportPdfService: SupportPdfService; + let kycDocumentService: KycDocumentService; + let kycFileService: KycFileService; beforeEach(async () => { const module = await Test.createTestingModule({ @@ -99,6 +112,10 @@ describe('SupportService', () => { payInService = module.get(PayInService); transactionService = module.get(TransactionService); scorechainScreeningService = module.get(ScorechainScreeningService); + dfxApprovalWorkflowService = module.get(DfxApprovalWorkflowService); + supportPdfService = module.get(SupportPdfService); + kycDocumentService = module.get(KycDocumentService); + kycFileService = module.get(KycFileService); }); // by default a node returns a UserData entity from getUserDataByIds for every requested id @@ -120,6 +137,89 @@ describe('SupportService', () => { expect(service).toBeDefined(); }); + describe('decidePersonalDfxApproval', () => { + const step = Object.assign(new KycStep(), { + id: 11, + name: KycStepName.DFX_APPROVAL, + status: ReviewStatus.MANUAL_REVIEW, + result: '{}', + }); + const userData = Object.assign(new UserData(), { + id: 42, + accountType: AccountType.PERSONAL, + highRisk: false, + kycSteps: [step], + }); + const decision = { + stepId: step.id, + finalDecision: ComplianceDecision.ACCEPTED, + processedBy: 'Compliance Test', + }; + + beforeEach(() => { + jest.spyOn(userDataService, 'getUserData').mockResolvedValue(userData); + jest.spyOn(kycFileService, 'getUserDataKycFiles').mockResolvedValue([]); + jest.spyOn(kycService, 'getStepsByUserData').mockResolvedValue([step]); + jest.spyOn(supportPdfService, 'createOnboardingPdf').mockResolvedValue(Buffer.from('pdf').toString('base64')); + jest + .spyOn(kycDocumentService, 'ensureGeneratedUserFile') + .mockResolvedValue({ file: undefined, url: 'url' } as any); + jest.spyOn(dfxApprovalWorkflowService, 'applyManualDecision').mockResolvedValue(undefined); + }); + + it('stores the report before applying the atomic decision', async () => { + await service.decidePersonalDfxApproval(userData.id, 99, decision); + + expect(kycDocumentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + expect.stringMatching(new RegExp(`^dfx-approval:${step.id}:OnboardingReport:manual-v1:[a-f0-9]{16}$`)), + userData, + expect.any(String), + 'OnboardingReport', + expect.stringMatching(/^GwG_Onboarding_42_/), + expect.any(Buffer), + { workflow: 'DfxApproval', version: 'v1' }, + ); + expect((kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.invocationCallOrder[0]).toBeLessThan( + (dfxApprovalWorkflowService.applyManualDecision as jest.Mock).mock.invocationCallOrder[0], + ); + }); + + it('leaves the approval untouched when report generation fails', async () => { + jest.spyOn(supportPdfService, 'createOnboardingPdf').mockRejectedValue(new Error('PDF failed')); + + await expect(service.decidePersonalDfxApproval(userData.id, 99, decision)).rejects.toThrow('PDF failed'); + + expect(dfxApprovalWorkflowService.applyManualDecision).not.toHaveBeenCalled(); + }); + + it('uses a new report key when a retried decision changes', async () => { + await service.decidePersonalDfxApproval(userData.id, 99, decision); + await service.decidePersonalDfxApproval(userData.id, 99, { + ...decision, + finalDecision: ComplianceDecision.REJECTED, + }); + + const firstKey = (kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.calls[0][0]; + const secondKey = (kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.calls[1][0]; + expect(firstKey).not.toBe(secondKey); + }); + + it('rejects malformed existing step data before creating a report', async () => { + jest.spyOn(userDataService, 'getUserData').mockResolvedValue( + Object.assign(new UserData(), userData, { + kycSteps: [Object.assign(new KycStep(), step, { result: '{invalid' })], + }), + ); + + await expect(service.decidePersonalDfxApproval(userData.id, 99, decision)).rejects.toThrow( + 'DfxApproval result is invalid JSON', + ); + + expect(supportPdfService.createOnboardingPdf).not.toHaveBeenCalled(); + expect(dfxApprovalWorkflowService.applyManualDecision).not.toHaveBeenCalled(); + }); + }); + describe('getRecommendationGraphNeighbors', () => { it('applies the default skip=0 and take=25 when not provided', async () => { const centerId = 100; diff --git a/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts b/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts index 7f80b779c6..4a357bf4a4 100644 --- a/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts +++ b/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts @@ -1,4 +1,4 @@ -import { IsOptional, IsString } from 'class-validator'; +import { IsEnum, IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator'; import { FileSubType } from '../../kyc/dto/kyc-file.dto'; export enum ComplianceDecision { @@ -54,3 +54,15 @@ export class GenerateOnboardingPdfDto { @IsString() businessActivities?: string; } + +export class DfxApprovalDecisionDto extends GenerateOnboardingPdfDto { + @IsInt() + stepId: number; + + @IsEnum(ComplianceDecision) + declare finalDecision: ComplianceDecision; + + @IsString() + @IsNotEmpty() + declare processedBy: string; +} diff --git a/src/subdomains/generic/support/support-pdf.service.ts b/src/subdomains/generic/support/support-pdf.service.ts index dac7f25a19..dd406ee6e4 100644 --- a/src/subdomains/generic/support/support-pdf.service.ts +++ b/src/subdomains/generic/support/support-pdf.service.ts @@ -331,25 +331,21 @@ export class SupportPdfService { // Get operational activity from KycStep const operationalActivityStep = kycSteps.find((s) => s.name === KycStepName.OPERATIONAL_ACTIVITY); if (operationalActivityStep?.result) { - try { - const opResult = JSON.parse(operationalActivityStep.result) as Record; - this.drawOnboardingField( - pdf, - 'Operational Activity', - opResult.isOperational != null ? String(opResult.isOperational) : '-', - marginX, - width, - ); - this.drawOnboardingField( - pdf, - 'Website', - opResult.websiteUrl ? String(opResult.websiteUrl) : '-', - marginX, - width, - ); - } catch { - // ignore parse errors - } + const opResult = this.parseStepResult(operationalActivityStep) as Record; + this.drawOnboardingField( + pdf, + 'Operational Activity', + opResult.isOperational != null ? String(opResult.isOperational) : '-', + marginX, + width, + ); + this.drawOnboardingField( + pdf, + 'Website', + opResult.websiteUrl ? String(opResult.websiteUrl) : '-', + marginX, + width, + ); } pdf.moveDown(1); } @@ -357,26 +353,18 @@ export class SupportPdfService { // KycSteps with result data (Financial Data, Beneficial Owners) const financialDataStep = kycSteps.find((s) => s.name === KycStepName.FINANCIAL_DATA); if (financialDataStep?.result) { - try { - const financialData = JSON.parse(financialDataStep.result) as unknown; - this.drawOnboardingSectionHeader(pdf, 'Financial Data', marginX); - this.drawOnboardingKeyValueObject(pdf, financialData, marginX, width); - pdf.moveDown(1); - } catch { - // ignore parse errors - } + const financialData = this.parseStepResult(financialDataStep); + this.drawOnboardingSectionHeader(pdf, 'Financial Data', marginX); + this.drawOnboardingKeyValueObject(pdf, financialData, marginX, width); + pdf.moveDown(1); } const beneficialOwnerStep = kycSteps.find((s) => s.name === KycStepName.BENEFICIAL_OWNER); if (beneficialOwnerStep?.result) { - try { - const beneficialData = JSON.parse(beneficialOwnerStep.result) as unknown; - this.drawOnboardingSectionHeader(pdf, 'Beneficial Owners', marginX); - this.drawOnboardingKeyValueObject(pdf, beneficialData, marginX, width); - pdf.moveDown(1); - } catch { - // ignore parse errors - } + const beneficialData = this.parseStepResult(beneficialOwnerStep); + this.drawOnboardingSectionHeader(pdf, 'Beneficial Owners', marginX); + this.drawOnboardingKeyValueObject(pdf, beneficialData, marginX, width); + pdf.moveDown(1); } // Documents Section @@ -515,10 +503,14 @@ export class SupportPdfService { return String(value); } // For everything else (arrays, objects), use JSON.stringify + return JSON.stringify(value); + } + + private parseStepResult(step: KycStep): unknown { try { - return JSON.stringify(value); - } catch { - return '-'; + return JSON.parse(step.result); + } catch (error) { + throw new Error(`${step.name} result is invalid JSON: ${(error as Error).message}`); } } } diff --git a/src/subdomains/generic/support/support.controller.ts b/src/subdomains/generic/support/support.controller.ts index 074e80bdb1..d56c473ed0 100644 --- a/src/subdomains/generic/support/support.controller.ts +++ b/src/subdomains/generic/support/support.controller.ts @@ -22,7 +22,7 @@ import { UserRole } from 'src/shared/auth/user-role.enum'; import { RefundDataDto } from 'src/subdomains/core/history/dto/refund-data.dto'; import { ChargebackRefundDto } from 'src/subdomains/core/history/dto/transaction-refund.dto'; import { ReviewStatus } from '../kyc/enums/review-status.enum'; -import { GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; +import { DfxApprovalDecisionDto, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; import { RecommendationGraphNeighborsQuery } from './dto/recommendation-graph-neighbors-query.dto'; import { CreateSupportIssueTemplateDto, @@ -199,6 +199,18 @@ export class SupportController { return this.supportService.generateAndSaveOnboardingPdf(+id, dto); } + @Post(':id/dfx-approval') + @ApiBearerAuth() + @ApiExcludeEndpoint() + @UseGuards(AuthGuard(), RoleGuard(UserRole.COMPLIANCE), UserActiveGuard()) + async decidePersonalDfxApproval( + @GetJwt() jwt: JwtPayload, + @Param('id') id: string, + @Body() dto: DfxApprovalDecisionDto, + ): Promise<{ pdfData: string; fileName: string }> { + return this.supportService.decidePersonalDfxApproval(+id, jwt.account, dto); + } + @Get('note') @ApiBearerAuth() @ApiExcludeEndpoint() diff --git a/src/subdomains/generic/support/support.service.ts b/src/subdomains/generic/support/support.service.ts index 5d045ed060..0eafbe58fd 100644 --- a/src/subdomains/generic/support/support.service.ts +++ b/src/subdomains/generic/support/support.service.ts @@ -1,5 +1,6 @@ import { BadRequestException, Inject, Injectable, NotFoundException, forwardRef } from '@nestjs/common'; import { isIP } from 'class-validator'; +import { createHash } from 'crypto'; import * as IbanTools from 'ibantools'; import { Config } from 'src/config/config'; import { Blockchain } from 'src/integration/blockchain/shared/enums/blockchain.enum'; @@ -64,6 +65,7 @@ import { ContentType } from '../kyc/enums/content-type.enum'; import { KycStepName } from '../kyc/enums/kyc-step-name.enum'; import { ReviewStatus } from '../kyc/enums/review-status.enum'; import { KycDocumentService } from '../kyc/services/integration/kyc-document.service'; +import { DfxApprovalWorkflowService } from '../kyc/services/dfx-approval-workflow.service'; import { KycFileService } from '../kyc/services/kyc-file.service'; import { KycLogService } from '../kyc/services/kyc-log.service'; import { KycService } from '../kyc/services/kyc.service'; @@ -77,7 +79,7 @@ import { PhoneCallStatus } from '../user/models/user-data/user-data.enum'; import { UserDataService } from '../user/models/user-data/user-data.service'; import { User } from '../user/models/user/user.entity'; import { UserService } from '../user/models/user/user.service'; -import { ComplianceDecision, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; +import { ComplianceDecision, DfxApprovalDecisionDto, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; import { TransactionListQuery } from './dto/transaction-list-query.dto'; import { BankDataAlternative, @@ -193,6 +195,7 @@ export class SupportService { private readonly recallService: RecallService, private readonly supportNoteService: SupportNoteService, private readonly scorechainScreeningService: ScorechainScreeningService, + private readonly dfxApprovalWorkflowService: DfxApprovalWorkflowService, ) {} async generateIpLogPdf(userDataId: number): Promise { @@ -210,6 +213,7 @@ export class SupportService { async generateAndSaveOnboardingPdf( userDataId: number, dto: GenerateOnboardingPdfDto, + generationKey?: string, ): Promise<{ pdfData: string; fileName: string }> { // Load UserData with relations const userData = await this.userDataService.getUserData(userDataId, { @@ -232,20 +236,92 @@ export class SupportService { // Save as KycFile const fileName = `GwG_Onboarding_${userDataId}_${Date.now()}.pdf`; - await this.kycDocumentService.uploadUserFile( - userData, - FileType.USER_NOTES, - fileName, - Buffer.from(pdfData, 'base64'), - ContentType.PDF, - true, // isProtected - undefined, // kycStep - FileSubType.ONBOARDING_REPORT, - ); + if (generationKey) { + await this.kycDocumentService.ensureGeneratedUserFile( + generationKey, + userData, + FileType.USER_NOTES, + FileSubType.ONBOARDING_REPORT, + fileName, + Buffer.from(pdfData, 'base64'), + { workflow: 'DfxApproval', version: 'v1' }, + ); + } else { + await this.kycDocumentService.uploadUserFile( + userData, + FileType.USER_NOTES, + fileName, + Buffer.from(pdfData, 'base64'), + ContentType.PDF, + true, + undefined, + FileSubType.ONBOARDING_REPORT, + ); + } return { pdfData, fileName }; } + async decidePersonalDfxApproval( + userDataId: number, + actorUserDataId: number, + dto: DfxApprovalDecisionDto, + ): Promise<{ pdfData: string; fileName: string }> { + const userData = await this.userDataService.getUserData(userDataId, { kycSteps: true }); + if (!userData) throw new NotFoundException('User not found'); + if (userData.accountType !== AccountType.PERSONAL) + throw new BadRequestException('The atomic DfxApproval decision currently supports personal accounts only'); + + const step = userData.kycSteps.find((candidate) => candidate.id === dto.stepId); + if (!step || step.name !== KycStepName.DFX_APPROVAL) throw new NotFoundException('DfxApproval step not found'); + + let existingResult: Record = {}; + if (step.result) { + try { + existingResult = JSON.parse(step.result) as Record; + } catch (error) { + throw new BadRequestException(`DfxApproval result is invalid JSON: ${(error as Error).message}`); + } + } + + const effectivePdfData: GenerateOnboardingPdfDto = { + finalDecision: dto.finalDecision, + processedBy: dto.processedBy, + depositLimit: '100000', + amlAccountType: 'natural person', + }; + existingResult.complianceReview = { + depositLimit: effectivePdfData.depositLimit, + amlAccountType: effectivePdfData.amlAccountType, + processedBy: dto.processedBy, + finalDecision: dto.finalDecision, + }; + const result = JSON.stringify(existingResult); + const status = dto.finalDecision === ComplianceDecision.ACCEPTED ? ReviewStatus.COMPLETED : ReviewStatus.FAILED; + const decisionHash = createHash('sha256').update(result).digest('hex').substring(0, 16); + + const pdf = await this.generateAndSaveOnboardingPdf( + userDataId, + effectivePdfData, + `dfx-approval:${step.id}:${FileSubType.ONBOARDING_REPORT}:manual-v1:${decisionHash}`, + ); + await this.dfxApprovalWorkflowService.applyManualDecision( + step.id, + actorUserDataId, + status, + result, + status === ReviewStatus.FAILED ? 'Blocked' : undefined, + { + complexOrgStructure: false, + highRisk: userData.highRisk, + depositLimit: 100000, + amlAccountType: 'natural person', + }, + ); + + return pdf; + } + async getUserDataDetails(id: number, role: UserRole, jwtAccount: number): Promise { const userData = await this.userDataService.getUserData(id, { wallet: true, bankDatas: true }); if (!userData) throw new NotFoundException(`User not found`); From bea08e0f197df2836210119be7cbaef3315543c9 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 01:01:16 +0200 Subject: [PATCH 02/15] Formatierung des DfxApproval-Gates korrigieren --- .../generic/kyc/services/dfx-approval-check.service.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts index 4eb8df34bb..1152b5b75a 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts @@ -4,11 +4,7 @@ import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycLevel, KycStatus, UserDataStatus } from '../../user/models/user-data/user-data.enum'; import { IdentDocumentType } from '../dto/ident-result-data.dto'; import { FileSubType } from '../dto/kyc-file.dto'; -import { - DfxApprovalBlocker, - DfxApprovalBlockerDto, - DfxApprovalStatusDto, -} from '../dto/output/dfx-approval-status.dto'; +import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; import { KycFile } from '../entities/kyc-file.entity'; import { KycStep } from '../entities/kyc-step.entity'; import { KycStepName } from '../enums/kyc-step-name.enum'; @@ -56,8 +52,7 @@ export class DfxApprovalCheckService { if (![UserDataStatus.NA, UserDataStatus.ACTIVE, UserDataStatus.KYC_ONLY].includes(userData.status)) add(DfxApprovalBlocker.INVALID_USER_STATUS); - if (![KycStatus.NA, KycStatus.COMPLETED].includes(userData.kycStatus)) - add(DfxApprovalBlocker.INVALID_KYC_STATUS); + if (![KycStatus.NA, KycStatus.COMPLETED].includes(userData.kycStatus)) add(DfxApprovalBlocker.INVALID_KYC_STATUS); const country = userData.verifiedCountry ?? userData.country; if (!country) { From d05a9d7fa9eb908d842bd53f10dd32144b21feb9 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 02:51:46 +0200 Subject: [PATCH 03/15] DfxApproval-Sheets exakt in der API abbilden --- docs/dfx-approval-migration.md | 51 +- .../1785537000000-AddKycFileGenerationKey.js | 2 +- nest-cli.json | 3 +- package-lock.json | 33 + package.json | 1 + .../assets/dfx-approval/customer-profile.pdf | Bin 0 -> 85009 bytes .../kyc/assets/dfx-approval/form-a.pdf | Bin 0 -> 91100 bytes .../assets/dfx-approval/gwg-file-cover.pdf | Bin 0 -> 52115 bytes .../dfx-approval/identification-form.pdf | Bin 0 -> 115637 bytes .../kyc/assets/dfx-approval/name-check.pdf | Bin 0 -> 40060 bytes .../kyc/assets/dfx-approval/risk-profile.pdf | Bin 0 -> 172998 bytes .../kyc/controllers/kyc-admin.controller.ts | 13 +- .../kyc/dto/output/dfx-approval-status.dto.ts | 1 - src/subdomains/generic/kyc/kyc.module.ts | 1 - .../dfx-approval-check.service.spec.ts | 20 +- .../dfx-approval-document.service.spec.ts | 72 ++ .../dfx-approval-pdf.service.spec.ts | 29 +- .../dfx-approval-workflow.service.spec.ts | 98 ++- .../services/dfx-approval-check.service.ts | 22 +- .../services/dfx-approval-document.service.ts | 50 +- .../kyc/services/dfx-approval-pdf.service.ts | 680 ++++++++++-------- .../services/dfx-approval-workflow.service.ts | 337 +++++---- .../__tests__/support.controller.spec.ts | 14 - .../support/__tests__/support.service.spec.ts | 100 --- .../generic/support/dto/onboarding-pdf.dto.ts | 14 +- .../generic/support/support-pdf.service.ts | 68 +- .../generic/support/support.controller.ts | 14 +- .../generic/support/support.service.ts | 98 +-- 28 files changed, 954 insertions(+), 767 deletions(-) create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/customer-profile.pdf create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/form-a.pdf create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/gwg-file-cover.pdf create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/identification-form.pdf create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/name-check.pdf create mode 100644 src/subdomains/generic/kyc/assets/dfx-approval/risk-profile.pdf create mode 100644 src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts diff --git a/docs/dfx-approval-migration.md b/docs/dfx-approval-migration.md index c1decfb5a5..e9246d25c9 100644 --- a/docs/dfx-approval-migration.md +++ b/docs/dfx-approval-migration.md @@ -5,7 +5,7 @@ Der neue API-Workflow ersetzt ausschliesslich die acht minütlichen Personal-Onboarding-Projekte: 1. DfxApproval-Freigabe -2. Initialisierung von `pep`, `highRisk`, `complexOrgStructure`, `depositLimit` und `amlAccountType` +2. DfxApproval-Risikoflags 3. `GwGFileCover` 4. `IdentificationForm` 5. `CustomerProfile` @@ -20,16 +20,19 @@ nicht Teil dieser Personal-GSheet-Migration. ## Ablauf in der API `DfxApprovalWorkflowService` sucht jede Minute höchstens 50 der ältesten Personal-Fälle mit -`DfxApproval = ManualReview` und `kycLevel = 40`. Der Prozess ist standardmässig ausgeschaltet und +`DfxApproval = ManualReview` und `kycLevel >= 40`. Der Prozess ist standardmässig ausgeschaltet und wird erst mit `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` aktiviert. Pro Fall gilt: 1. Ein PostgreSQL-Advisory-Lock verhindert parallele Verarbeitung durch mehrere API-Instanzen. -2. Nur nach einem gültigen, abgeschlossenen NameCheck werden noch leere Personal-Risikofelder mit - den bisherigen GSheet-Werten initialisiert. Vorhandene Werte werden nie überschrieben und die - Änderung wird im `kyc_log` protokolliert. -3. Die sechs fehlenden PDF-Nachweise werden mit PDFKit erzeugt und über einen eindeutigen +2. Nur nach einem höchstens 90 Tage alten, abgeschlossenen NameCheck werden noch leere + Personal-Risikofelder mit den bisherigen GSheet-Werten initialisiert: `pep=false`, + `highRisk=false`, `complexOrgStructure=false` und `depositLimit=100000`. `amlAccountType` wird wie + im Freigabe-Sheet erst für den DfxApproval-Fall auf `natural person` gesetzt. Vorhandene Werte + werden nie überschrieben und jede Änderung wird im `kyc_log` protokolliert. +3. Die sechs fehlenden PDF-Nachweise werden mit `pdf-lib` direkt auf Kopien der produktiven + Google-Sheet-PDF-Vorlagen geschrieben und über einen eindeutigen `generationKey` idempotent im WORM-Storage gespeichert. Ein `kyc_file` wird erst nach erfolgreichem Upload als gültig markiert. 4. Das serverseitige Gate prüft alle fachlichen Voraussetzungen und alle acht Dokumenttypen. @@ -37,41 +40,47 @@ Pro Fall gilt: `kycLevel = 50` und `kycStatus = Completed` gesetzt. Step- und KYC-Logs werden in derselben Transaktion geschrieben; die Benachrichtigung folgt erst nach dem Commit. -Unvollständige oder ungültige JSON-Daten, fehlende Dokumente, offene NameChecks und Storage-Fehler -stoppen den Fall sichtbar. Leere Compliance-Werte werden nicht als `false` interpretiert. +Die sechs Dokumente behalten ihre voneinander unabhängigen GSheet-Auswahlregeln: + +- `GwGFileCover`, `IdentificationForm` und `DfxNameCheck`: DfxApproval in `InternalReview` oder + `ManualReview`; die spezifischen Prüfungen auf Personal, Name, Nationalität und Merge-Status gelten + je Dokument. +- `CustomerProfile`: abgeschlossene FinancialData für Personal-Konten mit `30 <= kycLevel < 50`. +- `RiskProfile` und `FormA`: DFX-Personal-Konten mit `30 <= kycLevel < 50`; beim RiskProfile zusätzlich + `highRisk=false` und ein FATF-freigegebenes Wohnsitzland. Die drei produktiven Legacy-Ausnahmen + `374462`, `374428` und `385169` bleiben bestehen. + +Dadurch kann ein Dokument erzeugt werden, auch wenn ein anderes Dokument oder eine spätere +Freigabevoraussetzung noch fehlt. Unvollständige oder ungültige JSON-Daten, offene NameChecks und +Storage-Fehler werden pro Dokument protokolliert; andere Dokumente desselben Falls laufen weiter. +Leere Compliance-Werte werden nicht als `false` interpretiert. ## Automatisches Freigabe-Gate Die automatische Freigabe verlangt: -- Personal-Konto, DfxApproval `ManualReview`, `kycLevel = 40` +- Personal-Konto, DfxApproval `ManualReview`, `kycLevel >= 40` - `verifiedName`, `kycHash`, Vorname, Geburtstag und E-Mail - `complexOrgStructure = false`, `highRisk = false`, `pep = false` - zulässigen User- und KYC-Status - aktiviertes Land ohne manuelle Länderprüfung; Brasilien bleibt ausgeschlossen - erlaubten Identifikationsdokumenttyp und vorhandene Dokumentnummer -- erlaubte Nationalität oder einen abgeschlossenen erforderlichen Aufenthaltstitel +- vorhandene Nationalität; bei deaktivierter Nationalität einen abgeschlossenen Aufenthaltstitel - keinen offenen sanktionierten NameCheck - gültige Dateien für `GwGFileCover`, `IdentReport`, `IdentificationForm`, `CustomerProfile`, `RiskProfile`, `FormA`, `DfxNameCheck` und `PersonalNameCheck` -Der Endpoint `GET /v1/kyc/admin/dfx-approval/:stepId/status` liefert die aktuellen Blocker für das -Compliance-UI. - -## Manuelle Freigabe in Services - -Für Personal-Fälle verwendet Services nur noch -`POST /v1/support/:userDataId/dfx-approval`. Die API erzeugt zuerst den Onboarding-Bericht. Erst nach -erfolgreicher Speicherung führt sie Entscheidung, UserData-Änderungen und Audit-Logs atomar aus. -Eine fehlgeschlagene PDF-Erzeugung kann deshalb keinen bereits freigegebenen Teilzustand mehr -hinterlassen. Der bestehende Organisationsablauf bleibt ausserhalb dieser Migration unverändert. +Für diese Migration ist keine Änderung an `DFXswiss/services` und kein zusätzlicher manueller +Endpoint erforderlich. Freigabe, Dokumenterzeugung, Sperren, Idempotenz und Auditierung liegen +vollständig in der API. ## Produktiver Cutover Die Reihenfolge ist verbindlich, damit GSheets und API niemals parallel schreiben: 1. API inklusive DB-Migration deployen, während `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` bleibt. -2. Services deployen und Statusanzeige sowie manuelle Personal-Entscheidung mit einem Testfall prüfen. +2. Mit einem Testfall die sechs PDF-Subtypen und die automatische Freigabe im deaktivierten bzw. + kontrollierten Staging-Betrieb prüfen. 3. Alle acht minütlichen `admin@dfx.swiss`-Trigger deaktivieren, aber für einen schnellen Rollback noch nicht löschen. 4. Mindestens drei Minuten prüfen, dass keines der acht Projekte mehr ausgeführt wird. diff --git a/migration/1785537000000-AddKycFileGenerationKey.js b/migration/1785537000000-AddKycFileGenerationKey.js index b5ba41aeed..1ee401951a 100644 --- a/migration/1785537000000-AddKycFileGenerationKey.js +++ b/migration/1785537000000-AddKycFileGenerationKey.js @@ -5,7 +5,7 @@ /** * Adds an idempotency key for API-generated KYC documents. Existing Sheet-generated files remain - * untouched (NULL); a new workflow can create every document at most once per version and step. + * untouched (NULL); a new workflow can create every document at most once per user and version. * * @class * @implements {MigrationInterface} diff --git a/nest-cli.json b/nest-cli.json index 6ca2783774..16e6424bcf 100644 --- a/nest-cli.json +++ b/nest-cli.json @@ -4,7 +4,8 @@ "compilerOptions": { "assets": [ { "include": "subdomains/supporting/notification/templates/**/*.hbs", "outDir": "dist/src/" }, - { "include": "shared/i18n/**/*", "outDir": "dist/src/" } + { "include": "shared/i18n/**/*", "outDir": "dist/src/" }, + { "include": "subdomains/generic/kyc/assets/**/*.pdf", "outDir": "dist/src/" } ], "watchAssets": true } diff --git a/package-lock.json b/package-lock.json index b293fef6e1..ea7454ef19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -102,6 +102,7 @@ "opentimestamps": "^0.4.9", "passport": "^0.6.0", "passport-jwt": "^4.0.1", + "pdf-lib": "^1.17.1", "pdfkit": "^0.15.2", "pg": "^8.13.3", "qrcode": "^1.5.4", @@ -12323,6 +12324,22 @@ "@noble/hashes": "^1.1.5" } }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "dependencies": { + "pako": "^1.0.10" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -29104,6 +29121,22 @@ ], "license": "MIT" }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, + "node_modules/pdf-lib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/pdfkit": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.15.2.tgz", diff --git a/package.json b/package.json index 74a9f61938..c1a1aab10d 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ "opentimestamps": "^0.4.9", "passport": "^0.6.0", "passport-jwt": "^4.0.1", + "pdf-lib": "^1.17.1", "pdfkit": "^0.15.2", "pg": "^8.13.3", "qrcode": "^1.5.4", diff --git a/src/subdomains/generic/kyc/assets/dfx-approval/customer-profile.pdf b/src/subdomains/generic/kyc/assets/dfx-approval/customer-profile.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d130165489db2178868f1c0d060e5b0a23af58a8 GIT binary patch literal 85009 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 W@__%dI>8_?j43n_D6gqN{J#KhSBkX& literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/assets/dfx-approval/form-a.pdf b/src/subdomains/generic/kyc/assets/dfx-approval/form-a.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f342bb71e67aaeac4cb4c882f9945093e6bebfee GIT binary patch literal 91100 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 z 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 literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/assets/dfx-approval/gwg-file-cover.pdf b/src/subdomains/generic/kyc/assets/dfx-approval/gwg-file-cover.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9d2030579b498fbc5bea7631b6e2bb6802abbeb GIT binary patch literal 52115 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�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 f#S$e`MVu zwLdU`3BXr6h9w4ZwV#;9uq0quN%8oB#b1K*sb8|^$DkFi>|fiZy`r{n_sf~*1gqN?j^AgoS0`hzO8ERtev1G9g#KvFV6QFoAjwZl3Us69S{V z5S|UtN;?_TeFt>dD!X2^LzF4mSCpUaPf8N5IfAOteS#{J2qf_HXJ~nJrpFzhA3|x21trwkgae?Sq zKJ~^&X#HG`^-tVaPN6H#P0VJK2}!@4cG+QqzlIZPAD61cbcVH>8w*;_8u*0tcv#RY z9Y(eprvvQ{qdH36j#XRG{f%r@Nn|1D-Tl;#aeRt`*&TUdlZ0RQ1B#`1*(9I+6=&jTq^B8gr|cjIF_3c*CX+ zKp*+B7MGwNUf7Qz(JgpwZo-}1@MLm3O-T9!c0?|1I&Gpoh*{pM$Cxw_{zzg#nx?+d z(0};!i6xVQ;mYRTy$4IZr3=+L>h_xlnGKsPQ&|oB?Ens5Qn5a%9RlnRgXU1B zxl{Sz^<#u5m75v;M+aC*fb9#g9RYT0fGrNNvjVI)_~Zicr)P42o$+0OZ3wVg0X8^$ z^+15_4zTS3_FRB1;~yA@NN!#l7gq+@ya1aVU`O*u+XAd7KCmOe-VCsH0k(#hnAQ1l zd-&Z=0Vb{uuxkQrMu3eDu;KvQ8(?1r*k*olL4dUeSWAG_1XwJi?t!(tjKY z(JVarp1sZQ(Kqc@_A-4)lO*I1o^S2Z1Ryj1|KLZKxf0x;o&Cr(PQalUf68YN19h`i zG=gpo84VbA0zm!?*m5Q^W;OVw>{Qh7=$tz=-+^*~1s2Q$>=IUhy?Z{Nb>rB>2eyJg zy9ZvP%l>?hEZU>#{Txd)7)5Yxn=K{~Vws#q@}bjqAWeioQ0niIhi0FDV5@W?-|+Bk zG?$|2kxDZMPRA4%y=VB>Wzv9MDtY@CG+ zwy;JEE3>daEbKcA`_RI+TG$O1h61xKY)ba7(ZZ(Y?#<#i#%J$&EKIhreHONpfBs1e zyUW6^wXnq&mMe+Z)LK}Hh50ND&-#PEY`cYRv9Jvmb}xTruKYL)8_FM^E8mO{Xiv}o zz!KgF)?#5P3#;dk-)muCS(x_Vl@_+p!o(StR2gfvuo?@CS(wYh1Pj|{VVf;%hJ~)D z_;p;&p%~f(&BO6Jh<`dJt8NNwWpm#TpY2pmyR91-SreFtsB;Cjmo!Ix4}<(3S7;>4 zqbIm9zEkC17|)Y1o{}&YF=vm!r$3Ge+(veH>R@55)f!3IDm>i;58NP|o4Phg4WRav z0@X;wjQQ+$MFeYPaWk9U%%(K6fz7PGnI)Q;ubCN}*}i7>VKdv>%+@!vHO=hWW`>fp zc*$|iY;ZGcY-T0REWis--Pz2xG_xmpQIwnA%*Hpfq5O#`foGw>c3uXLqvxT}|itdl0SWQGh5Zn7BsU-&8()G?mC-0#xy$$d85k5s$)R&NBzjd*fEqG zrOmp>|0jT!_)@b(kxBT-L$fn0PtJl1`mQ8zU{iB;{ZUH)#C-b>Q{0-#mJ5~Oe%f;rD zg5;dYj){N(L9ts&Rkp#XCUgv9LsypJ3r3Sz6I3LeJK#9dj+e6nl8V><4n2P{Ni41l z<2{g6GI3pcgql>)2)mHEEpDIJ2n838{tio41E2$_oH?aEpSgYLB`u)PL>`z8Zg$ok z-H)5e!s@Q$ZeDinYHa!!-KNCYFOa~iikk1afjz13y~Yr=jXeMy*Im7ok_3#zv;P7_}(;oVy!tPbr4GNomBxG1t*dN&k;`J!GBwG?sYvi!6 zQDKDVe!^=7Rz%EeK^&CiD z$xF`Wfa^Fn8|r4YZkBK}4+mUNM`>WLIVAXA4&*N3NN?`ZWxVJfuj#BsLV6+QZF`f&hO@nLm#)ZaA|1W>&_~`2LGpoEEsa(F8)HFKX z!al^j?vNU^3u=CvB)n(%H=NFti?UEP7 z%Whe7=l#-!8(|Su3_JE1!iqTFVkBM8$}!%-sZuc3m?S5>Zy_v0VXJp+8ZJ0~v(sc7 zoA#Of+rn%iA-Z{hZfCe5zd{|=p_L#$v-{USzt4QY3btQ7XV#@3NQ)7cj7qI~5Hb&S z8Zl<%P_f>iIf@`%N!qG9+CM(g8T$e-Z zacCX*UQ!PmD*}5vD$Gm`K(e5q%Z;-I!5l=mw%G}ZFIy}Hz5nx3%@q9N5{V{b219 zGD|U3^{had)^f%fCiPA5!cU!Ye5+mkzPNqkU(BKI`(yDx7qY3!Vn9ie5^O0&Pl#`zrRs(!mVp_NtXE88ds_y#xYjv-Gi@K8) zyjIMdpCWitQ9qqE{ij*e{w)>(8vKX}-;(K}j{9Vn`n9@;cx9e^9=Vp0zDF*^oKO&{ zH6m3iNIttA(X*l(kuwyqC3%shaBLbP)nWk}XaO#swMPC6220KaJTQ^4SGO0z;J)5W z9EfB>Z?l0jFZk_8woBb9ZhrfPZR~M%6#FQ0+w5Cz!{+=r`}oG|b2dvi!xxBW0XF6~ z34?^^F^57=ip9m?)K$2~S3@D#>khz4`Tn1F!ZSWL1= zF-jd9cesapVxE{2QO$kqQJ zgk|ta3IMDj2qehORX%hbVvXRsOJ6=y9Zguc_4qj;eog%6xU#rI&(uzEOR{ zEcbjE6b0ZNuxynFw23oWbnVj2_wtPoE?f5Csa{rVlUP0M|fA$y0ut>A*aV9Np8yZMF~mWveT($MowGL zu!_AwK4)d{GBmncgUlC%b2Et8Ku{zgC>IBG9qX2_TG~c9M8>CncHPpV66h1!y$``<>ga0bD4Z+e%jRFN(P+a&m z1vmay?#QpX?C(|V+vpAzX@O7wLfxzXEBN)>=>s+V1LXHl9{y0TwX)fgRL;68|0;zC z>{To={d4pwqrjg(gNF|6RZM3Kcw6=_BbB@crBFldn%rCaO={KS4P<(oR$mG*(2(5R zPZCOCY~$ake>%l~LIwgqGf`fd0>l@zq^d->HxdzwgEqGiM0|laIX3O}BJmesc25>g zLlP3fpDN9H0(ahx^G`A%L=FSl;1NtG4W*b1+~-f4tp4*5(5;TSXm?ci=zHU#5S%)S zHp;cMM`E7y{n5A^Z2h=&rVcswRMFhNK~8)*@_xPe!o zPq<#`q{wKCI;Tu<@r}lG?BNCn-@pG>?^;|7m4Ah>uG zVh!v$S)`Yr$jftl8T-ONQ66yvem}~4o<4Z{29Mv_;pIs0;CKmP(u9`~CM`hj(PxMi z6sZ^vwr>a*TRk0niDo}=JkG}M1!od+L%=q)nPD4(ji3BNm}VWqP@Kmd`6nuDgu;4q z&wUH`^oI}44(>+tg2En9*v;8^fio0#qQXWg48A#)3JWX9E6UFJfg5ShaHks-U8=Bu z@aK-;4~_6b8Mp!Ak?-p7yMjywK!ql~4$Gzl7NeyKl9^R`Hj#D6Bts>VZj^D%{3{7;qCt;Uxa_8VY10 zd$Pkc%%WR__GYaC{LD8TI?PAHg!2k@E|q6DXjmvwwC63g9yNJ}Aqc$HRT|Kst|Fx2 zQfc0StrW<>g!I9mEZ^e{y;e9ORaIV6B$S6rN<7_+Mo)bmsF`ZRVSj0CX4!+zHN>d1d#W_oG zPRchhtRd1!Jq@lnv{A$MlkYg5jbYOsQa66C?)d0a^@}gmO%JhYY)pF9NsBAn2CLJ) z-!gquiaGjkoU!G5b=u&zO2e?Kq`FkSe~0?`=G3+m#Gc`|a?Lp|jK=PO)Qt(c^YwO4}5ZS2Tn}fOmp!o71aUm6o*8%7q*0 z*!%#G9F+5gG6J_L`vN@7<1Fq)>;gQ`8k z-B%;`nz!O5b@5&{^|1cn4OZ<-#(_YKX3C+ojc zhUAvzToHZZrwsYV3|5ab422udo$NH`l;3>v$&D|3zJ*+Ql*}F6k4LjLM?nU=vEz+S zxn;A*gL4j>+iA4noYo9pIAa zAgzzi)X56PJkfSJAe)%jgVpDmi+xUppZb;9OWWS$UhG-> z-^dEg`M7X)s#%K11-HfJ@_J>ljs8jDbl4Kd_PLI9+K0LW+*xj&+ZD69k;P!B+n*IG=!G^v5<7HVBy;enDw(w`(x_&_SWM&tFQ~VE%`?M+kXq}wh^E0;XIaVhZg(Cw`y;+ zT|C$h+~WkS8ynEuqf#XfD>f_}f{2VR$qD>awgC1e$}t%zghz&l4IEbalA&{X9Zw~3 zMyINfU)oSYiY0Lvk1vc<(ksQq-si4UzX95Ok|?O(KQd$2xvSY=c2H&HBt}2w`&F_R z5NitkS>@n(Nhg7rMsXl&}Ok^^egz1p1nu9>?k*Xrq zA%mNdy+3>!GUP31E$kBYhqH#iZQM~&6*RLG)q4o-pr2x3_JY

a!F+chk9C2?(dA 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⁢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 z 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 literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/assets/fonts/LiberationSans-Regular.ttf b/src/subdomains/generic/kyc/assets/fonts/LiberationSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e6339859d0b24bee79ae3f64e0071900170224ba GIT binary patch literal 410712 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 U^4IX6nfTvc!IeM%9f$n?0IO~PegFUf literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts index bda0ec44d5..7e7281646d 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts @@ -107,6 +107,38 @@ describe('DfxApprovalPdfService', () => { expect(service.fileName(FileSubType.DFX_NAME_CHECK, data)).toBe('20260731-NameCheck-0-42-220000.pdf'); }); + it.each([ + ['Polish', 'Łukasz Kowalczyk', 'Łódź'], + ['Turkish', 'Gülşen Şahin', 'Şişli'], + ['Cyrillic', 'Кузнецов Алексей', 'Москва'], + ['Baltic', 'Kalniņš Jānis', 'Liepāja'], + ])('renders %s names, which a WinAnsi standard font cannot encode', async (_language, name, location) => { + const data = context(); + data.userData.verifiedName = name; + data.userData.surname = name; + data.userData.location = location; + + for (const subType of [FileSubType.GWG_FILE_COVER, FileSubType.FORM_A, FileSubType.IDENTIFICATION_FORM]) { + const pdf = await service.generate(subType, data); + expect(pdf.subarray(0, 5).toString('latin1')).toBe('%PDF-'); + } + }); + + it('substitutes characters the font has no glyph for instead of failing the document', async () => { + const data = context(); + data.userData.verifiedName = '田中太郎'; + + const pdf = await service.generate(FileSubType.GWG_FILE_COVER, data); + + expect(pdf.subarray(0, 5).toString('latin1')).toBe('%PDF-'); + }); + + it('keeps the registered file name as document number when a document is regenerated', () => { + const data = { ...context(), documentName: '20260731-FormularA-0-42-100000.pdf' }; + + expect((service as any).documentNumber(FileSubType.FORM_A, data)).toBe('20260731-FormularA-0-42-100000'); + }); + it('replaces cached template values for every dynamic checkbox', async () => { const data = context(); data.userData.sellVolume = 0; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts index 8f66aced7e..4d26f5e0f5 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -1,7 +1,9 @@ +import fontkit from '@pdf-lib/fontkit'; import { Injectable } from '@nestjs/common'; +import { DfxLogger } from 'src/shared/services/dfx-logger'; import { readFile } from 'fs/promises'; import { join } from 'path'; -import { PDFDocument, PDFFont, PDFPage, StandardFonts, rgb } from 'pdf-lib'; +import { PDFDocument, PDFFont, PDFPage, rgb } from 'pdf-lib'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycIdentificationType } from '../../user/models/user-data/kyc-identification-type.enum'; import { KycFinancialResponse } from '../dto/input/kyc-financial-in.dto'; @@ -12,11 +14,39 @@ import { KycStepName } from '../enums/kyc-step-name.enum'; type FinancialData = Record; +// The overlay text is drawn with an embedded Unicode font instead of a PDF standard font: standard +// fonts are limited to WinAnsi and throw on every name, street or employer outside Latin-1 +// (Polish, Turkish, Baltic, Cyrillic, ...), which would leave those cases without a document. +// Liberation Sans is metrically compatible with Arial/Helvetica, so the layout is unchanged. +const FONT_DIRECTORY = '../assets/fonts'; +const REGULAR_FONT_FILE = 'LiberationSans-Regular.ttf'; +const BOLD_FONT_FILE = 'LiberationSans-Bold.ttf'; +const REPLACEMENT_CHARACTER = '?'; + +// Income and asset bands as answered in the FinancialData step, mapped to the wording of the +// productive Sheet template. +const FINANCIAL_BANDS: Record = { + '1m': " > 1'000'000 CHF", + '500k_1m': "zwischen 500'000 und 1'000'000 CHF", + '100k_500k': "zwischen 100'000 und 500'000 CHF", + '50k_100k': "zwischen 0 und 100'000 CHF", + '50k': "zwischen 0 und 100'000 CHF", +}; + +interface PdfFonts { + regular: PDFFont; + bold: PDFFont; + encodable: Set; +} + export interface DfxApprovalPdfContext { userData: UserData; steps: KycStep[]; nameCheck?: NameCheckLog; generatedAt: Date; + // Set when the document was already registered under this name; keeps a regenerated document + // consistent with the stored file name. + documentName?: string; } interface TextOptions { @@ -44,33 +74,36 @@ const TEMPLATE_FILES: Partial> = { @Injectable() export class DfxApprovalPdfService { + private readonly logger = new DfxLogger(DfxApprovalPdfService); + + private fontFiles?: Promise<[Buffer, Buffer]>; + async generate(subType: FileSubType, context: DfxApprovalPdfContext): Promise { const templateFile = TEMPLATE_FILES[subType]; if (!templateFile) throw new Error(`Unsupported DfxApproval document subtype ${subType}`); const template = await readFile(join(__dirname, '../assets/dfx-approval', templateFile)); const pdf = await PDFDocument.load(template); - const regular = await pdf.embedFont(StandardFonts.Helvetica); - const bold = await pdf.embedFont(StandardFonts.HelveticaBold); + const fonts = await this.embedFonts(pdf); switch (subType) { case FileSubType.GWG_FILE_COVER: - this.renderCover(pdf, regular, bold, context); + this.renderCover(pdf, fonts, context); break; case FileSubType.IDENTIFICATION_FORM: - this.renderIdentificationForm(pdf, regular, bold, context); + this.renderIdentificationForm(pdf, fonts, context); break; case FileSubType.CUSTOMER_PROFILE: - this.renderCustomerProfile(pdf, regular, bold, context); + this.renderCustomerProfile(pdf, fonts, context); break; case FileSubType.RISK_PROFILE: - this.renderRiskProfile(pdf, regular, bold, context); + this.renderRiskProfile(pdf, fonts, context); break; case FileSubType.FORM_A: - this.renderFormA(pdf, regular, bold, context); + this.renderFormA(pdf, fonts, context); break; case FileSubType.DFX_NAME_CHECK: - this.renderNameCheck(pdf, regular, bold, context); + this.renderNameCheck(pdf, fonts, context); break; } @@ -92,42 +125,42 @@ export class DfxApprovalPdfService { return `${this.compactDate(documentDate)}-${label}-0-${context.userData.id}-${this.compactTime(context.generatedAt)}.pdf`; } - private renderCover(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + private renderCover(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const page = pdf.getPage(0); page.drawRectangle({ x: 292, y: page.getHeight() - 116, width: 120, height: 14, color: WHITE }); - this.text(page, regular, bold, String(context.userData.id), { x: 296.4, top: 70.2 }); - this.text(page, regular, bold, this.documentNumber(FileSubType.GWG_FILE_COVER, context), { + this.text(page, fonts, String(context.userData.id), { x: 296.4, top: 70.2 }); + this.text(page, fonts, this.documentNumber(FileSubType.GWG_FILE_COVER, context), { x: 296.4, top: 86.7, width: 245, }); - this.text(page, regular, bold, this.timestamp(context.generatedAt), { x: 296.4, top: 103.2, width: 160 }); - this.text(page, regular, bold, 'Privatperson', { x: 296.4, top: 119.7 }); - this.text(page, regular, bold, context.userData.verifiedName, { x: 296.4, top: 136.2, width: 245 }); - this.text(page, regular, bold, context.userData.naturalPersonName, { x: 296.4, top: 152.7, width: 245 }); + this.text(page, fonts, this.timestamp(context.generatedAt), { x: 296.4, top: 103.2, width: 160 }); + this.text(page, fonts, 'Privatperson', { x: 296.4, top: 119.7 }); + this.text(page, fonts, context.userData.verifiedName, { x: 296.4, top: 136.2, width: 245 }); + this.text(page, fonts, context.userData.naturalPersonName, { x: 296.4, top: 152.7, width: 245 }); } - private renderNameCheck(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + private renderNameCheck(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const nameCheck = this.requiredNameCheck(context); const page = pdf.getPage(0); - this.text(page, regular, bold, String(context.userData.id), { x: 198.6, top: 70.1 }); - this.text(page, regular, bold, this.documentNumber(FileSubType.DFX_NAME_CHECK, context), { + this.text(page, fonts, String(context.userData.id), { x: 198.6, top: 70.1 }); + this.text(page, fonts, this.documentNumber(FileSubType.DFX_NAME_CHECK, context), { x: 198.6, top: 86.6, width: 245, }); - this.text(page, regular, bold, this.timestamp(nameCheck.created), { x: 198.6, top: 103.1 }); - this.text(page, regular, bold, 'Privatperson', { x: 198.6, top: 119.5 }); - this.text(page, regular, bold, context.userData.verifiedName, { x: 198.6, top: 136.0, width: 245 }); - this.text(page, regular, bold, this.timestamp(nameCheck.created), { x: 198.6, top: 200.5 }); - this.text(page, regular, bold, this.nameCheckResult(nameCheck), { x: 198.6, top: 217.0, width: 245 }); - this.text(page, regular, bold, nameCheck.result, { x: 198.6, top: 233.5, width: 360, height: 12 }); + this.text(page, fonts, this.timestamp(nameCheck.created), { x: 198.6, top: 103.1 }); + this.text(page, fonts, 'Privatperson', { x: 198.6, top: 119.5 }); + this.text(page, fonts, context.userData.verifiedName, { x: 198.6, top: 136.0, width: 245 }); + this.text(page, fonts, this.timestamp(nameCheck.created), { x: 198.6, top: 200.5 }); + this.text(page, fonts, this.nameCheckResult(nameCheck), { x: 198.6, top: 217.0, width: 245 }); + this.text(page, fonts, nameCheck.result, { x: 198.6, top: 233.5, width: 360, height: 12 }); } - private renderFormA(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + private renderFormA(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const page = pdf.getPage(0); const value = (text: unknown, top: number, height = 16): void => - this.text(page, regular, bold, text, { x: 202, top, width: 365, height, color: BLUE, bold: true, size: 9 }); + this.text(page, fonts, text, { x: 202, top, width: 365, height, color: BLUE, bold: true, size: 9 }); value(context.userData.id, 82.3); value(context.userData.verifiedName, 231.9); value(context.userData.surname, 349.6); @@ -135,7 +168,7 @@ export class DfxApprovalPdfService { value(this.date(context.userData.birthday), 393.4); value(context.userData.nationality?.name, 415.4); value(this.address(context.userData), 437.3, 30); - this.text(page, regular, bold, this.timestamp(context.userData.created), { + this.text(page, fonts, this.timestamp(context.userData.created), { x: 16.5, top: 549.5, width: 180, @@ -145,16 +178,11 @@ export class DfxApprovalPdfService { }); } - private renderIdentificationForm( - pdf: PDFDocument, - regular: PDFFont, - bold: PDFFont, - context: DfxApprovalPdfContext, - ): void { + private renderIdentificationForm(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const first = pdf.getPage(0); const value = (text: unknown, top: number, height = 18): void => - this.text(first, regular, bold, text, { x: 257.1, top, width: 305, height, color: BLUE, bold: true, size: 9 }); - this.text(first, regular, bold, context.userData.id, { + this.text(first, fonts, text, { x: 257.1, top, width: 305, height, color: BLUE, bold: true, size: 9 }); + this.text(first, fonts, context.userData.id, { x: 420.3, top: 46.3, width: 135, @@ -162,7 +190,7 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.text(first, regular, bold, this.timestamp(context.generatedAt), { + this.text(first, fonts, this.timestamp(context.generatedAt), { x: 158.4, top: 211.8, width: 395, @@ -179,7 +207,7 @@ export class DfxApprovalPdfService { value(context.userData.identDocumentType, 437.0); const second = pdf.getPage(1); - this.text(second, regular, bold, this.timestamp(context.userData.created), { + this.text(second, fonts, this.timestamp(context.userData.created), { x: 257.1, top: 402.1, width: 305, @@ -212,17 +240,12 @@ export class DfxApprovalPdfService { if (context.userData.cryptoVolume > 0) this.check(fourth, 239.3, 219.0); } - private renderCustomerProfile( - pdf: PDFDocument, - regular: PDFFont, - bold: PDFFont, - context: DfxApprovalPdfContext, - ): void { + private renderCustomerProfile(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const financial = this.financialData(context.steps); const first = pdf.getPage(0); const value = (text: unknown, top: number, height = 20): void => - this.text(first, regular, bold, text, { x: 249, top, width: 322, height, color: BLUE, bold: true, size: 8.7 }); - this.text(first, regular, bold, context.userData.id, { + this.text(first, fonts, text, { x: 249, top, width: 322, height, color: BLUE, bold: true, size: 8.7 }); + this.text(first, fonts, context.userData.id, { x: 440.1, top: 83, width: 125, @@ -230,7 +253,7 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.text(first, regular, bold, context.userData.verifiedName, { + this.text(first, fonts, context.userData.verifiedName, { x: 159, top: 270.9, width: 410, @@ -238,7 +261,7 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.text(first, regular, bold, this.timestamp(context.generatedAt), { + this.text(first, fonts, this.timestamp(context.generatedAt), { x: 159, top: 368.1, width: 410, @@ -268,9 +291,9 @@ export class DfxApprovalPdfService { if (context.userData.cryptoVolume > 0) this.check(second, 282.2, 197.1); } - private renderRiskProfile(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + private renderRiskProfile(pdf: PDFDocument, fonts: PdfFonts, context: DfxApprovalPdfContext): void { const first = pdf.getPage(0); - this.text(first, regular, bold, context.userData.id, { + this.text(first, fonts, context.userData.id, { x: 430.9, top: 79.6, width: 125, @@ -278,7 +301,7 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.text(first, regular, bold, context.userData.verifiedName, { + this.text(first, fonts, context.userData.verifiedName, { x: 135.9, top: 265.7, width: 420, @@ -286,7 +309,7 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.text(first, regular, bold, this.timestamp(context.userData.amlListAddedDate), { + this.text(first, fonts, this.timestamp(context.userData.amlListAddedDate), { x: 135.9, top: 347.9, width: 420, @@ -317,7 +340,7 @@ export class DfxApprovalPdfService { this.check(page, 259.4, positive ? positiveTop : negativeTop); } - private text(page: PDFPage, regular: PDFFont, bold: PDFFont, raw: unknown, options: TextOptions): void { + private text(page: PDFPage, fonts: PdfFonts, raw: unknown, options: TextOptions): void { if (raw == null || raw === '') return; const value = String(raw) .split(/\r?\n/) @@ -325,7 +348,7 @@ export class DfxApprovalPdfService { .join('\n') .trim(); if (!value) return; - const font = options.bold ? bold : regular; + const font = options.bold ? fonts.bold : fonts.regular; const size = options.size ?? 8.5; const width = options.width ?? 260; const lineHeight = size * 1.12; @@ -334,8 +357,14 @@ export class DfxApprovalPdfService { .split('\n') .flatMap((line) => this.wrap(line, font, size, width, maxLines)) .slice(0, maxLines); + + // A value that does not fit its field is cut off; saying so turns a silently incomplete GwG + // document into a visible one. + const collapse = (text: string): string => text.replace(/\s+/g, ' ').trim(); + if (collapse(lines.join(' ')) !== collapse(value)) + this.logger.warn(`DfxApproval document: a value did not fit its field and was truncated`); lines.forEach((line, index) => { - page.drawText(line, { + page.drawText(this.encodable(line, fonts), { x: options.x, y: page.getHeight() - options.top - size - index * lineHeight + 1.5, size, @@ -369,6 +398,29 @@ export class DfxApprovalPdfService { return result; } + // The font files are read once per process; each document embeds only the glyphs it uses. + private async embedFonts(pdf: PDFDocument): Promise { + this.fontFiles ??= Promise.all([ + readFile(join(__dirname, FONT_DIRECTORY, REGULAR_FONT_FILE)), + readFile(join(__dirname, FONT_DIRECTORY, BOLD_FONT_FILE)), + ]); + const [regularFile, boldFile] = await this.fontFiles; + + pdf.registerFontkit(fontkit); + const regular = await pdf.embedFont(regularFile, { subset: true }); + const bold = await pdf.embedFont(boldFile, { subset: true }); + + return { regular, bold, encodable: new Set(regular.getCharacterSet()) }; + } + + // Characters the font has no glyph for (e.g. CJK) are replaced instead of failing the document: + // a document with one substituted character is worth more than no document at all. + private encodable(value: string, fonts: PdfFonts): string { + return Array.from(value) + .map((character) => (fonts.encodable.has(character.codePointAt(0) ?? 0) ? character : REPLACEMENT_CHARACTER)) + .join(''); + } + private check(page: PDFPage, x: number, top: number): void { const size = 12; const y = page.getHeight() - top - size; @@ -413,15 +465,10 @@ export class DfxApprovalPdfService { } private financialBand(value?: string): string { - return ( - { - '1m': " > 1'000'000 CHF", - '500k_1m': "zwischen 500'000 und 1'000'000 CHF", - '100k_500k': "zwischen 100'000 und 500'000 CHF", - '50k_100k': "zwischen 0 und 100'000 CHF", - '50k': "zwischen 0 und 100'000 CHF", - }[value ?? ''] ?? '' - ); + if (value && !(value in FINANCIAL_BANDS)) + this.logger.warn(`DfxApproval CustomerProfile: unknown FinancialData band '${value}', left empty`); + + return FINANCIAL_BANDS[value ?? ''] ?? ''; } private volumeBand(volume: number): string { @@ -450,7 +497,7 @@ export class DfxApprovalPdfService { } private documentNumber(subType: FileSubType, context: DfxApprovalPdfContext): string { - return this.fileName(subType, context).replace(/\.pdf$/, ''); + return (context.documentName ?? this.fileName(subType, context)).replace(/\.pdf$/, ''); } private address(userData: UserData): string { From 402223fdb48d1d75959bf9ea10ae439f984dd987 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:17:19 +0200 Subject: [PATCH 06/15] fix: check generated documents in storage without downloading them The reuse path fetched the whole blob only to find out whether it exists, and discarded it. It now lists the key instead and fails loudly when a document that the database marks valid is gone from storage. It also exposes the registered file of a generation key, so a retry after a failed upload can keep the name of the first attempt - that same string is printed into the document as its document number, so name and content must not drift apart. --- .../__tests__/kyc-document.service.spec.ts | 25 ++++++++++++++++--- .../integration/kyc-document.service.ts | 12 ++++++++- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts index 200f200c20..8013f8fc1a 100644 --- a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts +++ b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts @@ -2,12 +2,12 @@ // spy and no real S3/Azure/mock storage is touched. const uploadWormBlobMock = jest.fn(); const copyBlobsMock = jest.fn(); -const getBlobMock = jest.fn(); +const listKeysMock = jest.fn(); jest.mock('src/integration/infrastructure/storage/storage.factory', () => ({ createStorageService: jest.fn(() => ({ uploadWormBlob: (...args: any[]) => uploadWormBlobMock(...args), copyBlobs: (...args: any[]) => copyBlobsMock(...args), - getBlob: (...args: any[]) => getBlobMock(...args), + listKeys: (...args: any[]) => listKeysMock(...args), blobUrl: (name: string) => `https://storage/${name}`, })), })); @@ -93,7 +93,7 @@ describe('KycDocumentService - storage', () => { it('verifies and reuses an already valid generated document', async () => { const generated = Object.assign(new KycFile(), { id: 17, name: 'generated.pdf', valid: true }); (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(generated); - getBlobMock.mockResolvedValue({ data: Buffer.from('pdf') }); + listKeysMock.mockImplementation((prefix: string) => Promise.resolve([prefix])); await service.ensureGeneratedUserFile( 'dfx-approval:11:RiskProfile:v1', @@ -104,7 +104,7 @@ describe('KycDocumentService - storage', () => { Buffer.from('pdf'), ); - expect(getBlobMock).toHaveBeenCalled(); + expect(listKeysMock).toHaveBeenCalled(); expect(uploadWormBlobMock).not.toHaveBeenCalled(); expect(kycFileService.markValid).not.toHaveBeenCalled(); }); @@ -130,6 +130,23 @@ describe('KycDocumentService - storage', () => { expect(kycFileService.markValid).toHaveBeenCalledWith(generated); }); + it('fails loudly when a document marked valid is gone from storage', async () => { + const generated = Object.assign(new KycFile(), { id: 17, name: 'generated.pdf', valid: true }); + (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(generated); + listKeysMock.mockResolvedValue([]); + + await expect( + service.ensureGeneratedUserFile( + 'dfx-approval:11:RiskProfile:v1', + userData, + FileType.USER_NOTES, + FileSubType.RISK_PROFILE, + generated.name, + Buffer.from('pdf'), + ), + ).rejects.toThrow('missing in storage'); + }); + it('does not hide unrelated database errors', async () => { const error = { driverError: { code: '23505', constraint: 'some_other_constraint' } }; (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValue(null); diff --git a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts index a6b54dcf27..c6dd7ddf78 100644 --- a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts +++ b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts @@ -130,7 +130,11 @@ export class KycDocumentService { let file = await this.kycFileService.getByGenerationKey(generationKey); if (file?.valid) { const blobName = this.toFileId(FileCategory.USER, userData.id, type, file.name); - await this.storageService.getBlob(blobName); + // Existence check only - listing the key avoids transferring the whole document. + const storedKeys = await this.storageService.listKeys(blobName); + if (!storedKeys.includes(blobName)) + throw new Error(`Generated document ${generationKey} is marked valid but missing in storage`); + return { file, url: this.storageService.blobUrl(blobName) }; } @@ -159,6 +163,12 @@ export class KycDocumentService { return { file, url }; } + // Lets a caller reuse the name of a document that was already registered, so a retry after a + // failed upload keeps the document number that is printed into the PDF. + async findGeneratedUserFile(generationKey: string): Promise { + return this.kycFileService.getByGenerationKey(generationKey); + } + async downloadFile(category: FileCategory, userDataId: number, type: FileType, name: string): Promise { return this.storageService.getBlob(this.toFileId(category, userDataId, type, name)); } From c84d918bcf6556c9300622ee1bec416b00297cd4 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:17:35 +0200 Subject: [PATCH 07/15] fix: load and lock the approval rows the way Postgres accepts Two loads in the workflow could not work against a real database, and the mocked tests hid it: - The completion loaded the step without its user data relation. `KycStep.userData` is a ManyToOne without eager loading, so it stayed undefined and reading its ID threw for every case. The step is now loaded through a query builder that joins the user data and locks the step alone. - The risk-data initialisation locked user data with a plain find. That joins the eager, nullable relations of UserData, and Postgres rejects FOR UPDATE on the nullable side of an outer join. It now locks through a query builder without those joins. Both lock aliases are lower case on purpose: the driver emits FOR UPDATE OF unquoted and Postgres folds it to lower case, so a camelCase alias is not found in the FROM clause. Beyond the two loads: - RiskProfile and FormA follow the account, not a KYC step. Requiring a DfxApproval or FinancialData step as an anchor silently skipped every account without one, which the productive Sheet covers. Both documents are now generated from user data alone, serialised on a user-data advisory lock. - Missing NameCheck evidence only fails the NameCheck document instead of the whole case. - The gate blockers are logged instead of discarded: a case waiting forever was indistinguishable from a case nobody looked at. - The excluded account IDs move from the source tree into the `dfxApprovalDocumentExclusions` setting, and the level log keeps the wording of the existing approval path. --- .../{output => }/dfx-approval-status.dto.ts | 10 +- .../dfx-approval-check.service.spec.ts | 2 +- .../dfx-approval-document.service.spec.ts | 52 +++++++ .../dfx-approval-workflow.service.spec.ts | 107 ++++++++++++- .../services/dfx-approval-check.service.ts | 2 +- .../services/dfx-approval-document.service.ts | 22 ++- .../services/dfx-approval-workflow.service.ts | 142 +++++++++++++----- 7 files changed, 273 insertions(+), 64 deletions(-) rename src/subdomains/generic/kyc/dto/{output => }/dfx-approval-status.dto.ts (82%) diff --git a/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts b/src/subdomains/generic/kyc/dto/dfx-approval-status.dto.ts similarity index 82% rename from src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts rename to src/subdomains/generic/kyc/dto/dfx-approval-status.dto.ts index 27f3345a91..55097d3d25 100644 --- a/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts +++ b/src/subdomains/generic/kyc/dto/dfx-approval-status.dto.ts @@ -1,5 +1,7 @@ -import { ApiProperty } from '@nestjs/swagger'; -import { FileSubType } from '../kyc-file.dto'; +import { FileSubType } from './kyc-file.dto'; + +// Internal result of the approval gate: the workflow decides on it and logs it. It is not exposed +// through an endpoint, so it carries no Swagger contract. export enum DfxApprovalBlocker { WRONG_ACCOUNT_TYPE = 'WrongAccountType', @@ -30,17 +32,13 @@ export enum DfxApprovalBlocker { } export class DfxApprovalBlockerDto { - @ApiProperty({ enum: DfxApprovalBlocker }) code: DfxApprovalBlocker; - @ApiProperty({ enum: FileSubType, required: false }) documentSubType?: FileSubType; } export class DfxApprovalStatusDto { - @ApiProperty() ready: boolean; - @ApiProperty({ type: DfxApprovalBlockerDto, isArray: true }) blockers: DfxApprovalBlockerDto[]; } diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts index 7df73fcbdf..0cf7e3fadb 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts @@ -3,7 +3,7 @@ import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; import { KycLevel, KycStatus, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; import { FileSubType, FileType } from '../../dto/kyc-file.dto'; -import { DfxApprovalBlocker } from '../../dto/output/dfx-approval-status.dto'; +import { DfxApprovalBlocker } from '../../dto/dfx-approval-status.dto'; import { KycFile } from '../../entities/kyc-file.entity'; import { KycStep } from '../../entities/kyc-step.entity'; import { KycStepName } from '../../enums/kyc-step-name.enum'; diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts index b30028cee1..48e1e6dbb7 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts @@ -20,6 +20,7 @@ describe('DfxApprovalDocumentService', () => { nameCheckRepo = createMock(); pdfService = createMock(); documentService = createMock(); + documentService.findGeneratedUserFile.mockResolvedValue(null); nameCheckRepo.findOne.mockResolvedValue(null); pdfService.generate.mockResolvedValue(Buffer.from('pdf')); pdfService.fileName.mockReturnValue('document.pdf'); @@ -69,4 +70,55 @@ describe('DfxApprovalDocumentService', () => { expect(pdfService.generate).not.toHaveBeenCalled(); }); + + it('keeps the other documents of the same case when NameCheck evidence is missing', async () => { + await expect( + service.generateMissingPersonalDocuments( + userData, + step, + [], + [FileSubType.DFX_NAME_CHECK, FileSubType.GWG_FILE_COVER, FileSubType.FORM_A], + ), + ).rejects.toThrow('NameCheck evidence is missing'); + + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledTimes(2); + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + expect.stringContaining(FileSubType.GWG_FILE_COVER), + ...Array(6).fill(expect.anything()), + ); + }); + + it('generates account-bound documents without a KYC step', async () => { + await service.generateMissingPersonalDocuments(userData, undefined, [], [FileSubType.FORM_A]); + + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + expect.any(String), + userData, + expect.any(String), + FileSubType.FORM_A, + expect.any(String), + expect.any(Buffer), + { workflow: 'DfxApproval', version: 'v1' }, + ); + }); + + it('reuses the registered file name when a document is generated again', async () => { + documentService.findGeneratedUserFile.mockResolvedValue({ name: 'first-attempt.pdf' } as never); + + await service.generateMissingPersonalDocuments(userData, step, [], [FileSubType.FORM_A]); + + expect(pdfService.generate).toHaveBeenCalledWith( + FileSubType.FORM_A, + expect.objectContaining({ documentName: 'first-attempt.pdf' }), + ); + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + expect.any(String), + userData, + expect.any(String), + FileSubType.FORM_A, + 'first-attempt.pdf', + expect.any(Buffer), + expect.any(Object), + ); + }); }); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts index 19392bf501..1ebb0792ac 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -1,11 +1,12 @@ import { createMock } from '@golevelup/ts-jest'; import { Config, ConfigService } from 'src/config/config'; +import { SettingService } from 'src/shared/models/setting/setting.service'; import { EntityManager } from 'typeorm'; import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; import { KycLevel, KycType, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; import { FileSubType } from '../../dto/kyc-file.dto'; -import { DfxApprovalBlocker } from '../../dto/output/dfx-approval-status.dto'; +import { DfxApprovalBlocker } from '../../dto/dfx-approval-status.dto'; import { KycStep } from '../../entities/kyc-step.entity'; import { KycStepName } from '../../enums/kyc-step-name.enum'; import { ReviewStatus } from '../../enums/review-status.enum'; @@ -22,6 +23,25 @@ describe('DfxApprovalWorkflowService', () => { let documentService: jest.Mocked; let notificationService: jest.Mocked; let checkService: jest.Mocked; + let settingService: jest.Mocked; + + // Chainable query-builder double: the production code locks through the builder, so the double + // has to return itself from every chained call. + function queryBuilder(result: unknown): Record { + const builder: Record = {}; + for (const method of ['leftJoinAndSelect', 'where', 'setLock']) + builder[method] = jest.fn().mockReturnValue(builder); + builder.getOne = jest.fn().mockResolvedValue(result); + + return builder; + } + + // TypeORM emits `FOR UPDATE OF ` unquoted; Postgres folds it to lower case and then fails + // to match a camelCase alias in the FROM clause. + function expectLowerCaseLockAlias(builder: Record): void { + const tables = builder.setLock.mock.calls[0][2] as string[]; + expect(tables).toEqual(tables.map((table) => table.toLowerCase())); + } function pendingStep(): KycStep { const userData = createCustomUserData({ @@ -50,6 +70,8 @@ describe('DfxApprovalWorkflowService', () => { documentService = createMock(); notificationService = createMock(); checkService = createMock(); + settingService = createMock(); + settingService.getObjCached.mockResolvedValue([]); checkService.evaluatePersonal.mockReturnValue({ ready: false, blockers: [{ code: DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType: FileSubType.RISK_PROFILE }], @@ -60,6 +82,7 @@ describe('DfxApprovalWorkflowService', () => { documentService, createMock(), notificationService, + settingService, ); (stepRepo.manager.find as jest.Mock).mockResolvedValue([]); }); @@ -163,7 +186,7 @@ describe('DfxApprovalWorkflowService', () => { kycSteps: [step, financialStep], }); - expect((service as any).eligiblePersonalDocuments(step.userData)).toEqual( + expect((service as any).eligiblePersonalDocuments(step.userData, [])).toEqual( expect.arrayContaining([ FileSubType.GWG_FILE_COVER, FileSubType.IDENTIFICATION_FORM, @@ -173,11 +196,11 @@ describe('DfxApprovalWorkflowService', () => { FileSubType.FORM_A, ]), ); - expect((service as any).eligiblePersonalDocuments(step.userData)).toHaveLength(6); + expect((service as any).eligiblePersonalDocuments(step.userData, [])).toHaveLength(6); step.userData.highRisk = true; - expect((service as any).eligiblePersonalDocuments(step.userData)).not.toContain(FileSubType.RISK_PROFILE); - expect((service as any).eligiblePersonalDocuments(step.userData)).toContain(FileSubType.FORM_A); + expect((service as any).eligiblePersonalDocuments(step.userData, [])).not.toContain(FileSubType.RISK_PROFILE); + expect((service as any).eligiblePersonalDocuments(step.userData, [])).toContain(FileSubType.FORM_A); }); it('applies the productive approval defaults atomically when completing a ready case', async () => { @@ -186,14 +209,21 @@ describe('DfxApprovalWorkflowService', () => { step.userData.amlAccountType = 'legacy'; const manager = stepRepo.manager as unknown as jest.Mocked; (manager.transaction as jest.Mock).mockImplementation((action) => action(manager)); - (manager.findOne as jest.Mock).mockImplementation((entity) => - Promise.resolve(entity === KycStep ? step : step.userData), - ); + const stepBuilder = queryBuilder(step); + (manager.createQueryBuilder as jest.Mock).mockReturnValue(stepBuilder); + (manager.findOne as jest.Mock).mockResolvedValue(step.userData); (manager.exists as jest.Mock).mockResolvedValue(false); checkService.evaluatePersonal.mockReturnValue({ ready: true, blockers: [] }); await (service as any).completeIfReady(step.id); + // The step is loaded together with its user data: a ManyToOne without eager loading is not + // populated otherwise, and the completion needs the user data ID. + expect(stepBuilder.leftJoinAndSelect).toHaveBeenCalledWith('step.userData', 'joinedUserData'); + // Postgres rejects FOR UPDATE on the nullable side of an outer join, so the lock names the step. + expect(stepBuilder.setLock).toHaveBeenCalledWith('pessimistic_write', undefined, ['step']); + expectLowerCaseLockAlias(stepBuilder); + expect(manager.update).toHaveBeenCalledWith( expect.any(Function), step.userData.id, @@ -206,4 +236,65 @@ describe('DfxApprovalWorkflowService', () => { }), ); }); + + it('locks user data without joining its eager relations', async () => { + const userData = createCustomUserData({ id: 42, pep: null, highRisk: null, lastNameCheckDate: new Date() }); + const manager = stepRepo.manager as unknown as jest.Mocked; + (manager.transaction as jest.Mock).mockImplementation((action) => action(manager)); + const userDataBuilder = queryBuilder(userData); + (manager.createQueryBuilder as jest.Mock).mockReturnValue(userDataBuilder); + + await (service as any).initializePersonalRiskData(userData, false); + + expect(manager.findOne).not.toHaveBeenCalled(); + expect(userDataBuilder.leftJoinAndSelect).not.toHaveBeenCalled(); + expect(userDataBuilder.setLock).toHaveBeenCalledWith('pessimistic_write', undefined, ['user_data']); + expectLowerCaseLockAlias(userDataBuilder); + }); + + it('generates RiskProfile and FormA for accounts without any approval or financial step', async () => { + const userData = createCustomUserData({ + id: 42, + accountType: AccountType.PERSONAL, + status: UserDataStatus.ACTIVE, + kycType: KycType.DFX, + kycLevel: KycLevel.LEVEL_30, + verifiedName: 'Test User', + highRisk: false, + country: { fatfEnable: true } as never, + kycSteps: [], + kycFiles: [], + }); + (stepRepo.manager.find as jest.Mock).mockResolvedValueOnce([userData]); + jest.spyOn(service as any, 'withUserDataLock').mockImplementation((_id, action: any) => action()); + + await (service as any).generatePendingRiskAndFormADocuments([]); + + expect(documentService.generateMissingPersonalDocuments).toHaveBeenCalledWith( + userData, + undefined, + userData.kycFiles, + [FileSubType.FORM_A, FileSubType.RISK_PROFILE], + ); + }); + + it('takes the document exclusions from configuration, never from the source tree', async () => { + settingService.getObjCached.mockResolvedValue([42]); + const userData = createCustomUserData({ + id: 42, + accountType: AccountType.PERSONAL, + status: UserDataStatus.ACTIVE, + kycType: KycType.DFX, + kycLevel: KycLevel.LEVEL_30, + highRisk: false, + country: { fatfEnable: true } as never, + }); + + expect((service as any).eligibleRiskAndFormADocuments(userData, [42])).toEqual([]); + expect((service as any).eligibleRiskAndFormADocuments(userData, [])).toContain(FileSubType.FORM_A); + + await service.reviewPersonalApprovals(); + + expect(settingService.getObjCached).toHaveBeenCalledWith('dfxApprovalDocumentExclusions', []); + }); }); diff --git a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts index 64df452eab..54e7b7216a 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts @@ -4,7 +4,7 @@ import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycLevel, KycStatus, UserDataStatus } from '../../user/models/user-data/user-data.enum'; import { IdentDocumentType } from '../dto/ident-result-data.dto'; import { FileSubType, FileType } from '../dto/kyc-file.dto'; -import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; +import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/dfx-approval-status.dto'; import { KycFile } from '../entities/kyc-file.entity'; import { KycStep } from '../entities/kyc-step.entity'; import { KycStepName } from '../enums/kyc-step-name.enum'; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts index 02f95df243..feb91a6141 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts @@ -24,9 +24,11 @@ export class DfxApprovalDocumentService { private readonly documentService: KycDocumentService, ) {} + // `step` is optional: RiskProfile and FormA follow the account, not a KYC step, and the productive + // Sheet selects them from user data alone. It is only recorded in the document metadata. async generateMissingPersonalDocuments( userData: UserData, - step: KycStep, + step: KycStep | undefined, files: KycFile[], requestedDocuments: readonly FileSubType[] = DFX_APPROVAL_GENERATED_DOCUMENTS, ): Promise { @@ -39,25 +41,31 @@ export class DfxApprovalDocumentService { where: { userData: { id: userData.id } }, order: { created: 'DESC' }, }); - if (missing.includes(FileSubType.DFX_NAME_CHECK) && !nameCheck) - throw new Error(`NameCheck evidence is missing for userData ${userData.id}`); const generatedAt = new Date(); const failures: string[] = []; for (const subType of missing) { try { - const context = { userData, steps: userData.kycSteps, nameCheck, generatedAt }; - const data = await this.pdfService.generate(subType, context); + // Only the NameCheck document depends on this evidence; failing it here keeps every other + // document of the same case unblocked. + if (subType === FileSubType.DFX_NAME_CHECK && !nameCheck) + throw new Error(`NameCheck evidence is missing for userData ${userData.id}`); + const version = 'v1'; const generationKey = `dfx-approval:${userData.id}:${subType}:${version}`; + // A retry keeps the name of the first attempt; the same string is printed into the document + // as its document number, so name and content must not drift apart. + const registered = await this.documentService.findGeneratedUserFile(generationKey); + const context = { userData, steps: userData.kycSteps, nameCheck, generatedAt, documentName: registered?.name }; + const data = await this.pdfService.generate(subType, context); await this.documentService.ensureGeneratedUserFile( generationKey, userData, FileType.USER_NOTES, subType, - this.pdfService.fileName(subType, context), + registered?.name ?? this.pdfService.fileName(subType, context), data, - { workflow: 'DfxApproval', version, stepId: String(step.id) }, + { workflow: 'DfxApproval', version, ...(step ? { stepId: String(step.id) } : {}) }, ); } catch (error) { failures.push(`${subType}: ${(error as Error).message}`); diff --git a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts index b486bc611a..c384570001 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts @@ -1,6 +1,7 @@ import { Injectable, NotFoundException } from '@nestjs/common'; import { CronExpression } from '@nestjs/schedule'; import { Config } from 'src/config/config'; +import { SettingService } from 'src/shared/models/setting/setting.service'; import { DfxLogger } from 'src/shared/services/dfx-logger'; import { Process } from 'src/shared/services/process.service'; import { DfxCron } from 'src/shared/utils/cron'; @@ -22,8 +23,19 @@ import { DfxApprovalDocumentService } from './dfx-approval-document.service'; import { KycNotificationService } from './kyc-notification.service'; import { NameCheckService } from './name-check.service'; -const ADVISORY_LOCK_NAMESPACE = 1145466968; -const LEGACY_DOCUMENT_EXCLUSIONS = [374462, 374428, 385169]; +// Separate advisory-lock namespaces: step IDs and user data IDs are independent sequences and must +// not collide in the same lock space. +const STEP_ADVISORY_LOCK_NAMESPACE = 1145466968; +const USER_DATA_ADVISORY_LOCK_NAMESPACE = 1145466969; + +// Accounts excluded from generated GwG documents, kept out of the source tree because they are +// productive account IDs. Empty unless the setting is present. +export const DOCUMENT_EXCLUSION_SETTING_KEY = 'dfxApprovalDocumentExclusions'; + +// Lock aliases must be lower case: TypeORM emits `FOR UPDATE OF ` unquoted and Postgres +// folds unquoted identifiers to lower case, so a camelCase alias is not found in the FROM clause. +const STEP_LOCK_ALIAS = 'step'; +const USER_DATA_LOCK_ALIAS = 'user_data'; @Injectable() export class DfxApprovalWorkflowService { @@ -35,12 +47,15 @@ export class DfxApprovalWorkflowService { private readonly documentService: DfxApprovalDocumentService, private readonly nameCheckService: NameCheckService, private readonly notificationService: KycNotificationService, + private readonly settingService: SettingService, ) {} @DfxCron(CronExpression.EVERY_MINUTE, { process: Process.KYC_DFX_APPROVAL, timeout: 900 }) async reviewPersonalApprovals(): Promise { if (!Config.kyc.dfxApprovalWorkflowEnabled) return; + const exclusions = await this.documentExclusions(); + await this.initializePendingPersonalRiskData(); const steps = await this.kycStepRepo.find({ @@ -55,16 +70,21 @@ export class DfxApprovalWorkflowService { for (const step of steps) { try { - await this.withStepLock(step.id, () => this.processPersonalApproval(step.id)); + await this.withStepLock(step.id, () => this.processPersonalApproval(step.id, exclusions)); } catch (error) { this.logger.error(`DfxApproval workflow failed for step ${step.id}:`, error); } } - await this.generatePendingPersonalDocuments(); + await this.generatePendingPersonalDocuments(exclusions); + } + + // Productive account IDs stay in configuration, never in the source tree. + private async documentExclusions(): Promise { + return (await this.settingService.getObjCached(DOCUMENT_EXCLUSION_SETTING_KEY, [])) ?? []; } - private async processPersonalApproval(stepId: number): Promise { + private async processPersonalApproval(stepId: number, exclusions: number[]): Promise { let step = await this.loadStep(stepId); if (step.status !== ReviewStatus.MANUAL_REVIEW || step.userData.kycLevel < KycLevel.LEVEL_40) return; @@ -72,7 +92,7 @@ export class DfxApprovalWorkflowService { await this.initializePersonalRiskData(step.userData, hasOpenNameChecks); step = await this.loadStep(stepId); - const requestedDocuments = this.eligiblePersonalDocuments(step.userData); + const requestedDocuments = this.eligiblePersonalDocuments(step.userData, exclusions); await this.documentService.generateMissingPersonalDocuments( step.userData, step, @@ -95,10 +115,7 @@ export class DfxApprovalWorkflowService { if (!Object.keys(update).length) return; await this.kycStepRepo.manager.transaction(async (manager) => { - const current = await manager.findOne(UserData, { - where: { id: userData.id }, - lock: { mode: 'pessimistic_write' }, - }); + const current = await this.lockUserData(manager, userData.id); if (!current) throw new NotFoundException('UserData not found'); const effectiveUpdate = Object.fromEntries( @@ -145,10 +162,10 @@ export class DfxApprovalWorkflowService { } } - private async generatePendingPersonalDocuments(): Promise { + private async generatePendingPersonalDocuments(exclusions: number[]): Promise { await this.generatePendingApprovalStepDocuments(); await this.generatePendingCustomerProfiles(); - await this.generatePendingRiskAndFormADocuments(); + await this.generatePendingRiskAndFormADocuments(exclusions); } private async generatePendingApprovalStepDocuments(): Promise { @@ -211,10 +228,10 @@ export class DfxApprovalWorkflowService { } } - private async generatePendingRiskAndFormADocuments(): Promise { + private async generatePendingRiskAndFormADocuments(exclusions: number[]): Promise { const users = await this.kycStepRepo.manager.find(UserData, { where: { - id: Not(In(LEGACY_DOCUMENT_EXCLUSIONS)), + ...(exclusions.length ? { id: Not(In(exclusions)) } : {}), accountType: AccountType.PERSONAL, status: Not(UserDataStatus.MERGED), kycType: KycType.DFX, @@ -234,13 +251,19 @@ export class DfxApprovalWorkflowService { }); for (const userData of users) { - const step = this.documentAnchorStep(userData); - if (!step) continue; - const requested = this.eligibleRiskAndFormADocuments(userData); + const requested = this.eligibleRiskAndFormADocuments(userData, exclusions); try { - await this.withStepLock(step.id, () => - this.documentService.generateMissingPersonalDocuments(userData, step, userData.kycFiles, requested), + // These two documents follow the account, not a KYC step. Locking on the user data keeps + // accounts without a DfxApproval or FinancialData step in scope, which the productive Sheet + // covers as well. + await this.withUserDataLock(userData.id, () => + this.documentService.generateMissingPersonalDocuments( + userData, + this.documentAnchorStep(userData), + userData.kycFiles, + requested, + ), ); } catch (error) { this.logger.error(`DfxApproval risk/FormA generation failed for userData ${userData.id}:`, error); @@ -248,13 +271,14 @@ export class DfxApprovalWorkflowService { } } + // Optional: only used to reference the triggering step in the document metadata. private documentAnchorStep(userData: UserData): KycStep | undefined { return [...(userData.kycSteps ?? [])] .filter((step) => [KycStepName.DFX_APPROVAL, KycStepName.FINANCIAL_DATA].includes(step.name)) .sort((a, b) => b.created.getTime() - a.created.getTime())[0]; } - private eligiblePersonalDocuments(userData: UserData): FileSubType[] { + private eligiblePersonalDocuments(userData: UserData, exclusions: number[]): FileSubType[] { const documents = this.eligibleApprovalStepDocuments(userData); const isPreApprovalPersonal = userData.accountType === AccountType.PERSONAL && @@ -265,7 +289,7 @@ export class DfxApprovalWorkflowService { ); if (isPreApprovalPersonal && userData.verifiedName && hasFinancialData) documents.push(FileSubType.CUSTOMER_PROFILE); - documents.push(...this.eligibleRiskAndFormADocuments(userData)); + documents.push(...this.eligibleRiskAndFormADocuments(userData, exclusions)); return [...new Set(documents)]; } @@ -278,14 +302,14 @@ export class DfxApprovalWorkflowService { return documents; } - private eligibleRiskAndFormADocuments(userData: UserData): FileSubType[] { + private eligibleRiskAndFormADocuments(userData: UserData, exclusions: number[]): FileSubType[] { const eligible = userData.accountType === AccountType.PERSONAL && userData.status !== UserDataStatus.MERGED && userData.kycType === KycType.DFX && userData.kycLevel >= KycLevel.LEVEL_30 && userData.kycLevel < KycLevel.LEVEL_50 && - !LEGACY_DOCUMENT_EXCLUSIONS.includes(userData.id); + !exclusions.includes(userData.id); if (!eligible) return []; const documents = [FileSubType.FORM_A]; @@ -295,10 +319,7 @@ export class DfxApprovalWorkflowService { private async completeIfReady(stepId: number): Promise { return this.kycStepRepo.manager.transaction(async (manager) => { - const step = await manager.findOne(KycStep, { - where: { id: stepId }, - lock: { mode: 'pessimistic_write' }, - }); + const step = await this.lockStep(manager, stepId); if (!step || step.status !== ReviewStatus.MANUAL_REVIEW) return undefined; const userData = await this.loadUserData(manager, step.userData.id); @@ -311,7 +332,16 @@ export class DfxApprovalWorkflowService { }, }); const status = this.checkService.evaluatePersonal(userData, step, userData.kycFiles, hasOpenNameChecks); - if (!status.ready) return undefined; + if (!status.ready) { + // The gate decision is the operational signal of this workflow: without the blockers, a case + // waiting forever is indistinguishable from a case nobody looked at. + this.logger.verbose( + `DfxApproval step ${step.id} not ready: ${status.blockers + .map((blocker) => blocker.code + (blocker.documentSubType ? `(${blocker.documentSubType})` : '')) + .join(', ')}`, + ); + return undefined; + } const result = JSON.stringify({ workflow: 'DfxApproval', @@ -372,7 +402,9 @@ export class DfxApprovalWorkflowService { manager.create(KycLog, { type: KycLogType.KYC, userData: { id: userData.id }, - result: `KycLevel confirmed at ${finalKycLevel} by DfxApproval API workflow`, + // Same wording as the manual approval path (KycService.createKycLevelLog), so existing + // log evaluations keep matching. + result: `KycLevel changed to ${finalKycLevel}`, }), ); @@ -381,6 +413,31 @@ export class DfxApprovalWorkflowService { }); } + // Row lock for the approval transaction. The step is joined to its user data because a + // `ManyToOne` without `eager` is not populated by a plain load, and the completion needs the + // user data ID. `FOR UPDATE OF` names the step alone: Postgres rejects `FOR UPDATE` on the + // nullable side of an outer join, and the user data is only read here, never written. + private async lockStep(manager: EntityManager, stepId: number): Promise { + return manager + .createQueryBuilder(KycStep, STEP_LOCK_ALIAS) + .leftJoinAndSelect(`${STEP_LOCK_ALIAS}.userData`, 'joinedUserData') + .where(`${STEP_LOCK_ALIAS}.id = :stepId`, { stepId }) + .setLock('pessimistic_write', undefined, [STEP_LOCK_ALIAS]) + .getOne() + .then((step) => step ?? undefined); + } + + // Row lock on user data only. A find with relations would join the eager, nullable relations of + // `UserData` (country, verifiedCountry, organization), which Postgres refuses to lock. + private async lockUserData(manager: EntityManager, userDataId: number): Promise { + return manager + .createQueryBuilder(UserData, USER_DATA_LOCK_ALIAS) + .where(`${USER_DATA_LOCK_ALIAS}.id = :userDataId`, { userDataId }) + .setLock('pessimistic_write', undefined, [USER_DATA_LOCK_ALIAS]) + .getOne() + .then((userData) => userData ?? undefined); + } + private async loadStep(stepId: number): Promise { const step = await this.kycStepRepo.findOne({ where: { id: stepId }, @@ -417,24 +474,27 @@ export class DfxApprovalWorkflowService { return userData; } - private async withStepLock(stepId: number, action: () => Promise, wait = false): Promise { + private async withStepLock(stepId: number, action: () => Promise): Promise { + return this.withAdvisoryLock(STEP_ADVISORY_LOCK_NAMESPACE, stepId, action); + } + + private async withUserDataLock(userDataId: number, action: () => Promise): Promise { + return this.withAdvisoryLock(USER_DATA_ADVISORY_LOCK_NAMESPACE, userDataId, action); + } + + private async withAdvisoryLock(namespace: number, key: number, action: () => Promise): Promise { const runner = this.kycStepRepo.manager.connection.createQueryRunner(); await runner.connect(); let acquired = false; try { - if (wait) { - await runner.query('SELECT pg_advisory_lock($1, $2)', [ADVISORY_LOCK_NAMESPACE, stepId]); - acquired = true; - } else { - const rows = (await runner.query('SELECT pg_try_advisory_lock($1, $2) AS acquired', [ - ADVISORY_LOCK_NAMESPACE, - stepId, - ])) as { acquired: boolean }[]; - acquired = rows[0]?.acquired === true; - } + const rows = (await runner.query('SELECT pg_try_advisory_lock($1, $2) AS acquired', [namespace, key])) as { + acquired: boolean; + }[]; + acquired = rows[0]?.acquired === true; + if (acquired) await action(); } finally { - if (acquired) await runner.query('SELECT pg_advisory_unlock($1, $2)', [ADVISORY_LOCK_NAMESPACE, stepId]); + if (acquired) await runner.query('SELECT pg_advisory_unlock($1, $2)', [namespace, key]); await runner.release(); } } From 070e402edcd1185a8e6275cbf88d337f036fc3b9 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:17:44 +0200 Subject: [PATCH 08/15] docs: document the corrected cutover steps Records the embedded Unicode font, the account-bound selection of RiskProfile and FormA, the exclusion setting that has to be filled before the cutover, and the gate-blocker log line as a monitoring source. --- docs/dfx-approval-migration.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/dfx-approval-migration.md b/docs/dfx-approval-migration.md index e9246d25c9..dc5219b83f 100644 --- a/docs/dfx-approval-migration.md +++ b/docs/dfx-approval-migration.md @@ -34,7 +34,10 @@ Pro Fall gilt: 3. Die sechs fehlenden PDF-Nachweise werden mit `pdf-lib` direkt auf Kopien der produktiven Google-Sheet-PDF-Vorlagen geschrieben und über einen eindeutigen `generationKey` idempotent im WORM-Storage gespeichert. Ein `kyc_file` wird erst nach erfolgreichem - Upload als gültig markiert. + Upload als gültig markiert. Der Text wird mit einer eingebetteten Unicode-Schrift gesetzt + (Liberation Sans, metrisch Arial/Helvetica-kompatibel), damit Namen, Strassen und Arbeitgeber + ausserhalb von Latin-1 nicht zum Abbruch führen; Zeichen ohne Glyphe werden ersetzt und + protokolliert statt das Dokument zu verwerfen. 4. Das serverseitige Gate prüft alle fachlichen Voraussetzungen und alle acht Dokumenttypen. 5. Nur ein vollständig freier Fall wird in einer DB-Transaktion auf `DfxApproval = Completed`, `kycLevel = 50` und `kycStatus = Completed` gesetzt. Step- und KYC-Logs werden in derselben @@ -47,12 +50,15 @@ Die sechs Dokumente behalten ihre voneinander unabhängigen GSheet-Auswahlregeln je Dokument. - `CustomerProfile`: abgeschlossene FinancialData für Personal-Konten mit `30 <= kycLevel < 50`. - `RiskProfile` und `FormA`: DFX-Personal-Konten mit `30 <= kycLevel < 50`; beim RiskProfile zusätzlich - `highRisk=false` und ein FATF-freigegebenes Wohnsitzland. Die drei produktiven Legacy-Ausnahmen - `374462`, `374428` und `385169` bleiben bestehen. + `highRisk=false` und ein FATF-freigegebenes Wohnsitzland. Diese beiden Dokumente hängen am Konto, + nicht an einem KYC-Schritt: sie werden auch für Konten erzeugt, die weder einen `DfxApproval`- noch + einen `FinancialData`-Schritt haben. Die produktiven Legacy-Ausnahmen stehen in der Einstellung + `dfxApprovalDocumentExclusions` (JSON-Array von `user_data`-IDs) und nicht im Quelltext; ohne + gesetzte Einstellung ist die Ausnahmeliste leer. Dadurch kann ein Dokument erzeugt werden, auch wenn ein anderes Dokument oder eine spätere -Freigabevoraussetzung noch fehlt. Unvollständige oder ungültige JSON-Daten, offene NameChecks und -Storage-Fehler werden pro Dokument protokolliert; andere Dokumente desselben Falls laufen weiter. +Freigabevoraussetzung noch fehlt. Unvollständige oder ungültige JSON-Daten, fehlende NameCheck-Daten +und Storage-Fehler werden pro Dokument protokolliert; andere Dokumente desselben Falls laufen weiter. Leere Compliance-Werte werden nicht als `false` interpretiert. ## Automatisches Freigabe-Gate @@ -79,6 +85,8 @@ vollständig in der API. Die Reihenfolge ist verbindlich, damit GSheets und API niemals parallel schreiben: 1. API inklusive DB-Migration deployen, während `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` bleibt. + Im selben Schritt die Einstellung `dfxApprovalDocumentExclusions` mit den produktiven + Legacy-Ausnahmen setzen — ohne sie erzeugt der Workflow auch für diese Konten Dokumente. 2. Mit einem Testfall die sechs PDF-Subtypen und die automatische Freigabe im deaktivierten bzw. kontrollierten Staging-Betrieb prüfen. 3. Alle acht minütlichen `admin@dfx.swiss`-Trigger deaktivieren, aber für einen schnellen Rollback @@ -111,6 +119,8 @@ Alarmiert werden muss bei: - steigendem Alter des ältesten wartenden Falls - fehlenden oder ungültigen Dokument-Subtypen - wiederholten `DfxApproval workflow failed`-Logs +- wiederkehrenden `DfxApproval step not ready`-Logs mit demselben Blocker: sie nennen den Grund, + warum ein Fall nicht freigegeben wird - Storage-, PDF-, JSON- oder NameCheck-Fehlern Ein Rückstau von null ist nur eine Momentaufnahme. Massgeblich sind Durchsatz und Alter der Fälle. From 785bcef633ab0becf3981daadf7e5c5cc087adfb Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:19:39 +0200 Subject: [PATCH 09/15] docs: write the migration guide in English Every other document under docs/ is in English, and this repository is public. Same content, plus the operator account is no longer named explicitly. --- docs/dfx-approval-migration.md | 216 +++++++++++++++++---------------- 1 file changed, 109 insertions(+), 107 deletions(-) diff --git a/docs/dfx-approval-migration.md b/docs/dfx-approval-migration.md index dc5219b83f..a625b7816f 100644 --- a/docs/dfx-approval-migration.md +++ b/docs/dfx-approval-migration.md @@ -1,11 +1,11 @@ -# Ablösung der acht DfxApproval-GSheets +# Replacing the eight DfxApproval GSheets -## Umfang +## Scope -Der neue API-Workflow ersetzt ausschliesslich die acht minütlichen Personal-Onboarding-Projekte: +The API workflow replaces exactly the eight minute-interval personal onboarding projects: -1. DfxApproval-Freigabe -2. DfxApproval-Risikoflags +1. DfxApproval approval +2. DfxApproval risk flags 3. `GwGFileCover` 4. `IdentificationForm` 5. `CustomerProfile` @@ -13,114 +13,116 @@ Der neue API-Workflow ersetzt ausschliesslich die acht minütlichen Personal-Onb 7. `FormA` 8. `DfxNameCheck` -`IdentReport` und `PersonalNameCheck` werden weiterhin von ihren bestehenden KYC-Prozessen erzeugt. -Sie gehören zum Freigabe-Gate, sind aber keine der acht abzulösenden GSheets. Organisationen sind -nicht Teil dieser Personal-GSheet-Migration. - -## Ablauf in der API - -`DfxApprovalWorkflowService` sucht jede Minute höchstens 50 der ältesten Personal-Fälle mit -`DfxApproval = ManualReview` und `kycLevel >= 40`. Der Prozess ist standardmässig ausgeschaltet und -wird erst mit `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` aktiviert. - -Pro Fall gilt: - -1. Ein PostgreSQL-Advisory-Lock verhindert parallele Verarbeitung durch mehrere API-Instanzen. -2. Nur nach einem höchstens 90 Tage alten, abgeschlossenen NameCheck werden noch leere - Personal-Risikofelder mit den bisherigen GSheet-Werten initialisiert: `pep=false`, - `highRisk=false`, `complexOrgStructure=false` und `depositLimit=100000`. `amlAccountType` wird wie - im Freigabe-Sheet erst für den DfxApproval-Fall auf `natural person` gesetzt. Vorhandene Werte - werden nie überschrieben und jede Änderung wird im `kyc_log` protokolliert. -3. Die sechs fehlenden PDF-Nachweise werden mit `pdf-lib` direkt auf Kopien der produktiven - Google-Sheet-PDF-Vorlagen geschrieben und über einen eindeutigen - `generationKey` idempotent im WORM-Storage gespeichert. Ein `kyc_file` wird erst nach erfolgreichem - Upload als gültig markiert. Der Text wird mit einer eingebetteten Unicode-Schrift gesetzt - (Liberation Sans, metrisch Arial/Helvetica-kompatibel), damit Namen, Strassen und Arbeitgeber - ausserhalb von Latin-1 nicht zum Abbruch führen; Zeichen ohne Glyphe werden ersetzt und - protokolliert statt das Dokument zu verwerfen. -4. Das serverseitige Gate prüft alle fachlichen Voraussetzungen und alle acht Dokumenttypen. -5. Nur ein vollständig freier Fall wird in einer DB-Transaktion auf `DfxApproval = Completed`, - `kycLevel = 50` und `kycStatus = Completed` gesetzt. Step- und KYC-Logs werden in derselben - Transaktion geschrieben; die Benachrichtigung folgt erst nach dem Commit. - -Die sechs Dokumente behalten ihre voneinander unabhängigen GSheet-Auswahlregeln: - -- `GwGFileCover`, `IdentificationForm` und `DfxNameCheck`: DfxApproval in `InternalReview` oder - `ManualReview`; die spezifischen Prüfungen auf Personal, Name, Nationalität und Merge-Status gelten - je Dokument. -- `CustomerProfile`: abgeschlossene FinancialData für Personal-Konten mit `30 <= kycLevel < 50`. -- `RiskProfile` und `FormA`: DFX-Personal-Konten mit `30 <= kycLevel < 50`; beim RiskProfile zusätzlich - `highRisk=false` und ein FATF-freigegebenes Wohnsitzland. Diese beiden Dokumente hängen am Konto, - nicht an einem KYC-Schritt: sie werden auch für Konten erzeugt, die weder einen `DfxApproval`- noch - einen `FinancialData`-Schritt haben. Die produktiven Legacy-Ausnahmen stehen in der Einstellung - `dfxApprovalDocumentExclusions` (JSON-Array von `user_data`-IDs) und nicht im Quelltext; ohne - gesetzte Einstellung ist die Ausnahmeliste leer. - -Dadurch kann ein Dokument erzeugt werden, auch wenn ein anderes Dokument oder eine spätere -Freigabevoraussetzung noch fehlt. Unvollständige oder ungültige JSON-Daten, fehlende NameCheck-Daten -und Storage-Fehler werden pro Dokument protokolliert; andere Dokumente desselben Falls laufen weiter. -Leere Compliance-Werte werden nicht als `false` interpretiert. - -## Automatisches Freigabe-Gate - -Die automatische Freigabe verlangt: - -- Personal-Konto, DfxApproval `ManualReview`, `kycLevel >= 40` -- `verifiedName`, `kycHash`, Vorname, Geburtstag und E-Mail +`IdentReport` and `PersonalNameCheck` keep being produced by their existing KYC processes. They are +part of the approval gate, but they are not among the eight sheets being replaced. Organizations are +not part of this personal-sheet migration. + +## How the API handles a case + +`DfxApprovalWorkflowService` picks up at most 50 of the oldest personal cases with +`DfxApproval = ManualReview` and `kycLevel >= 40` every minute. The process is off by default and is +only activated with `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true`. + +Per case: + +1. A PostgreSQL advisory lock prevents parallel processing across API instances. +2. Empty personal risk fields are initialised with the previous GSheet values only after a completed + NameCheck that is at most 90 days old: `pep=false`, `highRisk=false`, `complexOrgStructure=false` + and `depositLimit=100000`. As in the approval sheet, `amlAccountType` is only set to + `natural person` for the DfxApproval case itself. Existing values are never overwritten, and every + change is recorded in `kyc_log`. +3. The six missing PDF records are written with `pdf-lib` onto copies of the productive Google Sheet + PDF templates and stored idempotently in WORM storage under a unique `generationKey`. A `kyc_file` + is marked valid only after a successful upload. The text is set in an embedded Unicode font + (Liberation Sans, metrically compatible with Arial/Helvetica) so that names, streets and employers + outside Latin-1 do not abort the document; characters without a glyph are substituted and logged + instead of discarding the document. +4. The server-side gate checks every business precondition and all eight document types. +5. Only a fully unblocked case is set to `DfxApproval = Completed`, `kycLevel = 50` and + `kycStatus = Completed` in one database transaction. Step and KYC logs are written in the same + transaction; the notification follows after the commit. + +The six documents keep their mutually independent GSheet selection rules: + +- `GwGFileCover`, `IdentificationForm` and `DfxNameCheck`: DfxApproval in `InternalReview` or + `ManualReview`; the specific checks on personal account, name, nationality and merge status apply + per document. +- `CustomerProfile`: completed FinancialData for personal accounts with `30 <= kycLevel < 50`. +- `RiskProfile` and `FormA`: DFX personal accounts with `30 <= kycLevel < 50`; RiskProfile + additionally requires `highRisk=false` and a FATF-enabled country of residence. These two documents + belong to the account, not to a KYC step: they are also generated for accounts that have neither a + `DfxApproval` nor a `FinancialData` step, which is what the productive Sheet covers. The productive + legacy exceptions live in the `dfxApprovalDocumentExclusions` setting (a JSON array of `user_data` + IDs) instead of the source tree; without that setting the exclusion list is empty. + +A document can therefore be produced even when another document or a later approval precondition is +still missing. Incomplete or invalid JSON data, missing NameCheck data and storage errors are logged +per document; the other documents of the same case continue. Empty compliance values are never +interpreted as `false`. + +## Automatic approval gate + +Automatic approval requires: + +- personal account, DfxApproval `ManualReview`, `kycLevel` of at least 40 +- `verifiedName`, `kycHash`, first name, date of birth and e-mail - `complexOrgStructure = false`, `highRisk = false`, `pep = false` -- zulässigen User- und KYC-Status -- aktiviertes Land ohne manuelle Länderprüfung; Brasilien bleibt ausgeschlossen -- erlaubten Identifikationsdokumenttyp und vorhandene Dokumentnummer -- vorhandene Nationalität; bei deaktivierter Nationalität einen abgeschlossenen Aufenthaltstitel -- keinen offenen sanktionierten NameCheck -- gültige Dateien für `GwGFileCover`, `IdentReport`, `IdentificationForm`, `CustomerProfile`, - `RiskProfile`, `FormA`, `DfxNameCheck` und `PersonalNameCheck` - -Für diese Migration ist keine Änderung an `DFXswiss/services` und kein zusätzlicher manueller -Endpoint erforderlich. Freigabe, Dokumenterzeugung, Sperren, Idempotenz und Auditierung liegen -vollständig in der API. - -## Produktiver Cutover - -Die Reihenfolge ist verbindlich, damit GSheets und API niemals parallel schreiben: - -1. API inklusive DB-Migration deployen, während `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` bleibt. - Im selben Schritt die Einstellung `dfxApprovalDocumentExclusions` mit den produktiven - Legacy-Ausnahmen setzen — ohne sie erzeugt der Workflow auch für diese Konten Dokumente. -2. Mit einem Testfall die sechs PDF-Subtypen und die automatische Freigabe im deaktivierten bzw. - kontrollierten Staging-Betrieb prüfen. -3. Alle acht minütlichen `admin@dfx.swiss`-Trigger deaktivieren, aber für einen schnellen Rollback - noch nicht löschen. -4. Mindestens drei Minuten prüfen, dass keines der acht Projekte mehr ausgeführt wird. -5. `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` setzen und die API kontrolliert neu starten. -6. Über mehrere Minuten Durchsatz, ältesten wartenden Fall, neue `kyc_file`-Subtypen, Step-Logs und - Fehlerlogs beobachten. -7. Erst nach stabiler Beobachtung die acht alten Trigger endgültig entfernen. - -Zusätzlich bleibt `Process.KYC_DFX_APPROVAL` über die bestehende `disabledProcesses`-Einstellung als -schneller Kill-Switch verfügbar. +- a permitted user and KYC status +- an enabled country without manual country review; Brazil stays excluded +- a permitted identification document type and a present document number +- a present nationality; for a disabled nationality a completed residence permit +- no open sanctioned NameCheck +- valid files for `GwGFileCover`, `IdentReport`, `IdentificationForm`, `CustomerProfile`, + `RiskProfile`, `FormA`, `DfxNameCheck` and `PersonalNameCheck` + +Whenever the gate refuses, the blocking reasons are logged as +`DfxApproval step not ready: `. + +This migration requires no change in `DFXswiss/services` and no additional manual endpoint. +Approval, document generation, locking, idempotency and auditing live entirely in the API. + +## Productive cutover + +The order is binding so that GSheets and API never write in parallel: + +1. Deploy the API including the database migration while `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` + stays in place. In the same step, fill the `dfxApprovalDocumentExclusions` setting with the + productive legacy exceptions — without it the workflow also generates documents for those + accounts. +2. Verify the six PDF subtypes and the automatic approval with a test case in the disabled or + controlled staging setup. +3. Disable all eight minute-interval triggers on the operator account, but do not delete them yet, so + that a rollback stays quick. +4. Confirm for at least three minutes that none of the eight projects runs any more. +5. Set `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=true` and restart the API in a controlled way. +6. Watch throughput, the oldest waiting case, new `kyc_file` subtypes, step logs and error logs over + several minutes. +7. Remove the eight old triggers for good only after a stable observation period. + +`Process.KYC_DFX_APPROVAL` also remains available as a fast kill switch through the existing +`disabledProcesses` setting. ## Rollback -1. `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` setzen oder `KycDfxApproval` über - `disabledProcesses` ausschalten. -2. Sicherstellen, dass keine API-Ausführung mehr läuft. -3. Die acht alten Trigger wieder aktivieren und deren Ausführungen sowie den Rückstau überwachen. +1. Set `KYC_DFX_APPROVAL_WORKFLOW_ENABLED=false` or disable `KycDfxApproval` through + `disabledProcesses`. +2. Make sure no API execution is still running. +3. Re-enable the eight old triggers and watch their executions and the backlog. -Die Schema-Migration wird nicht zurückgerollt: `generationKey` ist für bestehende Dateien nullable -und beeinträchtigt den alten Ablauf nicht. Bereits korrekt erzeugte API-Dokumente bleiben gültige -KYC-Nachweise; die alten Sheets müssen vorhandene Subtypen wie bisher überspringen. +The schema migration is not rolled back: `generationKey` is nullable for existing files and does not +affect the old process. Documents already generated correctly by the API stay valid KYC records; as +before, the old sheets have to skip subtypes that already exist. -## Betriebsüberwachung +## Operational monitoring -Alarmiert werden muss bei: +Alerts are needed for: -- wachsender Anzahl `DfxApproval = ManualReview` mit `kycLevel = 40` -- steigendem Alter des ältesten wartenden Falls -- fehlenden oder ungültigen Dokument-Subtypen -- wiederholten `DfxApproval workflow failed`-Logs -- wiederkehrenden `DfxApproval step not ready`-Logs mit demselben Blocker: sie nennen den Grund, - warum ein Fall nicht freigegeben wird -- Storage-, PDF-, JSON- oder NameCheck-Fehlern +- a growing number of `DfxApproval = ManualReview` with `kycLevel = 40` +- an increasing age of the oldest waiting case +- missing or invalid document subtypes +- repeated `DfxApproval workflow failed` logs +- recurring `DfxApproval step not ready` logs with the same blocker: they name the reason a case + is not being approved +- storage, PDF, JSON or NameCheck errors -Ein Rückstau von null ist nur eine Momentaufnahme. Massgeblich sind Durchsatz und Alter der Fälle. +A backlog of zero is only a snapshot. Throughput and case age are what matter. From a29d8290c12da08662943549c9dfb17068899a18 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 12:19:27 +0200 Subject: [PATCH 10/15] fix: keep risk data and document generation on one condition each Three points from the review round: - The batch that initialises empty risk fields passed `hasOpenNameChecks = false` instead of asking. A new sanctioned hit does not refresh `lastNameCheckDate` - that only happens on a clean result - so a still-valid date is no proof that no check is open. Such an account could get `highRisk = false` written, and a RiskProfile stating exactly that, while a sanctions match was still unresolved. The flag is now queried per account. - RiskProfile and FormA were reachable from two different advisory-lock namespaces: the step lock in the approval loop and the user-data lock in the account-bound batch. Two instances could therefore render and upload the same document concurrently under the same generation key, each with its own embedded timestamp. Both documents now belong to the account-bound path alone. - The approval audit entry recorded only step status, KYC level and KYC status, while the same transaction also overwrites `complexOrgStructure`, `highRisk`, `depositLimit` and `amlAccountType`. A limit set by Compliance was therefore not recoverable from the database. All four previous values are now part of the entry, which is written before the columns change. The log entries and the step completion now go through the existing `KycLogService.createLogInternal` and `KycStep.complete()` instead of rebuilding both by hand. --- .../dfx-approval-workflow.service.spec.ts | 121 +++++++++++++++--- .../services/dfx-approval-workflow.service.ts | 106 ++++++++------- 2 files changed, 165 insertions(+), 62 deletions(-) diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts index 1ebb0792ac..ca01a7f5e0 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -1,6 +1,7 @@ import { createMock } from '@golevelup/ts-jest'; import { Config, ConfigService } from 'src/config/config'; import { SettingService } from 'src/shared/models/setting/setting.service'; +import { KycLogService } from '../kyc-log.service'; import { EntityManager } from 'typeorm'; import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; @@ -11,7 +12,7 @@ import { KycStep } from '../../entities/kyc-step.entity'; import { KycStepName } from '../../enums/kyc-step-name.enum'; import { ReviewStatus } from '../../enums/review-status.enum'; import { KycStepRepository } from '../../repositories/kyc-step.repository'; -import { DfxApprovalCheckService } from '../dfx-approval-check.service'; +import { DFX_APPROVAL_REQUIRED_DOCUMENTS, DfxApprovalCheckService } from '../dfx-approval-check.service'; import { DfxApprovalDocumentService } from '../dfx-approval-document.service'; import { DfxApprovalWorkflowService } from '../dfx-approval-workflow.service'; import { KycNotificationService } from '../kyc-notification.service'; @@ -83,6 +84,7 @@ describe('DfxApprovalWorkflowService', () => { createMock(), notificationService, settingService, + createMock(), ); (stepRepo.manager.find as jest.Mock).mockResolvedValue([]); }); @@ -168,7 +170,7 @@ describe('DfxApprovalWorkflowService', () => { expect(notificationService.kycChanged).not.toHaveBeenCalled(); }); - it('selects all six generated documents only when their original Sheet predicates match', () => { + it('selects the step-bound documents when their original Sheet predicates match', () => { const step = pendingStep(); const financialStep = Object.assign(new KycStep(), { id: 12, @@ -186,21 +188,65 @@ describe('DfxApprovalWorkflowService', () => { kycSteps: [step, financialStep], }); - expect((service as any).eligiblePersonalDocuments(step.userData, [])).toEqual( - expect.arrayContaining([ - FileSubType.GWG_FILE_COVER, - FileSubType.IDENTIFICATION_FORM, - FileSubType.DFX_NAME_CHECK, - FileSubType.CUSTOMER_PROFILE, - FileSubType.RISK_PROFILE, - FileSubType.FORM_A, - ]), - ); - expect((service as any).eligiblePersonalDocuments(step.userData, [])).toHaveLength(6); + expect((service as any).eligiblePersonalDocuments(step.userData)).toEqual([ + FileSubType.GWG_FILE_COVER, + FileSubType.IDENTIFICATION_FORM, + FileSubType.DFX_NAME_CHECK, + FileSubType.CUSTOMER_PROFILE, + ]); + }); - step.userData.highRisk = true; - expect((service as any).eligiblePersonalDocuments(step.userData, [])).not.toContain(FileSubType.RISK_PROFILE); - expect((service as any).eligiblePersonalDocuments(step.userData, [])).toContain(FileSubType.FORM_A); + it('leaves the account-bound documents to the user-data lock, so no two lock keys write the same file', () => { + const step = pendingStep(); + Object.assign(step.userData, { + status: UserDataStatus.ACTIVE, + kycType: KycType.DFX, + verifiedName: 'Test User', + country: { fatfEnable: true }, + highRisk: false, + }); + + const stepBound = (service as any).eligiblePersonalDocuments(step.userData); + + expect(stepBound).not.toContain(FileSubType.FORM_A); + expect(stepBound).not.toContain(FileSubType.RISK_PROFILE); + expect((service as any).eligibleRiskAndFormADocuments(step.userData, [])).toEqual([ + FileSubType.FORM_A, + FileSubType.RISK_PROFILE, + ]); + }); + + it('keeps RiskProfile generation and the approval gate on the same country condition', () => { + const userData = createCustomUserData({ + id: 42, + accountType: AccountType.PERSONAL, + status: UserDataStatus.ACTIVE, + kycType: KycType.DFX, + kycLevel: KycLevel.LEVEL_40, + verifiedName: 'Test User', + highRisk: false, + country: { fatfEnable: false } as never, + }); + + // Outside a FATF-enabled country no RiskProfile is generated - exactly as in the productive + // Sheet. The gate still requires the document, so such a case stays with Compliance instead of + // being approved automatically. Both sides must be changed together. + expect((service as any).eligibleRiskAndFormADocuments(userData, [])).toEqual([FileSubType.FORM_A]); + expect(DFX_APPROVAL_REQUIRED_DOCUMENTS).toContain(FileSubType.RISK_PROFILE); + }); + + it('does not initialise risk data while a sanctioned name check is open', async () => { + const userData = createCustomUserData({ id: 42, highRisk: null, lastNameCheckDate: new Date() }); + (stepRepo.manager.find as jest.Mock).mockResolvedValueOnce([userData]); + const nameCheckService = (service as any).nameCheckService as jest.Mocked; + nameCheckService.hasOpenNameChecks.mockResolvedValue(true); + const initialize = jest.spyOn(service as any, 'initializePersonalRiskData'); + + await (service as any).initializePendingPersonalRiskData(); + + expect(nameCheckService.hasOpenNameChecks).toHaveBeenCalledWith(userData); + expect(initialize).toHaveBeenCalledWith(userData, true); + expect(stepRepo.manager.transaction).not.toHaveBeenCalled(); }); it('applies the productive approval defaults atomically when completing a ready case', async () => { @@ -237,6 +283,49 @@ describe('DfxApprovalWorkflowService', () => { ); }); + it('records the previous value of every overwritten compliance column before the update', async () => { + const step = pendingStep(); + Object.assign(step.userData, { + depositLimit: 250000, + amlAccountType: 'legacy', + highRisk: false, + complexOrgStructure: false, + }); + const manager = stepRepo.manager as unknown as jest.Mocked; + (manager.transaction as jest.Mock).mockImplementation((action) => action(manager)); + (manager.createQueryBuilder as jest.Mock).mockReturnValue(queryBuilder(step)); + (manager.findOne as jest.Mock).mockResolvedValue(step.userData); + (manager.exists as jest.Mock).mockResolvedValue(false); + checkService.evaluatePersonal.mockReturnValue({ ready: true, blockers: [] }); + const logService = (service as any).logService as jest.Mocked; + + await (service as any).completeIfReady(step.id); + + const approvalLog = logService.createLogInternal.mock.calls + .map((call) => call[2]) + .map((result) => { + try { + return JSON.parse(result as string); + } catch { + return undefined; + } + }) + .find((entry) => entry?.action === 'AutomaticApproval'); + + expect(approvalLog.before).toEqual( + expect.objectContaining({ + depositLimit: 250000, + amlAccountType: 'legacy', + highRisk: false, + complexOrgStructure: false, + }), + ); + // The audit entry is written before the columns change. + expect(logService.createLogInternal.mock.invocationCallOrder[0]).toBeLessThan( + (manager.update as jest.Mock).mock.invocationCallOrder[0], + ); + }); + it('locks user data without joining its eager relations', async () => { const userData = createCustomUserData({ id: 42, pep: null, highRisk: null, lastNameCheckDate: new Date() }); const manager = stepRepo.manager as unknown as jest.Mocked; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts index c384570001..6932546d34 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts @@ -10,7 +10,6 @@ import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycLevel, KycStatus, KycType, UserDataStatus } from '../../user/models/user-data/user-data.enum'; import { FileSubType } from '../dto/kyc-file.dto'; -import { KycLog } from '../entities/kyc-log.entity'; import { KycStep } from '../entities/kyc-step.entity'; import { NameCheckLog, NameCheckRiskStatus } from '../entities/name-check-log.entity'; import { StepLog } from '../entities/step-log.entity'; @@ -20,6 +19,7 @@ import { ReviewStatus } from '../enums/review-status.enum'; import { KycStepRepository } from '../repositories/kyc-step.repository'; import { DfxApprovalCheckService } from './dfx-approval-check.service'; import { DfxApprovalDocumentService } from './dfx-approval-document.service'; +import { KycLogService } from './kyc-log.service'; import { KycNotificationService } from './kyc-notification.service'; import { NameCheckService } from './name-check.service'; @@ -48,6 +48,7 @@ export class DfxApprovalWorkflowService { private readonly nameCheckService: NameCheckService, private readonly notificationService: KycNotificationService, private readonly settingService: SettingService, + private readonly logService: KycLogService, ) {} @DfxCron(CronExpression.EVERY_MINUTE, { process: Process.KYC_DFX_APPROVAL, timeout: 900 }) @@ -70,7 +71,7 @@ export class DfxApprovalWorkflowService { for (const step of steps) { try { - await this.withStepLock(step.id, () => this.processPersonalApproval(step.id, exclusions)); + await this.withStepLock(step.id, () => this.processPersonalApproval(step.id)); } catch (error) { this.logger.error(`DfxApproval workflow failed for step ${step.id}:`, error); } @@ -84,7 +85,7 @@ export class DfxApprovalWorkflowService { return (await this.settingService.getObjCached(DOCUMENT_EXCLUSION_SETTING_KEY, [])) ?? []; } - private async processPersonalApproval(stepId: number, exclusions: number[]): Promise { + private async processPersonalApproval(stepId: number): Promise { let step = await this.loadStep(stepId); if (step.status !== ReviewStatus.MANUAL_REVIEW || step.userData.kycLevel < KycLevel.LEVEL_40) return; @@ -92,7 +93,7 @@ export class DfxApprovalWorkflowService { await this.initializePersonalRiskData(step.userData, hasOpenNameChecks); step = await this.loadStep(stepId); - const requestedDocuments = this.eligiblePersonalDocuments(step.userData, exclusions); + const requestedDocuments = this.eligiblePersonalDocuments(step.userData); await this.documentService.generateMissingPersonalDocuments( step.userData, step, @@ -123,19 +124,16 @@ export class DfxApprovalWorkflowService { ) as Partial; if (!Object.keys(effectiveUpdate).length) return; - await manager.save( - manager.create(KycLog, { - type: KycLogType.KYC, - userData: { id: current.id }, - result: JSON.stringify({ - workflow: 'DfxApproval', - action: 'InitializePersonalRiskData', - before: Object.fromEntries( - Object.keys(effectiveUpdate).map((key) => [key, current[key as keyof UserData]]), - ), - after: effectiveUpdate, - }), + await this.logService.createLogInternal( + current, + KycLogType.KYC, + JSON.stringify({ + workflow: 'DfxApproval', + action: 'InitializePersonalRiskData', + before: Object.fromEntries(Object.keys(effectiveUpdate).map((key) => [key, current[key as keyof UserData]])), + after: effectiveUpdate, }), + manager, ); await manager.update(UserData, current.id, effectiveUpdate); }); @@ -155,7 +153,10 @@ export class DfxApprovalWorkflowService { for (const userData of users) { try { - await this.initializePersonalRiskData(userData, false); + // A new sanctioned hit does not refresh `lastNameCheckDate` (that only happens on a clean + // result), so a still-valid date is no proof that no check is open. Ask for it. + const hasOpenNameChecks = await this.nameCheckService.hasOpenNameChecks(userData); + await this.initializePersonalRiskData(userData, hasOpenNameChecks); } catch (error) { this.logger.error(`DfxApproval risk initialization failed for userData ${userData.id}:`, error); } @@ -278,7 +279,10 @@ export class DfxApprovalWorkflowService { .sort((a, b) => b.created.getTime() - a.created.getTime())[0]; } - private eligiblePersonalDocuments(userData: UserData, exclusions: number[]): FileSubType[] { + // Step-bound documents only. RiskProfile and FormA belong to the account and are generated under + // the user-data lock in `generatePendingRiskAndFormADocuments`; generating them from here as well + // would let two instances write the same document under two different lock keys. + private eligiblePersonalDocuments(userData: UserData): FileSubType[] { const documents = this.eligibleApprovalStepDocuments(userData); const isPreApprovalPersonal = userData.accountType === AccountType.PERSONAL && @@ -289,7 +293,7 @@ export class DfxApprovalWorkflowService { ); if (isPreApprovalPersonal && userData.verifiedName && hasFinancialData) documents.push(FileSubType.CUSTOMER_PROFILE); - documents.push(...this.eligibleRiskAndFormADocuments(userData, exclusions)); + return [...new Set(documents)]; } @@ -359,27 +363,38 @@ export class DfxApprovalWorkflowService { }); const finalKycLevel = Math.max(userData.kycLevel, KycLevel.LEVEL_50); - await manager.save( - manager.create(KycLog, { - type: KycLogType.KYC, - userData: { id: userData.id }, - result: JSON.stringify({ - workflow: 'DfxApproval', - action: 'AutomaticApproval', - before: { stepStatus: step.status, kycLevel: userData.kycLevel, kycStatus: userData.kycStatus }, - after: { - stepStatus: ReviewStatus.COMPLETED, - kycLevel: finalKycLevel, - kycStatus: KycStatus.COMPLETED, - complexOrgStructure: false, - highRisk: false, - depositLimit: 100000, - amlAccountType: 'natural person', - }, - }), + // Every column this transaction overwrites is recorded with its previous value first, so the + // prior state stays reconstructible from the database alone. + await this.logService.createLogInternal( + userData, + KycLogType.KYC, + JSON.stringify({ + workflow: 'DfxApproval', + action: 'AutomaticApproval', + before: { + stepStatus: step.status, + kycLevel: userData.kycLevel, + kycStatus: userData.kycStatus, + complexOrgStructure: userData.complexOrgStructure, + highRisk: userData.highRisk, + depositLimit: userData.depositLimit, + amlAccountType: userData.amlAccountType, + }, + after: { + stepStatus: ReviewStatus.COMPLETED, + kycLevel: finalKycLevel, + kycStatus: KycStatus.COMPLETED, + complexOrgStructure: false, + highRisk: false, + depositLimit: 100000, + amlAccountType: 'natural person', + }, }), + manager, ); - await manager.update(KycStep, step.id, { status: ReviewStatus.COMPLETED, result, comment: null }); + + const [stepId_, stepUpdate] = step.complete(result); + await manager.update(KycStep, stepId_, { ...stepUpdate, comment: null }); await manager.save( manager.create(StepLog, { type: KycLogType.STEP, @@ -398,14 +413,13 @@ export class DfxApprovalWorkflowService { amlAccountType: 'natural person', }; await manager.update(UserData, userData.id, userStatusUpdate); - await manager.save( - manager.create(KycLog, { - type: KycLogType.KYC, - userData: { id: userData.id }, - // Same wording as the manual approval path (KycService.createKycLevelLog), so existing - // log evaluations keep matching. - result: `KycLevel changed to ${finalKycLevel}`, - }), + // Same wording as the manual approval path (KycService.createKycLevelLog), so existing log + // evaluations keep matching. + await this.logService.createLogInternal( + userData, + KycLogType.KYC, + `KycLevel changed to ${finalKycLevel}`, + manager, ); Object.assign(userData, userStatusUpdate); From f7e7f499e78e73b790ffa8226fa806dda7484091 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 12:19:37 +0200 Subject: [PATCH 11/15] chore: follow the repository conventions for index name and cron inventory - The unique index on `kyc_file.generationKey` carried a hand-written name, which the contribution guide rules out twice. Entity and migration now use the name TypeORM generates itself, and the constraint check in the storage service refers to the same constant. - The new minute-interval job was missing from the cron inventory the contribution guide requires. Added, with the counts recomputed the way that document describes: 132 declarations across 93 files, 111 of them with a flag, 50 on a minute interval. --- docs/cron-jobs.md | 11 ++++++----- migration/1785537000000-AddKycFileGenerationKey.js | 4 ++-- .../generic/kyc/entities/kyc-file.entity.ts | 2 +- .../__tests__/kyc-document.service.spec.ts | 4 ++-- .../kyc/services/integration/kyc-document.service.ts | 6 +++++- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/cron-jobs.md b/docs/cron-jobs.md index ccb451d1ed..647e70ae83 100644 --- a/docs/cron-jobs.md +++ b/docs/cron-jobs.md @@ -1,6 +1,6 @@ # Cron jobs -Every scheduled job this service runs: **131 `@DfxCron` declarations** across 92 files and 33 areas. +Every scheduled job this service runs: **132 `@DfxCron` declarations** across 93 files and 33 areas. ## Columns @@ -13,7 +13,7 @@ Every scheduled job this service runs: **131 `@DfxCron` declarations** across 92 ## Flags -110 of the 131 jobs carry a `process` flag, 21 do not. A job with a flag can be switched off +111 of the 132 jobs carry a `process` flag, 21 do not. A job with a flag can be switched off without a deploy — `DfxCronService` skips it when the process appears in the disabled set, which `ProcessService` refreshes from the `disabledProcesses` setting and the `DISABLED_PROCESSES` environment variable every 30 seconds. @@ -45,7 +45,7 @@ New jobs should declare a flag unless there is a reason like the one above. | second | 5 | | 10 seconds | 3 | | 30 seconds | 8 | -| minute | 49 | +| minute | 50 | | 5 minutes | 17 | | 10 minutes | 15 | | hour | 16 | @@ -70,7 +70,7 @@ Jobs by area: | `subdomains/core/buy-crypto` | 6 | 4 | | `subdomains/core/sell-crypto` | 5 | 2 | | `subdomains/core/payment-link` | 4 | — | -| `subdomains/generic/kyc` | 4 | — | +| `subdomains/generic/kyc` | 5 | — | | `subdomains/supporting/bank-tx` | 4 | — | | `subdomains/supporting/bank` | 4 | — | | `subdomains/supporting/fiat-output` | 4 | — | @@ -100,7 +100,7 @@ Jobs by area: Every `@DfxCron(` occurrence in `src/**/*.ts`. Decorator arguments are read by a balanced-paren scan, so multi-line declarations are included — a line-based match misses four of them. The parsed -count is asserted against a raw text count of the decorator: **131 = 131**, no gap. Class and +count is asserted against a raw text count of the decorator: **132 = 132**, no gap. Class and method come from the enclosing `export class` (including `export abstract class`) and the identifier following the decorator. @@ -146,6 +146,7 @@ the interval while running as an independent timer with its own lock. | minute | `MONITORING` | `CheckoutObserver::fetch` | `subdomains/core/monitoring/observers/checkout.observer.ts` | | minute | `PAY_IN` | `CitreaBaseStrategy::checkPayInEntries` | `subdomains/supporting/payin/strategies/register/impl/base/citrea.strategy.ts` | | minute | `CUSTODY` | `CustodyJobService::handleOrders` | `subdomains/core/custody/services/custody-job.service.ts` | +| minute | `KYC_DFX_APPROVAL` | `DfxApprovalWorkflowService::reviewPersonalApprovals` | `subdomains/generic/kyc/services/dfx-approval-workflow.service.ts` | | minute | `FIAT_OUTPUT` | `FiatOutputJobService::fillFiatOutput` | `subdomains/supporting/fiat-output/fiat-output-job.service.ts` | | minute | `FIAT_PAY_IN` | `FiatPayInSyncService::syncCheckout` | `subdomains/supporting/fiat-payin/services/fiat-payin-sync.service.ts` | | minute | `PAY_IN` | `InternetComputerStrategy::checkPayInEntries` | `subdomains/supporting/payin/strategies/register/impl/icp.strategy.ts` | diff --git a/migration/1785537000000-AddKycFileGenerationKey.js b/migration/1785537000000-AddKycFileGenerationKey.js index 1ee401951a..9b50b21457 100644 --- a/migration/1785537000000-AddKycFileGenerationKey.js +++ b/migration/1785537000000-AddKycFileGenerationKey.js @@ -17,12 +17,12 @@ module.exports = class AddKycFileGenerationKey1785537000000 { async up(queryRunner) { await queryRunner.query(`SET LOCAL lock_timeout = '5s'`); await queryRunner.query(`ALTER TABLE "kyc_file" ADD "generationKey" character varying(256)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dfx_kyc_file_generation_key" ON "kyc_file" ("generationKey")`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_840d5653c5f3bc7c76de2d156d" ON "kyc_file" ("generationKey")`); } /** @param {QueryRunner} queryRunner */ async down(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_dfx_kyc_file_generation_key"`); + await queryRunner.query(`DROP INDEX "public"."IDX_840d5653c5f3bc7c76de2d156d"`); await queryRunner.query(`ALTER TABLE "kyc_file" DROP COLUMN "generationKey"`); } }; diff --git a/src/subdomains/generic/kyc/entities/kyc-file.entity.ts b/src/subdomains/generic/kyc/entities/kyc-file.entity.ts index 570399f236..5ee36f64d5 100644 --- a/src/subdomains/generic/kyc/entities/kyc-file.entity.ts +++ b/src/subdomains/generic/kyc/entities/kyc-file.entity.ts @@ -8,7 +8,7 @@ import { KycStep } from './kyc-step.entity'; @Entity() export class KycFile extends IEntity { - @Index('IDX_dfx_kyc_file_generation_key', { unique: true }) + @Index({ unique: true }) @Column({ length: 256, nullable: true }) generationKey?: string; diff --git a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts index 8013f8fc1a..04fa4b6372 100644 --- a/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts +++ b/src/subdomains/generic/kyc/services/integration/__tests__/kyc-document.service.spec.ts @@ -19,7 +19,7 @@ import { FileSubType, FileType } from '../../../dto/kyc-file.dto'; import { KycFile } from '../../../entities/kyc-file.entity'; import { ContentType } from '../../../enums/content-type.enum'; import { KycFileService } from '../../kyc-file.service'; -import { KycDocumentService } from '../kyc-document.service'; +import { GENERATION_KEY_INDEX, KycDocumentService } from '../kyc-document.service'; describe('KycDocumentService - storage', () => { let service: KycDocumentService; @@ -113,7 +113,7 @@ describe('KycDocumentService - storage', () => { const generated = Object.assign(new KycFile(), { id: 18, name: 'generated.pdf', valid: false }); (kycFileService.getByGenerationKey as jest.Mock).mockResolvedValueOnce(null).mockResolvedValueOnce(generated); (kycFileService.createKycFile as jest.Mock).mockRejectedValue({ - driverError: { code: '23505', constraint: 'IDX_dfx_kyc_file_generation_key' }, + driverError: { code: '23505', constraint: GENERATION_KEY_INDEX }, }); await service.ensureGeneratedUserFile( diff --git a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts index c6dd7ddf78..071f431007 100644 --- a/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts +++ b/src/subdomains/generic/kyc/services/integration/kyc-document.service.ts @@ -13,6 +13,10 @@ import { KycFileService } from '../kyc-file.service'; const KYC_CONTAINER = 'kyc'; +// TypeORM's generated name for the unique index on `kyc_file.generationKey`; the repository does not +// use custom index names. +export const GENERATION_KEY_INDEX = 'IDX_840d5653c5f3bc7c76de2d156d'; + @Injectable() export class KycDocumentService { private readonly storageService: StorageService; @@ -200,6 +204,6 @@ export class KycDocumentService { const candidate = error as { code?: string; driverError?: { code?: string; constraint?: string } }; const code = candidate.driverError?.code ?? candidate.code; const constraint = candidate.driverError?.constraint; - return code === '23505' && (!constraint || constraint === 'IDX_dfx_kyc_file_generation_key'); + return code === '23505' && (!constraint || constraint === GENERATION_KEY_INDEX); } } From bb09da8f2a78590e7c3f6ba170119996cd4e809a Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 12:35:54 +0200 Subject: [PATCH 12/15] fix: give every generated document exactly one generation path CustomerProfile had the same cross-lock gap that RiskProfile and FormA had: the approval loop requested it under the lock of the DfxApproval step while the batch generated it under the lock of the FinancialData step. The two candidate sets overlap exactly at `kycLevel = 40`, so two instances could render and upload the same document concurrently, each with its own embedded document number. Each document now has a single path and a single lock key: GwGFileCover, IdentificationForm and DfxNameCheck under the DfxApproval step lock, CustomerProfile under the FinancialData step lock, RiskProfile and FormA under the user-data lock. That makes the combined selection helper redundant. Also: the module imports are back in alphabetical order, and the comment on the exclusion setting now says what the setting actually affects. --- src/subdomains/generic/kyc/kyc.module.ts | 2 +- .../dfx-approval-workflow.service.spec.ts | 28 ++++++------------- .../services/dfx-approval-workflow.service.ts | 28 ++++--------------- 3 files changed, 16 insertions(+), 42 deletions(-) diff --git a/src/subdomains/generic/kyc/kyc.module.ts b/src/subdomains/generic/kyc/kyc.module.ts index c5e3c71dc0..dd37736a17 100644 --- a/src/subdomains/generic/kyc/kyc.module.ts +++ b/src/subdomains/generic/kyc/kyc.module.ts @@ -26,11 +26,11 @@ import { KycStepRepository } from './repositories/kyc-step.repository'; import { NameCheckLogRepository } from './repositories/name-check-log.repository'; import { StepLogRepository } from './repositories/step-log.repository'; import { TfaLogRepository } from './repositories/tfa-log.repository'; -import { DilisenseService } from './services/integration/dilisense.service'; import { DfxApprovalCheckService } from './services/dfx-approval-check.service'; import { DfxApprovalDocumentService } from './services/dfx-approval-document.service'; import { DfxApprovalPdfService } from './services/dfx-approval-pdf.service'; import { DfxApprovalWorkflowService } from './services/dfx-approval-workflow.service'; +import { DilisenseService } from './services/integration/dilisense.service'; import { FinancialService } from './services/integration/financial.service'; import { KycDocumentService } from './services/integration/kyc-document.service'; import { SumsubService } from './services/integration/sum-sub.service'; diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts index ca01a7f5e0..646d8a28d9 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -170,7 +170,7 @@ describe('DfxApprovalWorkflowService', () => { expect(notificationService.kycChanged).not.toHaveBeenCalled(); }); - it('selects the step-bound documents when their original Sheet predicates match', () => { + it('gives every document exactly one generation path, so no two lock keys write the same file', () => { const step = pendingStep(); const financialStep = Object.assign(new KycStep(), { id: 12, @@ -188,32 +188,22 @@ describe('DfxApprovalWorkflowService', () => { kycSteps: [step, financialStep], }); - expect((service as any).eligiblePersonalDocuments(step.userData)).toEqual([ + // Step lock: the three documents that hang off the DfxApproval step. + expect((service as any).eligibleApprovalStepDocuments(step.userData)).toEqual([ FileSubType.GWG_FILE_COVER, FileSubType.IDENTIFICATION_FORM, FileSubType.DFX_NAME_CHECK, - FileSubType.CUSTOMER_PROFILE, ]); - }); - - it('leaves the account-bound documents to the user-data lock, so no two lock keys write the same file', () => { - const step = pendingStep(); - Object.assign(step.userData, { - status: UserDataStatus.ACTIVE, - kycType: KycType.DFX, - verifiedName: 'Test User', - country: { fatfEnable: true }, - highRisk: false, - }); - - const stepBound = (service as any).eligiblePersonalDocuments(step.userData); - - expect(stepBound).not.toContain(FileSubType.FORM_A); - expect(stepBound).not.toContain(FileSubType.RISK_PROFILE); + // User-data lock: the two documents that hang off the account. expect((service as any).eligibleRiskAndFormADocuments(step.userData, [])).toEqual([ FileSubType.FORM_A, FileSubType.RISK_PROFILE, ]); + // CustomerProfile is generated under the lock of the FinancialData step and appears in neither. + expect((service as any).eligibleApprovalStepDocuments(step.userData)).not.toContain(FileSubType.CUSTOMER_PROFILE); + expect((service as any).eligibleRiskAndFormADocuments(step.userData, [])).not.toContain( + FileSubType.CUSTOMER_PROFILE, + ); }); it('keeps RiskProfile generation and the approval gate on the same country condition', () => { diff --git a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts index 6932546d34..83de7c3651 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts @@ -28,8 +28,8 @@ import { NameCheckService } from './name-check.service'; const STEP_ADVISORY_LOCK_NAMESPACE = 1145466968; const USER_DATA_ADVISORY_LOCK_NAMESPACE = 1145466969; -// Accounts excluded from generated GwG documents, kept out of the source tree because they are -// productive account IDs. Empty unless the setting is present. +// Accounts excluded from RiskProfile and FormA generation, kept out of the source tree because they +// are productive account IDs. Empty unless the setting is present. export const DOCUMENT_EXCLUSION_SETTING_KEY = 'dfxApprovalDocumentExclusions'; // Lock aliases must be lower case: TypeORM emits `FOR UPDATE OF ` unquoted and Postgres @@ -93,12 +93,14 @@ export class DfxApprovalWorkflowService { await this.initializePersonalRiskData(step.userData, hasOpenNameChecks); step = await this.loadStep(stepId); - const requestedDocuments = this.eligiblePersonalDocuments(step.userData); + // Only the documents that belong to this step. CustomerProfile is generated under the lock of + // the FinancialData step, RiskProfile and FormA under the user-data lock: a document written + // from two different lock keys can be rendered and uploaded twice at the same time. await this.documentService.generateMissingPersonalDocuments( step.userData, step, step.userData.kycFiles, - requestedDocuments, + this.eligibleApprovalStepDocuments(step.userData), ); const completedUser = await this.completeIfReady(stepId); @@ -279,24 +281,6 @@ export class DfxApprovalWorkflowService { .sort((a, b) => b.created.getTime() - a.created.getTime())[0]; } - // Step-bound documents only. RiskProfile and FormA belong to the account and are generated under - // the user-data lock in `generatePendingRiskAndFormADocuments`; generating them from here as well - // would let two instances write the same document under two different lock keys. - private eligiblePersonalDocuments(userData: UserData): FileSubType[] { - const documents = this.eligibleApprovalStepDocuments(userData); - const isPreApprovalPersonal = - userData.accountType === AccountType.PERSONAL && - userData.kycLevel >= KycLevel.LEVEL_30 && - userData.kycLevel < KycLevel.LEVEL_50; - const hasFinancialData = userData.kycSteps?.some( - (step) => step.name === KycStepName.FINANCIAL_DATA && step.isCompleted, - ); - if (isPreApprovalPersonal && userData.verifiedName && hasFinancialData) - documents.push(FileSubType.CUSTOMER_PROFILE); - - return [...new Set(documents)]; - } - private eligibleApprovalStepDocuments(userData: UserData): FileSubType[] { const documents: FileSubType[] = []; if (userData.verifiedName) documents.push(FileSubType.GWG_FILE_COVER); From c7b98cb0638897ae206426deb1025af2e8f05044 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 12:52:59 +0200 Subject: [PATCH 13/15] chore: sort the imports of the new files alphabetically The contribution guide asks for alphabetically sorted imports. Moving the status DTO out of the `output` directory and adding the fontkit import had left four import blocks out of order. --- .../kyc/services/__tests__/dfx-approval-check.service.spec.ts | 2 +- .../generic/kyc/services/dfx-approval-check.service.ts | 2 +- .../generic/kyc/services/dfx-approval-pdf.service.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts index 0cf7e3fadb..9ef0408c01 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts @@ -2,8 +2,8 @@ import { createCustomCountry } from 'src/shared/models/country/__mocks__/country import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; import { KycLevel, KycStatus, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; -import { FileSubType, FileType } from '../../dto/kyc-file.dto'; import { DfxApprovalBlocker } from '../../dto/dfx-approval-status.dto'; +import { FileSubType, FileType } from '../../dto/kyc-file.dto'; import { KycFile } from '../../entities/kyc-file.entity'; import { KycStep } from '../../entities/kyc-step.entity'; import { KycStepName } from '../../enums/kyc-step-name.enum'; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts index 54e7b7216a..c1876eed4b 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycLevel, KycStatus, UserDataStatus } from '../../user/models/user-data/user-data.enum'; +import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/dfx-approval-status.dto'; import { IdentDocumentType } from '../dto/ident-result-data.dto'; import { FileSubType, FileType } from '../dto/kyc-file.dto'; -import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/dfx-approval-status.dto'; import { KycFile } from '../entities/kyc-file.entity'; import { KycStep } from '../entities/kyc-step.entity'; import { KycStepName } from '../enums/kyc-step-name.enum'; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts index 4d26f5e0f5..287645cb69 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -1,11 +1,11 @@ -import fontkit from '@pdf-lib/fontkit'; import { Injectable } from '@nestjs/common'; +import fontkit from '@pdf-lib/fontkit'; import { DfxLogger } from 'src/shared/services/dfx-logger'; import { readFile } from 'fs/promises'; import { join } from 'path'; import { PDFDocument, PDFFont, PDFPage, rgb } from 'pdf-lib'; -import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycIdentificationType } from '../../user/models/user-data/kyc-identification-type.enum'; +import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycFinancialResponse } from '../dto/input/kyc-financial-in.dto'; import { FileSubType } from '../dto/kyc-file.dto'; import { KycStep } from '../entities/kyc-step.entity'; From b1030d538852d9d324e9f1e541e12bd0edea6cc9 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 13:04:51 +0200 Subject: [PATCH 14/15] chore: sort every import block of this change alphabetically Applies the repository's import order - non-relative paths first, then relative ones, each alphabetically - to all files this pull request touches, not just the ones spotted so far. --- .../services/__tests__/dfx-approval-check.service.spec.ts | 2 +- .../__tests__/dfx-approval-document.service.spec.ts | 2 +- .../kyc/services/__tests__/dfx-approval-pdf.service.spec.ts | 6 +++--- .../__tests__/dfx-approval-workflow.service.spec.ts | 6 +++--- .../generic/kyc/services/dfx-approval-pdf.service.ts | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts index 9ef0408c01..6e2a5d8df5 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts @@ -1,6 +1,6 @@ import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; -import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { KycLevel, KycStatus, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; import { DfxApprovalBlocker } from '../../dto/dfx-approval-status.dto'; import { FileSubType, FileType } from '../../dto/kyc-file.dto'; diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts index 48e1e6dbb7..82b45f18b5 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts @@ -1,6 +1,6 @@ import { createMock } from '@golevelup/ts-jest'; -import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { FileSubType } from '../../dto/kyc-file.dto'; import { KycStep } from '../../entities/kyc-step.entity'; import { NameCheckLogRepository } from '../../repositories/name-check-log.repository'; diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts index 7e7281646d..bd58b2637c 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts @@ -1,10 +1,10 @@ -import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; -import { createDefaultLanguage } from 'src/shared/models/language/__mocks__/language.entity.mock'; import { createHash } from 'crypto'; import { readFile } from 'fs/promises'; import { join } from 'path'; -import { AccountType } from '../../../user/models/user-data/account-type.enum'; +import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; +import { createDefaultLanguage } from 'src/shared/models/language/__mocks__/language.entity.mock'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { FileSubType } from '../../dto/kyc-file.dto'; import { KycStep } from '../../entities/kyc-step.entity'; import { NameCheckLog, NameCheckRiskStatus } from '../../entities/name-check-log.entity'; diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts index 646d8a28d9..2564fe7eb0 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -1,13 +1,12 @@ import { createMock } from '@golevelup/ts-jest'; import { Config, ConfigService } from 'src/config/config'; import { SettingService } from 'src/shared/models/setting/setting.service'; -import { KycLogService } from '../kyc-log.service'; import { EntityManager } from 'typeorm'; -import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { KycLevel, KycType, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; -import { FileSubType } from '../../dto/kyc-file.dto'; import { DfxApprovalBlocker } from '../../dto/dfx-approval-status.dto'; +import { FileSubType } from '../../dto/kyc-file.dto'; import { KycStep } from '../../entities/kyc-step.entity'; import { KycStepName } from '../../enums/kyc-step-name.enum'; import { ReviewStatus } from '../../enums/review-status.enum'; @@ -15,6 +14,7 @@ import { KycStepRepository } from '../../repositories/kyc-step.repository'; import { DFX_APPROVAL_REQUIRED_DOCUMENTS, DfxApprovalCheckService } from '../dfx-approval-check.service'; import { DfxApprovalDocumentService } from '../dfx-approval-document.service'; import { DfxApprovalWorkflowService } from '../dfx-approval-workflow.service'; +import { KycLogService } from '../kyc-log.service'; import { KycNotificationService } from '../kyc-notification.service'; import { NameCheckService } from '../name-check.service'; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts index 287645cb69..715e3b0aa9 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import fontkit from '@pdf-lib/fontkit'; -import { DfxLogger } from 'src/shared/services/dfx-logger'; import { readFile } from 'fs/promises'; import { join } from 'path'; import { PDFDocument, PDFFont, PDFPage, rgb } from 'pdf-lib'; +import { DfxLogger } from 'src/shared/services/dfx-logger'; import { KycIdentificationType } from '../../user/models/user-data/kyc-identification-type.enum'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycFinancialResponse } from '../dto/input/kyc-financial-in.dto'; From a505cb16f437838e2a984e5b2d2e0b224a882aef Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:38:59 +0200 Subject: [PATCH 15/15] docs: record the behaviour carried over and the residual risk Three properties of the Sheet process are reproduced as they are - the compliance defaults written on approval, the RiskProfile requirement outside a FATF-enabled country, and skipping documents that already exist. Each is a property of the process being replaced, not of this implementation, and changing any of them would change the outcome rather than the mechanism. The residual risk is stated as well: the selection rules of the six document sheets come from the audit package rather than from their source, because the script export of those projects is refused. --- docs/dfx-approval-migration.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/dfx-approval-migration.md b/docs/dfx-approval-migration.md index a625b7816f..c4514af8e7 100644 --- a/docs/dfx-approval-migration.md +++ b/docs/dfx-approval-migration.md @@ -81,6 +81,33 @@ Whenever the gate refuses, the blocking reasons are logged as This migration requires no change in `DFXswiss/services` and no additional manual endpoint. Approval, document generation, locking, idempotency and auditing live entirely in the API. +## Behaviour carried over deliberately + +Three properties of the Sheet process are reproduced as they are, because this migration replaces the +process without changing the rules it applies: + +- **Compliance defaults on approval.** `complexOrgStructure`, `highRisk`, `depositLimit` and + `amlAccountType` are set to the approval defaults, even where an account carried a different value + before. The previous values are written to `kyc_log` in the same transaction, so any earlier + decision stays reconstructible. Changing this would change the outcome of the approval, not just + its implementation. +- **RiskProfile outside a FATF-enabled country.** The document is only generated for a FATF-enabled + country of residence, while the gate requires it for every case. An account outside such a country + therefore never completes automatically and stays with Compliance - exactly as under the Sheet + process. A test pins generation condition and gate requirement together so neither side can be + changed alone. +- **Documents already produced by the Sheets are not regenerated.** A subtype that exists and is + valid is skipped, whatever produced it. + +## Residual risk + +The selection rules of the six document sheets are documented in the audit package rather than taken +from their source: Google refuses the script export of those six projects with `403`, so only the two +readable projects (approval, risk flags) have byte-exact code snapshots. The rules were reconstructed +from the workbook exports. Before the cutover, compare the candidate sets of at least one document +sheet against the productive sheet - the API-side queries are in +`DfxApprovalWorkflowService.generatePending*`. + ## Productive cutover The order is binding so that GSheets and API never write in parallel:

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 gAoa;?{oHh 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⪚pmAi#oyIXg4RxD_mZ}l}?ta_;* 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 z zF=YZT6VW}Ba7t7Csz1`UXpnY;qf6;fE7KmDAsB_hbF#L8k3TiCY7AaZp{QROn zU)YX2U(r!JVbsd;Ef$M#Pbf31)?|P;#j#^TDD}zhUQ&#jKCdu9AZ0b(p+YR%CtwuF zuNi$x*Jt**i?`H^?&McwC$Fni+UTUwm!f10oVXecyH9V|01a>yhW6$Flc@4itYwli zBXh7+eoUwo&e|%-f;s~>f31m{<=&vSpWBKlB-CX2sf6ZAz+iP+glAggePyRZGvC^= z?dEFRZD=3f%Ai`ygds7UGoceHC=R|O{_Hj#Wd`9`p>c{%NoiFsq~oDzy$O% zdB(NF%#u;gtvTNx#S7DvL%FovBvDBiYf$hS^3LR@V!EW7G;zPe&x1g;)94kOwUu4k77$mK3Eus{}!t;x1Fgs~LDkwBD_TBZW7rq+w;;}CtvR!8lVv}VsoUzG5$-|n$`n9a(2HUUpkeRoo;S_TBzYP zM6?f0*GyG=qQ%CF9tU$-*}yoEC|-F;scTYqOM$tHf2#s*oor_|DzE~)4d1jT=Q*}W zcbrzcxuNv@wv2vFV@sz_5MuLp_*YI%O|{*{bqKAWQA?NQM&bu0KE-$J!x@nknFx#9 z4^z9Edb_jRMr@@R{=>eNRx~h2-lc`_bGG(2;TCn84y0E}W@LtDY|NWh|JlRSDqM)6 z8rv$qu;Z2`_DbTFAWkhxYS!C>Rb5GZ1S5$bTq>?)uWgBW=L38W@ZrhWBGP|G$^fRx zUo&vz5doIYdI%=%d$uZlG_j>^kTWNeN<|AOKr^k{IApF?!6=%sG-(|a#TlhOQUjN{ zeM=|-aFL~huibC1yTFP1z=7%U`3N24_9a(V*dV?=U}q-L#Ft$w6~{%}*(W3(;=J3i zrDpAh9Ij|i7LG=qK7<}^ENCPzHCWy;j(@qvoa-D~s6;+aP0u8t77PW*z@hnIJ365j zy^}UA+(|;NxVUPKEX(Tu@ehI>)JtNQ&1XaWL5KrG+n(@MPl-gt*W%wT49wQ=TQi=$ zEczQWwWWQqc((a=%`|LG>sIIV1*9RulEuXltW05z`iOSC>%r7X=;)eFBzJLjS0(F& z6|^I1o>kq!cq2r$N7afK3%^3_;Gyl@qGXWAwv5~Pxm!!o=7t;g&$w=5hIVwV!h}rA zA1OQ6CazbMOXbUPj>63Qe2M@-_YPm_g zG=S~IQgOt>il~k~U2=?-r+esDqOS3mo@n>D_U-DT&MJXz6+LrRK>~U7#v!}?{WA@t zM+6Dn3%;)I*nEjsbW;U+pYHtf>}l4+hsbwZvv@k4&vRA{>ZPO+Xs<43Y}J|Gg=FNa zCR$ZyK*XK>@M%RV*MlG5!iw`^tjkduBp!gQKtl8F7#&EF`CLcRqDza_f2^CGl}XmC zqIPGhQ+)_IPD{~qH-o|{U039l1gfasn3vuRF@J{##9@P7p0e8H71;?}Tn`p_ggG&C zgkyAhFJNbBH!A9^Bo!%8YP4uomY!0iPqf(bCqMh$BTDV(EB3L7m!Y@Z8U@<#hpSHLXh!wP};kYXU@5OPjdO+Nifm?TfI| z(xo?%=MG7Ee4*=2&Q;*}L1P<_G@!%axMNqk7`S~f5DH5f9o~g9G|n5y0pulVOk7Mb zC=^NC;7l*9B=IyR?ObH$aOx&4pdWJqX^B*za9`s{ALX5JQ7Z?$W6ZSsyB-aT;FM=;BA3mDKDS(^MRT*A-XQ`Sr^%tkvq|UKXO?CNJcc zhB*`C*mhxI`vgOv!QUZT7EGBS+dL;Pq>fOjvCMval!JurskR`yq0~z094gH)Fc`k2RC)JT8rHyj|!rJA@IP4kGgvJGXhcD$poi*9ad~P z8LjqG)Wa-nzC;b>dzD;&SpTao9g@eCDNfMpgV(#x8~YTtkFq|}Iu&N8@&s#GoJM`_X16&ZPG zlgdNZ!H(QPY}ih~?ix8J0}?HKHs;B?a@;l!qgHkfh1C~Y`|b?DO2hnmej3_TiME+W zh6)U2snHMu^sAv7L}|_5b!hD#))Fb{#1BW!9UGi3;wOnVoeX1-b_0{=W@`eEpC=E< z`J~&0q_g_u&+WPz|MtOyxpuwO&qm4?XXUf^R?cI&V%X`-7G4F=l`ok>uxILwZ@h*L zv>WaWLOb}jh)k}7!w7Wf;qAj!ZcwpdLxmc;vYHDryB1R4Ea1 zos!UFU@3xYvFN%Ev8q z4tJtp>a)n7GWGH@MN8r}O!FAKN1#=*t}ktgTuxJ6wy^Pz&r*eMrh-?ps1$R6knfPm z@Uz!y`=d(*7NGx@N|m=t1*>5*@BTZ5t^#@0#3@(2PUmyM-MU00v^LiyB#W%5ay?T~ zLy(8Fk`!ubNUAfesnX1ncan^Eco=39lo|F7QQ-(3c5kIjK6ll?KC``{8@QdkRc%vQ zkqqpJA(zXj5IjF?98jNGS{RD#T^HR)MN!&(q_XT`$|iqjpc2i2W8GHl?srP@8;)d2 zVj$JnnFL0zSlc4o#B^NW^a-m3mZoCd#hd&+G;p3Og)y#bX6RFbJxj@GLC$!mL_b$C@p6(8}1>C!7sX0N3|4nuMCDFgxo6skSB{KYX7p(Ww|i1Pix^tp&?2P zda0MwQnW>5V;VIOy(@!Wgm3(XL(SyEY)LYOrh;BcG+rPtUxB8y5j$(UL zPgBUiy@Y3@W>;RTQlD#JWDV24F}btpM<~w*DTk zJDTLl>d@|wpe1^+6kp_C9RK-tUnhJxkZ}8Xu|$vEULY{XWtD}BJ^UWVvqv~{#?G^l<9)4mSp+ST77$GxnrqNJCY=qw5FYD8wTHDn zS>ZZ_t^RBOjL1#-w8NIH$)pZcwp01?V;3rx;-*g1YX5;F3p2ylzPmsD>MC$qC7nJ0Z@rva-9i|@zCo32`F zcQ)Uaa_|&)7W8OQD@T~IP=M9v0h<@nA z$E^~p*B97jI}DzhMtQfO?$ALqRA=G5t1-|D;e&~?sS(TJ8ZHhFp{67BNrx*z@CD#gzOmk<} zK2t}rte8$UsLunis6;bbW<_67kzm#Vfb^11Yse1U3~K==#-!ua{flrbZa zsC-z!^;fe-T46**?BSA;ETv!}F~9f9JaODGc;(j&%~0YYv5#S;a0z0)Wz*Q;9k!4u z%{iqaz>^pI6sAEDtY{d;k(T+)jgni^3w zKbu}^a<3*C*QBKKomF|Ewd}2AEdJabw_*S}POfSxZtko><7*P6YR5H3o8LEp--qp9 z>CFgS`WWlFXHgf!MB|uZdAm@U(>e1-V57k0*||zPNXr3YYl@m=wq!^}86DyhV}dW! zrNg0})HK)*RA`dx>}^9s)lz-n?RB{h<$9>I$%S7_YoZJwH6=6dP(4$n$_RJs zsZj6R9NEw-rT7mM#?r6+-cxf6?1fr!g(G74CpBhb8BbZ_3dE z3fq_aFfEb*CazSs3Go>7}Q)fyF^WaqlMPY6tC88BFi+|aq_;yv-!Kc)8b zaE!<+{DLewCs#x!ato|`*{ZU!dBA-4X>zFNI4;-kZFrSOPtJux`-;rC)XpFUhleBe zr%rK&+UCrD>&Y_Ct;A3M*34yu$e3h}5H^%_n*0;}1vE(Q`|y0G0_BM!K+abREMLu1 zxDzD+Xf>1(9(g?ZbivkoQt{RMai74;039GC-B?<{_>{tpvaZ6_Ctw+j4z6@wz4hVn zl2m(CZz)%aLb#rI$qh* zMzb@4H9iBSelgOZbgTbM5C!(dn!07CWC;M#q1G^a+^w}NgI6?mLcPqPO&}PsL-%6* z@f`HYI_#+=PTG+(MwP1b8_g_MD_GvO0obKYEJxXxylkO>8Iv=A!4wr%;i>Va?S#^e z3OeUJG&Zc2vT$EXPNAqrP@{z5uan+IurhZ%4P3>g3vVkk+2had2?P!>_mej$dsC5JjaBYzk2b;79o_z~ zj@p!mX?IjGiINNJAhviU%BKd_`oU^ior|MK1!}%f73~T{Va3R3fC1l*NzPMePh^-<|vY=`N%GNhy{s6MgH~S3ef;Pu*q~Cc3yth zi;FVdaY{@L?}TZoG!C2@8PKq8>2WXWc?qNeO8^V=6R z8kTa7K~hp>TxvwiB6WwTYU>>qH=<4=h$Y9g&P_kTrIU0}CA<7aPQ%G^6!4^ z)VPD#VtUI~h~mZD`#84W==Xs6`9Xg^O?AsbYr!^tOz8*0sRX3Mt_{}+xbnjKeez(u zQsQRLPL1ZJp)quW9G6--J0+Kx35zmbW;%}}uA@y(Zn3wEeoKx@PhLKvd#>wF;b_kW zT?w_{L^w^7k5K4+TAeX^*+dTTm2SyB=p3AiR^OxQT^db!<1BA9L!TYcb)JPAmRmfcoq{iwr z4HEvpYPr#FRANFX zI($`x%A86RI&(rA<&tuVNK{1l?spvLGSmA0@muRRYw^x}_OthXo@YPrerK^hpPeg> zOUiP4^^(adU3H1*SJesrH)39{s#B*d`=#npGyZ_5FSpdIZ&Nx>R#8PPey8q;%<+f# zr-t+5Lpiz6c6FhC%d{>=X)sym0Fcafl{ zXR3G6bs*Adcngo}x@ps(skEZgWtZDIr*eMZmEzF4p})#LPrZBXC&z8QZNqQwTdIeh zac-~G&;0rF-f=8}FYoVue*coN^ZVZc&64MeyOX>;N|ijziW^JI25x{q#aLAyEZ#Jp z;$qf3j=#Acclzc)>8-HHwIXApr{2^0ZmhtXxGQ*ueB#~foqMRBlkIpW`{3t} z?AyI{-NV-1`#SH$c;2kqp&hjU@+0nV1&>sNzB_-`E5RuF2sIKkmjw`H{$P`_@LGCI6cG5X!gqN@yXv0%Dpy@QSzqGeV&qw&v|FF zYAIIwi^KjJLR!(*LzH~)`uC?ahNgoPuFdPXkmN6ATOGSYnQNkDG|6{Aeqt3DD%k_q8i**;+l@dkz?96Ax zWZr?7xaz}vPRgmW7RP_>v3dEY7U&TFJi=M;OA~C#t%bZoJ9zr^i=)y~yMO6S z&R%j+IcY|{XhNgGk9|vVY`gUQis7{m`VW*?N=#dpDKlPG(Ls-=z^P$Hu!u#!bFMi? zq2p9cRPJe;C?uS{YdlAe(|Ed7CC{{4XHK$nc|vMf>U^5H$sDy()BK4W+vSqvstanj z+EET_4q6UNd8Vo=(qgU01HNl{uN>iMzw36|mOFzA)5ULBMzRi^IB;UNqwZSYv&SF3 zYof<~J3jp3_^{idM=`ptx5Bo)ylQaa)|`=P?)k#l=y4}w$ApqAPls+){uti=w$Mwe z$JRSH!F&GhD}0{L-lSC81rwcL2cAToYq|T%UDGT1?x)z$@$yv$`g5;`BO3>v9UKc# z)c&P&CdXUCV^$|h=3PnYlH3f*zT9<*EApIm-qEh);R6%9V9QKlyg-HEoa?hj zP}?wi63)_@8#%u)8CR~SFxOluNo2xob*EiwY{oHGlo~W`>Yks!mZh8F0db2TF3Qa?=WVdGK$*Lx?Nd1{&J*qo(c4`E>KyvrUvIH5z zNwOH)%xB2j&X&0$GX&CuAhZ^GV^bGaHJx9B-VYI>)#$VSKGrGPOc~~KhrQ5i%)@-B zb-U(gEw(Z4(B>Wzl(T$FGjJF?mC3F3tuSXLET0l**UC;QJ{p%{OG!kY=89vwbjG%y z>@$PjFP~a!b1<3v0yAgVV|cP}3uewbGkp2}Biv!kjuUPJ&{sCM7#=odb<0j!Bz{>7 z)oL|u$9+A@ZN$Xem*4)u*ZAb~rI>7;rU6`*_Lu?NTW0^!H;2x1jU^^lVzSl8G}&9> zrO&m724LG|Tv?2Ax|U z4$~Y1hp)(Um%$SetYN?Y?@<=V&TWT0t$N&{cIjK^x!W+3vbTtV$`JjBp|9pwCh$%J zeHh7;SB*8WMp}DVZ*C|0SJ4C0Q15ikc>SPP^D`H#IWTE$IAi@`LgJlPSu!^as=;Mh z^>{*S{Q}D#wMs@LM_RYNkjSzhEla%-pwBjZ6MsK{DiFGW3)L)Rb7P@lT#1&K+lJ8? zId&TyDZ$l)^!*CrQ2M^wB{hwH1!ky5Uv1B@H9nGccIsSJA0xG>*L^V?Z7F!9sHAq}1_M<*~bAbTiH-p8k~8rO7O zeoygQzoXhLNoXXIZ^=1B@IdNYiNvk8p=21OCi0ma^MagZ4l7$;+qfyVOo|&KBsQP?EKBnCI)V+M0a~PuaDWvQ*4r3t9Q{0pdTIJDOE&K7GEpI)V^~5;YJXry4 zc6zyvyP0bl;V$87E!K>&%fDzDp#jQ%O`!%yi=)QTc5~L$eh_s6bsFyUMQyaJ#4tCr zbW}CC8CeF89!YE4v(#A+=sQ=Br;4Sa7W%;DyTbB!3jxI2bu4oS?r)vPwldgyKuGGDIJc*`nxo>xh1?| zW+{3WJ-Ch2{i93Oe0t!`nHXj*HWoWb;~tbBYiAmx@8CYHMCFLbN)D2F*O|3Y?2^G? zj`!8}>V!)>2I4ned>g-f?6gVaY-Eoa`c-|~aHsFr{MghP_>@?IYZg7WB<&3gV z;Y^rM@{AF8ZPLWc7+lTEO0jt=$AcY)u9hFv<|wk`aZzHtPwOjY#F_1D-bZ^E-)@Op z*3-t^j#gSy?NrqfXI=ICY+T>6QT@}jYUAx)@62&u8(BvF(CE@k;^brzaq@0MSHl;p z&z7Hmh~5~j!v9_-+VP&zz^@fv1EVJ8!);!<>k3Sb%SjQV85c8@GDb2Y(?Zit*Ly=R z22RvHZs1#0Y<#}EV7EslJl|od#J8k`=8ac4k~<1s^z$DURahR?@JRd4inphItn1Yv z!9zwVJ~Gqt{^t#lu(m$xZJ02x5t3%omMG@F?Zo_U>H}bO$!GP zwS1xJoXBz%U8R_W5?I+-`X{d-vgqXS5O(H@Cc? z=7!+)au@6Te41{BpG~`~E%BoQu79O%+(_Bf5qo#iWlBwRRNf0awb={PwQuDo{Hh1` z-EgrDzPZ=XFhs4!<@Gb(l+Ld{KiJ0ypK=*-X#pPs4RRIew;o1q+wOhJWzW*6e9KG? zUarH|ZcRM@fc>#crYn+kl~5Y>*Emh1+L`V31}m(7i;cfgN?RSK`0BOUZpQ=dhjsVu zCG$=s)Qx^|v#sok!5z3` zbm?T&CbN)r`@~+=c~tC{NUk(GngiY)y=?rTXg3|~OJ6(7zwe#u(5@?-b)0Os&{X7} zG#ulf_Ya%>>@?pUUo_voY|4A?KZb58ym@S%wi`{9??FK{XczfE{}*Q32B5L*8xj2f zN=>6KaF6~6HH`wOWq(O6QvjPwzzib-nPVD4Qv*D&zvPywK*$%cyny;KGAa--2E;Fr z1u6-VFa}z|;EGVk5at)mz>|r{M=Ic)dEo)U4A9j8SB)fSL?)q9kp{q6`&)&X0#ujj z3}i4wWf@5?;8-DpA(kK#&;vjS-ED!-w!mv61BVvgf$;@u&onZSeFhi^0H`JdY8qmW z{1AxWD1PX=>Xr2fp`G}jpo1SB!NgsbOa{> zh8$v#FyH8ad4|Lb!wc~P?i?WI(H2_4Zx}G@kXC_9fISELfE>XBwjB)S297d_2nv!2 zlLaFI>1Tu-h|C1CO%b$$F<~Ic3~WGtkl+MD(I8E*AUQC|4h-b2NdywO0wNs9CTIh3 z0sjSSyST#070d>Nonb+Y#Dy3I=sy{If&vn)^8d-$6E5s;Q}$p`c!n?_7BavaIw%A$ z{9g*wfRy+Tg=yr|zZIt8e=AH=fim_tNqYiL*1t%52#*m72hrXBQ$<^lIRt|#WH8Vo zx=1{wfOTEOkg^e2(up+2U+5yKkp%9VMN4Fj1eRnvAS5oL$XX&OLhk$%6R0I47!8pG zUj&gG3<1et*%z@zei;mSj`T%z(a_WsZ@jPxIr!`fh{PM)2Kz@Ms}2To!h^CyF5n&& zTo5;$kbG|l-v>0j$^T$z?vDrv#1m9$AWw@gqAC@zLn*3(ssaoK8urDB| zBDDc9l5p+;ZJ8>9kzkQ^1D;TXYYlAZ43XL(gGCbdkHR2`^aV>UGB1Te{st!EAB9AP zMdqbZNWyaf+BR9Z?n!iTI)IRWG$7S4ylxaSRirPCOeP8UrBFas3XMl+FsQ=*(a2!0 z6|!Rx$W-CF0%taW9pm5Y%b?Rm?kxr=K;b%IFi2#PIlvQE2!p}HlOh}kgFzt+)esDm zs05+dz!RN76Y>w((FsEFA{g--7)8iu#7;O41QXs50LFlYa)n^R^^9P``wN17!)Flj z-+7LT@Bt?)MBtI9!Pel|06f^ojh({7qXc3D;K&V|u)uJz-y_?<;P3>Wh$z91k8JAT NyMUI~#x0ik{{kYWcUk}d literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/assets/dfx-approval/name-check.pdf b/src/subdomains/generic/kyc/assets/dfx-approval/name-check.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c38c15f9cfbb1ea32b8a53229b7c36aa44b48754 GIT binary patch literal 40060 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 Cc#rA; literal 0 HcmV?d00001 diff --git a/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts b/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts index b6b77618cb..7030b86dd7 100644 --- a/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts +++ b/src/subdomains/generic/kyc/controllers/kyc-admin.controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, Get, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; +import { Body, Controller, Delete, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { ApiBearerAuth, ApiExcludeController, ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { GetJwt } from 'src/shared/auth/get-jwt.decorator'; @@ -15,8 +15,6 @@ import { UpdateNameCheckLogDto } from '../dto/input/update-name-check-log.dto'; import { KycWebhookTriggerDto } from '../dto/kyc-webhook-trigger.dto'; import { NameCheckLog } from '../entities/name-check-log.entity'; import { KycAdminService } from '../services/kyc-admin.service'; -import { DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; -import { DfxApprovalWorkflowService } from '../services/dfx-approval-workflow.service'; import { KycLogService } from '../services/kyc-log.service'; import { KycService } from '../services/kyc.service'; import { NameCheckService } from '../services/name-check.service'; @@ -32,17 +30,8 @@ export class KycAdminController { private readonly kycLogService: KycLogService, private readonly settingService: SettingService, private readonly userDataService: UserDataService, - private readonly dfxApprovalWorkflowService: DfxApprovalWorkflowService, ) {} - @Get('dfx-approval/:id/status') - @ApiBearerAuth() - @ApiExcludeEndpoint() - @UseGuards(AuthGuard(), RoleGuard(UserRole.SUPPORT), UserActiveGuard()) - async getDfxApprovalStatus(@Param('id') id: string): Promise { - return this.dfxApprovalWorkflowService.getStatus(+id); - } - @Put('nameCheck/:id') @ApiBearerAuth() @ApiExcludeEndpoint() diff --git a/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts b/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts index 7f9b59f124..27f3345a91 100644 --- a/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts +++ b/src/subdomains/generic/kyc/dto/output/dfx-approval-status.dto.ts @@ -22,7 +22,6 @@ export enum DfxApprovalBlocker { COUNTRY_EXCLUDED = 'CountryExcluded', MISSING_NATIONALITY = 'MissingNationality', NATIONALITY_DISABLED = 'NationalityDisabled', - MISSING_RESIDENCE_PERMIT = 'MissingResidencePermit', MISSING_IDENT_DOCUMENT_TYPE = 'MissingIdentDocumentType', IDENT_DOCUMENT_TYPE_DISABLED = 'IdentDocumentTypeDisabled', MISSING_IDENT_DOCUMENT_ID = 'MissingIdentDocumentId', diff --git a/src/subdomains/generic/kyc/kyc.module.ts b/src/subdomains/generic/kyc/kyc.module.ts index 718fc2e07c..c5e3c71dc0 100644 --- a/src/subdomains/generic/kyc/kyc.module.ts +++ b/src/subdomains/generic/kyc/kyc.module.ts @@ -102,7 +102,6 @@ import { TfaService } from './services/tfa.service'; KycService, KycFileService, ScorechainDocumentService, - DfxApprovalWorkflowService, ], }) export class KycModule {} diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts index d5387c849a..7df73fcbdf 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-check.service.spec.ts @@ -42,6 +42,8 @@ describe('DfxApprovalCheckService', () => { complexOrgStructure: false, highRisk: false, pep: false, + depositLimit: 100000, + amlAccountType: 'natural person', country, nationality: country, identDocumentId: 'DOC-1', @@ -49,8 +51,19 @@ describe('DfxApprovalCheckService', () => { kycSteps: [step], }); step.userData = userData; + const identStep = Object.assign(new KycStep(), { + name: KycStepName.IDENT, + status: ReviewStatus.COMPLETED, + sequenceNumber: 1, + }); const files = DFX_APPROVAL_REQUIRED_DOCUMENTS.map((subType, index) => - Object.assign(new KycFile(), { id: index + 1, type: FileType.USER_NOTES, subType, valid: true }), + Object.assign(new KycFile(), { + id: index + 1, + type: subType === FileSubType.PERSONAL_NAME_CHECK ? FileType.NAME_CHECK : FileType.USER_NOTES, + subType, + valid: true, + kycStep: subType === FileSubType.IDENT_REPORT ? identStep : undefined, + }), ); return { userData, step, files }; } @@ -95,7 +108,7 @@ describe('DfxApprovalCheckService', () => { ); }); - it('requires a completed residence permit for configured nationalities', () => { + it('does not require a residence permit when the nationality itself is enabled', () => { const { userData, step, files } = eligibleInput(); userData.kycSteps.push( Object.assign(new KycStep(), { @@ -107,7 +120,7 @@ describe('DfxApprovalCheckService', () => { const result = service.evaluatePersonal(userData, step, files, false); - expect(result.blockers).toContainEqual({ code: DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT }); + expect(result.blockers).not.toContainEqual({ code: DfxApprovalBlocker.NATIONALITY_DISABLED }); }); it('accepts a disabled nationality only after its required residence permit was completed', () => { @@ -124,6 +137,5 @@ describe('DfxApprovalCheckService', () => { const result = service.evaluatePersonal(userData, step, files, false); expect(result.blockers).not.toContainEqual({ code: DfxApprovalBlocker.NATIONALITY_DISABLED }); - expect(result.blockers).not.toContainEqual({ code: DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT }); }); }); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts new file mode 100644 index 0000000000..b30028cee1 --- /dev/null +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-document.service.spec.ts @@ -0,0 +1,72 @@ +import { createMock } from '@golevelup/ts-jest'; +import { AccountType } from '../../../user/models/user-data/account-type.enum'; +import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; +import { FileSubType } from '../../dto/kyc-file.dto'; +import { KycStep } from '../../entities/kyc-step.entity'; +import { NameCheckLogRepository } from '../../repositories/name-check-log.repository'; +import { DfxApprovalDocumentService } from '../dfx-approval-document.service'; +import { DfxApprovalPdfService } from '../dfx-approval-pdf.service'; +import { KycDocumentService } from '../integration/kyc-document.service'; + +describe('DfxApprovalDocumentService', () => { + let service: DfxApprovalDocumentService; + let nameCheckRepo: jest.Mocked; + let pdfService: jest.Mocked; + let documentService: jest.Mocked; + const userData = createCustomUserData({ id: 42, accountType: AccountType.PERSONAL, kycFiles: [], kycSteps: [] }); + const step = Object.assign(new KycStep(), { id: 11, userData }); + + beforeEach(() => { + nameCheckRepo = createMock(); + pdfService = createMock(); + documentService = createMock(); + nameCheckRepo.findOne.mockResolvedValue(null); + pdfService.generate.mockResolvedValue(Buffer.from('pdf')); + pdfService.fileName.mockReturnValue('document.pdf'); + service = new DfxApprovalDocumentService(nameCheckRepo, pdfService, documentService); + }); + + it('generates non-NameCheck documents without NameCheck evidence', async () => { + await service.generateMissingPersonalDocuments(userData, step, [], [FileSubType.FORM_A]); + + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + `dfx-approval:${userData.id}:${FileSubType.FORM_A}:v1`, + userData, + expect.any(String), + FileSubType.FORM_A, + 'document.pdf', + Buffer.from('pdf'), + { workflow: 'DfxApproval', version: 'v1', stepId: String(step.id) }, + ); + }); + + it('continues with independent documents after one renderer fails', async () => { + pdfService.generate.mockImplementation(async (subType) => { + if (subType === FileSubType.CUSTOMER_PROFILE) throw new Error('invalid FinancialData'); + return Buffer.from('pdf'); + }); + + await expect( + service.generateMissingPersonalDocuments(userData, step, [], [FileSubType.CUSTOMER_PROFILE, FileSubType.FORM_A]), + ).rejects.toThrow('CustomerProfile: invalid FinancialData'); + + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledTimes(1); + expect(documentService.ensureGeneratedUserFile).toHaveBeenCalledWith( + expect.stringContaining(FileSubType.FORM_A), + userData, + expect.any(String), + FileSubType.FORM_A, + expect.any(String), + expect.any(Buffer), + expect.any(Object), + ); + }); + + it('requires NameCheck evidence only for the DfxNameCheck document', async () => { + await expect( + service.generateMissingPersonalDocuments(userData, step, [], [FileSubType.DFX_NAME_CHECK]), + ).rejects.toThrow(`NameCheck evidence is missing for userData ${userData.id}`); + + expect(pdfService.generate).not.toHaveBeenCalled(); + }); +}); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts index 50a03d7240..3e4bdee6a5 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts @@ -1,5 +1,8 @@ import { createCustomCountry } from 'src/shared/models/country/__mocks__/country.entity.mock'; import { createDefaultLanguage } from 'src/shared/models/language/__mocks__/language.entity.mock'; +import { createHash } from 'crypto'; +import { readFile } from 'fs/promises'; +import { join } from 'path'; import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; import { FileSubType } from '../../dto/kyc-file.dto'; @@ -68,7 +71,7 @@ describe('DfxApprovalPdfService', () => { it.each([ [FileSubType.GWG_FILE_COVER, 1], [FileSubType.DFX_NAME_CHECK, 1], - [FileSubType.FORM_A, 1], + [FileSubType.FORM_A, 2], [FileSubType.IDENTIFICATION_FORM, 4], [FileSubType.CUSTOMER_PROFILE, 2], [FileSubType.RISK_PROFILE, 3], @@ -79,4 +82,28 @@ describe('DfxApprovalPdfService', () => { expect(source.startsWith('%PDF-')).toBe(true); expect(source.match(/\/Type\s*\/Page\b/g)).toHaveLength(expectedPages); }); + + it.each([ + ['gwg-file-cover.pdf', '8b5e6636a0c1c4c64a1fbe94b77ab12aa5ca8cab072b8ac93190d0ffd6889ace'], + ['identification-form.pdf', '7e49ae0ffa25962e8cb5319d309733d2581b618a8270183590677ef6f2fcf5c1'], + ['customer-profile.pdf', 'bbed3c41fbc940b94470d92c58a3d43046547a2b9785d27f935204b0bd017732'], + ['risk-profile.pdf', '184085521abd00161c5f570b5bfdbc36d400a257fd4650c6f3558baf7eab8e71'], + ['form-a.pdf', '656bcb34ae66a1479095dd6ff7feda6128d1dc62329606e712e685d765fe3047'], + ['name-check.pdf', '20a6e3388801c283840d46d79c06f773b40f9a02ad8f9e6b23fe414559d683a8'], + ])('keeps the productive %s template unchanged', async (fileName, expectedHash) => { + const template = await readFile(join(__dirname, '../../assets/dfx-approval', fileName)); + expect(createHash('sha256').update(template).digest('hex')).toBe(expectedHash); + }); + + it('uses the productive GSheet file names and date sources', () => { + const data = context(); + expect(service.fileName(FileSubType.GWG_FILE_COVER, data)).toBe('20260731-GwGFileDeckblatt-0-42-220000.pdf'); + expect(service.fileName(FileSubType.IDENTIFICATION_FORM, data)).toBe( + '20260731-Identifizierungsformular-0-42-220000.pdf', + ); + expect(service.fileName(FileSubType.CUSTOMER_PROFILE, data)).toBe('20260731-Kundenprofil-0-42-220000.pdf'); + expect(service.fileName(FileSubType.RISK_PROFILE, data)).toBe('20260731-Risikoprofil-0-42-220000.pdf'); + expect(service.fileName(FileSubType.FORM_A, data)).toBe('20260731-FormularA-0-42-220000.pdf'); + expect(service.fileName(FileSubType.DFX_NAME_CHECK, data)).toBe('20260731-NameCheck-0-42-220000.pdf'); + }); }); diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts index 3bdd7c3705..19392bf501 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-workflow.service.spec.ts @@ -1,8 +1,9 @@ import { createMock } from '@golevelup/ts-jest'; import { Config, ConfigService } from 'src/config/config'; +import { EntityManager } from 'typeorm'; import { AccountType } from '../../../user/models/user-data/account-type.enum'; import { createCustomUserData } from '../../../user/models/user-data/__mocks__/user-data.entity.mock'; -import { KycLevel } from '../../../user/models/user-data/user-data.enum'; +import { KycLevel, KycType, UserDataStatus } from '../../../user/models/user-data/user-data.enum'; import { FileSubType } from '../../dto/kyc-file.dto'; import { DfxApprovalBlocker } from '../../dto/output/dfx-approval-status.dto'; import { KycStep } from '../../entities/kyc-step.entity'; @@ -45,6 +46,7 @@ describe('DfxApprovalWorkflowService', () => { if (!Config) new ConfigService(); Config.kyc.dfxApprovalWorkflowEnabled = true; stepRepo = createMock(); + Object.defineProperty(stepRepo, 'manager', { value: createMock() }); documentService = createMock(); notificationService = createMock(); checkService = createMock(); @@ -59,6 +61,7 @@ describe('DfxApprovalWorkflowService', () => { createMock(), notificationService, ); + (stepRepo.manager.find as jest.Mock).mockResolvedValue([]); }); afterEach(() => { @@ -77,7 +80,7 @@ describe('DfxApprovalWorkflowService', () => { const first = pendingStep(); const second = pendingStep(); second.id = 12; - stepRepo.find.mockResolvedValue([first, second]); + stepRepo.find.mockResolvedValueOnce([first, second]).mockResolvedValue([]); const lock = jest.spyOn(service as any, 'withStepLock').mockResolvedValue(undefined); await service.reviewPersonalApprovals(); @@ -87,24 +90,12 @@ describe('DfxApprovalWorkflowService', () => { expect(lock).toHaveBeenNthCalledWith(2, 12, expect.any(Function)); }); - it('uses a blocking cross-instance lock for a manual decision', async () => { - const lock = jest.spyOn(service as any, 'withStepLock').mockResolvedValue(undefined); - - await service.applyManualDecision(11, 99, ReviewStatus.COMPLETED, '{}', undefined, { - complexOrgStructure: false, - highRisk: false, - depositLimit: 100000, - amlAccountType: 'natural person', - }); - - expect(lock).toHaveBeenCalledWith(11, expect.any(Function), true); - }); - it('initializes risk data, creates documents and only then completes and notifies', async () => { const step = pendingStep(); jest.spyOn(service as any, 'loadStep').mockResolvedValue(step); const initialize = jest.spyOn(service as any, 'initializePersonalRiskData').mockResolvedValue(undefined); - const complete = jest.spyOn(service as any, 'completeIfReady').mockResolvedValue(step.userData); + const completedUser = createCustomUserData({ ...step.userData, kycLevel: KycLevel.LEVEL_50 }); + const complete = jest.spyOn(service as any, 'completeIfReady').mockResolvedValue(completedUser); (service as any).nameCheckService.hasOpenNameChecks.mockResolvedValue(false); await (service as any).processPersonalApproval(step.id); @@ -115,7 +106,7 @@ describe('DfxApprovalWorkflowService', () => { expect((documentService.generateMissingPersonalDocuments as jest.Mock).mock.invocationCallOrder[0]).toBeLessThan( complete.mock.invocationCallOrder[0], ); - expect(notificationService.kycChanged).toHaveBeenCalledWith(step.userData, KycLevel.LEVEL_50); + expect(notificationService.kycChanged).toHaveBeenCalledWith(completedUser, KycLevel.LEVEL_50); }); it('does not touch documents after the step has already advanced', async () => { @@ -129,10 +120,11 @@ describe('DfxApprovalWorkflowService', () => { expect(notificationService.kycChanged).not.toHaveBeenCalled(); }); - it('does not generate documents while a non-document prerequisite is blocked', async () => { + it('generates independent documents even while a non-document prerequisite is blocked', async () => { const step = pendingStep(); jest.spyOn(service as any, 'loadStep').mockResolvedValue(step); jest.spyOn(service as any, 'initializePersonalRiskData').mockResolvedValue(undefined); + jest.spyOn(service as any, 'completeIfReady').mockResolvedValue(undefined); (service as any).nameCheckService.hasOpenNameChecks.mockResolvedValue(false); checkService.evaluatePersonal.mockReturnValue({ ready: false, @@ -144,6 +136,74 @@ describe('DfxApprovalWorkflowService', () => { await (service as any).processPersonalApproval(step.id); - expect(documentService.generateMissingPersonalDocuments).not.toHaveBeenCalled(); + expect(documentService.generateMissingPersonalDocuments).toHaveBeenCalledWith( + step.userData, + step, + step.userData.kycFiles, + expect.any(Array), + ); + expect(notificationService.kycChanged).not.toHaveBeenCalled(); + }); + + it('selects all six generated documents only when their original Sheet predicates match', () => { + const step = pendingStep(); + const financialStep = Object.assign(new KycStep(), { + id: 12, + name: KycStepName.FINANCIAL_DATA, + status: ReviewStatus.COMPLETED, + sequenceNumber: 1, + }); + Object.assign(step.userData, { + status: UserDataStatus.ACTIVE, + kycType: KycType.DFX, + verifiedName: 'Test User', + nationality: { name: 'Switzerland' }, + country: { fatfEnable: true }, + highRisk: false, + kycSteps: [step, financialStep], + }); + + expect((service as any).eligiblePersonalDocuments(step.userData)).toEqual( + expect.arrayContaining([ + FileSubType.GWG_FILE_COVER, + FileSubType.IDENTIFICATION_FORM, + FileSubType.DFX_NAME_CHECK, + FileSubType.CUSTOMER_PROFILE, + FileSubType.RISK_PROFILE, + FileSubType.FORM_A, + ]), + ); + expect((service as any).eligiblePersonalDocuments(step.userData)).toHaveLength(6); + + step.userData.highRisk = true; + expect((service as any).eligiblePersonalDocuments(step.userData)).not.toContain(FileSubType.RISK_PROFILE); + expect((service as any).eligiblePersonalDocuments(step.userData)).toContain(FileSubType.FORM_A); + }); + + it('applies the productive approval defaults atomically when completing a ready case', async () => { + const step = pendingStep(); + step.userData.depositLimit = 250000; + step.userData.amlAccountType = 'legacy'; + const manager = stepRepo.manager as unknown as jest.Mocked; + (manager.transaction as jest.Mock).mockImplementation((action) => action(manager)); + (manager.findOne as jest.Mock).mockImplementation((entity) => + Promise.resolve(entity === KycStep ? step : step.userData), + ); + (manager.exists as jest.Mock).mockResolvedValue(false); + checkService.evaluatePersonal.mockReturnValue({ ready: true, blockers: [] }); + + await (service as any).completeIfReady(step.id); + + expect(manager.update).toHaveBeenCalledWith( + expect.any(Function), + step.userData.id, + expect.objectContaining({ + kycLevel: KycLevel.LEVEL_50, + complexOrgStructure: false, + highRisk: false, + depositLimit: 100000, + amlAccountType: 'natural person', + }), + ); }); }); diff --git a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts index 1152b5b75a..64df452eab 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-check.service.ts @@ -3,7 +3,7 @@ import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycLevel, KycStatus, UserDataStatus } from '../../user/models/user-data/user-data.enum'; import { IdentDocumentType } from '../dto/ident-result-data.dto'; -import { FileSubType } from '../dto/kyc-file.dto'; +import { FileSubType, FileType } from '../dto/kyc-file.dto'; import { DfxApprovalBlocker, DfxApprovalBlockerDto, DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; import { KycFile } from '../entities/kyc-file.entity'; import { KycStep } from '../entities/kyc-step.entity'; @@ -37,7 +37,7 @@ export class DfxApprovalCheckService { if (userData.accountType !== AccountType.PERSONAL) add(DfxApprovalBlocker.WRONG_ACCOUNT_TYPE); if (step.name !== KycStepName.DFX_APPROVAL || step.status !== ReviewStatus.MANUAL_REVIEW) add(DfxApprovalBlocker.WRONG_STEP_STATUS); - if (userData.kycLevel !== KycLevel.LEVEL_40) add(DfxApprovalBlocker.WRONG_KYC_LEVEL); + if (userData.kycLevel < KycLevel.LEVEL_40) add(DfxApprovalBlocker.WRONG_KYC_LEVEL); if (!userData.verifiedName) add(DfxApprovalBlocker.MISSING_VERIFIED_NAME); if (!userData.kycHash) add(DfxApprovalBlocker.MISSING_KYC_HASH); @@ -49,12 +49,12 @@ export class DfxApprovalCheckService { if (userData.highRisk == null || userData.pep == null) add(DfxApprovalBlocker.RISK_DATA_PENDING); if (userData.highRisk === true) add(DfxApprovalBlocker.HIGH_RISK); if (userData.pep === true) add(DfxApprovalBlocker.PEP); - if (![UserDataStatus.NA, UserDataStatus.ACTIVE, UserDataStatus.KYC_ONLY].includes(userData.status)) add(DfxApprovalBlocker.INVALID_USER_STATUS); if (![KycStatus.NA, KycStatus.COMPLETED].includes(userData.kycStatus)) add(DfxApprovalBlocker.INVALID_KYC_STATUS); - const country = userData.verifiedCountry ?? userData.country; + // The productive Sheet gate uses the account's residence country, not verifiedCountry. + const country = userData.country; if (!country) { add(DfxApprovalBlocker.MISSING_COUNTRY); } else { @@ -76,15 +76,19 @@ export class DfxApprovalCheckService { add(DfxApprovalBlocker.NATIONALITY_DISABLED); } - if (residencePermitSteps.length > 0 && !hasCompletedResidencePermit) - add(DfxApprovalBlocker.MISSING_RESIDENCE_PERMIT); - if (!userData.identDocumentId) add(DfxApprovalBlocker.MISSING_IDENT_DOCUMENT_ID); if (hasOpenNameChecks) add(DfxApprovalBlocker.OPEN_NAME_CHECK); for (const documentSubType of DFX_APPROVAL_REQUIRED_DOCUMENTS) { - if (!files.some((file) => file.valid && file.subType === documentSubType)) - add(DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType); + const matches = files.some((file) => { + if (!file.valid || file.subType !== documentSubType) return false; + if (documentSubType === FileSubType.IDENT_REPORT) + return file.kycStep?.name === KycStepName.IDENT && file.kycStep.isCompleted; + if (documentSubType === FileSubType.DFX_NAME_CHECK) return file.type === FileType.USER_NOTES; + if (documentSubType === FileSubType.PERSONAL_NAME_CHECK) return file.type === FileType.NAME_CHECK; + return true; + }); + if (!matches) add(DfxApprovalBlocker.MISSING_DOCUMENT, documentSubType); } return { ready: blockers.length === 0, blockers }; diff --git a/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts index 8255e184c8..02f95df243 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-document.service.ts @@ -1,5 +1,4 @@ import { Injectable } from '@nestjs/common'; -import { Util } from 'src/shared/utils/util'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { FileSubType, FileType } from '../dto/kyc-file.dto'; import { KycFile } from '../entities/kyc-file.entity'; @@ -25,8 +24,13 @@ export class DfxApprovalDocumentService { private readonly documentService: KycDocumentService, ) {} - async generateMissingPersonalDocuments(userData: UserData, step: KycStep, files: KycFile[]): Promise { - const missing = DFX_APPROVAL_GENERATED_DOCUMENTS.filter( + async generateMissingPersonalDocuments( + userData: UserData, + step: KycStep, + files: KycFile[], + requestedDocuments: readonly FileSubType[] = DFX_APPROVAL_GENERATED_DOCUMENTS, + ): Promise { + const missing = requestedDocuments.filter( (subType) => !files.some((file) => file.subType === subType && file.valid), ); if (!missing.length) return; @@ -35,28 +39,30 @@ export class DfxApprovalDocumentService { where: { userData: { id: userData.id } }, order: { created: 'DESC' }, }); - if (!nameCheck) throw new Error(`NameCheck evidence is missing for userData ${userData.id}`); + if (missing.includes(FileSubType.DFX_NAME_CHECK) && !nameCheck) + throw new Error(`NameCheck evidence is missing for userData ${userData.id}`); const generatedAt = new Date(); + const failures: string[] = []; for (const subType of missing) { - const data = await this.pdfService.generate(subType, { - userData, - steps: userData.kycSteps, - nameCheck, - generatedAt, - }); - const version = 'v1'; - const generationKey = `dfx-approval:${step.id}:${subType}:${version}`; - const date = Util.isoDate(generatedAt).replace(/-/g, ''); - await this.documentService.ensureGeneratedUserFile( - generationKey, - userData, - FileType.USER_NOTES, - subType, - `${date}-${subType}-${userData.id}-${step.id}-${version}.pdf`, - data, - { workflow: 'DfxApproval', version, stepId: String(step.id) }, - ); + try { + const context = { userData, steps: userData.kycSteps, nameCheck, generatedAt }; + const data = await this.pdfService.generate(subType, context); + const version = 'v1'; + const generationKey = `dfx-approval:${userData.id}:${subType}:${version}`; + await this.documentService.ensureGeneratedUserFile( + generationKey, + userData, + FileType.USER_NOTES, + subType, + this.pdfService.fileName(subType, context), + data, + { workflow: 'DfxApproval', version, stepId: String(step.id) }, + ); + } catch (error) { + failures.push(`${subType}: ${(error as Error).message}`); + } } + if (failures.length) throw new Error(`DfxApproval document generation failed (${failures.join('; ')})`); } } diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts index 430cb79597..d7315c0ca7 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; -import PDFDocument from 'pdfkit'; -import { PdfUtil } from 'src/shared/utils/pdf.util'; -import { Util } from 'src/shared/utils/util'; +import { readFile } from 'fs/promises'; +import { join } from 'path'; +import { PDFDocument, PDFFont, PDFPage, StandardFonts, rgb } from 'pdf-lib'; import { UserData } from '../../user/models/user-data/user-data.entity'; import { KycIdentificationType } from '../../user/models/user-data/kyc-identification-type.enum'; import { KycFinancialResponse } from '../dto/input/kyc-financial-in.dto'; @@ -10,322 +10,357 @@ import { KycStep } from '../entities/kyc-step.entity'; import { NameCheckLog, NameCheckRiskStatus } from '../entities/name-check-log.entity'; import { KycStepName } from '../enums/kyc-step-name.enum'; -type Pdf = InstanceType; type FinancialData = Record; export interface DfxApprovalPdfContext { userData: UserData; steps: KycStep[]; - nameCheck: NameCheckLog; + nameCheck?: NameCheckLog; generatedAt: Date; } -const MEMBER_NUMBER = '100919'; -const FORM_VERSION = 'DFX API v1 / 31.07.2026'; +interface TextOptions { + x: number; + top: number; + width?: number; + height?: number; + size?: number; + color?: ReturnType; + bold?: boolean; +} + +const BLUE = rgb(0, 0, 1); +const BLACK = rgb(0, 0, 0); +const WHITE = rgb(1, 1, 1); + +const TEMPLATE_FILES: Partial> = { + [FileSubType.GWG_FILE_COVER]: 'gwg-file-cover.pdf', + [FileSubType.IDENTIFICATION_FORM]: 'identification-form.pdf', + [FileSubType.CUSTOMER_PROFILE]: 'customer-profile.pdf', + [FileSubType.RISK_PROFILE]: 'risk-profile.pdf', + [FileSubType.FORM_A]: 'form-a.pdf', + [FileSubType.DFX_NAME_CHECK]: 'name-check.pdf', +}; @Injectable() export class DfxApprovalPdfService { async generate(subType: FileSubType, context: DfxApprovalPdfContext): Promise { + const templateFile = TEMPLATE_FILES[subType]; + if (!templateFile) throw new Error(`Unsupported DfxApproval document subtype ${subType}`); + + const template = await readFile(join(__dirname, '../assets/dfx-approval', templateFile)); + const pdf = await PDFDocument.load(template); + const regular = await pdf.embedFont(StandardFonts.Helvetica); + const bold = await pdf.embedFont(StandardFonts.HelveticaBold); + switch (subType) { case FileSubType.GWG_FILE_COVER: - return this.createPdf((pdf) => this.renderCover(pdf, context)); + this.renderCover(pdf, regular, bold, context); + break; case FileSubType.IDENTIFICATION_FORM: - return this.createPdf((pdf) => this.renderIdentificationForm(pdf, context)); + this.renderIdentificationForm(pdf, regular, bold, context); + break; case FileSubType.CUSTOMER_PROFILE: - return this.createPdf((pdf) => this.renderCustomerProfile(pdf, context)); + this.renderCustomerProfile(pdf, regular, bold, context); + break; case FileSubType.RISK_PROFILE: - return this.createPdf((pdf) => this.renderRiskProfile(pdf, context)); + this.renderRiskProfile(pdf, regular, bold, context); + break; case FileSubType.FORM_A: - return this.createPdf((pdf) => this.renderFormA(pdf, context)); + this.renderFormA(pdf, regular, bold, context); + break; case FileSubType.DFX_NAME_CHECK: - return this.createPdf((pdf) => this.renderNameCheck(pdf, context)); - default: - throw new Error(`Unsupported DfxApproval document subtype ${subType}`); + this.renderNameCheck(pdf, regular, bold, context); + break; } - } - private createPdf(render: (pdf: Pdf) => void): Promise { - return new Promise((resolve, reject) => { - try { - const pdf = new PDFDocument({ size: 'A4', margin: 42, info: { Producer: 'DFX API' } }); - const chunks: Buffer[] = []; - pdf.on('data', (chunk) => chunks.push(chunk)); - pdf.on('end', () => resolve(Buffer.concat(chunks))); - pdf.on('error', reject); - render(pdf); - pdf.end(); - } catch (error) { - reject(error); - } - }); + return Buffer.from(await pdf.save({ useObjectStreams: false })); } - private renderCover(pdf: Pdf, context: DfxApprovalPdfContext): void { - this.header(pdf, 'GwG-File', context); - this.fields(pdf, [ - ['User Data ID', context.userData.id], - ['DFX Dokument Nr.', this.documentNumber(context, FileSubType.GWG_FILE_COVER)], - ['Timestamp Dokument', context.generatedAt.toISOString()], - ['Art der Gegenpartei', 'Privatperson'], - ['Kunde', context.userData.completeName], - ['Konversationspartner', context.userData.naturalPersonName], - ['Status der Geschäftsbeziehung', 'aktiv'], - ]); - this.footer(pdf); + fileName(subType: FileSubType, context: DfxApprovalPdfContext): string { + const label = { + [FileSubType.GWG_FILE_COVER]: 'GwGFileDeckblatt', + [FileSubType.IDENTIFICATION_FORM]: 'Identifizierungsformular', + [FileSubType.CUSTOMER_PROFILE]: 'Kundenprofil', + [FileSubType.RISK_PROFILE]: 'Risikoprofil', + [FileSubType.FORM_A]: 'FormularA', + [FileSubType.DFX_NAME_CHECK]: 'NameCheck', + }[subType]; + if (!label) throw new Error(`Unsupported DfxApproval document subtype ${subType}`); + const documentDate = + subType === FileSubType.DFX_NAME_CHECK ? this.requiredNameCheck(context).created : context.generatedAt; + return `${this.compactDate(documentDate)}-${label}-0-${context.userData.id}-${this.compactTime(context.generatedAt)}.pdf`; } - private renderNameCheck(pdf: Pdf, context: DfxApprovalPdfContext): void { - this.header(pdf, 'NameCheck Sanktions- und PEP-Prüfung', context); - this.fields(pdf, [ - ['User Data ID', context.userData.id], - ['DFX Dokument Nr.', this.documentNumber(context, FileSubType.DFX_NAME_CHECK)], - ['Timestamp Dokument', context.generatedAt.toISOString()], - ['Art der Gegenpartei', 'Privatperson'], - ['Kunde', context.userData.completeName], - ]); - this.section(pdf, 'Prüfnachweis'); - this.fields(pdf, [ - ['Prüfung durchgeführt mit', 'dilisense.com API'], - ['Timestamp API-Abfrage', context.nameCheck.created?.toISOString()], - ['Ergebnis', this.nameCheckResult(context.nameCheck)], - ['Risikobewertung', context.nameCheck.riskStatus], - ['RAW-Datei Original', context.nameCheck.result], - ]); - this.footer(pdf); + private renderCover(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + const page = pdf.getPage(0); + page.drawRectangle({ x: 292, y: page.getHeight() - 116, width: 120, height: 14, color: WHITE }); + this.text(page, regular, bold, String(context.userData.id), { x: 296.4, top: 70.2 }); + this.text(page, regular, bold, this.documentNumber(FileSubType.GWG_FILE_COVER, context), { + x: 296.4, + top: 86.7, + width: 245, + }); + this.text(page, regular, bold, this.timestamp(context.generatedAt), { x: 296.4, top: 103.2, width: 160 }); + this.text(page, regular, bold, 'Privatperson', { x: 296.4, top: 119.7 }); + this.text(page, regular, bold, context.userData.verifiedName, { x: 296.4, top: 136.2, width: 245 }); + this.text(page, regular, bold, context.userData.naturalPersonName, { x: 296.4, top: 152.7, width: 245 }); } - private renderFormA(pdf: Pdf, context: DfxApprovalPdfContext): void { - this.header(pdf, 'Feststellung des wirtschaftlich Berechtigten (A)', context); - this.fields(pdf, [ - ['Vertragspartner', context.userData.completeName], - ['Name(n)', context.userData.surname], - ['Vorname(n)', context.userData.firstname], - ['Geburtsdatum', this.date(context.userData.birthday)], - ['Nationalität', context.userData.nationality?.name], - ['Effektive Wohnadresse', this.address(context.userData)], - ]); - this.paragraph( - pdf, - 'Der Vertragspartner erklärt, dass er selbst allein an den in die Geschäftsbeziehung eingebrachten Vermögenswerten wirtschaftlich berechtigt ist. Änderungen sind DFX unaufgefordert mitzuteilen.', - ); - this.section(pdf, 'Bestätigung'); - this.fields(pdf, [ - ['Bestätigt durch', 'Onboarding mit TAN-Verfahren'], - ['Zeitpunkt', context.generatedAt.toISOString()], - ['Datengrundlage', 'KYC-Schritte und unveränderbar gespeicherte Nachweise'], - ]); - this.paragraph( - pdf, - 'Die vorsätzliche Angabe falscher Informationen kann eine strafbare Handlung darstellen. VQF Dok. Nr. 902.9; DFX-Fassung vom 1. Dezember 2023.', - ); - this.footer(pdf); + private renderNameCheck(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + const nameCheck = this.requiredNameCheck(context); + const page = pdf.getPage(0); + this.text(page, regular, bold, String(context.userData.id), { x: 198.6, top: 70.1 }); + this.text(page, regular, bold, this.documentNumber(FileSubType.DFX_NAME_CHECK, context), { + x: 198.6, + top: 86.6, + width: 245, + }); + this.text(page, regular, bold, this.timestamp(nameCheck.created), { x: 198.6, top: 103.1 }); + this.text(page, regular, bold, 'Privatperson', { x: 198.6, top: 119.5 }); + this.text(page, regular, bold, context.userData.verifiedName, { x: 198.6, top: 136.0, width: 245 }); + this.text(page, regular, bold, this.timestamp(nameCheck.created), { x: 198.6, top: 200.5 }); + this.text(page, regular, bold, this.nameCheckResult(nameCheck), { x: 198.6, top: 217.0, width: 245 }); + this.text(page, regular, bold, nameCheck.result, { x: 198.6, top: 233.5, width: 360, height: 12 }); } - private renderIdentificationForm(pdf: Pdf, context: DfxApprovalPdfContext): void { - this.header(pdf, 'Identifizierungsformular', context); - this.section(pdf, '1. Angaben zur Vertragspartei'); - this.fields(pdf, [ - ['Vorname/Nachname', context.userData.naturalPersonName], - ['Wohnsitzadresse', this.address(context.userData)], - ['Telefon', context.userData.phone], - ['Mail', context.userData.mail], - ['Geburtsdatum', this.date(context.userData.birthday)], - ['Staatsangehörigkeit', context.userData.nationality?.name], - ['Identifizierungsdokument', context.userData.identDocumentType], - ['Dokumentnummer', context.userData.identDocumentId], - ['Kopie im Anhang', 'Ja'], - ]); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); - - pdf.addPage(); - this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); - this.section(pdf, '2. Eröffner für juristische Personen'); - this.paragraph(pdf, 'Nicht anwendbar: Die Vertragspartei ist eine natürliche Person.'); - this.section(pdf, '3. Aufnahme der Geschäftsbeziehung'); - this.fields(pdf, [ - ['Datum (Vertragsschluss)', this.date(context.generatedAt)], - ['Aufnahme durch', this.identificationMethod(context.userData.identificationType)], - ['Art der Korrespondenzzustellung', 'elektronisch'], - ['Sprache', context.userData.language?.name], - ]); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); - - pdf.addPage(); - this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); - this.section(pdf, '4. Wirtschaftlich berechtigte Person / Kontrollinhaber'); - this.check(pdf, true, 'Natürliche Person; wirtschaftliche Berechtigung bei der Vertragspartei selbst'); - this.check(pdf, false, 'Juristische Person oder Personengesellschaft'); - this.section(pdf, '5. Embargomassnahmen / Terrorismuslisten'); - this.paragraph( - pdf, - `Die Vertragspartei wurde über die Dilisense-Sanktions- und PEP-Prüfung geprüft. Ergebnis: ${this.nameCheckResult(context.nameCheck)}. Der Einzelnachweis ist als DfxNameCheck und PersonalNameCheck gespeichert.`, - ); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); - - pdf.addPage(); - this.pageTitle(pdf, 'Identifizierungsformular – Fortsetzung'); - this.section(pdf, '6. Art und Zweck der Geschäftsbeziehung'); - this.check(pdf, true, 'Geldwechsel'); - this.check(pdf, true, 'Geldwechsel von Fiat-Währungen zu digitalen Vermögenswerten'); - this.check(pdf, true, 'Geldwechsel zwischen digitalen Vermögenswerten'); - this.section(pdf, '7. Beilagen'); - for (const label of [ - 'Identifizierungsdokument', - 'Feststellung des wirtschaftlich Berechtigten (Formular A)', - 'Kundenprofil', - 'Risikoprofil', - 'NameCheck-Nachweise', - ]) - this.check(pdf, true, label); - this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Formular zu aktualisieren.'); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.1'); + private renderFormA(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + const page = pdf.getPage(0); + const value = (text: unknown, top: number, height = 16): void => + this.text(page, regular, bold, text, { x: 202, top, width: 365, height, color: BLUE, bold: true, size: 9 }); + value(context.userData.id, 82.3); + value(context.userData.verifiedName, 231.9); + value(context.userData.surname, 349.6); + value(context.userData.firstname, 371.5); + value(this.date(context.userData.birthday), 393.4); + value(context.userData.nationality?.name, 415.4); + value(this.address(context.userData), 437.3, 30); + this.text(page, regular, bold, this.timestamp(context.userData.created), { + x: 16.5, + top: 549.5, + width: 180, + color: BLUE, + bold: true, + size: 9, + }); } - private renderCustomerProfile(pdf: Pdf, context: DfxApprovalPdfContext): void { - const financial = this.financialData(context.steps); - this.header(pdf, 'Kundenprofil', context); - this.paragraph(pdf, 'Für dauernde Geschäftsbeziehungen und Stammkunden.'); - this.fields(pdf, [ - ['Vertragspartei', context.userData.completeName], - ['Beruf / geschäftliche Aktivität', financial.occupation], - ['Beschreibung Arbeitgeber / Tätigkeit', financial.occupation_description], - ['Branche', financial.sector], - ['Jährliches Einkommen', financial.income], - ['Vermögen', financial.assets], - ['Herkunft der Vermögenswerte', financial.source_of_funds], - ['Geplantes Handelsvolumen in CHF', financial.income], - ]); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.5'); - - pdf.addPage(); - this.pageTitle(pdf, 'Kundenprofil – Fortsetzung'); - this.section(pdf, 'Art und Zweck der Geschäftsbeziehung'); - this.check(pdf, true, 'Geldwechsel'); - this.check(pdf, true, 'Geldwechsel von Fiat-Währungen zu digitalen Vermögenswerten'); - this.check(pdf, true, 'Geldwechsel zwischen digitalen Vermögenswerten'); - this.fields(pdf, [ - ['Entwicklung der Geschäftsbeziehung', 'Wachstum und weitere Investitionen nach Marktsituation'], - ['Beziehung zu Dritten', 'Keine Angaben / keine Drittpartei aus den Onboarding-Daten'], - ['Weitere Informationen', financial.risky_business], - ]); - this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Kundenprofil zu aktualisieren.'); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.5'); + private renderIdentificationForm( + pdf: PDFDocument, + regular: PDFFont, + bold: PDFFont, + context: DfxApprovalPdfContext, + ): void { + const first = pdf.getPage(0); + const value = (text: unknown, top: number, height = 18): void => + this.text(first, regular, bold, text, { x: 257.1, top, width: 305, height, color: BLUE, bold: true, size: 9 }); + this.text(first, regular, bold, context.userData.id, { + x: 420.3, + top: 46.3, + width: 135, + color: BLUE, + bold: true, + size: 9, + }); + this.text(first, regular, bold, this.timestamp(context.generatedAt), { + x: 158.4, + top: 211.8, + width: 395, + color: BLUE, + bold: true, + size: 9, + }); + value(context.userData.naturalPersonName, 294.5); + value(this.address(context.userData), 318.2); + value(context.userData.phone, 342.0); + value(context.userData.mail, 365.7); + value(this.date(context.userData.birthday), 389.5); + value(context.userData.nationality?.name, 413.2); + value(context.userData.identDocumentType, 437.0); + + const second = pdf.getPage(1); + this.text(second, regular, bold, this.timestamp(context.userData.created), { + x: 257.1, + top: 402.1, + width: 305, + color: BLUE, + bold: true, + size: 9, + }); + const identificationType = context.userData.identificationType; + if (identificationType === KycIdentificationType.VIDEO_ID) this.check(second, 239.3, 424.5); + else if (identificationType === KycIdentificationType.MANUAL) this.check(second, 239.3, 465.0); + else this.check(second, 239.3, 446.0); + + const language = context.userData.language?.name; + if (language === 'German' || language === 'Portuguese') this.check(second, 239.3, 522.5); + else if (language === 'Italian') this.check(second, 239.3, 546.3); + else if (language === 'French') this.check(second, 402.5, 546.3); + else this.check(second, 402.5, 522.5); + + this.check(pdf.getPage(2), 233.5, 118.5); + if (context.userData.sellVolume > 0) this.check(pdf.getPage(3), 239.3, 202.0); + this.check(pdf.getPage(3), 239.3, 219.0); } - private renderRiskProfile(pdf: Pdf, context: DfxApprovalPdfContext): void { - this.header(pdf, 'Risikoprofil GwG', context); - this.paragraph( - pdf, - 'Ermittlung von Geschäftsbeziehungen mit erhöhtem Risiko und Festlegung von Kriterien zur Transaktionsüberwachung.', - ); - this.section(pdf, '1. Politisch exponierte Personen (PEP)'); - this.check(pdf, context.userData.pep === false, 'Kein PEP-Hinweis'); - this.check(pdf, context.userData.pep === true, 'PEP-Hinweis vorhanden – automatische Freigabe unzulässig'); - this.fields(pdf, [['NameCheck-Nachweis', this.nameCheckResult(context.nameCheck)]]); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); - - pdf.addPage(); - this.pageTitle(pdf, 'Risikoprofil GwG – Fortsetzung'); - this.section(pdf, '2. High-Risk- oder nicht kooperatives Land'); - this.check(pdf, context.userData.highRisk === false, 'Kein High-Risk-Merkmal in den Onboarding-Daten'); - this.check(pdf, context.userData.highRisk === true, 'High-Risk-Merkmal vorhanden'); - this.fields(pdf, [ - ['Wohnsitzland', context.userData.country?.name], - ['Verifiziertes Land', context.userData.verifiedCountry?.name], - ['Nationalität', context.userData.nationality?.name], - ]); - this.section(pdf, '3. Komplexe Struktur'); - this.check(pdf, context.userData.complexOrgStructure === false, 'Keine komplexe Organisationsstruktur'); - this.section(pdf, '4. Herkunft der Vermögenswerte'); - this.fields(pdf, Object.entries(this.financialData(context.steps))); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); - - pdf.addPage(); - this.pageTitle(pdf, 'Risikoprofil GwG – Fortsetzung'); - this.section(pdf, '5. DFX-eigene Kriterien'); - this.paragraph( - pdf, - 'Eine Blockchain-Analyse wird nicht pauschal als bestanden bescheinigt. Adressen und Transaktionen werden in den dafür vorgesehenen AML-Prozessen geprüft; deren Einzelnachweise bleiben separat erhalten.', - ); - this.section(pdf, 'Gesamtbewertung'); - this.check(pdf, context.userData.highRisk === false, 'Geschäftsbeziehung ohne erhöhtes Onboarding-Risiko'); - this.check(pdf, context.userData.highRisk === true, 'Geschäftsbeziehung mit erhöhtem Risiko'); - this.section(pdf, '6. Transaktionsüberwachung'); - this.paragraph( - pdf, - 'Reglementarische Schwellen, Länder- und Sanktionsrisiken sowie auffällige Transaktionsmuster werden durch die laufenden AML-Prüfungen bewertet. Dieses Dokument ersetzt keinen transaktionsbezogenen Prüfnachweis.', - ); - this.paragraph(pdf, 'Bei einer Änderung der Verhältnisse ist das Risikoprofil zu aktualisieren.'); - this.formMeta(pdf, context, 'VQF Dok. Nr. 902.4'); + private renderCustomerProfile( + pdf: PDFDocument, + regular: PDFFont, + bold: PDFFont, + context: DfxApprovalPdfContext, + ): void { + const financial = this.financialData(context.steps); + const first = pdf.getPage(0); + const value = (text: unknown, top: number, height = 20): void => + this.text(first, regular, bold, text, { x: 249, top, width: 322, height, color: BLUE, bold: true, size: 8.7 }); + this.text(first, regular, bold, context.userData.id, { + x: 440.1, + top: 83, + width: 125, + color: BLUE, + bold: true, + size: 9, + }); + this.text(first, regular, bold, context.userData.verifiedName, { + x: 159, + top: 270.9, + width: 410, + color: BLUE, + bold: true, + size: 9, + }); + this.text(first, regular, bold, this.timestamp(context.generatedAt), { + x: 159, + top: 368.1, + width: 410, + color: BLUE, + bold: true, + size: 9, + }); + value(this.employment(financial), 440.4, 56); + value(this.financialBand(financial.income), 518.7); + value(this.financialBand(financial.assets), 552.4); + value(this.volumeBand(context.userData.totalVolumeChfAuditPeriod ?? 0), 615.9); + + const source = financial.source_of_funds; + if (source === 'business' || financial.occupation === 'self_employed' || financial.occupation === 'inhaber') + this.check(first, 267.2, 633.2); + if (source === 'business') this.check(first, 267.2, 647.3); + if (source === 'real_estate_sale') this.check(first, 267.2, 661.4); + if (source === 'OTHER') this.check(first, 267.2, 703.8); + if ((context.userData.totalVolumeChfAuditPeriod ?? 0) > 100000) + value("Siehe eigene Aktennotiz bezüglich Freigabe Handelsvolumen > 100'000 CHF", 727.0, 36); + + const second = pdf.getPage(1); + if (context.userData.sellVolume > 0) this.check(second, 267.2, 167.5); + if (context.userData.cryptoVolume > 0) this.check(second, 267.2, 197.1); } - private header(pdf: Pdf, title: string, context: DfxApprovalPdfContext): void { - PdfUtil.drawLogo(pdf); - pdf.moveDown(2.2).font('Helvetica-Bold').fontSize(19).fillColor('#072440').text(title); - pdf.moveDown(0.7); - this.fields(pdf, [ - ['VQF Mitglied Nr.', MEMBER_NUMBER], - ['User Id.', context.userData.id], - ['Erstellt', context.generatedAt.toISOString()], - ]); + private renderRiskProfile(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { + const first = pdf.getPage(0); + this.text(first, regular, bold, context.userData.id, { + x: 430.9, + top: 79.6, + width: 125, + color: BLUE, + bold: true, + size: 9, + }); + this.text(first, regular, bold, context.userData.verifiedName, { + x: 135.9, + top: 265.7, + width: 420, + color: BLUE, + bold: true, + size: 9, + }); + this.text(first, regular, bold, this.timestamp(context.userData.amlListAddedDate), { + x: 135.9, + top: 347.9, + width: 420, + color: BLUE, + bold: true, + size: 9, + }); + this.check(first, 259.4, context.userData.pep ? 529.2 : 514.4); + this.check(first, 259.4, context.userData.pep ? 606.3 : 592.8); + + const second = pdf.getPage(1); + this.booleanChecks(second, context.userData.highRisk === false, 150.0, 166.7); + this.booleanChecks(second, context.userData.complexOrgStructure === false, 301.0, 316.5); + const normalCountry = context.userData.country?.fatfEnable === true; + this.booleanChecks(second, normalCountry, 455.6, 471.7); + this.booleanChecks(second, normalCountry, 503.8, 519.9); + this.booleanChecks(second, normalCountry, 568.1, 584.2); + this.booleanChecks(second, context.userData.highRisk === false, 677.4, 693.5); + + const third = pdf.getPage(2); + this.booleanChecks(third, normalCountry, 134.6, 166.7); + this.booleanChecks(third, context.userData.highRisk === false, 313.0, 329.1); } - private pageTitle(pdf: Pdf, title: string): void { - pdf.font('Helvetica-Bold').fontSize(16).fillColor('#072440').text(title).moveDown(1); + private booleanChecks(page: PDFPage, positive: boolean, positiveTop: number, negativeTop: number): void { + this.check(page, 259.4, positive ? positiveTop : negativeTop); } - private section(pdf: Pdf, title: string): void { - if (pdf.y > 720) pdf.addPage(); - pdf.moveDown(0.7).font('Helvetica-Bold').fontSize(12).fillColor('#072440').text(title).moveDown(0.35); + private text(page: PDFPage, regular: PDFFont, bold: PDFFont, raw: unknown, options: TextOptions): void { + if (raw == null || raw === '') return; + const value = String(raw) + .split(/\r?\n/) + .map((line) => line.replace(/[\t ]+/g, ' ').trim()) + .join('\n') + .trim(); + if (!value) return; + const font = options.bold ? bold : regular; + const size = options.size ?? 8.5; + const width = options.width ?? 260; + const lineHeight = size * 1.12; + const maxLines = Math.max(1, Math.floor((options.height ?? lineHeight) / lineHeight)); + const lines = value + .split('\n') + .flatMap((line) => this.wrap(line, font, size, width, maxLines)) + .slice(0, maxLines); + lines.forEach((line, index) => { + page.drawText(line, { + x: options.x, + y: page.getHeight() - options.top - size - index * lineHeight + 1.5, + size, + font, + color: options.color ?? BLACK, + }); + }); } - private fields(pdf: Pdf, rows: [string, unknown][]): void { - for (const [label, rawValue] of rows) { - const value = rawValue == null || rawValue === '' ? '–' : String(rawValue); - if (pdf.y > 755) pdf.addPage(); - const y = pdf.y; - pdf.font('Helvetica').fontSize(8.5).fillColor('#333333').text(label, 42, y, { width: 170 }); - pdf.font('Helvetica-Bold').fillColor('#0824d8').text(value, 215, y, { width: 335 }); - pdf.y = Math.max(pdf.y, y + 17); - pdf - .moveTo(42, pdf.y - 3) - .lineTo(553, pdf.y - 3) - .lineWidth(0.3) - .stroke('#999999'); + private wrap(value: string, font: PDFFont, size: number, width: number, maxLines: number): string[] { + const words = value.split(' '); + const lines: string[] = []; + let current = ''; + for (const word of words) { + const candidate = current ? `${current} ${word}` : word; + if (font.widthOfTextAtSize(candidate, size) <= width) { + current = candidate; + } else { + if (current) lines.push(current); + current = word; + if (lines.length === maxLines) break; + } } + if (current && lines.length < maxLines) lines.push(this.fit(current, font, size, width)); + return lines.slice(0, maxLines); } - private paragraph(pdf: Pdf, text: string): void { - if (pdf.y > 700) pdf.addPage(); - pdf.moveDown(0.5).font('Helvetica').fontSize(9).fillColor('#222222').text(text, { align: 'left' }).moveDown(0.5); - } - - private check(pdf: Pdf, checked: boolean, label: string): void { - if (pdf.y > 755) pdf.addPage(); - const y = pdf.y; - pdf.rect(44, y, 10, 10).lineWidth(1).stroke('#0824d8'); - if (checked) - pdf - .font('Helvetica-Bold') - .fontSize(10) - .fillColor('#0824d8') - .text('X', 45, y - 1); - pdf.font('Helvetica').fontSize(9).fillColor('#222222').text(label, 62, y, { width: 485 }); - pdf.y = Math.max(pdf.y, y + 17); - } - - private formMeta(pdf: Pdf, context: DfxApprovalPdfContext, source: string): void { - this.section(pdf, 'Dokumentation'); - this.fields(pdf, [ - ['Ausgefüllt / aktualisiert von', 'DFX API (automatisierter, regelgebundener Workflow)'], - ['Zeitpunkt', context.generatedAt.toISOString()], - ['Vorlage / Grundlage', `${source}; ${FORM_VERSION}`], - ]); - this.footer(pdf); + private fit(value: string, font: PDFFont, size: number, width: number): string { + let result = value; + while (result && font.widthOfTextAtSize(result, size) > width) result = result.slice(0, -1); + return result; } - private footer(pdf: Pdf): void { - pdf.font('Helvetica').fontSize(7).fillColor('#777777').text(FORM_VERSION, 42, 790, { width: 511 }); + private check(page: PDFPage, x: number, top: number): void { + const size = 12; + const y = page.getHeight() - top - size; + page.drawRectangle({ x, y, width: size, height: size, color: BLUE, borderColor: BLUE, borderWidth: 0.8 }); + page.drawLine({ start: { x: x + 2.2, y: y + 6.2 }, end: { x: x + 5, y: y + 3.2 }, color: WHITE, thickness: 1.6 }); + page.drawLine({ start: { x: x + 4.8, y: y + 3.2 }, end: { x: x + 10, y: y + 9.4 }, color: WHITE, thickness: 1.6 }); } private financialData(steps: KycStep[]): FinancialData { @@ -342,33 +377,108 @@ export class DfxApprovalPdfService { } if (!Array.isArray(responses) || responses.some((response) => !response?.key || !response?.value)) throw new Error('FinancialData result has an invalid structure'); - return Object.fromEntries(responses.map((response) => [response.key, response.value])); } + private employment(financial: FinancialData): string { + const occupation = financial.occupation === 'self_employed' ? 'Selbständig' : financial.occupation; + return [ + occupation && `Beruf: ${occupation}`, + financial.occupation_description && `Arbeitgeber: ${financial.occupation_description}`, + financial.sector && `Branche: ${financial.sector}`, + ] + .filter(Boolean) + .join('\n') + .replace(/n\.a\./g, ''); + } + + private financialBand(value?: string): string { + return ( + { + '1m': " > 1'000'000 CHF", + '500k_1m': "zwischen 500'000 und 1'000'000 CHF", + '100k_500k': "zwischen 100'000 und 500'000 CHF", + '50k_100k': "zwischen 0 und 100'000 CHF", + '50k': "zwischen 0 und 100'000 CHF", + }[value ?? ''] ?? '' + ); + } + + private volumeBand(volume: number): string { + if (volume <= 100000) return "zwischen 0 und 100'000 CHF"; + if (volume <= 500000) return "zwischen 100'000 und 500'000 CHF"; + if (volume <= 1000000) return "zwischen 500'000 und 1'000'000 CHF"; + if (volume <= 5000000) return "zwischen 1'000'000 und 5'000'000 CHF"; + if (volume <= 10000000) return "zwischen 5'000'000 und 10'000'000 CHF"; + if (volume <= 15000000) return "zwischen 10'000'000 und 15'000'000 CHF"; + return "grösser 15'000'000 CHF"; + } + private nameCheckResult(nameCheck: NameCheckLog): string { - return nameCheck.riskStatus === NameCheckRiskStatus.NOT_SANCTIONED - ? 'keine Treffer gefunden' - : `Treffer vorhanden; Bewertung ${nameCheck.riskEvaluation ?? 'offen'}`; + try { + const result = JSON.parse(nameCheck.result) as { total_hits?: number }; + if (result.total_hits === 0) return 'keine Treffer gefunden'; + } catch { + // The productive Sheet leaves the result field empty when the raw result cannot be parsed. + } + return nameCheck.riskStatus === NameCheckRiskStatus.NOT_SANCTIONED ? 'keine Treffer gefunden' : ''; + } + + private requiredNameCheck(context: DfxApprovalPdfContext): NameCheckLog { + if (!context.nameCheck) throw new Error('NameCheck evidence is missing'); + return context.nameCheck; } - private documentNumber(context: DfxApprovalPdfContext, subType: FileSubType): string { - return `${Util.isoDate(context.generatedAt).replace(/-/g, '')}-${subType}-${context.userData.id}`; + private documentNumber(subType: FileSubType, context: DfxApprovalPdfContext): string { + return this.fileName(subType, context).replace(/\.pdf$/, ''); } private address(userData: UserData): string { - return [userData.street, userData.houseNumber, userData.zip, userData.location, userData.country?.name] + return [ + [userData.street, userData.houseNumber].filter(Boolean).join(' '), + [userData.zip, userData.location].filter(Boolean).join(' '), + userData.country?.name, + ] .filter(Boolean) .join(', '); } private date(value?: Date): string { - return value ? Util.localeDataString(value, 'DE') : '–'; + if (!value) return ''; + return new Intl.DateTimeFormat('de-CH', { timeZone: 'Europe/Zurich' }).format(value); + } + + private timestamp(value?: Date): string { + if (!value) return ''; + const parts = this.zurichParts(value); + return `${parts.day}.${parts.month}.${parts.year} ${parts.hour}:${parts.minute}:${parts.second}`; + } + + private compactDate(value?: Date): string { + if (!value) throw new Error('Document date is missing'); + const parts = this.zurichParts(value); + return `${parts.year}${parts.month}${parts.day}`; + } + + private compactTime(value: Date): string { + const parts = this.zurichParts(value); + return `${parts.hour}${parts.minute}${parts.second}`; } - private identificationMethod(type?: string): string { - if (type === KycIdentificationType.VIDEO_ID) return 'Online-Registrierung mittels Video-Identifikation'; - if (type === KycIdentificationType.MANUAL) return 'Persönliche / manuelle Identifikation'; - return 'Online-Registrierung mittels Online-Identifikation'; + private zurichParts(value: Date): Record<'year' | 'month' | 'day' | 'hour' | 'minute' | 'second', string> { + const parts = new Intl.DateTimeFormat('en-GB', { + timeZone: 'Europe/Zurich', + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + hourCycle: 'h23', + }).formatToParts(value); + return Object.fromEntries(parts.map((part) => [part.type, part.value])) as Record< + 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second', + string + >; } } diff --git a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts index baee44b399..b486bc611a 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-workflow.service.ts @@ -1,14 +1,14 @@ -import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common'; +import { Injectable, NotFoundException } from '@nestjs/common'; import { CronExpression } from '@nestjs/schedule'; import { Config } from 'src/config/config'; import { DfxLogger } from 'src/shared/services/dfx-logger'; import { Process } from 'src/shared/services/process.service'; import { DfxCron } from 'src/shared/utils/cron'; -import { EntityManager, IsNull } from 'typeorm'; +import { Between, EntityManager, In, IsNull, MoreThanOrEqual, Not } from 'typeorm'; import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserData } from '../../user/models/user-data/user-data.entity'; -import { KycLevel, KycStatus } from '../../user/models/user-data/user-data.enum'; -import { DfxApprovalBlocker, DfxApprovalStatusDto } from '../dto/output/dfx-approval-status.dto'; +import { KycLevel, KycStatus, KycType, UserDataStatus } from '../../user/models/user-data/user-data.enum'; +import { FileSubType } from '../dto/kyc-file.dto'; import { KycLog } from '../entities/kyc-log.entity'; import { KycStep } from '../entities/kyc-step.entity'; import { NameCheckLog, NameCheckRiskStatus } from '../entities/name-check-log.entity'; @@ -17,12 +17,13 @@ import { KycStepName } from '../enums/kyc-step-name.enum'; import { KycLogType } from '../enums/kyc.enum'; import { ReviewStatus } from '../enums/review-status.enum'; import { KycStepRepository } from '../repositories/kyc-step.repository'; -import { DFX_APPROVAL_REQUIRED_DOCUMENTS, DfxApprovalCheckService } from './dfx-approval-check.service'; +import { DfxApprovalCheckService } from './dfx-approval-check.service'; import { DfxApprovalDocumentService } from './dfx-approval-document.service'; import { KycNotificationService } from './kyc-notification.service'; import { NameCheckService } from './name-check.service'; const ADVISORY_LOCK_NAMESPACE = 1145466968; +const LEGACY_DOCUMENT_EXCLUSIONS = [374462, 374428, 385169]; @Injectable() export class DfxApprovalWorkflowService { @@ -40,11 +41,13 @@ export class DfxApprovalWorkflowService { async reviewPersonalApprovals(): Promise { if (!Config.kyc.dfxApprovalWorkflowEnabled) return; + await this.initializePendingPersonalRiskData(); + const steps = await this.kycStepRepo.find({ where: { name: KycStepName.DFX_APPROVAL, status: ReviewStatus.MANUAL_REVIEW, - userData: { accountType: AccountType.PERSONAL, kycLevel: KycLevel.LEVEL_40 }, + userData: { accountType: AccountType.PERSONAL, kycLevel: MoreThanOrEqual(KycLevel.LEVEL_40) }, }, order: { created: 'ASC' }, take: 50, @@ -57,138 +60,28 @@ export class DfxApprovalWorkflowService { this.logger.error(`DfxApproval workflow failed for step ${step.id}:`, error); } } - } - - async getStatus(stepId: number): Promise { - const step = await this.loadStep(stepId); - const hasOpenNameChecks = await this.nameCheckService.hasOpenNameChecks(step.userData); - return this.checkService.evaluatePersonal(step.userData, step, step.userData.kycFiles, hasOpenNameChecks); - } - async applyManualDecision( - stepId: number, - actorUserDataId: number, - status: ReviewStatus.COMPLETED | ReviewStatus.FAILED, - result: string, - comment: string | undefined, - userDataUpdate: Pick, - ): Promise { - await this.withStepLock( - stepId, - () => this.applyManualDecisionTransaction(stepId, actorUserDataId, status, result, comment, userDataUpdate), - true, - ); - } - - private async applyManualDecisionTransaction( - stepId: number, - actorUserDataId: number, - status: ReviewStatus.COMPLETED | ReviewStatus.FAILED, - result: string, - comment: string | undefined, - userDataUpdate: Pick, - ): Promise { - const completedUser = await this.kycStepRepo.manager.transaction(async (manager) => { - const step = await manager.findOne(KycStep, { - where: { id: stepId }, - lock: { mode: 'pessimistic_write' }, - }); - if (!step || step.name !== KycStepName.DFX_APPROVAL) throw new NotFoundException('DfxApproval step not found'); - if (step.status !== ReviewStatus.MANUAL_REVIEW) - throw new BadRequestException(`DfxApproval step is not in ${ReviewStatus.MANUAL_REVIEW}`); - - const userData = await this.loadUserData(manager, step.userData.id); - if (status === ReviewStatus.COMPLETED) { - const missingDocuments = DFX_APPROVAL_REQUIRED_DOCUMENTS.filter( - (subType) => !userData.kycFiles.some((file) => file.valid && file.subType === subType), - ); - if (missingDocuments.length) - throw new BadRequestException(`Required DfxApproval documents are missing: ${missingDocuments.join(', ')}`); - - const hasOpenNameChecks = await manager.exists(NameCheckLog, { - where: { - userData: { id: userData.id }, - riskEvaluation: IsNull(), - riskStatus: NameCheckRiskStatus.SANCTIONED, - }, - }); - if (hasOpenNameChecks) throw new BadRequestException('Open sanctioned name check'); - } - - const before = { - stepStatus: step.status, - kycLevel: userData.kycLevel, - kycStatus: userData.kycStatus, - complexOrgStructure: userData.complexOrgStructure, - highRisk: userData.highRisk, - depositLimit: userData.depositLimit, - amlAccountType: userData.amlAccountType, - }; - const userStatusUpdate = - status === ReviewStatus.COMPLETED - ? { ...userDataUpdate, kycLevel: KycLevel.LEVEL_50, kycStatus: KycStatus.COMPLETED } - : userDataUpdate; - - await manager.save( - manager.create(KycLog, { - type: KycLogType.MANUAL, - userData: { id: userData.id }, - result: JSON.stringify({ - workflow: 'DfxApproval', - action: 'ManualDecision', - actorUserDataId, - before, - after: { ...userStatusUpdate, stepStatus: status }, - }), - }), - ); - await manager.update(UserData, userData.id, userStatusUpdate); - await manager.update(KycStep, step.id, { status, result, comment: comment ?? null }); - await manager.save( - manager.create(StepLog, { - type: KycLogType.STEP, - userData: { id: userData.id }, - kycStep: { id: step.id }, - status, - result, - }), - ); - if (status === ReviewStatus.COMPLETED) - await manager.save( - manager.create(KycLog, { - type: KycLogType.KYC, - userData: { id: userData.id }, - result: `KycLevel changed to ${KycLevel.LEVEL_50} by DfxApproval manual workflow`, - }), - ); - - Object.assign(userData, userStatusUpdate); - return status === ReviewStatus.COMPLETED ? userData : undefined; - }); - - if (completedUser) await this.notificationService.kycChanged(completedUser, KycLevel.LEVEL_50); + await this.generatePendingPersonalDocuments(); } private async processPersonalApproval(stepId: number): Promise { let step = await this.loadStep(stepId); - if (step.status !== ReviewStatus.MANUAL_REVIEW || step.userData.kycLevel !== KycLevel.LEVEL_40) return; + if (step.status !== ReviewStatus.MANUAL_REVIEW || step.userData.kycLevel < KycLevel.LEVEL_40) return; const hasOpenNameChecks = await this.nameCheckService.hasOpenNameChecks(step.userData); await this.initializePersonalRiskData(step.userData, hasOpenNameChecks); step = await this.loadStep(stepId); - const preflight = this.checkService.evaluatePersonal( + const requestedDocuments = this.eligiblePersonalDocuments(step.userData); + await this.documentService.generateMissingPersonalDocuments( step.userData, step, step.userData.kycFiles, - hasOpenNameChecks, + requestedDocuments, ); - if (preflight.blockers.some((blocker) => blocker.code !== DfxApprovalBlocker.MISSING_DOCUMENT)) return; - - await this.documentService.generateMissingPersonalDocuments(step.userData, step, step.userData.kycFiles); const completedUser = await this.completeIfReady(stepId); - if (completedUser) await this.notificationService.kycChanged(completedUser, KycLevel.LEVEL_50); + if (completedUser) await this.notificationService.kycChanged(completedUser, completedUser.kycLevel); } private async initializePersonalRiskData(userData: UserData, hasOpenNameChecks: boolean): Promise { @@ -199,7 +92,6 @@ export class DfxApprovalWorkflowService { if (userData.highRisk == null) update.highRisk = false; if (userData.complexOrgStructure == null) update.complexOrgStructure = false; if (userData.depositLimit == null) update.depositLimit = 100000; - if (userData.amlAccountType == null) update.amlAccountType = 'natural person'; if (!Object.keys(update).length) return; await this.kycStepRepo.manager.transaction(async (manager) => { @@ -232,6 +124,175 @@ export class DfxApprovalWorkflowService { }); } + private async initializePendingPersonalRiskData(): Promise { + const users = await this.kycStepRepo.manager.find(UserData, { + where: { + accountType: AccountType.PERSONAL, + highRisk: IsNull(), + lastNameCheckDate: Not(IsNull()), + kycLevel: MoreThanOrEqual(KycLevel.LEVEL_30), + }, + order: { id: 'ASC' }, + take: 50, + }); + + for (const userData of users) { + try { + await this.initializePersonalRiskData(userData, false); + } catch (error) { + this.logger.error(`DfxApproval risk initialization failed for userData ${userData.id}:`, error); + } + } + } + + private async generatePendingPersonalDocuments(): Promise { + await this.generatePendingApprovalStepDocuments(); + await this.generatePendingCustomerProfiles(); + await this.generatePendingRiskAndFormADocuments(); + } + + private async generatePendingApprovalStepDocuments(): Promise { + const steps = await this.kycStepRepo.find({ + where: { + name: KycStepName.DFX_APPROVAL, + status: In([ReviewStatus.INTERNAL_REVIEW, ReviewStatus.MANUAL_REVIEW]), + userData: { accountType: AccountType.PERSONAL, verifiedName: Not(IsNull()) }, + }, + relations: { userData: true }, + order: { created: 'DESC' }, + take: 500, + }); + + for (const candidate of steps) { + try { + await this.withStepLock(candidate.id, async () => { + const step = await this.loadStep(candidate.id); + const requested = this.eligibleApprovalStepDocuments(step.userData); + await this.documentService.generateMissingPersonalDocuments( + step.userData, + step, + step.userData.kycFiles, + requested, + ); + }); + } catch (error) { + this.logger.error(`DfxApproval step document generation failed for step ${candidate.id}:`, error); + } + } + } + + private async generatePendingCustomerProfiles(): Promise { + const steps = await this.kycStepRepo.find({ + where: { + name: KycStepName.FINANCIAL_DATA, + status: ReviewStatus.COMPLETED, + userData: { + accountType: AccountType.PERSONAL, + kycLevel: Between(KycLevel.LEVEL_30, KycLevel.LEVEL_40), + verifiedName: Not(IsNull()), + }, + }, + relations: { userData: true }, + order: { created: 'DESC' }, + take: 500, + }); + + for (const step of steps) { + try { + await this.withStepLock(step.id, async () => { + const userData = await this.loadUserData(this.kycStepRepo.manager, step.userData.id); + await this.documentService.generateMissingPersonalDocuments(userData, step, userData.kycFiles, [ + FileSubType.CUSTOMER_PROFILE, + ]); + }); + } catch (error) { + this.logger.error(`DfxApproval customer profile generation failed for step ${step.id}:`, error); + } + } + } + + private async generatePendingRiskAndFormADocuments(): Promise { + const users = await this.kycStepRepo.manager.find(UserData, { + where: { + id: Not(In(LEGACY_DOCUMENT_EXCLUSIONS)), + accountType: AccountType.PERSONAL, + status: Not(UserDataStatus.MERGED), + kycType: KycType.DFX, + kycLevel: Between(KycLevel.LEVEL_30, KycLevel.LEVEL_40), + }, + relations: { + country: true, + verifiedCountry: true, + nationality: true, + language: true, + wallet: true, + kycSteps: true, + kycFiles: { kycStep: true }, + }, + order: { created: 'DESC' }, + take: 500, + }); + + for (const userData of users) { + const step = this.documentAnchorStep(userData); + if (!step) continue; + const requested = this.eligibleRiskAndFormADocuments(userData); + + try { + await this.withStepLock(step.id, () => + this.documentService.generateMissingPersonalDocuments(userData, step, userData.kycFiles, requested), + ); + } catch (error) { + this.logger.error(`DfxApproval risk/FormA generation failed for userData ${userData.id}:`, error); + } + } + } + + private documentAnchorStep(userData: UserData): KycStep | undefined { + return [...(userData.kycSteps ?? [])] + .filter((step) => [KycStepName.DFX_APPROVAL, KycStepName.FINANCIAL_DATA].includes(step.name)) + .sort((a, b) => b.created.getTime() - a.created.getTime())[0]; + } + + private eligiblePersonalDocuments(userData: UserData): FileSubType[] { + const documents = this.eligibleApprovalStepDocuments(userData); + const isPreApprovalPersonal = + userData.accountType === AccountType.PERSONAL && + userData.kycLevel >= KycLevel.LEVEL_30 && + userData.kycLevel < KycLevel.LEVEL_50; + const hasFinancialData = userData.kycSteps?.some( + (step) => step.name === KycStepName.FINANCIAL_DATA && step.isCompleted, + ); + if (isPreApprovalPersonal && userData.verifiedName && hasFinancialData) + documents.push(FileSubType.CUSTOMER_PROFILE); + documents.push(...this.eligibleRiskAndFormADocuments(userData)); + return [...new Set(documents)]; + } + + private eligibleApprovalStepDocuments(userData: UserData): FileSubType[] { + const documents: FileSubType[] = []; + if (userData.verifiedName) documents.push(FileSubType.GWG_FILE_COVER); + if (userData.status !== UserDataStatus.MERGED && userData.nationality) + documents.push(FileSubType.IDENTIFICATION_FORM); + if (userData.status !== UserDataStatus.MERGED && userData.verifiedName) documents.push(FileSubType.DFX_NAME_CHECK); + return documents; + } + + private eligibleRiskAndFormADocuments(userData: UserData): FileSubType[] { + const eligible = + userData.accountType === AccountType.PERSONAL && + userData.status !== UserDataStatus.MERGED && + userData.kycType === KycType.DFX && + userData.kycLevel >= KycLevel.LEVEL_30 && + userData.kycLevel < KycLevel.LEVEL_50 && + !LEGACY_DOCUMENT_EXCLUSIONS.includes(userData.id); + if (!eligible) return []; + + const documents = [FileSubType.FORM_A]; + if (userData.highRisk === false && userData.country?.fatfEnable === true) documents.push(FileSubType.RISK_PROFILE); + return documents; + } + private async completeIfReady(stepId: number): Promise { return this.kycStepRepo.manager.transaction(async (manager) => { const step = await manager.findOne(KycStep, { @@ -260,12 +321,13 @@ export class DfxApprovalWorkflowService { complianceReview: { complexOrgStructure: 'Nein', highRisk: 'Nein', - depositLimit: String(userData.depositLimit), - amlAccountType: userData.amlAccountType, + depositLimit: '100000', + amlAccountType: 'natural person', processedBy: 'DFX API', finalDecision: 'Akzeptiert', }, }); + const finalKycLevel = Math.max(userData.kycLevel, KycLevel.LEVEL_50); await manager.save( manager.create(KycLog, { @@ -277,8 +339,12 @@ export class DfxApprovalWorkflowService { before: { stepStatus: step.status, kycLevel: userData.kycLevel, kycStatus: userData.kycStatus }, after: { stepStatus: ReviewStatus.COMPLETED, - kycLevel: KycLevel.LEVEL_50, + kycLevel: finalKycLevel, kycStatus: KycStatus.COMPLETED, + complexOrgStructure: false, + highRisk: false, + depositLimit: 100000, + amlAccountType: 'natural person', }, }), }), @@ -293,19 +359,24 @@ export class DfxApprovalWorkflowService { result, }), ); - await manager.update(UserData, userData.id, { - kycLevel: KycLevel.LEVEL_50, + const userStatusUpdate = { + ...(userData.kycLevel < KycLevel.LEVEL_50 ? { kycLevel: KycLevel.LEVEL_50 } : {}), kycStatus: KycStatus.COMPLETED, - }); + complexOrgStructure: false, + highRisk: false, + depositLimit: 100000, + amlAccountType: 'natural person', + }; + await manager.update(UserData, userData.id, userStatusUpdate); await manager.save( manager.create(KycLog, { type: KycLogType.KYC, userData: { id: userData.id }, - result: `KycLevel changed to ${KycLevel.LEVEL_50} by DfxApproval API workflow`, + result: `KycLevel confirmed at ${finalKycLevel} by DfxApproval API workflow`, }), ); - Object.assign(userData, { kycLevel: KycLevel.LEVEL_50, kycStatus: KycStatus.COMPLETED }); + Object.assign(userData, userStatusUpdate); return userData; }); } @@ -321,7 +392,7 @@ export class DfxApprovalWorkflowService { language: true, wallet: true, kycSteps: true, - kycFiles: true, + kycFiles: { kycStep: true }, }, }, }); @@ -339,7 +410,7 @@ export class DfxApprovalWorkflowService { language: true, wallet: true, kycSteps: true, - kycFiles: true, + kycFiles: { kycStep: true }, }, }); if (!userData) throw new NotFoundException('UserData not found'); diff --git a/src/subdomains/generic/support/__tests__/support.controller.spec.ts b/src/subdomains/generic/support/__tests__/support.controller.spec.ts index d3bc0622ad..ce3e06238d 100644 --- a/src/subdomains/generic/support/__tests__/support.controller.spec.ts +++ b/src/subdomains/generic/support/__tests__/support.controller.spec.ts @@ -1,8 +1,6 @@ import { createMock } from '@golevelup/ts-jest'; import { Test } from '@nestjs/testing'; -import { JwtPayload } from 'src/shared/auth/jwt-payload.interface'; import { TestUtil } from 'src/shared/utils/test.util'; -import { ComplianceDecision } from '../dto/onboarding-pdf.dto'; import { RecommendationGraph } from '../dto/user-data-support.dto'; import { SupportIssueTemplateService } from '../services/support-issue-template.service'; import { SupportNoteService } from '../services/support-note.service'; @@ -66,16 +64,4 @@ describe('SupportController', () => { expect(result).toBe(graph); }); }); - - it('passes the authenticated actor to the atomic personal DfxApproval endpoint', async () => { - const dto = { stepId: 11, finalDecision: ComplianceDecision.ACCEPTED, processedBy: 'Compliance Test' }; - const response = { pdfData: 'cGRm', fileName: 'onboarding.pdf' }; - const spy = jest.spyOn(supportService, 'decidePersonalDfxApproval').mockResolvedValue(response); - - await expect(controller.decidePersonalDfxApproval({ account: 99 } as JwtPayload, '42', dto)).resolves.toBe( - response, - ); - - expect(spy).toHaveBeenCalledWith(42, 99, dto); - }); }); diff --git a/src/subdomains/generic/support/__tests__/support.service.spec.ts b/src/subdomains/generic/support/__tests__/support.service.spec.ts index 308957bc4e..1c42c8403f 100644 --- a/src/subdomains/generic/support/__tests__/support.service.spec.ts +++ b/src/subdomains/generic/support/__tests__/support.service.spec.ts @@ -16,22 +16,13 @@ import { Transaction } from 'src/subdomains/supporting/payment/entities/transact import { TransactionService } from 'src/subdomains/supporting/payment/services/transaction.service'; import { RecallService } from 'src/subdomains/supporting/recall/recall.service'; import { KycService } from '../../kyc/services/kyc.service'; -import { KycStep } from '../../kyc/entities/kyc-step.entity'; -import { KycStepName } from '../../kyc/enums/kyc-step-name.enum'; -import { ReviewStatus } from '../../kyc/enums/review-status.enum'; -import { KycDocumentService } from '../../kyc/services/integration/kyc-document.service'; -import { DfxApprovalWorkflowService } from '../../kyc/services/dfx-approval-workflow.service'; -import { KycFileService } from '../../kyc/services/kyc-file.service'; import { Recommendation } from '../../user/models/recommendation/recommendation.entity'; import { RecommendationService } from '../../user/models/recommendation/recommendation.service'; import { UserData } from '../../user/models/user-data/user-data.entity'; -import { AccountType } from '../../user/models/user-data/account-type.enum'; import { UserDataService } from '../../user/models/user-data/user-data.service'; import { User } from '../../user/models/user/user.entity'; import { UserService } from '../../user/models/user/user.service'; import { ComplianceSearchType, RecommendationGraphEdgeKind } from '../dto/user-data-support.dto'; -import { ComplianceDecision } from '../dto/onboarding-pdf.dto'; -import { SupportPdfService } from '../support-pdf.service'; import { SupportService } from '../support.service'; // --- entity builders --- // @@ -88,10 +79,6 @@ describe('SupportService', () => { let payInService: PayInService; let transactionService: TransactionService; let scorechainScreeningService: ScorechainScreeningService; - let dfxApprovalWorkflowService: DfxApprovalWorkflowService; - let supportPdfService: SupportPdfService; - let kycDocumentService: KycDocumentService; - let kycFileService: KycFileService; beforeEach(async () => { const module = await Test.createTestingModule({ @@ -112,10 +99,6 @@ describe('SupportService', () => { payInService = module.get(PayInService); transactionService = module.get(TransactionService); scorechainScreeningService = module.get(ScorechainScreeningService); - dfxApprovalWorkflowService = module.get(DfxApprovalWorkflowService); - supportPdfService = module.get(SupportPdfService); - kycDocumentService = module.get(KycDocumentService); - kycFileService = module.get(KycFileService); }); // by default a node returns a UserData entity from getUserDataByIds for every requested id @@ -137,89 +120,6 @@ describe('SupportService', () => { expect(service).toBeDefined(); }); - describe('decidePersonalDfxApproval', () => { - const step = Object.assign(new KycStep(), { - id: 11, - name: KycStepName.DFX_APPROVAL, - status: ReviewStatus.MANUAL_REVIEW, - result: '{}', - }); - const userData = Object.assign(new UserData(), { - id: 42, - accountType: AccountType.PERSONAL, - highRisk: false, - kycSteps: [step], - }); - const decision = { - stepId: step.id, - finalDecision: ComplianceDecision.ACCEPTED, - processedBy: 'Compliance Test', - }; - - beforeEach(() => { - jest.spyOn(userDataService, 'getUserData').mockResolvedValue(userData); - jest.spyOn(kycFileService, 'getUserDataKycFiles').mockResolvedValue([]); - jest.spyOn(kycService, 'getStepsByUserData').mockResolvedValue([step]); - jest.spyOn(supportPdfService, 'createOnboardingPdf').mockResolvedValue(Buffer.from('pdf').toString('base64')); - jest - .spyOn(kycDocumentService, 'ensureGeneratedUserFile') - .mockResolvedValue({ file: undefined, url: 'url' } as any); - jest.spyOn(dfxApprovalWorkflowService, 'applyManualDecision').mockResolvedValue(undefined); - }); - - it('stores the report before applying the atomic decision', async () => { - await service.decidePersonalDfxApproval(userData.id, 99, decision); - - expect(kycDocumentService.ensureGeneratedUserFile).toHaveBeenCalledWith( - expect.stringMatching(new RegExp(`^dfx-approval:${step.id}:OnboardingReport:manual-v1:[a-f0-9]{16}$`)), - userData, - expect.any(String), - 'OnboardingReport', - expect.stringMatching(/^GwG_Onboarding_42_/), - expect.any(Buffer), - { workflow: 'DfxApproval', version: 'v1' }, - ); - expect((kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.invocationCallOrder[0]).toBeLessThan( - (dfxApprovalWorkflowService.applyManualDecision as jest.Mock).mock.invocationCallOrder[0], - ); - }); - - it('leaves the approval untouched when report generation fails', async () => { - jest.spyOn(supportPdfService, 'createOnboardingPdf').mockRejectedValue(new Error('PDF failed')); - - await expect(service.decidePersonalDfxApproval(userData.id, 99, decision)).rejects.toThrow('PDF failed'); - - expect(dfxApprovalWorkflowService.applyManualDecision).not.toHaveBeenCalled(); - }); - - it('uses a new report key when a retried decision changes', async () => { - await service.decidePersonalDfxApproval(userData.id, 99, decision); - await service.decidePersonalDfxApproval(userData.id, 99, { - ...decision, - finalDecision: ComplianceDecision.REJECTED, - }); - - const firstKey = (kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.calls[0][0]; - const secondKey = (kycDocumentService.ensureGeneratedUserFile as jest.Mock).mock.calls[1][0]; - expect(firstKey).not.toBe(secondKey); - }); - - it('rejects malformed existing step data before creating a report', async () => { - jest.spyOn(userDataService, 'getUserData').mockResolvedValue( - Object.assign(new UserData(), userData, { - kycSteps: [Object.assign(new KycStep(), step, { result: '{invalid' })], - }), - ); - - await expect(service.decidePersonalDfxApproval(userData.id, 99, decision)).rejects.toThrow( - 'DfxApproval result is invalid JSON', - ); - - expect(supportPdfService.createOnboardingPdf).not.toHaveBeenCalled(); - expect(dfxApprovalWorkflowService.applyManualDecision).not.toHaveBeenCalled(); - }); - }); - describe('getRecommendationGraphNeighbors', () => { it('applies the default skip=0 and take=25 when not provided', async () => { const centerId = 100; diff --git a/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts b/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts index 4a357bf4a4..7f80b779c6 100644 --- a/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts +++ b/src/subdomains/generic/support/dto/onboarding-pdf.dto.ts @@ -1,4 +1,4 @@ -import { IsEnum, IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator'; +import { IsOptional, IsString } from 'class-validator'; import { FileSubType } from '../../kyc/dto/kyc-file.dto'; export enum ComplianceDecision { @@ -54,15 +54,3 @@ export class GenerateOnboardingPdfDto { @IsString() businessActivities?: string; } - -export class DfxApprovalDecisionDto extends GenerateOnboardingPdfDto { - @IsInt() - stepId: number; - - @IsEnum(ComplianceDecision) - declare finalDecision: ComplianceDecision; - - @IsString() - @IsNotEmpty() - declare processedBy: string; -} diff --git a/src/subdomains/generic/support/support-pdf.service.ts b/src/subdomains/generic/support/support-pdf.service.ts index dd406ee6e4..dac7f25a19 100644 --- a/src/subdomains/generic/support/support-pdf.service.ts +++ b/src/subdomains/generic/support/support-pdf.service.ts @@ -331,21 +331,25 @@ export class SupportPdfService { // Get operational activity from KycStep const operationalActivityStep = kycSteps.find((s) => s.name === KycStepName.OPERATIONAL_ACTIVITY); if (operationalActivityStep?.result) { - const opResult = this.parseStepResult(operationalActivityStep) as Record; - this.drawOnboardingField( - pdf, - 'Operational Activity', - opResult.isOperational != null ? String(opResult.isOperational) : '-', - marginX, - width, - ); - this.drawOnboardingField( - pdf, - 'Website', - opResult.websiteUrl ? String(opResult.websiteUrl) : '-', - marginX, - width, - ); + try { + const opResult = JSON.parse(operationalActivityStep.result) as Record; + this.drawOnboardingField( + pdf, + 'Operational Activity', + opResult.isOperational != null ? String(opResult.isOperational) : '-', + marginX, + width, + ); + this.drawOnboardingField( + pdf, + 'Website', + opResult.websiteUrl ? String(opResult.websiteUrl) : '-', + marginX, + width, + ); + } catch { + // ignore parse errors + } } pdf.moveDown(1); } @@ -353,18 +357,26 @@ export class SupportPdfService { // KycSteps with result data (Financial Data, Beneficial Owners) const financialDataStep = kycSteps.find((s) => s.name === KycStepName.FINANCIAL_DATA); if (financialDataStep?.result) { - const financialData = this.parseStepResult(financialDataStep); - this.drawOnboardingSectionHeader(pdf, 'Financial Data', marginX); - this.drawOnboardingKeyValueObject(pdf, financialData, marginX, width); - pdf.moveDown(1); + try { + const financialData = JSON.parse(financialDataStep.result) as unknown; + this.drawOnboardingSectionHeader(pdf, 'Financial Data', marginX); + this.drawOnboardingKeyValueObject(pdf, financialData, marginX, width); + pdf.moveDown(1); + } catch { + // ignore parse errors + } } const beneficialOwnerStep = kycSteps.find((s) => s.name === KycStepName.BENEFICIAL_OWNER); if (beneficialOwnerStep?.result) { - const beneficialData = this.parseStepResult(beneficialOwnerStep); - this.drawOnboardingSectionHeader(pdf, 'Beneficial Owners', marginX); - this.drawOnboardingKeyValueObject(pdf, beneficialData, marginX, width); - pdf.moveDown(1); + try { + const beneficialData = JSON.parse(beneficialOwnerStep.result) as unknown; + this.drawOnboardingSectionHeader(pdf, 'Beneficial Owners', marginX); + this.drawOnboardingKeyValueObject(pdf, beneficialData, marginX, width); + pdf.moveDown(1); + } catch { + // ignore parse errors + } } // Documents Section @@ -503,14 +515,10 @@ export class SupportPdfService { return String(value); } // For everything else (arrays, objects), use JSON.stringify - return JSON.stringify(value); - } - - private parseStepResult(step: KycStep): unknown { try { - return JSON.parse(step.result); - } catch (error) { - throw new Error(`${step.name} result is invalid JSON: ${(error as Error).message}`); + return JSON.stringify(value); + } catch { + return '-'; } } } diff --git a/src/subdomains/generic/support/support.controller.ts b/src/subdomains/generic/support/support.controller.ts index d56c473ed0..074e80bdb1 100644 --- a/src/subdomains/generic/support/support.controller.ts +++ b/src/subdomains/generic/support/support.controller.ts @@ -22,7 +22,7 @@ import { UserRole } from 'src/shared/auth/user-role.enum'; import { RefundDataDto } from 'src/subdomains/core/history/dto/refund-data.dto'; import { ChargebackRefundDto } from 'src/subdomains/core/history/dto/transaction-refund.dto'; import { ReviewStatus } from '../kyc/enums/review-status.enum'; -import { DfxApprovalDecisionDto, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; +import { GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; import { RecommendationGraphNeighborsQuery } from './dto/recommendation-graph-neighbors-query.dto'; import { CreateSupportIssueTemplateDto, @@ -199,18 +199,6 @@ export class SupportController { return this.supportService.generateAndSaveOnboardingPdf(+id, dto); } - @Post(':id/dfx-approval') - @ApiBearerAuth() - @ApiExcludeEndpoint() - @UseGuards(AuthGuard(), RoleGuard(UserRole.COMPLIANCE), UserActiveGuard()) - async decidePersonalDfxApproval( - @GetJwt() jwt: JwtPayload, - @Param('id') id: string, - @Body() dto: DfxApprovalDecisionDto, - ): Promise<{ pdfData: string; fileName: string }> { - return this.supportService.decidePersonalDfxApproval(+id, jwt.account, dto); - } - @Get('note') @ApiBearerAuth() @ApiExcludeEndpoint() diff --git a/src/subdomains/generic/support/support.service.ts b/src/subdomains/generic/support/support.service.ts index 0eafbe58fd..5d045ed060 100644 --- a/src/subdomains/generic/support/support.service.ts +++ b/src/subdomains/generic/support/support.service.ts @@ -1,6 +1,5 @@ import { BadRequestException, Inject, Injectable, NotFoundException, forwardRef } from '@nestjs/common'; import { isIP } from 'class-validator'; -import { createHash } from 'crypto'; import * as IbanTools from 'ibantools'; import { Config } from 'src/config/config'; import { Blockchain } from 'src/integration/blockchain/shared/enums/blockchain.enum'; @@ -65,7 +64,6 @@ import { ContentType } from '../kyc/enums/content-type.enum'; import { KycStepName } from '../kyc/enums/kyc-step-name.enum'; import { ReviewStatus } from '../kyc/enums/review-status.enum'; import { KycDocumentService } from '../kyc/services/integration/kyc-document.service'; -import { DfxApprovalWorkflowService } from '../kyc/services/dfx-approval-workflow.service'; import { KycFileService } from '../kyc/services/kyc-file.service'; import { KycLogService } from '../kyc/services/kyc-log.service'; import { KycService } from '../kyc/services/kyc.service'; @@ -79,7 +77,7 @@ import { PhoneCallStatus } from '../user/models/user-data/user-data.enum'; import { UserDataService } from '../user/models/user-data/user-data.service'; import { User } from '../user/models/user/user.entity'; import { UserService } from '../user/models/user/user.service'; -import { ComplianceDecision, DfxApprovalDecisionDto, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; +import { ComplianceDecision, GenerateOnboardingPdfDto } from './dto/onboarding-pdf.dto'; import { TransactionListQuery } from './dto/transaction-list-query.dto'; import { BankDataAlternative, @@ -195,7 +193,6 @@ export class SupportService { private readonly recallService: RecallService, private readonly supportNoteService: SupportNoteService, private readonly scorechainScreeningService: ScorechainScreeningService, - private readonly dfxApprovalWorkflowService: DfxApprovalWorkflowService, ) {} async generateIpLogPdf(userDataId: number): Promise { @@ -213,7 +210,6 @@ export class SupportService { async generateAndSaveOnboardingPdf( userDataId: number, dto: GenerateOnboardingPdfDto, - generationKey?: string, ): Promise<{ pdfData: string; fileName: string }> { // Load UserData with relations const userData = await this.userDataService.getUserData(userDataId, { @@ -236,90 +232,18 @@ export class SupportService { // Save as KycFile const fileName = `GwG_Onboarding_${userDataId}_${Date.now()}.pdf`; - if (generationKey) { - await this.kycDocumentService.ensureGeneratedUserFile( - generationKey, - userData, - FileType.USER_NOTES, - FileSubType.ONBOARDING_REPORT, - fileName, - Buffer.from(pdfData, 'base64'), - { workflow: 'DfxApproval', version: 'v1' }, - ); - } else { - await this.kycDocumentService.uploadUserFile( - userData, - FileType.USER_NOTES, - fileName, - Buffer.from(pdfData, 'base64'), - ContentType.PDF, - true, - undefined, - FileSubType.ONBOARDING_REPORT, - ); - } - - return { pdfData, fileName }; - } - - async decidePersonalDfxApproval( - userDataId: number, - actorUserDataId: number, - dto: DfxApprovalDecisionDto, - ): Promise<{ pdfData: string; fileName: string }> { - const userData = await this.userDataService.getUserData(userDataId, { kycSteps: true }); - if (!userData) throw new NotFoundException('User not found'); - if (userData.accountType !== AccountType.PERSONAL) - throw new BadRequestException('The atomic DfxApproval decision currently supports personal accounts only'); - - const step = userData.kycSteps.find((candidate) => candidate.id === dto.stepId); - if (!step || step.name !== KycStepName.DFX_APPROVAL) throw new NotFoundException('DfxApproval step not found'); - - let existingResult: Record = {}; - if (step.result) { - try { - existingResult = JSON.parse(step.result) as Record; - } catch (error) { - throw new BadRequestException(`DfxApproval result is invalid JSON: ${(error as Error).message}`); - } - } - - const effectivePdfData: GenerateOnboardingPdfDto = { - finalDecision: dto.finalDecision, - processedBy: dto.processedBy, - depositLimit: '100000', - amlAccountType: 'natural person', - }; - existingResult.complianceReview = { - depositLimit: effectivePdfData.depositLimit, - amlAccountType: effectivePdfData.amlAccountType, - processedBy: dto.processedBy, - finalDecision: dto.finalDecision, - }; - const result = JSON.stringify(existingResult); - const status = dto.finalDecision === ComplianceDecision.ACCEPTED ? ReviewStatus.COMPLETED : ReviewStatus.FAILED; - const decisionHash = createHash('sha256').update(result).digest('hex').substring(0, 16); - - const pdf = await this.generateAndSaveOnboardingPdf( - userDataId, - effectivePdfData, - `dfx-approval:${step.id}:${FileSubType.ONBOARDING_REPORT}:manual-v1:${decisionHash}`, - ); - await this.dfxApprovalWorkflowService.applyManualDecision( - step.id, - actorUserDataId, - status, - result, - status === ReviewStatus.FAILED ? 'Blocked' : undefined, - { - complexOrgStructure: false, - highRisk: userData.highRisk, - depositLimit: 100000, - amlAccountType: 'natural person', - }, + await this.kycDocumentService.uploadUserFile( + userData, + FileType.USER_NOTES, + fileName, + Buffer.from(pdfData, 'base64'), + ContentType.PDF, + true, // isProtected + undefined, // kycStep + FileSubType.ONBOARDING_REPORT, ); - return pdf; + return { pdfData, fileName }; } async getUserDataDetails(id: number, role: UserRole, jwtAccount: number): Promise { From 9bc56554cbae5d0d71fe4001ea6457ab13ccd85e Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 03:27:16 +0200 Subject: [PATCH 04/15] fix: normalize DfxApproval PDF overlays --- .../dfx-approval-pdf.service.spec.ts | 23 +++++++++++ .../kyc/services/dfx-approval-pdf.service.ts | 38 ++++++++++++++----- 2 files changed, 52 insertions(+), 9 deletions(-) diff --git a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts index 3e4bdee6a5..bda0ec44d5 100644 --- a/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts +++ b/src/subdomains/generic/kyc/services/__tests__/dfx-approval-pdf.service.spec.ts @@ -106,4 +106,27 @@ describe('DfxApprovalPdfService', () => { expect(service.fileName(FileSubType.FORM_A, data)).toBe('20260731-FormularA-0-42-220000.pdf'); expect(service.fileName(FileSubType.DFX_NAME_CHECK, data)).toBe('20260731-NameCheck-0-42-220000.pdf'); }); + + it('replaces cached template values for every dynamic checkbox', async () => { + const data = context(); + data.userData.sellVolume = 0; + data.userData.cryptoVolume = 0; + const uncheck = jest.spyOn(service as any, 'uncheck'); + const check = jest.spyOn(service as any, 'check'); + + await service.generate(FileSubType.IDENTIFICATION_FORM, data); + await service.generate(FileSubType.CUSTOMER_PROFILE, data); + await service.generate(FileSubType.RISK_PROFILE, data); + + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 239.3, 202.0); + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 239.3, 219.0); + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 282.2, 167.5); + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 282.2, 197.1); + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 259.4, 150.0); + expect(uncheck).toHaveBeenCalledWith(expect.anything(), 259.4, 166.7); + expect(check).not.toHaveBeenCalledWith(expect.anything(), 239.3, 202.0); + expect(check).not.toHaveBeenCalledWith(expect.anything(), 239.3, 219.0); + expect(check).not.toHaveBeenCalledWith(expect.anything(), 282.2, 167.5); + expect(check).not.toHaveBeenCalledWith(expect.anything(), 282.2, 197.1); + }); }); diff --git a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts index d7315c0ca7..8f66aced7e 100644 --- a/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts +++ b/src/subdomains/generic/kyc/services/dfx-approval-pdf.service.ts @@ -188,19 +188,28 @@ export class DfxApprovalPdfService { size: 9, }); const identificationType = context.userData.identificationType; + [424.5, 446.0, 465.0].forEach((top) => this.uncheck(second, 239.3, top)); if (identificationType === KycIdentificationType.VIDEO_ID) this.check(second, 239.3, 424.5); else if (identificationType === KycIdentificationType.MANUAL) this.check(second, 239.3, 465.0); else this.check(second, 239.3, 446.0); const language = context.userData.language?.name; + [522.5, 546.3].forEach((top) => this.uncheck(second, 239.3, top)); + [522.5, 546.3].forEach((top) => this.uncheck(second, 402.5, top)); if (language === 'German' || language === 'Portuguese') this.check(second, 239.3, 522.5); else if (language === 'Italian') this.check(second, 239.3, 546.3); else if (language === 'French') this.check(second, 402.5, 546.3); else this.check(second, 402.5, 522.5); - this.check(pdf.getPage(2), 233.5, 118.5); - if (context.userData.sellVolume > 0) this.check(pdf.getPage(3), 239.3, 202.0); - this.check(pdf.getPage(3), 239.3, 219.0); + const third = pdf.getPage(2); + this.uncheck(third, 233.5, 118.5); + this.check(third, 233.5, 118.5); + + const fourth = pdf.getPage(3); + this.uncheck(fourth, 239.3, 202.0); + this.uncheck(fourth, 239.3, 219.0); + if (context.userData.sellVolume > 0) this.check(fourth, 239.3, 202.0); + if (context.userData.cryptoVolume > 0) this.check(fourth, 239.3, 219.0); } private renderCustomerProfile( @@ -240,20 +249,23 @@ export class DfxApprovalPdfService { value(this.employment(financial), 440.4, 56); value(this.financialBand(financial.income), 518.7); value(this.financialBand(financial.assets), 552.4); - value(this.volumeBand(context.userData.totalVolumeChfAuditPeriod ?? 0), 615.9); + value(this.volumeBand(context.userData.totalVolumeChfAuditPeriod ?? 0), 609.5); const source = financial.source_of_funds; + [633.2, 647.3, 661.4, 689.6, 703.8].forEach((top) => this.uncheck(first, 267.2, top)); if (source === 'business' || financial.occupation === 'self_employed' || financial.occupation === 'inhaber') this.check(first, 267.2, 633.2); if (source === 'business') this.check(first, 267.2, 647.3); if (source === 'real_estate_sale') this.check(first, 267.2, 661.4); if (source === 'OTHER') this.check(first, 267.2, 703.8); if ((context.userData.totalVolumeChfAuditPeriod ?? 0) > 100000) - value("Siehe eigene Aktennotiz bezüglich Freigabe Handelsvolumen > 100'000 CHF", 727.0, 36); + value("Siehe eigene Aktennotiz bezüglich Freigabe Handelsvolumen > 100'000 CHF", 722.0, 36); const second = pdf.getPage(1); - if (context.userData.sellVolume > 0) this.check(second, 267.2, 167.5); - if (context.userData.cryptoVolume > 0) this.check(second, 267.2, 197.1); + this.uncheck(second, 282.2, 167.5); + this.uncheck(second, 282.2, 197.1); + if (context.userData.sellVolume > 0) this.check(second, 282.2, 167.5); + if (context.userData.cryptoVolume > 0) this.check(second, 282.2, 197.1); } private renderRiskProfile(pdf: PDFDocument, regular: PDFFont, bold: PDFFont, context: DfxApprovalPdfContext): void { @@ -282,8 +294,8 @@ export class DfxApprovalPdfService { bold: true, size: 9, }); - this.check(first, 259.4, context.userData.pep ? 529.2 : 514.4); - this.check(first, 259.4, context.userData.pep ? 606.3 : 592.8); + this.booleanChecks(first, !context.userData.pep, 514.4, 529.2); + this.booleanChecks(first, !context.userData.pep, 592.8, 606.3); const second = pdf.getPage(1); this.booleanChecks(second, context.userData.highRisk === false, 150.0, 166.7); @@ -300,6 +312,8 @@ export class DfxApprovalPdfService { } private booleanChecks(page: PDFPage, positive: boolean, positiveTop: number, negativeTop: number): void { + this.uncheck(page, 259.4, positiveTop); + this.uncheck(page, 259.4, negativeTop); this.check(page, 259.4, positive ? positiveTop : negativeTop); } @@ -363,6 +377,12 @@ export class DfxApprovalPdfService { page.drawLine({ start: { x: x + 4.8, y: y + 3.2 }, end: { x: x + 10, y: y + 9.4 }, color: WHITE, thickness: 1.6 }); } + private uncheck(page: PDFPage, x: number, top: number): void { + const size = 12; + const y = page.getHeight() - top - size; + page.drawRectangle({ x, y, width: size, height: size, color: WHITE, borderColor: BLUE, borderWidth: 0.8 }); + } + private financialData(steps: KycStep[]): FinancialData { const financialStep = steps .filter((step) => step.name === KycStepName.FINANCIAL_DATA && step.isCompleted) From c5371f1e04468d8a11c83686f7712a9c162ac181 Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:17:09 +0200 Subject: [PATCH 05/15] fix: render approval documents with a Unicode font The overlay text was drawn with a PDF standard font, which is limited to WinAnsi and throws on every character outside Latin-1. Names, streets and employers in Polish, Turkish, Baltic, Czech or Cyrillic spelling therefore failed the whole document, leaving the case without the evidence its approval depends on - silently, once per minute. The text is now set in an embedded Liberation Sans, which is metrically compatible with Arial/Helvetica, so the layout is unchanged. Only the glyphs actually used are embedded (about 9 kB per document). Characters the font has no glyph for, such as CJK, are substituted instead of failing the document. --- nest-cli.json | 4 +- package-lock.json | 9 + package.json | 1 + .../generic/kyc/assets/fonts/LICENSE | 102 ++++++++++ .../kyc/assets/fonts/LiberationSans-Bold.ttf | Bin 0 -> 414456 bytes .../assets/fonts/LiberationSans-Regular.ttf | Bin 0 -> 410712 bytes .../dfx-approval-pdf.service.spec.ts | 32 ++++ .../kyc/services/dfx-approval-pdf.service.ts | 177 +++++++++++------- 8 files changed, 259 insertions(+), 66 deletions(-) create mode 100644 src/subdomains/generic/kyc/assets/fonts/LICENSE create mode 100644 src/subdomains/generic/kyc/assets/fonts/LiberationSans-Bold.ttf create mode 100644 src/subdomains/generic/kyc/assets/fonts/LiberationSans-Regular.ttf diff --git a/nest-cli.json b/nest-cli.json index 16e6424bcf..90c9991ba6 100644 --- a/nest-cli.json +++ b/nest-cli.json @@ -5,7 +5,9 @@ "assets": [ { "include": "subdomains/supporting/notification/templates/**/*.hbs", "outDir": "dist/src/" }, { "include": "shared/i18n/**/*", "outDir": "dist/src/" }, - { "include": "subdomains/generic/kyc/assets/**/*.pdf", "outDir": "dist/src/" } + { "include": "subdomains/generic/kyc/assets/**/*.pdf", "outDir": "dist/src/" }, + { "include": "subdomains/generic/kyc/assets/**/*.ttf", "outDir": "dist/src/" }, + { "include": "subdomains/generic/kyc/assets/**/LICENSE", "outDir": "dist/src/" } ], "watchAssets": true } diff --git a/package-lock.json b/package-lock.json index ea7454ef19..d577e7c2a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,7 @@ "@opentelemetry/exporter-trace-otlp-http": "^0.218.0", "@opentelemetry/sdk-node": "^0.218.0", "@opentelemetry/sdk-trace-base": "^2.7.1", + "@pdf-lib/fontkit": "^1.1.1", "@railgun-community/engine": "^9.4.0", "@scure/bip32": "^1.6.2", "@scure/bip39": "^1.5.4", @@ -12324,6 +12325,14 @@ "@noble/hashes": "^1.1.5" } }, + "node_modules/@pdf-lib/fontkit": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/fontkit/-/fontkit-1.1.1.tgz", + "integrity": "sha512-KjMd7grNapIWS/Dm0gvfHEilSyAmeLvrEGVcqLGi0VYebuqqzTbgF29efCx7tvx+IEbG3zQciRSWl3GkUSvjZg==", + "dependencies": { + "pako": "^1.0.6" + } + }, "node_modules/@pdf-lib/standard-fonts": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", diff --git a/package.json b/package.json index c1a1aab10d..8978142c39 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "@opentelemetry/exporter-trace-otlp-http": "^0.218.0", "@opentelemetry/sdk-node": "^0.218.0", "@opentelemetry/sdk-trace-base": "^2.7.1", + "@pdf-lib/fontkit": "^1.1.1", "@railgun-community/engine": "^9.4.0", "@scure/bip32": "^1.6.2", "@scure/bip39": "^1.5.4", diff --git a/src/subdomains/generic/kyc/assets/fonts/LICENSE b/src/subdomains/generic/kyc/assets/fonts/LICENSE new file mode 100644 index 0000000000..aba73e8a40 --- /dev/null +++ b/src/subdomains/generic/kyc/assets/fonts/LICENSE @@ -0,0 +1,102 @@ +Digitized data copyright (c) 2010 Google Corporation + with Reserved Font Arimo, Tinos and Cousine. +Copyright (c) 2012 Red Hat, Inc. + with Reserved Font Name Liberation. + +This Font Software is licensed under the SIL Open Font License, +Version 1.1. + +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 + +PREAMBLE The goals of the Open Font License (OFL) are to stimulate +worldwide development of collaborative font projects, to support the font +creation efforts of academic and linguistic communities, and to provide +a free and open framework in which fonts may be shared and improved in +partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. +The fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply to +any document created using the fonts or their derivatives. + + + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. +This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components +as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting ? in part or in whole ? +any of the components of the Original Version, by changing formats or +by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer +or other person who contributed to the Font Software. + + +PERMISSION & CONDITIONS + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components,in + Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the + corresponding Copyright Holder. This restriction only applies to the + primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + +5) The Font Software, modified or unmodified, in part or in whole, must + be distributed entirely under this license, and must not be distributed + under any other license. The requirement for fonts to remain under + this license does not apply to any document created using the Font + Software. + + + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + + + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. + diff --git a/src/subdomains/generic/kyc/assets/fonts/LiberationSans-Bold.ttf b/src/subdomains/generic/kyc/assets/fonts/LiberationSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc5d57f15f098850b4ae889dfa420829447b2fb4 GIT binary patch literal 414456 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