Jangan pernah maju klien-diberikan header identitas upstream
maju (), forwardWebhook () dan forwardCallback () disalin setiap inbound tajuk kecuali Host (dan, untuk sesionless dua, tajuk kredensial) ke dalam permintaan up...
Forward carrier SMS webhooks, yang mencapai apa-apa sama sekali
Traefik mengirim setiap jalur pada api.kamocrm.com ke gateway ini tanpa split jalur, dan kelas ini diteruskan / api / voip / * * dan tidak ada yang lain. Jadi /...
Forward carrier SMS webhooks, yang mencapai apa-apa sama sekali
Traefik mengirim setiap jalur pada api.kamocrm.com ke gateway ini tanpa split jalur, dan kelas ini diteruskan / api / voip / * * dan tidak ada yang lain. Jadi /...
Buktikan penyebaran dengan digest, bukan dengan tag
Commit sebelumnya berhenti 'set image' menjadi no- op diam. Ini menegaskan hasil: setelah peluncuran, tag diselesaikan untuk dicerna di registry dan pod berjala...
Membangun kembali komitmen yang sama tidak menyebar dan melaporkan kesuksesan
Gambar ini ditandai dengan melakukan SHA, jadi membangun kembali commit yang sama menghasilkan Sebuah referensi gambar identik. 'Kubectl set image' kemudian tid...
Jatuhkan / api / pengaturan ke depan, yang menunjuk pada apa-apa
EmailService melayani controller sync-integration di * * * * * * * * * * * * * * tidak / api / pengaturan / integrations - sehingga forward mencapai jalan layan...
Route / api / contacts, / api / calendar dan / api / settings ke EmailService
Kontak KamoMobile dan kalender layar 404d pada setiap permintaan. Baik Jalur telah dialihkan di tuan rumah api, sehingga tidak ada mencapai EmailService dan lay...
Berikan ruang peluncuran untuk 15s MinReaddySeconds sekarang biaya
kemajuan DeadlineSeconds adalah 60. Itu adalah jendela tempat peluncuran harus menampilkan kemajuan sebelum Kubernetes menyerah dan menandai gagal, dan commit s...
APIService tidak pernah menutup anggun sama sekali
Pengisian diganti satu-satunya pod dari setiap layanan dengan tidak ada untuk menangkap permintaan dalam Penerbangan. Tiga pengaturan, diterapkan di armada: - ...
Enkode token diterjemahkan persis sekali dalam perjalanan hulu
21670e5 diarahkan SosialWebhookController melalui upstreamUri 's FULLY- PRE-ENCODED entri titik, tetapi URL adalah hibrida: 'token' adalah @ PathVariable, sehin...
Teruskan permintaan byte si penelpon di proksi yang menghadap publik
Gateway berhenti double-encoding forward query string dalam 3c24d32, tapi empat proxy lain dalam layanan ini masih konkatenasi alreadid- persen -encoded bytes k...
Teruskan permintaan byte penelepon daripada mengkode mereka dua kali
Setiap URL gerbang ini dibangun dari getRequestURI () dan getQueryString () - keduanya sudah persentase -encoded - dan kemudian diserahkan ke RestTemplate sebag...
Harden the kubectl download against flaky egress [skip ci]
dl.k8S.io atas pelari itu keluar sesekali tetes pertengahan - transfer: curl: (56) OpenSSL SSL _ read: dekripsi gagal atau rekaman mac buruk yang gagal menyebar...
Defer mandatory- asal dari Phase 1 - Originals Matcher opt- in (daftar kosong / tidak diperbolehkan Origin)
Phase-0 widget masih panggilan melalui server-sisi proksi, sehingga oris- locking tidak memiliki manfaat belum dan setiap publikasi-chat kunci hidup memiliki al...
Jangan cache -invalidate kunci pada transient hilir error (hanya pada definitif tidak valid)
Hanya cache -invalidate kuline- kunci tidak valid, tidak berasal - ditolak (mencegah valid-key DOS)
Pada cache Redis dingin, public-chat kunci yang valid dengan salah / tidak ada Asal adalah cached sebagai INVALID untuk 60-an, menyangkal permintaan asal yang b...
Ikatan WS relay jabat tangan ke Asal + tambahkan cold- cache kunci validasi fallback
Ekstrak PublicChatController 's private validateViaDownstream () ke dalam berbagi PublicChatKeyResolver bean sehingga PublicChatChotSocketHandler dapat mengguna...
Buat asal percakapan public allow-list wajib (tolak pada daftar asal / kosong yang hilang)
Carve /api/voip/recordings/** out of the wildcard VOIP forwarder
The /api/voip/** catch-all in APIGatewayController was shadowing the dedicated VoipRecordingUploadController POST /api/voip/recordings/upload mapping when Sprin...
Naikkan batas ukuran berkas upload ke 500MB
Spring Boot default cap multipart bagian di 1MB, menyebabkan gambar latar belakang upload untuk gagal dengan 500 dalam request.getParts (). Match SecurityServic...
Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter
The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...
Hapus duplikasi CorsFilter dan strip header upstream CORS dalam gateway
WebConfig.java didefinisikan kedua CorsFilter kacang bersaing dengan CorsConfig. java kacang, mempertaruhkan duplikat header menulis. Dihapus sehingga hanya sat...
Atur aplikasi / json untuk tubuh JSON diteruskan ke SecurityService
RestTemplate ke upstream bisa meninggalkan Kontent- Tipe tidak kompatibel dengan Spring @ RequestBody, menyebabkan 415. Setelah membaca tubuh mentah, paksa APPL...
Validate Forgejo HMAC-SHA256 signature instead of plain secret header
Forgejo sends webhook secret as X-Gitea-Signature / X-Forgejo-Signature HMAC-SHA256 hash, not as a plain header value. Read body, verify HMAC, then forward to S...
Include SUBSCRIPTION_CATALOG in default scopes fallback
When MediaService doesn't return scopes in the validation response, default to including both PUBLIC_CHAT and SUBSCRIPTION_CATALOG scopes. This ensures public c...
Use getServerName() instead of getHeader(Host) for original host resolution
ForwardedHeaderFilter consumes X-Forwarded-Host and adapts getServerName() accordingly, while getHeader(Host) returns the raw HTTP Host which may be a K8s inter...
Use HTTP on port 80 for meet service URL to match other services
The HTTPS endpoint on 8443 causes SSL cert mismatch when routing through K8s internal DNS. All other services use HTTP on port 80.
Gunakan URL MediaService yang benar (https port 8443) untuk meet.service.url
Tambahkan meet.service.url ke K8 konfigurasi untuk mencegah kecelakaan APIService
Pertahankan upstream X-Forwarded- Host daripada menimpa dengan Host sendiri
Ketika sebuah proksi upstream (Next.js) set X-Forwarded- Host ke peramban host asli, APIService sekarang menjaganya daripada menimpa dengan nya header Host send...
Explicitly forward visitor IP to downstream services
ForwardedHeaderFilter consumes X-Forwarded-For from the incoming request, so when APIService forwards to SecurityService via RestTemplate the header is missing....
Move AccessEnforcementFilter to scanned package, revert ComponentScan
The widened @ComponentScan caused a corsFilter bean conflict between CorsConfig and WebConfig. Moved the filter into com.kamo.api.app.config (already scanned by...
Add Redis connection config to K8s configmap
APIService pod was failing to start because spring-boot-starter-data-redis auto-configuration couldn't connect to Redis at localhost:6379. Points to redis.kamo....
Use JdkClientHttpRequestFactory to support PATCH method forwarding
The default RestTemplate uses SimpleClientHttpRequestFactory (HttpURLConnection) which doesn't support the PATCH HTTP method, causing branch-titles save to fail...
Tambahkan konfigurasi Buildx dengan konfigurasi registry yang tidak aman untuk menyelesaikan kesalahan 401 auth
Add preStop hooks, probes, and increase termination grace period to prevent deployment timeouts
Properly forward multipart/form-data by rebuilding parts for RestTemplate
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.