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
|
### 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.
|
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
|
// /api/health and /api/ready use the same { ok: true } probe contract. The
|
||||||
// readiness payload also includes a separate `ready` diagnostic field.
|
// readiness payload also includes a separate `ready` diagnostic field.
|
||||||
checks.ready = await probe('/api/ready', 'ok');
|
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 = {
|
const report = {
|
||||||
base,
|
base,
|
||||||
readOnly: true,
|
readOnly: true,
|
||||||
checkedAt: new Date().toISOString(),
|
checkedAt: new Date().toISOString(),
|
||||||
checks,
|
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,
|
missingHeaders,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user