追跡ビーコンをMediaServiceに転送する
Clones ForwardPublicWebinarではなく、一般的な転送():その方法 すべての URI、ヘッダマップ、およびボディの長さをレベル無しでstdout に印刷し、 訪問者のビーコンはIPとレファラーを運ぶ。 ここで API キーは、テナントの境界ではなく、レート・リミットと不正な制御です。 ワンポイ...
共有ライブラリ @Lob LONGVARCHAR の修正に対する再構築
Hibernate の PostgreSQL のダイアレクトは、getLong() 経由で OID として @Lob 文字列カラムを読み込みます。 ノート、連絡先、カレンダー、OAuthトークン、IMAPパスワード、メールキャンペーンの影響 組織、webhook の秘密、Canva および社会的資格情報.
YugabyteDBのポイントとPostgreSQLDialectを使う
CockroachDB は YugabyteDB に置き換えられました。 接続文字列から移動 cockroachdb-public:26257 へ yb-tserver-service:5433, と Hibernate のダイアレクト **************** から PostgreSQLDialect.
Google GCS のコピーを通したミラー Maven セントラル
すべてのドッカーステージは、寒さ〜/.m2から始まり、依存関係ツリー全体を refetches するので、セントラルビュー あらゆる同時サービス構築の全重量。 今日は429sと2回、破損して答えます 転送: BillingService は、Tomcat-embed-core を fetching "Tag misma...
一度にデコードされたトークンを上流にエンコードする
21670e5 は、UpstreamUri の FULLY-PRE-ENCODED エントリーを通じてソーシャルWebhookController をルーティングしました しかし、その URL はハイブリッドです。 `token` は @PathVariable なので、春は手が getQueryString() が生...
コールワーのクエリバイトをパブリックフェーシングプロキシーで転送
ゲートウェイは 3c24d32 でダブルエンコード転送されたクエリ文字列を停止しましたが、4 このサービスの他のプロキシは、まだ、すでにパーセントエンコードされたバイトを連結 文字列に渡すと、ResendTemplate の文字列の積み過ぎに渡します。 URIテンプレートとして、2番目の時間をエンコードします。%2C ...
呼び出し者のクエリバイトを 2 回エンコーディングするのではなく転送します
全ての URL は getRequestURI() と getRequestURI() からビルドされます。 getQueryString() — 両方とも既にパーセントエンコード済みで、 RestTemplate を文字列として書きます。 RestTemplate の String のオーバーロードは URL を呼び...
ゲートウェイでテナントアクセスルールを強化
このフィルタは、書き込まれたので、不活性です。 resolveOrgId は org:domain:<host> を読みました。 Redis から、キーを書いたことはなく、null のリターンは許可するために落ちました。 ジオブランチは、コメントがSecurityServiceに委任したと空の if-blockでした。...
ミーティングプロバイダ OAuth コールバックのルート
ズームとMicrosoftは、このゲートウェイにブラウザをリダイレクトします。 カモのアプリ。 ここにポップアップランドはテナントセッションなしで - orgは、 ?state — なので、コールバックはセッションレス、auth-stripping パススルーが必要です 通常の /api/meet/** ではなく、既に...
Kubectlのダウンロードをフラッキ・エグレッシにハードン [skip ci]
dl.k8s.io オーバー ランナーのエグレッション 断続的にミッドトランスファーをドロップ: curl: (56) OpenSSL SSL read: 復号化が失敗したか、悪いレコードマック それ以外の緑のビルドでデプロイが失敗する。 繰り返し観察 kamo-signer-monorepoとkamo-transla...
パブリックAI->human handoffのルートをプロキシする
メニュー メディアサービス createSupportSession の兄弟と一緒に。 このハンドオフ機能は到着時に死にました: MediaServiceのエンドポイント X-Internal-Auth, X-Public-Chat-Org-Id, X-Public-Chat-Key-Hash, X-Public-C...
ルート /api/email + /api/ api ホストによるサポート
(メールサービス)およびサポート(メディアサービス、/api/media と同じ上流) ルートされていない → 404. 転送とメールの修正の両方を追加します。 localhostからのservice.url クラスターサービスへのデフォルト。 Forward() は、発信者のセッションのみを渡す ヘッダ (X-***...
GET /api/public-chat/bootstrap ゲートウェイ ルート
既存の proxyWithAuth パイプラインを再利用する boottrap エンドポイントを追加します。 (キーバリデーション+オプトインオリジン+ PUBLIC CHATスコープ+レートリミット+ X-Public-Chat-Key-Hash と MediaService ブートストラップエンドポイントへのプロキ...
フェーズ1に必須originを宣言 — OriginMatcher オプトイン (空の許可リスト / 欠如 許可)
Phase-0 ウィジェットはサーバー側のプロキシを介してまだ呼び出します。そのため、オリジンロックは何もありません しかし、すべてのライブパブリックチャットキーには空の許可リストがあります。 ストリクト 執行(empty=deny、欠落-Origin=deny)はマーケティング+記号.pinkを破りました チャットと...
キャッシュ無効なキーのみ、元の拒否されていない(有効なキーのDoSを防ぎます)
風邪のRedisキャッシュでは、間違った/機密の起源を持つ有効なpublic-chatキーが 60秒のINVALIDとしてキャッシュされ、その正しい起源の要求を否定 ウィンドウ。 HTTP と WebSocket の両方のコールドキャッシュフォールバックが区別できるようになりました ******************...
Bind WS はオリジンにハンドシェイクを中継 + コールドキャッシュキーの検証フォールバックを追加します
PublicChatController のプライベートな validateViaDownstream() を共有に抽出 PublicChatKeyResolver bean so PublicChatWebSocketHandler 同じを再利用することができます downstream DB のバリデーション + 強...
メディアサービスに対するプロキシGET /lo-presence
サポートセッションプロキシはすでに生体を転送しているので、マージされたウィジェットの mediaService untouched にアクセスします。 プレゼンスプロキシを追加 借り手ポータルは、割り当てられた融資役員がオンラインかどうかを問い合わせることができます.
電子メールOAuthプロバイダコールバックのためのパブリックパススルー
転送GET ******************** に Eメールサービス セッションレス (strips auth, 以下リダイレクトなし), RingCentral OAuth コールバックをミラーリング. これは、Microsoft/Google/Zohoに登録された固定公開リダイレクトURIです.
パブリックプログラム型e-sign APIゲートウェイ(API SIGNATUREスコープ)
PublicApiController に /api/public/esign/** を追加: org API キーを検証します。 API SIGNATURE スコープ、レート・リムジン、および ESigService の転送を要求します。 X-Internal-Auth + X-Org-Id を使用した内部エンベロー...
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...
Kamo-asterisk-supportのアップロードのためのVoipRecordingUploadController
POST /api/voip/recordings/upload は、kamo-asterisk-support からマルチパートボディを受け入れます FreePBX ホスト上で実行します。 X-Api-Key が新しい VOIP RECORDING UPLOADS を検証 スコープ(*****************...
アップロードサイズを500MBに上げる
Spring Boot のデフォルトは 1MB の複数の部分を、背景イメージを引き起こします アップロードして500リクエストで失敗します。.getParts()。 マッチセキュリティサービス 既存の 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 ...
重複したCorsFilterを削除し、ゲートウェイ内のCORSヘッダーを上流に除去
WebConfig.java は、CortsConfig と競合する第 2 回 CorsFilter ビーンを定義しました。 javaの bean、重複ヘッダーの書き込みを危険にさらす。 削除すると、CorsFilter が 1 つしか存在しません。 Forward() メソッドは、上流から Access-Contr...
SecurityService に転送される JSON ボディに application/json を設定
RestTemplate to upstream は、春とコンテンツタイプの互換性がないままにできます。 @RequestBody は 415 を引き起こします。 生体を読んだ後、力の適用 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...
