This Will Probably Break

Purpose

When upgrading the devel branch, these are the files most likely to cause merge conflicts across customization branches. Any change to these files must be tested against ALL active deployments.

The Danger Zone — vuer_oss Core Files

Tier 1: Modified by 10+ branches (EXTREME RISK)

Do NOT touch without coordinating with ALL clients

FileBranchesWhat They Change
client/ui/regions/sidebar/sidebar.twig14Every client adds sidebar menu items, reorders navigation, adds icons
client/ui/regions/sidebar/sidebar.trans.js11Every client adds translation keys for their sidebar items

Why it’s dangerous: The sidebar is the main navigation. Every client has a different menu structure. Changes to the base template will conflict with ALL 14 branches.

Mitigation strategy: Move sidebar items to customization/ui/sidebar/ hook-based injection. Never add items directly to the base template.

Tier 2: Modified by 4-6 branches (HIGH RISK)

Test against affected branches before merging

FileBranchesAffected Clients
server/e-mail/Letter.js6raiffeisen, bb, cofidis, polgaribank, fundamenta, mbh
server/web/WebServerAuth.js5microsec, barion, mvm, instacash, mbh
server/auditlog.js5bb, cofidis, microsec, mvm, mbh
config.js5barion, cib, unicredit, instacash, demo
client/features/videochat/common/VideoChat/VideoChat.twig5nusz, bb, barion, mvm, demo
server/web/WebServer.js4cofidis, cib, magnet, unicredit
server/service/CustomerService.js4raiffeisen, kh, nusz, fundamenta
client/features/videochat/common/Flow/Flow.styl4nusz, barion, unicredit-srb, instacash
background.js4raiffeisen, cofidis, dap, magnet

Tier 3: Modified by 2-3 branches (MODERATE RISK)

FileBranchesNotes
server/service/SelfServiceV2Service.js3raiffeisen, dap, unicredit — core self-service logic
server/service/ExportRoomPageService.js3cofidis, fundamenta, instacash — export formatting
server/service/TrustedTimestampService.js3barion, bb, cib — timestamp provider config
server/portal/PortalDataBase.js3cib, nusz, unicredit-srb — portal field definitions
server.js3raiffeisen, nusz, dap — entry point modifications!
server/db/model/integrationLog.js3cib, instacash, mbh — model field additions
server/web/routes.js2bb, magnet — route additions to core router
server/service/DeviceChangeService.js2raiffeisen, kh
server/service/SelfServiceRoomService.js2raiffeisen, generali
server/service/FlowLiveUpdateService.js2cofidis, demo
server/queue/rpc_server/CreateCustomer.js2cib, demo — customer creation flow
cron.js2cofidis, microsec — cron entry point
server/flow/FlowService.js1unicredit — but it’s the FLOW ENGINE

The Danger Zone — vuer_css Core Files

Tier 1: Modified by 13-16 branches (EXTREME RISK)

These files are modified by almost every single branch

FileBranchesWhat They Change
client/ui/layouts/highcontrast/highcontrast.layout.styl16Accessibility styling overrides
client/ui/styles/imports/reset.styl14CSS reset customizations
client/ui/regions/header/header.twig14Header logo, branding, navigation
client/ui/pages/self-service/self-service.style.styl14Self-service page styling
client/ui/pages/self-service-auth-2-factor/...trans.js142FA translations
client/ui/pages/homepage/homepage.template.twig14Landing page template
client/ui/pages/feedback/feedback.template.twig14Feedback form
client/ui/layouts/kiosk/kiosk.layout.styl14Kiosk mode styling
client/ui/layouts/default/default.layout.twig14Base layout template
web/libs/jquery/jquery-3.7.1.min.js13jQuery version (vendored)
web/libs/bootstrap/...13Bootstrap version (vendored)

Why it’s dangerous: These are fundamental UI templates and styles. Every client overrides them for branding. The vendored libraries (jQuery, Bootstrap) suggest branches pin specific versions.

Mitigation: These should NEVER be modified in core — use the customization layer exclusively.

Tier 2: Modified by 13 branches

FileBranches
client/ui/pages/self-service/self-service.ui.js13
client/ui/pages/self-service/self-service.trans.js13
client/ui/pages/self-service/self-service.template.twig13
client/ui/pages/waiting-room/waiting-room.template.twig13
client/ui/pages/we-are-closed/we-are-closed.template.twig13
client/ui/pages/web-sdk/web-sdk.template.twig13
client/ui/pages/ui-kit/ui-kit.*13
client/ui/regions/header/header.styl13
client/ui/regions/snackbar-container/snackbar-container.twig13

Branch-Specific Danger: Core Server Modifications

These branches modify core server files that no customization should touch

nusz — MOST INVASIVE (74 core files)

