How to determine user's cluster?

Zoom Apps Configuration
Our app is running on node.js backend and a combination of VanillaJS/AngularJS/React microfrontends.

We are now trying to add support for the Zoom Europe cluster. To comply with the laws, we now need to store data for EU-based users in a separate cloud. For example, for a ZoomX user (German Telekom version of Zoom; user is created here: https://eu02web.zoom.us/ ), we need to keep their personal data in our EU cloud.

For that, we need to implement some routing which sends user to one or the other instance of our backend. We need to easily determine the type of user (normal zoom.us user or a user from the EU cluster).

Description
Could you please recommend us, what are the ways to determine which cluster (US/EU) a user belongs to? I suppose that you can query user’s profile (/users/me API) and analyze the “cluster” property. However, this is not very convenient, as we’ll need to get user’s token before that - and for that we need to know which storage to get it from (we have two separate storages, for normal and EU users).

Maybe there are easier ways? Maybe we can determine the cluster before making any API requests, e.g. based on App Context token? Ideally we would like to understand the user’s cluster immediately in the Home URL and Redirect URL for OAuth handlers, to redirect to a correct backend at once.

Thanks!

Hey @tkishkin, thanks for bringing this up. You’re right, the primary way of identifying that user’s cluster will be in /users/me; but I see why you would want it prior to authorization (meaning the API is not available).

Those are good suggestions on the Home and Redirect URLs. Let me check with some folks to understand what our options could be.

1 Like

Hi @tkishkin, @evgeny.balashov and I synced on this and believe at this time that the most likely solution will be to add context for the user’s cluster in the Home URL. We don’t have a committed release date for this, yet, but are aiming to release in the upcoming months.

1 Like

@tkishkin Please, check out this documentation page: https://marketplace.zoom.us/docs/zoom-apps/zoomappcontext/#homeurl-template-parameters

Account id could be helpful to create interim fix.

1 Like

Hi @evgeny.balashov , @michael.zoom , thank you for the reply!

Could you please elaborate, how can we use account ID as a temporary fix? By having a static list of accounts which we know to be in the EU zone? Or you had something else in mind? Thanks!

By having a static list of accounts which we know to be in the EU zone?

Yes, that’s what I was thinking: once user signed up, get their profile using REST API, and match account_id with cluster, then you can use account_id for routing.

1 Like

That seems to work. Thanks!

1 Like

I’m glad to hear that you have a path forward!