probe production document browser capability
This commit is contained in:
@@ -2386,3 +2386,7 @@ Doğrulama: yeni istemci testi dahil `npm test` 302/302 ve `npm run build` başa
|
||||
### 2026-09-06 · Coolify sağlık kontrolünün etkinleştirilmesi
|
||||
|
||||
Coolify uygulamasındaki sağlık kontrolü `/api/ready` ve port 80 olarak etkinleştirildi. İlk kontrollü rollout, imajda `curl`/`wget` bulunmadığını ortaya çıkardığı için başarısız oldu; Dockerfile üretim imajına `curl` eklendi. Düzeltme sonrası `lwjqvurn3yluodawgg5kdip3` deployment'ı `finished` oldu, container healthcheck `healthy` ve uygulama durumu `running:healthy` olarak doğrulandı. Canlı `/api/ready` ve beşli ihale probe'u da başarılıdır.
|
||||
|
||||
### 2026-09-06 · Canlı probe doküman tarayıcısı doğrulaması
|
||||
|
||||
`qa:live` drift probe'una `/api/documents/config` kontrolü eklendi. Böylece üretimde EKAP dokümanları için gereken yerleşik Playwright/Chromium yeteneği `tarayiciVar:true` ile canlı ve salt okunur doğrulanıyor; kontrol başarısızsa servis sağlıklı görünse bile belge fallback'i kabul edilmiyor. 6 Eylül 2026 canlı çalıştırmasında home, health, readiness, güvenlik başlıkları ve doküman tarayıcısı kontrolleri geçti.
|
||||
|
||||
@@ -42,13 +42,17 @@ checks.health = await probe('/api/health', 'ok');
|
||||
// /api/health and /api/ready use the same { ok: true } probe contract. The
|
||||
// readiness payload also includes a separate `ready` diagnostic field.
|
||||
checks.ready = await probe('/api/ready', 'ok');
|
||||
const missingHeaders = requiredHeaders.filter(name => [checks.home, checks.health, checks.ready].some(check => check?.headers?.[name] == null));
|
||||
// The EKAP document fallback depends on the bundled browser being available;
|
||||
// check its public capability endpoint without opening a document or mutating
|
||||
// any account data.
|
||||
checks.documents = await probe('/api/documents/config', 'tarayiciVar');
|
||||
const missingHeaders = requiredHeaders.filter(name => [checks.home, checks.health, checks.ready, checks.documents].some(check => check?.headers?.[name] == null));
|
||||
const report = {
|
||||
base,
|
||||
readOnly: true,
|
||||
checkedAt: new Date().toISOString(),
|
||||
checks,
|
||||
pass: checks.home?.status === 200 && checks.health?.status === 200 && checks.health.apiSuccess === true && checks.ready?.status === 200 && checks.ready.apiSuccess === true && missingHeaders.length === 0,
|
||||
pass: checks.home?.status === 200 && checks.health?.status === 200 && checks.health.apiSuccess === true && checks.ready?.status === 200 && checks.ready.apiSuccess === true && checks.documents?.status === 200 && checks.documents.apiSuccess === true && missingHeaders.length === 0,
|
||||
missingHeaders,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user