From b1300ade3e1a5f3aa96b7b44d13ee86b17f08f2c Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Thu, 23 Apr 2026 14:57:46 +0200 Subject: [PATCH] fix: Default Tenant-ID in UCCA + Maximizer Proxies Die UCCA Assessment Proxies leiteten X-Tenant-ID nur weiter wenn der Browser ihn explizit sendete. Da das Frontend den Header nicht setzt, kam immer 400/leer zurueck. Alle anderen Proxies (compliance, training, academy etc.) hatten bereits den Fallback auf DEFAULT_TENANT_ID. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../app/api/sdk/v1/maximizer/[[...path]]/route.ts | 8 ++++---- .../app/api/sdk/v1/ucca/assessments/[id]/route.ts | 13 ++++--------- .../app/api/sdk/v1/ucca/assessments/route.ts | 5 ++--- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/admin-compliance/app/api/sdk/v1/maximizer/[[...path]]/route.ts b/admin-compliance/app/api/sdk/v1/maximizer/[[...path]]/route.ts index eae4604..e606372 100644 --- a/admin-compliance/app/api/sdk/v1/maximizer/[[...path]]/route.ts +++ b/admin-compliance/app/api/sdk/v1/maximizer/[[...path]]/route.ts @@ -1,6 +1,8 @@ import { NextRequest, NextResponse } from 'next/server' const SDK_URL = process.env.SDK_URL || 'http://ai-compliance-sdk:8090' +const DEFAULT_TENANT_ID = process.env.DEFAULT_TENANT_ID || '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e' +const DEFAULT_USER_ID = '00000000-0000-0000-0000-000000000001' function buildUrl(request: NextRequest, params: { path?: string[] }) { const subPath = params.path?.join('/') || '' @@ -11,10 +13,8 @@ function buildUrl(request: NextRequest, params: { path?: string[] }) { function forwardHeaders(request: NextRequest): Record { const headers: Record = { 'Content-Type': 'application/json' } - const tenantId = request.headers.get('X-Tenant-ID') - if (tenantId) headers['X-Tenant-ID'] = tenantId - const userId = request.headers.get('X-User-ID') - if (userId) headers['X-User-ID'] = userId + headers['X-Tenant-ID'] = request.headers.get('X-Tenant-ID') || DEFAULT_TENANT_ID + headers['X-User-ID'] = request.headers.get('X-User-ID') || DEFAULT_USER_ID return headers } diff --git a/admin-compliance/app/api/sdk/v1/ucca/assessments/[id]/route.ts b/admin-compliance/app/api/sdk/v1/ucca/assessments/[id]/route.ts index b516f03..c61fba1 100644 --- a/admin-compliance/app/api/sdk/v1/ucca/assessments/[id]/route.ts +++ b/admin-compliance/app/api/sdk/v1/ucca/assessments/[id]/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server' const SDK_URL = process.env.SDK_URL || 'http://ai-compliance-sdk:8090' +const DEFAULT_TENANT_ID = process.env.DEFAULT_TENANT_ID || '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e' /** * Proxy: GET /api/sdk/v1/ucca/assessments/[id] → Go Backend GET /sdk/v1/ucca/assessments/:id @@ -16,9 +17,7 @@ export async function GET( method: 'GET', headers: { 'Content-Type': 'application/json', - ...(request.headers.get('X-Tenant-ID') && { - 'X-Tenant-ID': request.headers.get('X-Tenant-ID') as string, - }), + 'X-Tenant-ID': request.headers.get('X-Tenant-ID') || DEFAULT_TENANT_ID, }, }) @@ -56,9 +55,7 @@ export async function PUT( method: 'PUT', headers: { 'Content-Type': 'application/json', - ...(request.headers.get('X-Tenant-ID') && { - 'X-Tenant-ID': request.headers.get('X-Tenant-ID') as string, - }), + 'X-Tenant-ID': request.headers.get('X-Tenant-ID') || DEFAULT_TENANT_ID, }, body: JSON.stringify(body), }) @@ -96,9 +93,7 @@ export async function DELETE( method: 'DELETE', headers: { 'Content-Type': 'application/json', - ...(request.headers.get('X-Tenant-ID') && { - 'X-Tenant-ID': request.headers.get('X-Tenant-ID') as string, - }), + 'X-Tenant-ID': request.headers.get('X-Tenant-ID') || DEFAULT_TENANT_ID, }, }) diff --git a/admin-compliance/app/api/sdk/v1/ucca/assessments/route.ts b/admin-compliance/app/api/sdk/v1/ucca/assessments/route.ts index ee22eeb..a151136 100644 --- a/admin-compliance/app/api/sdk/v1/ucca/assessments/route.ts +++ b/admin-compliance/app/api/sdk/v1/ucca/assessments/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server' const SDK_URL = process.env.SDK_URL || 'http://ai-compliance-sdk:8090' +const DEFAULT_TENANT_ID = process.env.DEFAULT_TENANT_ID || '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e' /** * Proxy: GET /api/sdk/v1/ucca/assessments → Go Backend GET /sdk/v1/ucca/assessments @@ -22,9 +23,7 @@ export async function GET(request: NextRequest) { method: 'GET', headers: { 'Content-Type': 'application/json', - ...(request.headers.get('X-Tenant-ID') && { - 'X-Tenant-ID': request.headers.get('X-Tenant-ID') as string, - }), + 'X-Tenant-ID': request.headers.get('X-Tenant-ID') || DEFAULT_TENANT_ID, }, })