diff --git a/marketing-website/app/api/consent/config/route.ts b/marketing-website/app/api/consent/config/route.ts new file mode 100644 index 0000000..3ff64bc --- /dev/null +++ b/marketing-website/app/api/consent/config/route.ts @@ -0,0 +1,21 @@ +import { NextRequest, NextResponse } from 'next/server' + +const BACKEND_URL = process.env.CONSENT_BACKEND_URL || 'https://macmini:3007/api/sdk/v1/banner' +const TENANT_ID = process.env.CONSENT_TENANT_ID || '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e' +const SITE_ID = process.env.NEXT_PUBLIC_CONSENT_SITE_ID || 'breakpilot-marketing' + +export async function GET(req: NextRequest) { + try { + const siteId = req.nextUrl.searchParams.get('site_id') || SITE_ID + const res = await fetch(`${BACKEND_URL}/config/${siteId}`, { + headers: { 'X-Tenant-ID': TENANT_ID }, + }) + const data = await res.text() + return new NextResponse(data, { + status: res.status, + headers: { 'Content-Type': 'application/json' }, + }) + } catch { + return NextResponse.json({ categories: [], vendors: [] }, { status: 200 }) + } +} diff --git a/marketing-website/app/api/consent/route.ts b/marketing-website/app/api/consent/route.ts index b2d9f67..16b6918 100644 --- a/marketing-website/app/api/consent/route.ts +++ b/marketing-website/app/api/consent/route.ts @@ -5,7 +5,13 @@ const TENANT_ID = process.env.CONSENT_TENANT_ID || '9282a473-5c95-4b3a-bf78-0ecc export async function POST(req: NextRequest) { try { - const body = await req.text() + const data = await req.json() + + // Inject client IP for backend GeoIP resolution + const ip = req.headers.get('x-forwarded-for')?.split(',')[0]?.trim() + || req.headers.get('x-real-ip') + || null + if (ip) data.ip_address = ip const res = await fetch(`${BACKEND_URL}/consent`, { method: 'POST', @@ -13,13 +19,11 @@ export async function POST(req: NextRequest) { 'Content-Type': 'application/json', 'X-Tenant-ID': TENANT_ID, }, - body, - // Accept self-signed certs on internal network - ...(process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0' ? {} : {}), + body: JSON.stringify(data), }) - const data = await res.text() - return new NextResponse(data, { + const resBody = await res.text() + return new NextResponse(resBody, { status: res.status, headers: { 'Content-Type': 'application/json' }, }) diff --git a/marketing-website/app/datenschutz/page.tsx b/marketing-website/app/datenschutz/page.tsx index 18e0738..4630a1c 100644 --- a/marketing-website/app/datenschutz/page.tsx +++ b/marketing-website/app/datenschutz/page.tsx @@ -87,19 +87,12 @@ export default function DatenschutzPage() {
- Diese Website laedt Schriftarten von Google Fonts. Dabei wird Ihre IP-Adresse an Google LLC, - 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA uebermittelt. - Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO. - Google ist unter dem EU-US Data Privacy Framework (DPF) zertifiziert (Angemessenheitsbeschluss - der EU-Kommission vom 10. Juli 2023). -
-- Weitere Informationen:{' '} - - policies.google.com/privacy - + Diese Website verwendet die Schriftarten Inter, Plus Jakarta Sans und JetBrains Mono. + Die Schriften werden lokal auf unserem Server gehostet — es findet kein Abruf von + externen Servern (z.B. Google Fonts) statt. Es werden keine personenbezogenen Daten + an Dritte uebermittelt.
Schriftarten werden lokal gehostet — kein Drittanbieter-Transfer.