feat(02-02): install nodemailer and create healthProbeService

- Install nodemailer + @types/nodemailer (needed by Plan 03)
- Create healthProbeService.ts with 4 probers: document_ai, llm_api, supabase, firebase_auth
- Each probe makes a real authenticated API call
- Each probe returns structured ProbeResult with status, latency_ms, error_message
- LLM probe uses cheapest model (claude-haiku-4-5) with max_tokens 5
- Supabase probe uses getPostgresPool().query('SELECT 1') not PostgREST
- Firebase Auth probe distinguishes expected vs unexpected errors
- runAllProbes orchestrator uses Promise.allSettled for fault isolation
- Results persisted via HealthCheckModel.create() after each probe
This commit is contained in:
admin
2026-02-24 14:22:38 -05:00
parent ef88541511
commit 41298262d6
3 changed files with 274 additions and 3 deletions

View File

@@ -43,6 +43,7 @@
"dependencies": {
"@anthropic-ai/sdk": "^0.57.0",
"@google-cloud/documentai": "^9.3.0",
"@google-cloud/functions-framework": "^3.4.0",
"@google-cloud/storage": "^7.16.0",
"@supabase/supabase-js": "^2.53.0",
"@types/pdfkit": "^0.17.2",
@@ -58,6 +59,7 @@
"joi": "^17.11.0",
"jsonwebtoken": "^9.0.2",
"morgan": "^1.10.0",
"nodemailer": "^8.0.1",
"openai": "^5.10.2",
"pdf-lib": "^1.17.1",
"pdf-parse": "^1.1.1",
@@ -67,8 +69,7 @@
"uuid": "^11.1.0",
"winston": "^3.11.0",
"zod": "^3.25.76",
"zod-to-json-schema": "^3.24.6",
"@google-cloud/functions-framework": "^3.4.0"
"zod-to-json-schema": "^3.24.6"
},
"devDependencies": {
"@types/bcryptjs": "^2.4.6",
@@ -77,6 +78,7 @@
"@types/jsonwebtoken": "^9.0.5",
"@types/morgan": "^1.9.9",
"@types/node": "^20.9.0",
"@types/nodemailer": "^7.0.11",
"@types/pdf-parse": "^1.1.4",
"@types/pg": "^8.10.7",
"@types/uuid": "^10.0.0",
@@ -84,9 +86,9 @@
"@typescript-eslint/parser": "^6.10.0",
"@vitest/coverage-v8": "^2.1.0",
"eslint": "^8.53.0",
"ts-node": "^10.9.2",
"ts-node-dev": "^2.0.0",
"typescript": "^5.2.2",
"ts-node": "^10.9.2",
"vitest": "^2.1.0"
}
}