deploy: accept FieldLens desktop device-auth client
This commit is contained in:
parent
984f54e3c1
commit
f3d8db52d2
@ -33,7 +33,7 @@ export function rolesFromPayload(payload: JWTPayload) {
|
|||||||
return [...new Set([
|
return [...new Set([
|
||||||
...strings(resourceAccess?.[config.audience]?.roles),
|
...strings(resourceAccess?.[config.audience]?.roles),
|
||||||
...strings(resourceAccess?.[config.browserClientId]?.roles),
|
...strings(resourceAccess?.[config.browserClientId]?.roles),
|
||||||
...strings(resourceAccess?.[config.desktopClientId]?.roles),
|
...config.desktopClientIds.flatMap((clientId) => strings(resourceAccess?.[clientId]?.roles)),
|
||||||
...strings(resourceAccess?.[config.machineClientId]?.roles),
|
...strings(resourceAccess?.[config.machineClientId]?.roles),
|
||||||
])]
|
])]
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ function intendedForFieldLens(payload: JWTPayload) {
|
|||||||
const azp = typeof payload.azp === 'string' ? payload.azp : ''
|
const azp = typeof payload.azp === 'string' ? payload.azp : ''
|
||||||
return audience.includes(config.audience)
|
return audience.includes(config.audience)
|
||||||
|| azp === config.browserClientId
|
|| azp === config.browserClientId
|
||||||
|| azp === config.desktopClientId
|
|| config.desktopClientIds.includes(azp)
|
||||||
|| azp === config.machineClientId
|
|| azp === config.machineClientId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,14 @@ function required(name: string) {
|
|||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function list(name: string, fallback: string[]) {
|
||||||
|
const raw = process.env[name]?.trim()
|
||||||
|
if (!raw) return fallback
|
||||||
|
return [...new Set(raw.split(',').map((value) => value.trim()).filter(Boolean))]
|
||||||
|
}
|
||||||
|
|
||||||
|
const desktopClientId = process.env.KEYCLOAK_DESKTOP_CLIENT_ID?.trim() || 'fieldlens-print'
|
||||||
|
|
||||||
export const config = {
|
export const config = {
|
||||||
port: Number(process.env.PORT ?? '3000'),
|
port: Number(process.env.PORT ?? '3000'),
|
||||||
databaseUrl: required('DATABASE_URL'),
|
databaseUrl: required('DATABASE_URL'),
|
||||||
@ -11,7 +19,11 @@ export const config = {
|
|||||||
jwksUri: (process.env.KEYCLOAK_JWKS_URI ?? '').trim(),
|
jwksUri: (process.env.KEYCLOAK_JWKS_URI ?? '').trim(),
|
||||||
audience: process.env.KEYCLOAK_AUDIENCE?.trim() || 'fieldlens-api',
|
audience: process.env.KEYCLOAK_AUDIENCE?.trim() || 'fieldlens-api',
|
||||||
browserClientId: process.env.KEYCLOAK_BROWSER_CLIENT_ID?.trim() || 'fieldlens',
|
browserClientId: process.env.KEYCLOAK_BROWSER_CLIENT_ID?.trim() || 'fieldlens',
|
||||||
desktopClientId: process.env.KEYCLOAK_DESKTOP_CLIENT_ID?.trim() || 'fieldlens-print',
|
desktopClientId,
|
||||||
|
desktopClientIds: list('KEYCLOAK_DESKTOP_CLIENT_IDS', [
|
||||||
|
desktopClientId,
|
||||||
|
'fieldlens-print-desktop',
|
||||||
|
]),
|
||||||
machineClientId: process.env.KEYCLOAK_MACHINE_CLIENT_ID?.trim() || 'fieldlens-integration',
|
machineClientId: process.env.KEYCLOAK_MACHINE_CLIENT_ID?.trim() || 'fieldlens-integration',
|
||||||
tenantId: process.env.FIELDLENS_TENANT_ID?.trim() || 'fieldlens-production',
|
tenantId: process.env.FIELDLENS_TENANT_ID?.trim() || 'fieldlens-production',
|
||||||
environment: process.env.FIELDLENS_ENV?.trim() || 'development',
|
environment: process.env.FIELDLENS_ENV?.trim() || 'development',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user