Testnizer

Neden çevrimdışı?

Testnizer'ın katı bir çevrimdışı yürütme modeli uygulamasının uyumluluk ve operasyonel nedenleri.

Çoğu API test aracı ağın sorunsuz çalıştığını varsayar. Bunlar, mobil uygulama geliştiriciler, bağımsız geliştiriciler ve küçük start-up’lar için oluşturulmuştu — “GitHub ile giriş yap ve koleksiyonların buluta senkronize olsun” ifadesinin bir özellik değil sorun olduğu kitlelere yönelik.

Bazı ekipler için bu bir sorundur.

Testnizer kimin içindir

  • Bankacılık, sigorta — istek gövdelerinde müşteri PII verileri, üçüncü taraf veri aktarımına yasal yasak
  • Kamu, savunma — internetten bağlantısı olmayan hazırlık ağları, sertifikalı güvenli kümeler
  • Sağlık — hasta verilerine karşı imzalanmış bir token’a dokunan her satıcı için HIPAA / GDPR riski
  • Dahili platform ekipleri — SaaS çalışma alanlarını engelleyen kurumsal proxy’ler veya koleksiyonların bir satıcının S3’ünde yaşamasını istemeyen kurumsal mimarlar

Güvenlik incelemeniz “bu veriler nereye gidiyor?” sorusuyla başlıyorsa, Testnizer istisna gerektirmeyen bir yanıttır.

Burada “çevrimdışı” gerçekte ne anlama geliyor

Üç somut iddia, her biri kod tarafından zorunlu kılınmış:

1. Renderer internete erişemez

React arayüzü katı bir İçerik Güvenliği Politikası ile çalışır: connect-src 'self'. Tarayıcılar, renderer’ın kendi kaynağı dışına giden her fetch, WebSocket veya EventSource çağrısını engeller. Kötü niyetli bir bağımlılık arayüz thread’inden dışarıya sinyal göndermeye çalışsa bile, fiziksel olarak bunu yapamaz.

2. Her API çağrısı denetlenmiş bir handler üzerinden geçer

“Gönder”e bastığınızda, istek IPC sınırından Electron’un ana sürecine geçer. Orada protokol başına tek bir Node tarafındaki handler üzerinden yönlendirilir — http.engine.ts, soap.engine.ts, grpc.engine.ts, vb. Bu handler’ların hepsi açık kaynaklı, 1.000 satırın altında ve incelenebilir durumdadır.

3. Sırlar hiçbir zaman düz metin olarak diske yazılmaz

Token’lar, parola ifadeleri ve sertifika anahtarları Electron’un safeStorage API’sından geçer. macOS’ta bu Keychain’dir. Windows’ta DPAPI. Linux’ta libsecret. Şifreli blob projenizin SQLite veritabanında yaşar. Ham değer yalnızca istek imzalanırken bellekte bulunur.

Bulut araçlarıyla karşılaştırma

EndişeBulut araçlarıTestnizer
Koleksiyonlar nerede yaşarSatıcı bulut çalışma alanıDiskinizdeki yerel SQLite
Token’lar nerede saklanırSatıcı sunucularına senkronize edilirİşletim sistemi anahtarlığı (Keychain / DPAPI / libsecret)
JWT çözümlemeWeb uygulaması token’ı uzak servise gönderirYerel kripto — token süreç içinde kalır
WS-Security imzalama / şifrelemeÇevrimiçi araçlar veya ayrı bir masaüstü uygulamaxml-crypto + Node crypto ile yerleşik ana süreç
TelemetriVarsayılan olarak açıkYok — ve opt-in da yok
Durağan durumdaki ağ çıkışıArka plan senkronizasyonu, analizler, giriş ping’leriSıfır. CSP connect-src 'self'
İnternetsiz ağÇalışmazÇalışır

Ödünleşim

Bir ödünleşim var. Bulut olmadan, otomatik ekip senkronizasyonu da yok.

Yanıtımız: zaten sahip olduğunuz Git’i kullanın. Testnizer projeleri klasörlerdir. Bir depoya ekleyin, dallandırın, PR’larla inceleyin. İşbirliği modeli, mühendislik organizasyonunuzun zaten güvendiği modeldir — bir satıcının özel “çalışma alanı paylaşma” özelliği değil.

Git incelemesinin altyapı kodu için zaten doğruluk kaynağı olduğu organizasyonlar için bu, gerçekten uyum sağlayan kalıptır.

Daha fazla bilgi