추적 비콘을 MediaService로 전달
Clones forwardPublicWebinar 오히려 일반적인 운송 () : 그 방법 모든 URI, 헤더 맵 및 몸 길이를 인쇄하여 레벨을 사용하지 않고, 방문자 비콘은 IP와 참조를 수행. API 키는 여기에 속도 제한 및 학대 통제이며, 공상 경계가 아닙니다. 한국어 마케팅 팟...
공유-library @Lob LONGVARCHAR 수정에 대한 재건
Hibernate의 PostgreSQL 방언은 getLong()를 통해 OID로 @Lob String 칼럼을 읽습니다. Affects 메모, 연락처, 달력, OAuth 토큰, IMAP 암호, 이메일 캠페인 몸, webhook 비밀, Canva 및 소셜 자격.
YugabyteDB의 포인트 및 PostgreSQLDialect 사용
CockroachDB는 YugabyteDB에 의해 대체되었습니다. 연결 문자열에서 이동 cockroachdb-public:26257 yb-tserver-service:5433, 그리고 Hibernate 방언 ...에서 *********** 에 PostgreSQLDialect.
Google GCS 사본을 통해 Mirror Maven Central
모든 도커 스테이지는 추운 ~ / .m2에서 시작하여 전체 종속 나무를 굴절시킵니다. 그래서 중앙은 모든 동시 서비스 구조의 전체 무게. 그것은 429s와 함께 답변, 오늘 두 번, 손상 전송: BillingService 일어난 일에 태어난 "Tag mismatch" tomcat-emb...
한 번에 한 번에 디코딩 토큰을 인코딩
21670e5는 UpstreamUri의 FULLY-PRE-ENCODED 항목을 통해 SocialWebhookController를 routed 점, 그러나 그것의 URL은 잡종입니다: `token`는 @PathVariable입니다, 그래서 봄 손은 getQueryString()이 원합니다...
Public-facing 프록시에서 콜러의 쿼리 바이트를 전달
게이트웨이는 3c24d32의 전달된 쿼리 문자열을 중지하지만 4 이 서비스에 다른 프록시는 여전히 이미 인코딩된 바이트를 concatenated String으로, restTemplate의 String overload로 옮긴다. URI 템플릿으로, 두 번째로 인코딩: %2C는 %252C로...
Caller의 쿼리 바이트 대신 인코딩 두 번
모든 URL이 게이트웨이 빌드는 getRequestURI()에서 조립됩니다. getQueryString() — 이미 퍼센트 인코딩된 모두 — 그리고 그 때에 문자열로 restTemplate. restTemplate의 문자열 과부하는 URL을 가지고 있지 않습니다; 그들은 URI TEMP...
게이트웨이의 10개의 액세스 규칙을 강화하십시오
이 필터는 기록 된 이후로 비활성되었습니다. resolveOrgId read org:domain:<host> Redis에서 아무도 키를 썼고, null 반환은 허용하도록 떨어졌다. Geo 분지는 SecurityService에 대한 코멘트를 가진 빈 if-block이었습니다. 하지 않습니...
회의 제공 업체 OAuth 콜백
Zoom 및 Microsoft는 org Authorises 후이 게이트웨이에 브라우저를 리디렉션 Kamo의 앱. 여기에 팝업 토지는 열렬한 세션이 없습니다. — org 여행에서 ?state — 그래서 콜백은 sessionless, auth-stripping passthrough를 필요로...
Flaky egress에 대한 kubectl 다운로드를 Harden [skip ci]
dl.k8s.io 런너의 egress 간에 실수로 중간 전송을 삭제: 컬: (56) OpenSSL SSL read: 해독 실패 또는 나쁜 기록 맥 그렇지 않으면 녹색 빌드에 배포되지 않습니다. 반복적으로 관찰 kamo-signer-monorepo 및 카모 번역 사전. 추가 --retr...
Public AI->human 핸오프 루트 프록시
POST 추가 ************** MediaService에 proxied createSupportSession sibling에 따라. 이 Handoff 기능없이 도착에 죽었다 : MediaService의 엔드 포인트 X-Internal-Auth, X-Public-Chat-Org...
Api 호스트를 통한 Route /api/email + /api/support
(EmailService) 및 지원 (MediaService, /api/media와 같은 상류)는 루트 → 404. 이메일 발송 및 수정 localhost에서 service.url 클러스터 서비스에 기본값. 앞으로() 콜러의 세션만 전달 헤더 (X- *** - 토큰) - X-Intern...
GET /api/public-chat/bootstrap 게이트웨이 경로
기존 proxyWithAuth 파이프라인을 재사용하는 bootstrap 엔드포인트 추가 (key validation + opt-in Origin + PUBLIC CHAT 범위 + 속도 제한 + X-Public-Chat-Key-Hash) 및 MediaService 부츠 스트랩 엔드포인트에...
1단계 – OriginMatcher opt-in(empty allow-list / 누락된 Origin 허용)
Phase-0 위젯은 서버 측 프록시를 통해 여전히 호출됩니다, 그래서 원래 잠금이 없습니다 아직 혜택과 모든 라이브 공개 채팅 키는 빈 허용 목록이 있습니다. 사이트맵 집행 (empty=deny, missing-Origin=deny) 마케팅 + sign.pink VOIP-recordi...
진정한 잘못된 키 만 캐시가 유효하지 않습니다
추운 Redis 캐시에서 잘못된 /absent Origin의 유효 공개 채팅 키가되었습니다. 60s에 대한 INVALID로 캐시, 그에 대한 올바른 기원의 요청을 거부 창. HTTP 및 WebSocket Cold-cache fallbacks 모두 구별 *********** null 반환...
Bind WS 릴레이 handhake 원산지 + 콜드 캐시 키 검증을 추가
PublicChatController의 프라이빗 validateViaDownstream()을 공유합니다. PublicChatKeyResolver bean 그래서 PublicChatWebSocketHandler 같은 재사용 할 수 있습니다 downstream DB 유효성 검사 + 필수 O...
Proxy GET /lo-presence 에 미디어 서비스
Support-session proxy는 이미 익지않는 몸을 전달하므로 합병 된 위젯 선호하는AgentMemberId 도달 미디어 서비스 untouched. 존재 프록시 추가하기 차용 포털은 지정된 대출 임원이 온라인인지 확인할 수 있습니다.
이메일 OAuth 공급자 콜백을 위한 공개 passthrough
앞으로 GET *********** EmailService 세션에 대한 (strips auth, no redirect following), RingCentral OAuth 콜백 미러링. 이것은 Microsoft/Google/Zoho에 등록된 고정된 공중 리디렉션 URI입니다.
Public programmatic e-sign API 게이트웨이 (API SIGNATURE 범위)
/api/public/esign/**를 PublicApiController에 추가하십시오: org API 키를 유효하게 합니다. API SIGNATURE 범위, 속도 제한이 필요하며 ESigService의 기대 X-Internal-Auth + X-Org-Id를 가진 내부 봉투 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-asterisk-support 파일 업로드
POST /api/voip/recordings/upload는 kamo-asterisk-support에서 multipart 몸을 받아들입니다 FreePBX 호스트에서 실행. X-Api-Key는 새로운 VOIP RECORDING UPLOADS를 제공합니다. 범위 ( *********** 유...
파일 업로드 크기 제한 500MB
봄 부트는 1MB에 모자 multipart 부속, 배경 이미지를 일으키는 원인이 되었습니다 으로 실패 500 요청에.getParts(). SecurityService의 일치 기존의 500MB의 한계 그래서 APIService는 큰 파일 업로드 할 수 있습니다.
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 ...
게이트웨이에서 중복 필터 및 스트립 업스트림 CORS 헤더 제거
WebConfig.java는 CorsConfig과 비교하여 두 번째 CorsFilter bean을 정의했습니다. java의 bean, 위험 중복 헤더 쓰기. 하나의 CorsFilter가 존재합니다. 앞으로 () 방법은 또한 상류에서 Access-Control-Allow-Origin을 ...
SecurityService에 전달된 JSON body용 application/json 설정
업스트림에 restTemplate는 봄과 호환이 되는 Content-Type을 남길 수 있었습니다 @RequestBody, 원인 415. 익지않는 몸을 읽는 후에, 강제 APPLICATION JSON 페이로드가 JSON처럼 보입니다.
Add Stripe webhook forwarding and billing API gateway routing
- POST /api/billing/webhooks/stripe receives Stripe webhooks and forwards to BillingService with Stripe-Signature header preserved - /api/billing/** gateway r...
Forward locale param to SecurityService on public subscription catalog endpoint
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Add public lead intake endpoint for 3rd-party lead submission
Adds LeadIntakePublicController at /api/public/lead-intake/{token} that accepts lead data in any format (JSON, form-urlencoded) from 3rd-party vendors and forwa...
Add /api/esig/** gateway routing to ESigService
Route all /api/esig/** requests through the existing API gateway to the dedicated ESigService (kamowsesig-service) instead of the non-existent proxy target. Add...
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...
Expose changelog webhook through APIService with secret key auth
Adds POST /api/changelog/webhook route that validates *** header before forwarding to SecurityService. Secret configured via CHANGELOG_WEBHOOK_SECRET env var / ...
Enforce PUBLIC_WEBINAR scope on public webinar endpoints
Adds scope validation check before forwarding public webinar requests to MediaService, returning 403 if the API key lacks PUBLIC_WEBINAR scope.
Add webinar gateway routes for authenticated and public endpoints
Routes /api/webinar/** to MediaService for authenticated webinar operations and /api/public/webinar/** with API key validation for public scheduling and cancell...
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...
