Operasyon¶
Sağlık, metrikler, yeniden denemeler, zaman damgası ve olay müdahalesi için işletim kılavuzu.
CI/CD¶
Çekme istekleri restore, derleme, test, web lint ve zafiyet denetimlerini çalıştırır (.github/workflows/ci.yml). main’e push üç GHCR imajı da yayınlar:
ghcr.io/serhatboyraz/opensignature/api:latest
ghcr.io/serhatboyraz/opensignature/worker:latest
ghcr.io/serhatboyraz/opensignature/web:latest
Her imaj sha-<kısa-sha> ile de etiketlenir. Sırları veya PFX dosyalarını imaja gömmeyin. GHCR paketleri ilk yayında özeldir; anonim çekim için görünürlüğü Public yapın.
Sağlık¶
Hazırlık, yapılandırılmış bağımlılıkları (PostgreSQL, RabbitMQ, depolama) içermelidir.
İzlenecek metrikler¶
- İstek / tamamlanma / hata oranları
- Kuyruk derinliği ve bekleme süresi
- İşleme süresi
- Sağlayıcı ve depolama hataları
- Yeniden deneme sayısı ve DLQ derinliği
Yerel yığın¶
Tam yığın:
| Servis | URL |
|---|---|
| Web | http://localhost:5173 |
| API | http://localhost:5270/health |
| RabbitMQ UI | http://localhost:15672 |
Yalnızca altyapı: docker compose up -d postgres rabbitmq.
Sırlar: PFX_PASSWORD, isteğe bağlı TIMESTAMPING_* → OPENSIGNATURE_SECRET_* (mühendislik operasyon kaynağına bakın).
Tam operasyon notları: mühendislik operasyon kaynağı.
İşçi yeniden deneme varsayılanları¶
| Ayar | Tipik varsayılan |
|---|---|
MaxAttempts |
5 |
| İlk geri çekilme | 1s |
| Çarpan | 2 |
| Maks. geri çekilme | 60s |
| Kilit süresi | 15 dakika |
Kalıcı hatalar sonsuz yeniden deneme olmadan esign.signature.dlq kuyruğuna gider.
flowchart TD
F[İmza hatası] --> C{Sınıflandırıcı}
C -->|Geçici| R[Geri çekilerek yeniden yayın]
R --> M{MaxAttempts?}
M -->|Hayır| W[İşçi yeniden deneme]
M -->|Evet| DLQ[DLQ]
C -->|Kalıcı| DLQ
Zaman damgası (RFC 3161)¶
T/LT/LTA bir TSA gerektirir. İşçide yapılandırın:
"Timestamping": {
"Url": "https://tsa.example.invalid/",
"PolicyOid": "",
"Username": "",
"PasswordSecretName": "Timestamping:Password"
}
Eksik TSA → TIMESTAMP_AUTHORITY_UNAVAILABLE (B’ye sessiz düşüş yok).
HTTP Basic Auth: Username doldurun; parolayı user secrets / PasswordSecretName ile verin. Anonim TSA için Username boş kalsın.
Olay kontrol listesi¶
- Correlation / signature / job kimliği
- Sağlayıcı sağlığı
esign.signature.workerve DLQinput.bin/signed.binvarlığı- Makine okunabilir hata kodu
- Yalnızca geçici hatalarda yeniden deneme
USB token (Development)¶
Satıcı PKCS#11 ara yazılımı kuruluysa Development otomatik algılama yapabilir (Signing:SmartCard:AutoDetect). Süresi dolmuş sertifikalar yalnızca Signing:AllowExpiredCertificates=true iken imzalayabilir — üretimde false tutun.
Tam operasyon notları: mühendislik operasyon kaynağı.