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...
Jalankan dua pod
replika 1 - > 2. Layanan ini tidak menjalankan pekerjaan @ Scheduled dan tidak mengikat NATS eksklusif tahan lama, jadi pod kedua duplikasi apa-apa - itu adalah...
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...
Mengembalikan akhir baris CRLF ini
Commit sebelumnya menulis ulang berkas dengan skrip yang menormalkan ke LF, yang merupakan whole- file diff untuk perubahan yang menyentuh selusin baris. Tak ad...
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: - ...
API-key permukaan untuk acara panggilan langsung dari PBX pelanggan
Perusahaan untuk VoipRecordingUploadController, pada sengaja terpisah VOIP _ CALL _ EVENTS scope: mengunggah sebuah rekaman setelah fakta dan membuat seseorang ...
Teruskan / api / email / oauth / callback ke EmailService
Google OAuth mengarahkan target. Bentuk sama seperti email dan memenuhi penyedia callbacks di sampingnya: public and sesionless, because the popup lands on this...
Teruskan suar pelacak ke MediaService
Kloning forwarricPublicWebinar daripada generik ke depan (): Metode itu tampilkan setiap URI, peta header dan panjang tubuh untuk stdout dengan tanpa level, dan...
Membangun kembali terhadap shared- perpustakaan @ Lob LONGVARCHAR memperbaiki
Dialog Hibernasi PostgreSQL dibaca @ Lob String kolom sebagai OID melalui getLong (). Mempengaruhi catatan, kontak, kalender, token OAuth, sandi IMAP, kampanye ...
Point at Yugabita teDB and use PostgreSQLDialect
CockroachDB telah digantikan oleh Yugabita DB. String koneksi berpindah dari Publik: 26257 kepada layanan yb-tserver-: 5433, dan dialek Hibernate dari * * * * *...
Mirror Maven Central melalui salinan Google GCS
Setiap tahap Docker dimulai dari dingin ~ / .m2 dan menahan seluruh pohon ketergantungan, sehingga Tengah melihat beban penuh dari setiap layanan kontemporer me...
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...
Memaksa aturan akses penyewa pada gateway
Filter ini telah inert sejak ditulis. resolveOrganiId read org: domain: < host > dari Redis, tidak ada yang pernah menulis kunci itu, dan kembali null jatuh mel...
Rute penyedia OAuth callback pertemuan
Zoom dan Microsoft mengarahkan peramban ke gateway ini setelah sebuah otoritas org Aplikasi Kamo. popup tanah di sini tanpa sesi penyewa - perjalanan org di sta...
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...
Proxy the public AI- > handoff route human
Tambahkan POST * * * * * * * * * * * * * * * * * * * * proxied ke MediaService di samping createSupportment nya saudara. Tanpa ini fitur handoff sudah mati pad...
Route / api / email + / api / support melalui host api
(EmailService) dan Dukungan (MediService, upstream sama seperti / api / media) unsounded £404. Tambahkan baik ke depan dan memperbaiki email. Service.url dari s...
GET / APi / public-chat / bootstrap gateway
Tambahkan titik akhir bootstrap yang mereses pipeline proxyWithAuth yang sudah ada (kunci validasi + opt-in asal + PUBLIC _ CHAT scope + rate- limit + X- Public...
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...
Verifikasi * * PoW di tepi pada sesi publik membuat (dipaksa ketika payload ada)
Buat asal percakapan public allow-list wajib (tolak pada daftar asal / kosong yang hilang)
Proxy GET / LO- kehadiran MediaService
Proksi support- sesi telah meneruskan tubuh mentah, sehingga widget digabung MediaService tak tersentuh. Tambahkan proksi kehadiran sehingga Portal peminjam dap...
Paste Publik untuk surel penyedia OAuth
Teruskan GET * * * * * * * * * * * * * * * ke EmailService sessionesly (Strip auth, no redirect follow), mencerminkan panggilan ringCentral OAuth. Ini adalah UR...
Teruskan tanda tangan x-twitter -webhooks-di tepi webhook sosial (Aktivitas Akun X / Twitter)
Migrasi ke k1m1 (registry + kubeconfig dari k1m1, drop k2m1, sederhana kubectl install)
Program publik e- tandai gateway API (lingkup API _ SIGNATURE)
Tambah / api / public / esign / * * to PublicAPiController: memvalidasi kunci org API, membutuhkan lingkup API _ SIGNATURE, rate- batas, dan ke depan ke ESigSer...
Proxy support-message translate endpoint
Adds a passthrough route for the new MediaService endpoint that translates a single support-chat message into the visitor's URL locale. The marketing-side chat ...
Scope concurrency to build jobs, not Kubernetes deploys
Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...
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...
VoipRecordingUploadController untuk kamo- asteroid-support uploads
POST / api / voip / rekaman / upload menerima tubuh multipart dari dukungan kamo- asterisk- berjalan di FreePBX host. Validasi X-Api- Key memiliki VOIP _ RECORD...
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...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.