From 8e06696c15e61d9a79a8cc83284a0795a11532e9 Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 18:19:17 +0300 Subject: [PATCH] document staged deployment and rollback runbook --- docs/quality/deployment-runbook.md | 28 ++++++++++++++++++++++++++++ docs/quality/uygulama-durumu.md | 4 ++++ 2 files changed, 32 insertions(+) create mode 100644 docs/quality/deployment-runbook.md diff --git a/docs/quality/deployment-runbook.md b/docs/quality/deployment-runbook.md new file mode 100644 index 0000000..7bcca8c --- /dev/null +++ b/docs/quality/deployment-runbook.md @@ -0,0 +1,28 @@ +# İhaleist yayın ve geri dönüş çalışma notu + +Bu çalışma notu üretim dağıtımında kullanılacak kontrol sırasını tanımlar. Gerçek üretim erişimi ve sağlayıcı hesapları bu depoda tutulmaz. + +## Zorunlu üretim değişkenleri + +- `NODE_ENV=production` +- `AUTH_SECRET`: en az 32 rastgele baytın hex/base64 karşılığı; Google istemci kimliği yerine kullanılamaz. +- `CORS_ORIGINS`: frontend originlerinin virgülle ayrılmış tam HTTPS adresleri. +- Sağlayıcı kullanılacaksa ilgili `GOOGLE_CLIENT_ID`, `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `RESEND_API_KEY` ve `TELEGRAM_BOT_TOKEN` değerleri. +- `IHALEIST_USER_DATA_DIR` ve `IHALEIST_SHARED_DATA_DIR`: kalıcı volume altında, uygulama dışından erişilemeyen dizinler. + +## Yayın öncesi + +1. `npm ci`, `npm test` ve `npm run build` çalıştırılır; build chunk uyarıları yayın engeli değil, performans backlog’u olarak kaydedilir. +2. Veritabanı ve `server/data` volume’ünün tarihli, geri yüklenebilir yedeği alınır; yedek içeriği loglanmaz. +3. Yeni imaj staging’de başlatılır; `/api/health`, giriş, dosya yükleme/indirme ve beş sabit regresyon ihalesi doğrulanır. +4. CORS allowlistesi, auth secret ve sağlayıcı test anahtarları staging yanıtlarında kontrol edilir. + +## Kademeli yayın + +Önce tek test firmasıyla trafik açılır. Kayıt, belge, analiz ve bildirim metrikleri izlenir. Hata oranı veya veri tutarsızlığı artarsa yeni trafik durdurulur; dış sağlayıcılara gerçek ödeme, e-posta veya resmi teklif gönderimi yapılmaz. + +## Geri dönüş + +Sorun halinde önce uygulama imajı son doğrulanmış sürüme alınır. Migration verisi silinmez veya körlemesine tersine çevrilmez; yedek ayrı bir staging kopyasına geri yüklenerek kayıtlar karşılaştırılır. Veri kaybı şüphesi varsa yalnızca doğrulanmış yedekten ileri düzeltme yapılır ve olay commit, sürüm, iz sürme kimliği ve etkilenen kayıt türüyle kaydedilir. + +Bu not, staging/production erişimi ve gerçek yedek geri yükleme kanıtı olmadan “yayın kabul edildi” anlamına gelmez. diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index d12e9a4..6a3b967 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -2036,3 +2036,7 @@ Doğrulama: HTTP testleri 19/19, toplam 288 test geçti; üretim derlemesi başa Origin allowlistesi etkin olduğunda API ve preflight yanıtlarına `Vary: Origin` eklendi; farklı origin’lere ait CORS yanıtlarının ara önbellekte birbirine karışması engellendi. Doğrulama: 288 test geçti, üretim derlemesi başarılı. + +### 2026-09-06 · Yayın ve geri dönüş runbook’u + +D11 için zorunlu üretim değişkenlerini, staging kontrollerini, kademeli trafik açılışını, yedek doğrulamasını ve migration verisini silmeden geri dönüş prosedürünü belgeleyen [`deployment-runbook.md`](deployment-runbook.md) eklendi. Bu belge gerçek staging/production kanıtının yerine geçmez.