fix: expose dynamic provider profiles in backends list

This commit is contained in:
Codex
2026-06-09 00:28:32 +08:00
parent 56761b8e5f
commit c685b749e4
6 changed files with 65 additions and 20 deletions
@@ -296,6 +296,14 @@ process.exit(1);
assert.equal(listAfterDynamic.count, 5);
const dynamicListItems = (listAfterDynamic.items as JsonRecord[]) ?? [];
assert.equal(dynamicListItems.some((item) => item.profile === dynamicProfile), true);
const backendsAfterDynamic = await client.get("/api/v1/backends") as JsonRecord;
const backendItems = (backendsAfterDynamic.items as JsonRecord[]) ?? [];
const dynamicBackend = backendItems.find((item) => item.profile === dynamicProfile) as JsonRecord | undefined;
assert.equal(dynamicBackend?.backendKind, "codex-app-server-stdio");
assert.equal(((dynamicBackend?.defaultSecretRef as JsonRecord).name), `agentrun-v01-provider-${dynamicProfile}`);
assert.equal(((backendsAfterDynamic.dynamicProfileDiscovery as JsonRecord).status), "succeeded");
assert.equal(((backendsAfterDynamic.dynamicProfileDiscovery as JsonRecord).dynamicProfiles as string[]).includes(dynamicProfile), true);
assertNoSecretLeak(backendsAfterDynamic);
assertNoSecretLeak(dynamicCredential);
const removedDeepseek = await client.delete("/api/v1/provider-profiles/deepseek") as JsonRecord;
@@ -345,7 +353,7 @@ process.exit(1);
assert.equal(finalValidation.status, "completed");
assert.equal(JSON.stringify(finalValidation).includes(secretText), false);
assertNoSecretLeak(finalValidation);
return { name: "provider-profile-management", tests: ["provider-profiles-list-redacted", "provider-profile-config", "provider-profile-set-key-redacted", "provider-profile-set-auth-json-redacted", "provider-profile-secret-replace-annotation-cleanup", "provider-profile-secret-create-upsert", "provider-profile-config-only-create", "provider-profile-dsflash-go-model-catalog", "provider-profile-dynamic-slug-roundtrip", "provider-profile-remove-builtin", "provider-profile-remove-dynamic-slug", "provider-profile-deepseek-moon-bridge", "provider-profile-manager-secret-rbac", "provider-profile-validation-runner-job"] };
return { name: "provider-profile-management", tests: ["provider-profiles-list-redacted", "provider-profile-config", "provider-profile-set-key-redacted", "provider-profile-set-auth-json-redacted", "provider-profile-secret-replace-annotation-cleanup", "provider-profile-secret-create-upsert", "provider-profile-config-only-create", "provider-profile-dsflash-go-model-catalog", "provider-profile-dynamic-slug-roundtrip", "backends-list-dynamic-profile", "provider-profile-remove-builtin", "provider-profile-remove-dynamic-slug", "provider-profile-deepseek-moon-bridge", "provider-profile-manager-secret-rbac", "provider-profile-validation-runner-job"] };
} finally {
await new Promise<void>((resolve) => server.server.close(() => resolve()));
}