Bir Cluster ERP sunucusu kimlik doğrulaması istemeyen üç işletim yolunu yanıtlar: /.well-known/security.txt, /health ve /ready. Bu sayfa her birinin ne döndürdüğünü, arkasındaki ayarları ve onlara dayanan testleri ve betikleri açıklar. Yollar src/cluster_erp/server/app.py içinde tanımlanır; belge kurucusu src/cluster_erp/server/security_txt.py dosyasıdır. Sistem yollarının tam listesi sistem uç noktaları sayfasındadır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
src/cluster_erp/server/app.py(security_txt,health,ready) vesrc/cluster_erp/server/security_txt.py(security_txt_body). - Sayı:
src/cluster_erp/server/app.py:1459-1476içindeki@app.getdekoratörlerinden sayılan üç yol.
Security.txt¶
GET /.well-known/security.txt hiçbir iletişim adresi yapılandırılmamışsa HTTP 404, aksi hâlde text/plain bir belge döndürür (src/cluster_erp/server/app.py:1459-1466). Yol OpenAPI şemasında yer almaz (src/cluster_erp/server/app.py:1459).
| Alan | İçerik | Kaynak |
|---|---|---|
Contact |
security_contact; @ içeren ve şeması olmayan bir değer mailto: adresine dönüşür. |
src/cluster_erp/server/security_txt.py:21-25 |
Expires |
Şimdi artı 1 ile 365 gün arasına sıkıştırılmış security_expires_days, UTC olarak. |
src/cluster_erp/server/security_txt.py:26-30 |
Preferred-Languages |
tr, en. |
src/cluster_erp/server/security_txt.py:31 |
Policy |
security_policy_url, yalnız ayarlıysa. |
src/cluster_erp/server/security_txt.py:33-34 |
Canonical |
public_base_url artı yolun kendisi, yalnız ayarlıysa. |
src/cluster_erp/server/security_txt.py:35-37 |
| Ayar | Değişken | Değer | Kaynak |
|---|---|---|---|
security_contact |
CLUSTER_ERP_SECURITY_CONTACT |
<value> |
src/cluster_erp/config/settings.py:296 |
security_policy_url |
CLUSTER_ERP_SECURITY_POLICY_URL |
<value> |
src/cluster_erp/config/settings.py:297 |
security_expires_days |
CLUSTER_ERP_SECURITY_EXPIRES_DAYS |
<value> |
src/cluster_erp/config/settings.py:298 |
public_base_url |
CLUSTER_ERP_PUBLIC_BASE_URL |
<value> |
src/cluster_erp/config/settings.py:292 |
Modül, boş veya uydurma bir security.txt belgesinin hiç olmamasından kötü olduğunu belirtir; yol bu yüzden iletişim adresi olmadan 404 döndürür (src/cluster_erp/server/security_txt.py:4-7).
Canlılık¶
GET /health, {"status": "healthy", "version": <app version>} döndürür ve hiçbir arka depoya dokunmaz; böylece bir veritabanı kesintisi bir denetleyici aracılığıyla süreci hiç yeniden başlatmaz (src/cluster_erp/server/app.py:1469-1474).
Hazırlık¶
GET /ready, her arka depoya readiness_timeout_seconds süre sınırı altında SELECT 1 sorar (src/cluster_erp/server/app.py:1485-1493, src/cluster_erp/config/settings.py:649).
| Denetim | Ne zaman bulunur | Kaynak |
|---|---|---|
database |
her zaman | src/cluster_erp/server/app.py:1495 |
control_plane |
çok kiracılı kip | src/cluster_erp/server/app.py:1496-1498 |
| Sonuç | Durum kodu | Gövde | Kaynak |
|---|---|---|---|
| her denetim geçer | 200 | {"status": "ready", "checks": {...}} |
src/cluster_erp/server/app.py:1499-1503 |
| herhangi bir denetim başarısız | 503 | {"status": "not_ready", "checks": {...}} |
src/cluster_erp/server/app.py:1499-1503 |
Başarısız bir denetim fail olarak bildirilir ve hata yalnız sunucu günlüğüne gider; böylece yanıt hiçbir zaman bir ana makine adı veya bağlantı dizesi içermez (src/cluster_erp/server/app.py:1477-1493).
Sözleşme testleri ve kullananlar¶
| Kullanan | Kullanım | Kaynak |
|---|---|---|
tests/test_readiness_contract.py |
/health yanıtının bir sürüm taşıdığını ve /ready yanıtının her depoyu yalnız pass veya fail ile adlandırdığını denetler. Canlı bir testtir: sunucu yoksa CLUSTER_SKIP_LIVE_TESTS=1 ayarlı değilse başarısız olur. |
tests/test_readiness_contract.py:1-64 |
tests/test_security_txt.py |
404 durumunu, mailto: dönüşümünü, alanları ve bir yıllık üst sınırı denetler. |
tests/test_security_txt.py:20-51 |
deploy/install.sh |
Bir sürümü canlı olarak bildirmeden önce /ready adresini beş dakikaya kadar yoklar. |
deploy/install.sh:247-257 |
deploy/docker/Dockerfile |
Konteyner sağlık denetimi /ready çağırır. |
deploy/docker/Dockerfile:43-44 |
Kısıtlar ve doğrulama¶
security_expires_daysdeğerini ayar doğrulayıcısı değil, belge kurucusu sıkıştırır (src/cluster_erp/server/security_txt.py:27).- Hazırlık süre sınırı, varsayılanı
2.0olan ondalıklı bir saniye değeridir (src/cluster_erp/config/settings.py:649).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| canlılık yoklaması | /health |
Hiçbir depoya dokunmadan sürecin canlı olup olmadığını söyleyen yol. | canlılık yoklaması | src/cluster_erp/server/app.py:1469-1474 |
| hazırlık yoklaması | /ready |
Her depoya bir soru sorarak sürecin trafik alıp alamayacağını söyleyen /ready rotası. |
hazırlık yoklaması | src/cluster_erp/server/app.py:1476-1504 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.