From 646b3b9ba36fec43b413dde69e90cbb30976c76a Mon Sep 17 00:00:00 2001 From: Sutarto Jordan Chrisfivo Date: Wed, 5 Aug 2026 13:13:16 +0700 Subject: [PATCH] fix(cloudflare-ai): declare API key authentication Cloudflare AI registry entry was missing authType/authModes, causing the dashboard to report "No connections" despite an active API-key connection. Closes #2969 --- open-sse/providers/registry/cloudflare-ai.js | 2 ++ tests/unit/provider-display-split.test.js | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/open-sse/providers/registry/cloudflare-ai.js b/open-sse/providers/registry/cloudflare-ai.js index 4d440b74..53f1a697 100644 --- a/open-sse/providers/registry/cloudflare-ai.js +++ b/open-sse/providers/registry/cloudflare-ai.js @@ -19,6 +19,8 @@ export default { }, }, category: "freeTier", + authType: "apikey", + authModes: ["apikey"], hasProviderSpecificData: true, transport: { baseUrl: "https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions", diff --git a/tests/unit/provider-display-split.test.js b/tests/unit/provider-display-split.test.js index e28963ba..af313f0c 100644 --- a/tests/unit/provider-display-split.test.js +++ b/tests/unit/provider-display-split.test.js @@ -31,4 +31,10 @@ describe("provider display split (E1)", () => { expect(m.ALIAS_TO_ID.kr).toBe("kiro"); expect(m.getProvidersByKind("tts").length).toBeGreaterThan(0); }); + + it("Cloudflare exposes API-key authentication on its free-tier card", async () => { + const { FREE_TIER_PROVIDERS } = await import("../../src/shared/constants/providers.js"); + expect(FREE_TIER_PROVIDERS["cloudflare-ai"].authType).toBe("apikey"); + expect(FREE_TIER_PROVIDERS["cloudflare-ai"].authModes).toEqual(["apikey"]); + }); });