fix(ai-public): hide public pool endpoint from users

This commit is contained in:
2026-04-06 14:28:37 +08:00
parent 6ae9f49b4c
commit 13d0d7707a
4 changed files with 24 additions and 9 deletions
-2
View File
@@ -51,7 +51,6 @@ export type ListAiBindingsResponse = {
enabled: boolean;
providerName: string | null;
model: string | null;
endpoint: string | null;
hasApiKey: boolean;
} | null;
};
@@ -122,7 +121,6 @@ export class AiService {
enabled: publicPool.enabled,
providerName: publicPool.providerName,
model: publicPool.model,
endpoint: publicPool.endpoint,
hasApiKey: Boolean(publicPool.encryptedApiKey)
}
: null
+24
View File
@@ -468,6 +468,30 @@ describe("AiController (integration)", () => {
});
});
it("should hide public pool endpoint from user bindings response", async () => {
prismaService.seedPublicPool({
enabled: true,
providerName: "public-openai",
model: "gpt-4o-mini",
encryptedApiKey: "sk-public",
endpoint: "https://internal.example.com/v1",
rpmLimit: 60,
dailyTokenLimit: 100000
});
const response = await request(app.getHttpServer())
.get("/ai/bindings")
.set("x-user-id", "user_1")
.expect(200);
expect(response.body.publicPool).toEqual({
enabled: true,
providerName: "public-openai",
model: "gpt-4o-mini",
hasApiKey: true
});
});
it("should upsert one binding per user channel", async () => {
await request(app.getHttpServer())
.post("/ai/bindings")