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...
Executar duas cápsulas
réplicas 1 -> 2. Este serviço não executa nenhum trabalho @Scheduled e não liga nenhum exclusivo NATS durável, assim um segunda cápsula duplica nada — é pedido ...
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...
Restaurar os finais de linha CRLF deste manifesto
O commit anterior reescreveu o arquivo com um script que o normalizou para LF, que é um Diff de arquivo inteiro para uma mudança que tocou uma dúzia de linhas. ...
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...
Superfície API-chave para eventos de chamadas ao vivo de um cliente PBX
Companion to VoipRecordingUploadController, em um separado deliberadamente VOIP CALL EVENTS escopo: carregando uma gravação após o fato e fazendo O telefone de ...
Encaminhar /api/email/oauth/callback para EmailService
O alvo de redirecionamento do OAuth do Google. A mesma forma que o provedor de email e meet callbacks ao lado: público e sem sessão, porque o popup cai sobre is...
Encaminhar o localizador para MediaService
Clones forwardPublicWebinar em vez do genérico forward(): esse método imprime cada URI, mapa de cabeçalho e comprimento do corpo para stdout sem nível, e um vis...
Reconstruir contra a biblioteca compartilhada @Lob LONGVARCHAR corrigir
O dialeto PostgreSQL de Hibernate leu as colunas @Lob String como OIDs via getLong(). Afeta notas, contatos, calendário, tokens de OAuth, senhas de IMAP, campan...
Ponto em YugabyteDB e usar PostgreSQLDialect
O BarataDB foi substituído pelo YugabyteDB. strings de conexão se movem de baratadb-public:26257 para yb-tserver-service:5433, e o dialeto Hibernate desde o Pos...
Espelho Maven Central através da cópia GCS Google
Cada estágio do Docker começa a partir de uma ~/.m2 fria e refetches toda a árvore de dependência, assim que Central vê O peso total de cada serviço em simultân...
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...
Aplicar as regras de acesso dos inquilinos no portal
Este filtro está inerte desde que foi escrito. resolveOrgId ler org: domínio:<host> de Redis, nada nunca escreveu essa chave, e o retorno nulo caiu para permiti...
Roteie o provedor de reunião OAuth callback
Zoom e Microsoft redirecionam o navegador para este gateway após uma org autorizar A aplicação do Kamo. O popup pousa aqui sem nenhuma sessão de inquilino — as ...
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...
Proxy a rota AI->human handoff pública
Adiciona-se ao POST. próximo ao MediaService ao lado de seu createSupportSession irmão. Sem isso, o recurso de entrega estava morto na chegada: Endpoint do Med...
Rota /api/email + /api/suporte através da máquina api
(EmailService) e Suporte (MediaService, mesmo upstream que /api/media) foram não roteado → 404. Adicione ambos os encaminhamentos e corrigir e-mail. service.url...
GET /api/public-chat/bootstrap gateway route
Adicionar endpoint bootstrap que reutiliza o proxy existenteWithAuth pipeline (validação chave + origem opt-in + âmbito PUBLIC CHAT + limite de taxa + X-Public-...
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...
Verificar *** PoW na borda na sessão pública criar (forçado quando a carga útil presente)
Proxy GET /lo-presence to MediaService
O proxy de sessão de suporte já encaminha o corpo bruto, então o widget mesclado preferidoAgentMemberId atinge MediaService intocado. Adicionar o proxy de prese...
Passagem pública para e-mail chamada de provedor OAuth
Avançar GET ************* para o Serviço de Email sem sessão (strips auth, sem redirecionamento seguindo), espelhando o retorno de chamada RingCentral OAuth. Es...
Encaminhar x-twitter-webhooks-assinatura na borda do webhook social (Atividade da Conta X/Twitter)
Gateway e-sign público de API (API SIGNATURE)
Adicionar /api/public/esign/** ao PublicApiController: valida a chave org API, requer o escopo API SIGNATURE, limites de taxa, e encaminha para ESigService API ...
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 for kamo-asterisco-suport uploads
POST /api/voip/gravações/upload aceita corpos multi-partes do suporte kamo-asterisco rodando em hosts FreePBX. Valida o X-Api-Key tem o novo VOIP RECORDING UPLO...
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 ...
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.