This commit is contained in:
2026-05-28 06:57:54 +02:00
parent 901ab1adae
commit cff72eb528
3 changed files with 15 additions and 19 deletions

View File

@@ -6,7 +6,11 @@ async function api(path, options = {}) {
}) })
const data = await response.json().catch(() => ({})) const data = await response.json().catch(() => ({}))
if (!response.ok) { if (!response.ok) {
const err = new Error(data.error || `Fehler ${response.status}`) const fallback =
response.status === 502
? 'Server nicht erreichbar (502). Bitte kurz warten und Seite neu laden ggf. läuft ein Update auf project.webklar.com.'
: `Fehler ${response.status}`
const err = new Error(data.error || fallback)
err.status = response.status err.status = response.status
if (data.retryAfterSeconds) err.retryAfterSeconds = data.retryAfterSeconds if (data.retryAfterSeconds) err.retryAfterSeconds = data.retryAfterSeconds
throw err throw err
@@ -181,7 +185,7 @@ async function initDashboardPage() {
} }
} catch (err) { } catch (err) {
loading.classList.add('hidden') loading.classList.add('hidden')
if (err.message.includes('401') || err.message.includes('Nicht angemeldet')) { if (err.status === 401 || err.message.includes('Nicht angemeldet')) {
window.location.href = '/login.html' window.location.href = '/login.html'
return return
} }

View File

@@ -15,6 +15,7 @@ const publicDir = path.join(__dirname, '..', 'public')
assertServerConfig() assertServerConfig()
const app = express() const app = express()
app.set('trust proxy', 1)
app.use(sessionMiddleware()) app.use(sessionMiddleware())
app.use(express.json({ limit: '2mb' })) app.use(express.json({ limit: '2mb' }))
@@ -48,7 +49,14 @@ app.get('/', (_req, res) => {
res.redirect('/login.html') res.redirect('/login.html')
}) })
const server = app.listen(config.port, () => { app.use((err, _req, res, _next) => {
console.error('[server] Unbehandelter Fehler:', err)
if (!res.headersSent) {
res.status(500).json({ error: err.message || 'Interner Serverfehler' })
}
})
const server = app.listen(config.port, '0.0.0.0', () => {
console.log(`Webklar Kundenbereich läuft auf Port ${config.port}`) console.log(`Webklar Kundenbereich läuft auf Port ${config.port}`)
verifyDatabaseAccess().then((result) => { verifyDatabaseAccess().then((result) => {
if (result.ok) return if (result.ok) return

View File

@@ -60,22 +60,6 @@ async function adminFetch(path, { method = 'GET', body, queries = [] } = {}) {
error.status = response.status >= 500 ? 500 : response.status error.status = response.status >= 500 ? 500 : response.status
error.code = data?.code error.code = data?.code
error.type = data?.type error.type = data?.type
if (response.status === 401 && data?.type === 'user_unauthorized') {
// #region agent log
fetch('http://127.0.0.1:7281/ingest/30e8e71c-b377-4e72-84f9-593826c6d234', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '80bbfc' },
body: JSON.stringify({
sessionId: '80bbfc',
location: 'appwriteAdmin.js:adminFetch',
message: 'API key unauthorized',
data: { path, status: response.status, type: data?.type, code: data?.code },
hypothesisId: 'H9',
timestamp: Date.now(),
}),
}).catch(() => {})
// #endregion
}
throw error throw error
} }