The current development deployment modifies the most core files:

  • Storage engine (engines/storage/ — 7 files) — S3 support added inline
  • CV API wrappers (server/cv/ — 10 files) — all vision APIs modified
  • Videochat UI (20+ files) — extensive UI overhaul outside customization/
  • DB helpers, activity model, portal data, token service
  • Socket server and transport session

NUSZ Risk

If NUSZ changes get merged to devel, they will conflict with almost every other branch. If devel changes need to go to NUSZ, 74 files need manual merge.

unicredit — CV API Overhaul (19 core server files)

  • Modifies every CV vision API: blink, smile, liveness, hologram, face, barcode, MRZ, document, sharpness
  • Adds CVRecipe.js, CVConstants.js changes
  • Custom SFTP service, flow service modifications

dap — New RPC Endpoints (16 core server files)

  • Adds 6 new RPC clients/servers for Resource Manager queuing
  • Modifies server.js entry point
  • Google Play Integrity verification
  • Custom supervisor configs

bb — SOAP Server + Flow System (34 core files)

  • Runs a SOAP server alongside the main app
  • Custom flow editor, audit log templates
  • Modifies core routes and socket events

kh — Oracle Migration + SOAP (22 core files)

  • PostgreSQL-to-Oracle migrator
  • SOAP server integration
  • Custom Nginx and Supervisor configs
  • K&H-specific DB migrations

Impact Matrix: If You Change X, These Branches Break

graph LR
    subgraph "EXTREME RISK"
        sidebar["sidebar.twig\n14 branches"]
        sidebarTrans["sidebar.trans.js\n11 branches"]
    end

    subgraph "HIGH RISK"
        letter["Letter.js\n6 branches"]
        webAuth["WebServerAuth.js\n5 branches"]
        auditlog["auditlog.js\n5 branches"]
        configJs["config.js\n5 branches"]
        vcTwig["VideoChat.twig\n5 branches"]
    end

    subgraph "MODERATE RISK"
        webServer["WebServer.js\n4 branches"]
        custService["CustomerService.js\n4 branches"]
        bgJs["background.js\n4 branches"]
    end

    sidebar --> raiff[raiffeisen]
    sidebar --> kh2[kh]
    sidebar --> cofidis2[cofidis]
    sidebar --> cib2[cib]
    sidebar --> nusz2[nusz]
    sidebar --> bb2[bb]
    sidebar --> barion2[barion]
    sidebar --> microsec2[microsec]
    sidebar --> mkb2[mkb-instant]
    sidebar --> unicredit2[unicredit]
    sidebar --> mvm2[mvm]
    sidebar --> generali2[generali]
    sidebar --> magnet2[magnet]
    sidebar --> instacash2[instacash]

Before Any Core Change

  1. Check this document — is the file in the danger zone?
  2. Count affected branches — how many will need rebasing?
  3. Test with nusz first — it’s the most invasive and your current dev environment

Priority Actions

Reduce Future Breakage

  1. Extract sidebar to hooks — the #1 conflict source. Each client should inject menu items via customization/ui/sidebar-items.js instead of modifying sidebar.twig
  2. Extract Letter.js to customization — email templates should be fully in customization/email/
  3. Extract WebServerAuth.js to hooks — auth customizations should use the hook system
  4. Vendor libraries in customization — each branch vendoring jQuery/Bootstrap separately is wasteful
  5. Move config.js overrides to config files — don’t modify the loader, use config/docker.json overrides

Branches That Are Relatively Safe

These branches have minimal core modifications and mostly use the customization system correctly:

BranchCore ModsRisk Level
granit1 file (bin/granit.js)LOW
demo6 filesLOW
generali5 files (mostly UI)LOW
microsec9 filesLOW-MEDIUM
polgaribank~35 files (mostly bin/)MEDIUM
mvm12 filesMEDIUM

Branches That Will Be Painful to Upgrade

BranchCore ModsRisk LevelWhy
nusz74 filesEXTREMEStorage engine, all CV APIs, videochat UI, DB helpers
bb34+ filesHIGHSOAP server, flow editor, routes, socket events
kh22 filesHIGHOracle migrator, SOAP, custom Nginx/Supervisor
cofidis37 filesHIGHWebServer, DB model, flow scope, many UI files
unicredit37 filesHIGHAll CV APIs, SFTP, flow service, portal
dap25 filesHIGHNew RPC system, entry point mods, integrity check
cib18 filesMEDIUM-HIGHPortal, WebServer, customer creation

esign Customization Branches

The esign services have fewer but notable branches:

BranchTypeService
cofidisConsumer creditesign_oss + esign_css
demoShowcaseesign_oss + esign_css
bankmonitorFinancial comparisonesign_oss + esign_css
equilorBrokerageesign_oss + esign_css
instacashBankingesign_oss + esign_css
raiffeisenBankingesign_oss + esign_css
sberbankBanking (legacy)esign_oss + esign_css