fix(gateway): fail closed for unknown model auth

This commit is contained in:
Ayaan Zaidi
2026-06-05 16:58:21 +05:30
parent d6dbcb2f4b
commit 85343ea546
2 changed files with 17 additions and 9 deletions

View File

@@ -239,7 +239,10 @@ async function buildPublicModelsListEntry(params: {
}): Promise<ModelsListEntry> {
const publicEntry = omitRuntimeModelParams(params.entry);
if (modelCatalogEntryHasUnknownSecretRefAvailability(params.cfg, params.entry)) {
return publicEntry;
return {
...publicEntry,
available: false,
};
}
if (!params.providerAuthChecker) {
return publicEntry;
@@ -248,12 +251,9 @@ async function buildPublicModelsListEntry(params: {
params.providerAuthChecker,
params.entry,
);
if (available === undefined) {
return publicEntry;
}
return {
...publicEntry,
available,
available: available ?? false,
};
}

View File

@@ -126,6 +126,7 @@ describe("models.list", () => {
id: "llama-secure",
name: "Llama Secure",
provider: "vllm",
available: false,
},
],
},
@@ -317,7 +318,7 @@ describe("models.list", () => {
);
});
it("keeps file SecretRef provider availability unknown instead of forcing unavailable", async () => {
it("marks file SecretRef provider unavailable when read-only auth cannot prove availability", async () => {
const catalog = [{ id: "llama-secure", name: "Llama Secure", provider: "vllm" }];
const cfg = {
agents: {
@@ -350,12 +351,14 @@ describe("models.list", () => {
expect(respond).toHaveBeenCalledWith(
true,
{ models: [{ id: "llama-secure", name: "Llama Secure", provider: "vllm" }] },
{
models: [{ id: "llama-secure", name: "Llama Secure", provider: "vllm", available: false }],
},
undefined,
);
});
it("keeps managed SecretRef provider availability unknown instead of forcing unavailable", async () => {
it("marks managed SecretRef provider unavailable when read-only auth cannot prove availability", async () => {
const catalog = [{ id: "llama-managed", name: "Llama Managed", provider: "vllm" }];
const cfg = {
agents: {
@@ -384,7 +387,11 @@ describe("models.list", () => {
expect(respond).toHaveBeenCalledWith(
true,
{ models: [{ id: "llama-managed", name: "Llama Managed", provider: "vllm" }] },
{
models: [
{ id: "llama-managed", name: "Llama Managed", provider: "vllm", available: false },
],
},
undefined,
);
});
@@ -532,6 +539,7 @@ describe("models.list", () => {
id: "demo-model",
name: "Demo Model",
provider: "demo-provider",
available: false,
},
],
},