Mai inoltrare intestazioni di identità fornite dal cliente a monte
forward(), forwardWebhook() e forwardCallback() copiato ogni inbound intestazione eccetto Host (e, per i senza sessione due, le intestazioni credenziali) sulla ...
Supporto avanzato SMS webhooks, che non ha raggiunto nulla affatto
Traefik invia ogni percorso su api.kamocrm.com a questo gateway senza percorso diviso, e questa classe ha inoltrato /api/voip/** e nient'altro. Quindi... /api/b...
Supporto avanzato SMS webhooks, che non ha raggiunto nulla affatto
Traefik invia ogni percorso su api.kamocrm.com a questo gateway senza percorso diviso, e questa classe ha inoltrato /api/voip/** e nient'altro. Quindi... /api/b...
Prove the deploy by digest, not by tag
Il commit precedente si ferma `set image` essendo un no-op silenzioso. Questo afferma che risultato: dopo il rollout, il tag viene risolto per digerire al Regis...
Una ricostruzione dello stesso commit non ha dispiegato nulla e ha riferito il successo
L'immagine è contrassegnata con il commit SHA, così la ricostruzione dello stesso commit produce un riferimento di immagine identico. `kubectl set immagine` qui...
Getta la /api/settings in avanti, che non ha indicato nulla
EmailService serve il controller di sincronizzazione al ********************************************************************************************************...
Route /api/contacts, /api/calendar e /api/settings to EmailService
Contatti e schermi di calendario di KamoMobile 404'd su ogni richiesta. Né percorso è stato percorso presso l'host api, quindi nulla ha raggiunto EmailService e...
Dare il rollout stanza per il 15s minReadySeconds ora i costi
progressoDeadlineSeconds era 60. Questa è la finestra che un rollout deve mostrare i progressi prima Kubernetes rinuncia e segna il fallimento, e il commit prec...
APIService non si chiude mai con grazia
Deploys ha sostituito l'unico pod di ogni servizio con nulla per catturare le richieste in volo. Tre impostazioni, applicate attraverso la flotta: - preStop do...
Codificare il token decodificato esattamente una volta sulla strada a monte
21670e5 ha percorso SocialWebhookController attraverso la voce FULLY-PRE-ENCODED di UpstreamUri punto, ma il suo URL è un ibrido: `token` è un @PathVariable, qu...
Inoltra i byte di query del chiamante sui proxy pubblici
Il gateway ha interrotto le stringhe di query a doppia codifica in avanti in 3c24d32, ma quattro altri proxy in questo servizio ancora concatenati byte già codi...
Inoltra i byte di query del chiamante invece di codificarli due volte
Ogni URL che questo gateway costruisce è assemblato da getRequestURI() e getQueryString() — entrambi già codificati per cento — ed è stato poi consegnato a Rest...
Harden il kubectl download contro l'egresso sfacciato [skip ci]
dl.k8s.io sopra l'ingresso del corridore cade in modo intermittente metà del trasferimento: curl: (56) OpenSSL SSL read: decryption fail or bad record mac che f...
Deferire l'orientamento obbligatorio alla Fase 1 — Opt-in OriginMatcher (permetta la lista dei permessi/origine mancante)
I widget Phase-0 chiamano ancora tramite il proxy server-side, quindi il blocco di origine non ha beneficio ancora e ogni chiave a catena pubblica dal vivo ha u...
Non memorizzare le chiavi in cache sugli errori a valle transitori (solo su invalidità definitiva)
Solo cache-invalidate chiavi genuinamente invalide, non Origin-denied (previene-chiave DoS)
Su una fredda cache Redis, una chiave pubblica valida con un'origine sbagliata/absent memorizzato come INVALID per 60s, negando le richieste di origine corretta...
La stretta di mano del relè di WS Bind a Origin + aggiungere il ripiegamento della chiave di convalida a freddo
Estrae la convalida privata di PublicChatControllerViaDownstream() in un condiviso PublicChatKeyResolver fagiolo così PublicChatWebSocketHandler può riutilizzar...
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...
Aumentare il limite di dimensione del file di upload a 500MB
Spring Boot predefinisce il tappo di parti multipart a 1MB, causando l'immagine di sfondo caricamenti per fallire con 500 in request.getParts(). Match SecurityS...
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 ...
Rimuovere duplicati CorsFilter e striscia a monte intestazioni CORS nel gateway
WebConfig.java ha definito un secondo fagiolo CorsFilter in competizione con CorsConfig. Java bean, rischiando di scrivere l'intestazione duplicata. L'ha cancel...
Impostare l'applicazione/json per i corpi JSON inoltrati a SecurityService
RestTemplate a monte potrebbe lasciare Contenuto-Tipo incompatibile con la primavera @RequestBody, causando 415. Dopo aver letto il corpo grezzo, forza APPLICAT...
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.
Utilizzare il corretto URL MediaService (https port 8443) per meet.service.url
Preserve upstream X-Forwarded-Host instead of overwriting with own Host
When an upstream proxy (Next.js) sets X-Forwarded-Host to the browser's original host, APIService now preserves it instead of overwriting with its own Host head...
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...
Aggiungi configurazione Buildx con configurazione del registro insicuro per risolvere errori 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
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.