Unify bridge auth header and add live telemetry panel

This commit is contained in:
itsrubberduck
2026-02-15 16:04:07 +01:00
parent 57fc0e3150
commit ae0f0b0f86
7 changed files with 161 additions and 35 deletions

View File

@@ -0,0 +1,33 @@
import { createError } from 'h3'
import { BridgeToken } from '../../models/BridgeToken'
import { getBridgeTokenFromHeader } from '../../utils/bridge'
import { flightlabTelemetryStore } from '../../utils/flightlabTelemetry'
export default defineEventHandler(async (event) => {
const token = getBridgeTokenFromHeader(event)
if (!token) {
throw createError({ statusCode: 401, statusMessage: 'x-bridge-token header fehlt oder ist ungültig.' })
}
const bridgeDocument = await BridgeToken.findOne({ token }).select('user')
const userId = bridgeDocument?.user?.toString() ?? null
if (!userId) {
return {
connected: false,
lastTelemetryAt: null,
telemetry: null,
}
}
const telemetry = flightlabTelemetryStore.get(userId)
const timestamp = telemetry && typeof telemetry.timestamp === 'number'
? new Date(telemetry.timestamp).toISOString()
: null
return {
connected: true,
lastTelemetryAt: timestamp,
telemetry,
}
})