Ana içeriğe geç

İstek Arşivi

Amaç

REQUEST_ARCHIVE_ENABLED=true iken her canlı inbound iş emri HTTP denemesi MongoDB api_request_archive koleksiyonuna arşivlenir.

Kapsanan endpointler:

  • POST /api/v1/inbound/work-orders (mode: live)

Kapsanmayanlar:

  • POST /api/v1/inbound/work-orders/test (halka açık format doğrulama; arşiv yazmaz)
  • Token endpoint
  • GET endpointler
  • Handler çalışmadan önceki kimlik doğrulama 401 redleri

Deneme başına kayıt

Her HTTP denemesinin kendi request_id değeri ve kendi arşiv belgesi vardır.

Replay denemeleri yeni bir arşiv belgesi oluşturur. original_request_id ilk işlenen denemeyi gösterir.

Saklanan alanlar (whitelist)

Yalnızca güvenli metadata:

  • content_type, accept, content_length, user_agent, remote_ip
  • raw_body (gövde limiti içinde ve REQUEST_ARCHIVE_STORE_RAW_BODY=true iken)
  • raw_body_sha256, canonical_request_sha256
  • sonuç alanları (http_status, success, error_code, archive_status, süreler)

Güvenlik hariç tutmaları

Asla arşivlenmez veya loglanmaz:

  • Authorization başlığı
  • Bearer / access token
  • Client secret
  • JWT secret
  • Cookie başlıkları
  • Maskelenmemiş MongoDB URI
  • Tam istek header haritaları

Aşırı büyük gövdeler

Mevcut inbound gövde limitleri korunur. Aşırı büyük canlı istekler 413 döner ve body_truncated: true ile archive_status: body_rejected olan yalnızca metadata arşivi oluşturabilir. Tam aşırı büyük gövdeler yazılmaz.

Zorunlu arşiv davranışı

REQUEST_ARCHIVE_REQUIRED=true ve ilk arşiv insert başarısız olursa:

  • Canlı business işleme başlamaz
  • HTTP 503 / REQUEST_ARCHIVE_UNAVAILABLE

Format-only test endpointi arşiv erişilebilirliğinden etkilenmez ve REQUEST_ARCHIVE_UNAVAILABLE dönmez.

REQUEST_ARCHIVE_ENABLED=false iken arşivleme atlanır (yalnızca sorun giderme; üretim için önerilmez).

Business sonrası arşiv update başarısız olursa API yine tamamlanmış business yanıtını döner ve yapılandırılmış ERROR log yazar. Idempotency completion birincil güvenlik kaydı olarak kalır.

Test endpoint semantiği

Store Yazma sayısı
Business koleksiyonları (projects/products/…) 0
api_idempotency_records 0
api_request_archive 0

write_performed: false, database_accessed: false ve archive_written: false format endpointinin kalıcılık yan etkisi üretmediğini doğrular.

Saklama süresi

REQUEST_ARCHIVE_RETENTION_DAYS (varsayılan 90) belge expires_at değerini ayarlar. TTL index expireAfterSeconds: 0 kullanır.

İlgili