mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add ai_providers table, queries, dbauthz, audit, RBAC (#24892)
This commit is contained in:
@@ -169,6 +169,62 @@ func ChatModelConfig(t testing.TB, db database.Store, seed database.ChatModelCon
|
||||
return cfg
|
||||
}
|
||||
|
||||
func AIProvider(t testing.TB, db database.Store, seed database.AIProvider, munge ...func(*database.InsertAIProviderParams)) database.AIProvider {
|
||||
t.Helper()
|
||||
id := seed.ID
|
||||
if id == uuid.Nil {
|
||||
id = uuid.New()
|
||||
}
|
||||
provType := seed.Type
|
||||
if provType == "" {
|
||||
provType = database.AiProviderTypeOpenai
|
||||
}
|
||||
name := takeFirst(seed.Name, testutil.GetRandomNameHyphenated(t))
|
||||
displayName := seed.DisplayName
|
||||
if !displayName.Valid {
|
||||
displayName = sql.NullString{String: name, Valid: true}
|
||||
}
|
||||
params := database.InsertAIProviderParams{
|
||||
ID: id,
|
||||
Type: provType,
|
||||
Name: name,
|
||||
DisplayName: displayName,
|
||||
Enabled: takeFirst(seed.Enabled, true),
|
||||
BaseUrl: takeFirst(seed.BaseUrl, "https://api.example.com/"),
|
||||
Settings: seed.Settings,
|
||||
SettingsKeyID: seed.SettingsKeyID,
|
||||
}
|
||||
for _, fn := range munge {
|
||||
fn(¶ms)
|
||||
}
|
||||
provider, err := db.InsertAIProvider(genCtx, params)
|
||||
require.NoError(t, err, "insert ai provider")
|
||||
return provider
|
||||
}
|
||||
|
||||
func AIProviderKey(t testing.TB, db database.Store, seed database.AIProviderKey, munge ...func(*database.InsertAIProviderKeyParams)) database.AIProviderKey {
|
||||
t.Helper()
|
||||
id := seed.ID
|
||||
if id == uuid.Nil {
|
||||
id = uuid.New()
|
||||
}
|
||||
now := dbtime.Now()
|
||||
params := database.InsertAIProviderKeyParams{
|
||||
ID: id,
|
||||
ProviderID: seed.ProviderID,
|
||||
APIKey: takeFirst(seed.APIKey, "test-key"),
|
||||
ApiKeyKeyID: seed.ApiKeyKeyID,
|
||||
CreatedAt: takeFirst(seed.CreatedAt, now),
|
||||
UpdatedAt: takeFirst(seed.UpdatedAt, now),
|
||||
}
|
||||
for _, fn := range munge {
|
||||
fn(¶ms)
|
||||
}
|
||||
key, err := db.InsertAIProviderKey(genCtx, params)
|
||||
require.NoError(t, err, "insert ai provider key")
|
||||
return key
|
||||
}
|
||||
|
||||
func ChatProvider(t testing.TB, db database.Store, seed database.ChatProvider, munge ...func(*database.InsertChatProviderParams)) database.ChatProvider {
|
||||
t.Helper()
|
||||
params := database.InsertChatProviderParams{
|
||||
|
||||
Reference in New Issue
Block a user