Nunca forneça os cabeçalhos de identidade fornecidos pelo cliente a montante
forward(), forwardWebhook() e forwardCallback() copiaram cada entrada cabeçalho exceto Máquina (e, para os dois sem sessão, os cabeçalhos credenciais) para o pe...
Transportador avançado SMS webhooks, que não atingiu nada
Traefik envia todos os caminhos em api.kamocrm.com para este gateway sem divisão de caminho, e esta classe transmitiu /api/voip/** e nada mais. Então... /api/bu...
Transportador avançado SMS webhooks, que não atingiu nada
Traefik envia todos os caminhos em api.kamocrm.com para este gateway sem divisão de caminho, e esta classe transmitiu /api/voip/** e nada mais. Então... /api/bu...
Prove a implantação por digest, não por tag
O commit anterior para `set image' sendo um no-op silencioso. Isto afirma que resultado: após o lançamento, a tag é resolvida para uma digest As cápsulas em exe...
A reconstrução do mesmo commit não implantou nada e relatou sucesso
A imagem é marcada com o commit SHA, então reconstruir o mesmo commit produz uma referência de imagem idêntica. `kubectl set image` então não muda nada, o A imp...
Largue o /api/settings para a frente, que apontou para nada
O EmailService serve o controlador de integração de sincronização em *******************************************************************************************...
Rota /api/contacts, /api/calendar e /api/settings to EmailService
Os contatos e telas de calendário do KamoMobile 404'd em cada pedido. Nenhum o caminho foi encaminhado para o host api, então nada chegou ao EmailService e o se...
Dê a sala de lançamento para o 15s minReadySegundos agora custa
progressoDeadlineSegundos era 60. Essa é a janela que uma implantação tem de mostrar o progresso antes Kubernetes desiste e marca que falhou, e o commit anterio...
APIService nunca fechou graciosamente
Implantes substituiu o único pod de cada serviço com nada para pegar os pedidos em Voo. Três configurações, aplicadas em toda a frota: - preStop dorme 10s ante...
Codifique o token decodificado exatamente uma vez no caminho rio acima
21670e5 encaminhado para o SocialWebhookController através da entrada fullly-PRE-ENCODED da UpstreamUri ponto, mas sua URL é um híbrido: `token` é um @PathVaria...
Encaminhar os bytes de consulta do chamador sobre os proxies voltados para o público
O gateway parou de codificar strings de consulta enviadas em 3c24d32, mas quatro outros proxies neste serviço ainda concatenados bytes já codificados em percent...
Encaminhar os bytes de consulta do chamador em vez de os codificar duas vezes
Cada URL que este gateway constrói é montado a partir de getRequestURI() e getQueryString() — ambos já codificados por cento — e foi então entregue para RestTem...
Endureça o download do kubectl contra a saída flácida [skip ci]
dl.k8s.io sobre a saída do corredor diminui intermitentemente no meio da transferência: curl: (56) OpenSSL SSL read: a descriptografia falhou ou o mac de regist...
Adiar a origem obrigatória para a Fase 1 — OriginMatcher opt-in (lista de permissão vazia / ausência de origem permitida)
Os widgets de fase- 0 ainda chamam através de seu proxy do lado do servidor, então o travamento de origem não tem nenhum Beneficiar ainda e cada chave de bate-p...
Não validar chaves em cache em erros transitórios a jusante (apenas em inválido definitivo)
Apenas chaves de 'cache-invalidate' genuinamente inválidas, não negadas por origem (preveem o DOS de chave válida)
Em um cache do Redis frio, uma chave de bate-papo pública válida com uma origem errada/ausente foi guardado como INVALID para 60s, negando os pedidos de origem ...
Bind WS relé aperto de mão para Origem + adicionar chave fria de validação fallback
Extrai a validação privada do PublicChatControllerViaDownstream() em um compartilhado PublicChatKeyResolver bean para PublicChatWebSocketHandler pode reutilizar...
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...
Aumentar o limite de tamanho de envio de arquivos para 500MB
Spring Boot padrão tampa várias partes em 1MB, causando imagem de fundo uploads para falhar com 500 em request.getParts(). Coincidir os Serviços de Segurança li...
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 ...
Remover o CorsFilter duplicado e remover os cabeçalhos CORS no gateway
WebConfig.java definiu um segundo feijão CorsFilter competindo com o CorsConfig. java's feijão, arriscando duplicar cabeçalho escreve. Excluído para que apenas ...
Definir aplicação/json para organismos JSON enviados ao Serviço de Segurança
RestTemplate para upstream pode deixar o tipo de conteúdo incompatível com a primavera @RequestBody, causando 415. Após ler o corpo cru, force Application JSON ...
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.
Adicionar meet.service.url ao mapa de configuração do K8s para evitar falhas no APIService
Preservar o X-Forwarded-Host a montante em vez de sobrescrever com o próprio Host
Quando um proxy upstream (Next.js) define X-Forwarded-Host para o navegador host original, APIService agora preserva-lo em vez de substituir com a sua Cabeçalho...
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...
Adicionar configuração Buildx com configuração de registro inseguro para resolver erros de autenticação 401
Add preStop hooks, probes, and increase termination grace period to prevent deployment timeouts
Properly forward multipart/form-data by rebuilding parts for RestTemplate
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.