Skip to main content

Regional Availability

Overview​

Poly Lens now operates in multiple data center regions, with Europe (EU-1) added alongside the existing United States (US-1) region.

This change adds new data residency and routing options. Existing queries remain backward compatible.

However, to ensure region-aware behavior, the recommended approach is to query data starting from the tenants object, which includes region context.

Query Behavior and Recommendations​

To align with the new regional model, queries should follow a top-down structure that begins with tenants.

This approach ensures region context is included before accessing inventory or device data.

The tenants query now includes a region field. This identifies which data center (region) each tenant and its associated devices belong to.

query GetTenants {
tenants {
name
id
region {
id
}
}
}
  • You can query tenants from any region and receive results from all available regions.
  • Once a query drills down to devices or inventory, data resolution occurs only within the tenant’s assigned region.
  • This ensures all device-level data is retrieved from the correct regional data center.

Performance Note​

  • The deviceSearch query continues to work as before, but since each tenant now includes a region, the recommended approach is to first query the tenant to determine its region, then run deviceSearch through the tenant’s inventory field.
  • This adds minimal queryCost while ensuring data resolves in the correct region and avoids partial or cross-region results when tenants span multiple regions.

Example: Query Devices Within a Tenant's Region​

With regional support, tenants include a region object in the GraphQL response.

Query:

query GetTenantStudioX($tenantId: ID!, $params: DeviceFindArgs) {
tenant(id: $tenantId) {
id
name
region {
id
}
inventory {
deviceSearch(params: $params) {
edges {
node {
id
name
hardwareModel
}
}
}
}
}
}

Variables:

{
"tenantId": "12345-c200-2345-1234-c123455667",
"params": {
"filter": {
"contains": "Studio X",
"field": "hardwareModel"
}
}
}

Response:

{
"data": {
"tenant": {
"id": "12345-c200-2345-1234-c123455667",
"name": "EU Dev Lab",
"region": {
"id": "EU-1"
},
"inventory": {
"deviceSearch": {
"edges": [
{
"node": {
"id": "00123456578",
"name": "DFR Dev Lab X52",
"hardwareModel": "Studio X52"
}
}
]
}
}
}
}
}

In this example:

  • The tenant resides in the EU-1 region.
  • Device-level queries (deviceSearch) executes only within that region.

API Endpoints​

API endpoints remain unchanged. The same authentication and GraphQL endpoints apply across all regions.

# Authentication Endpoint to retrieve `access_token` (OAuth 2.0)
POST https://login.lens.poly.com/oauth/token

# GraphQL API Endpoint (Queries/Mutations)
https://api.silica-prod01.io.lens.poly.com/graphql

# GraphQL API Endpoint (Subscriptions)
wss://api.silica-prod01.io.lens.poly.com/graphql