The acquisition changed the bank. The access rules stayed — and got better.

The UBS headquarters building in Zurich, Switzerland.
Photo: Wikimedia

CAM

Brief

Migrate, extend, and re-platform a mission-critical client access management application from Credit Suisse to UBS's cloud infrastructure — ensuring 8,000 clients retain correct access to 85,000 assets without interruption.

Technology

Java 21, Spring Boot, JPA/Hibernate, PostgreSQL, Angular, TypeScript, OpenAPI/Apigee, JWT/MS-Graph API, Azure Kubernetes Service.

Specification-first API design via OpenAPI, integrated with Apigee for enterprise gateway routing. Real-time UI updates via Server-Sent Events.

8,000

clients managed

85,000

assets under management

150

business rules

Starting Point

The Client Access Manager — originally developed by Irian for Credit Suisse — had been running in production for nearly a decade. It managed access to bank accounts and portfolios for 8,000 clients, enforced 150 business rules, and connected to 20 downstream systems. Not the kind of thing you casually rebuild.

The mandate: migrate the platform to UBS's Azure cloud infrastructure, connect it to a completely different set of systems, and extend both the data model and the UI — while keeping every existing client's access exactly as it was. Correctness here is non-negotiable: granting too little access costs clients money; granting too much costs the bank far more.

A screenshot of the CAM client search screen showing a search form and a table with client search results.

Development

The Spring Boot application was retooled to run on Azure Kubernetes Services — replacing a legacy WebLogic application server with a modern, cloud-native deployment. New connectors were built for UBS's core systems: UBS Core Banking, the Portfolio System, KYC Hub, and Apigee Gateway. The data model was extended and the UI was updated to reflect UBS's business requirements.

At the same time, client data had to be migrated: every access assignment, every permission state, every audit trail entry. The rule engine — which lets business teams manage complex access logic without touching code — was extended to cover new UBS-specific scenarios. A dry-run simulation mode allows teams to preview the impact of rule changes before they go live.

A screenshot of the CAM rule engine editor showing a visual rule builder with conditions and logic.

Result

The platform now runs on UBS's Azure infrastructure, connected to the full suite of UBS systems. Import jobs pull data from 20 sources on schedules ranging from real-time to nightly. Every state change, every user action, every rule evaluation is tracked in a full audit trail — regulatory compliance built into the architecture, not bolted on.

With extensive test coverage and automated end-to-end tests, the team maintains the kind of confidence that mission-critical infrastructure demands. The platform continues to evolve with UBS's business — new rules, new integrations, new requirements — without ever compromising the one thing it was built for: always getting the access right.

A screenshot of the CAM import/export overview showing data source connections, scheduled jobs, and recent run history.

Feeling inspired?

More Projects