fix(models): enforce account mappings for remote Codex discovery

This commit is contained in:
lyy0709
2026-10-01 03:30:56 -07:00
parent d6adebd22d
commit 71e97d1353
5 changed files with 80 additions and 7 deletions
@@ -1001,3 +1001,32 @@ func TestCodexModelsPinnedAccountsETagMatchReturns304(t *testing.T) {
require.Equal(t, http.StatusNotModified, second.Code, second.Body.String())
require.Empty(t, second.Body.Bytes())
}
func TestCodexModelsDiscoveryProjectsWildcardMappingWithoutAllowlist(t *testing.T) {
for _, mode := range []string{"ordinary", "pinned", "fallback"} {
t.Run(mode, func(t *testing.T) {
account := newPinnedCodexAccount(1, service.StatusActive, true, false)
account.Credentials["model_mapping"] = map[string]any{"gpt-*": "gpt-5.4"}
upstream := &codexModelsPinnedHTTPUpstream{bodies: map[int64]string{
1: `{"models":[{"slug":"gpt-5.4"},{"slug":"blocked"},{"slug":"codex-auto-review"},{"slug":"gpt-image-2"}]}`,
}}
handler := newPinnedCodexTestHandler([]service.Account{account}, upstream, 3)
group := &service.Group{ID: 84, Platform: service.PlatformOpenAI,
ModelAllowlist: service.GroupModelAllowlist{Models: []string{"blocked"}},
}
if mode != "ordinary" {
group.CodexModelsManifestConfig = service.GroupCodexModelsManifestConfig{Enabled: true, AccountIDs: []int64{1}}
}
if mode == "fallback" {
group.CodexModelsManifestConfig.AccountIDs = []int64{999}
group.CodexModelsManifestConfig.FallbackToScheduler = true
}
first := performCodexModelsRequestForGroup(t, handler, group, "")
require.Equal(t, http.StatusOK, first.Code, first.Body.String())
require.Equal(t, []string{"gpt-5.4"}, codexHandlerManifestSlugs(t, first))
require.NotEmpty(t, first.Header().Get("ETag"))
second := performCodexModelsRequestForGroup(t, handler, group, first.Header().Get("ETag"))
require.Equal(t, http.StatusNotModified, second.Code)
})
}
}