mirror of
https://github.com/complexcaresolutions/whatsapp-bot.git
synced 2026-03-18 02:44:06 +00:00
fix: health check uses isReachable() instead of authenticated find()
Payload API returns 403 without auth, which is fine for health checks. New isReachable() method accepts any non-5xx response as healthy. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
aefb566414
commit
22eb3d3e5c
2 changed files with 11 additions and 7 deletions
|
|
@ -45,6 +45,16 @@ export class PayloadClient {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async isReachable(): Promise<boolean> {
|
||||||
|
try {
|
||||||
|
const response = await fetch(this.baseUrl, { method: 'GET' })
|
||||||
|
// Any HTTP response (even 401/403) means the API is alive
|
||||||
|
return response.status < 500
|
||||||
|
} catch {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async request<T>(url: string, init?: RequestInit): Promise<T> {
|
private async request<T>(url: string, init?: RequestInit): Promise<T> {
|
||||||
const headers: Record<string, string> = {
|
const headers: Record<string, string> = {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
|
|
||||||
|
|
@ -137,13 +137,7 @@ app.post('/webhook', webhookHandler)
|
||||||
// Health check
|
// Health check
|
||||||
app.get('/health', async () => {
|
app.get('/health', async () => {
|
||||||
const redisOk = redis.status === 'ready'
|
const redisOk = redis.status === 'ready'
|
||||||
let payloadOk = false
|
const payloadOk = await payloadClient.isReachable()
|
||||||
try {
|
|
||||||
await payloadClient.find('users', { limit: '0' })
|
|
||||||
payloadOk = true
|
|
||||||
} catch {
|
|
||||||
// Payload API down
|
|
||||||
}
|
|
||||||
|
|
||||||
const status = redisOk && payloadOk ? 'ok' : 'degraded'
|
const status = redisOk && payloadOk ? 'ok' : 'degraded'
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue