MCPcopy Index your code
hub / github.com/coder/coder / AIProvider

Function AIProvider

coderd/database/db2sdk/db2sdk.go:52–74  ·  view source on GitHub ↗

AIProvider converts a database row plus its API keys into the codersdk shape. The caller is responsible for ensuring the row and keys have been decrypted (i.e. fetched through the dbcrypt-wrapped store). Each api_key is masked via aibridge utils.MaskSecret and write-only fields on Settings are strip

(row database.AIProvider, keys []database.AIProviderKey)

Source from the content-addressed store, hash-verified

50// write-only fields on Settings are stripped, so the result is safe
51// to echo back in API responses.
52func AIProvider(row database.AIProvider, keys []database.AIProviderKey) (codersdk.AIProvider, error) {
53 display := row.Name
54 if row.DisplayName.Valid && row.DisplayName.String != "" {
55 display = row.DisplayName.String
56 }
57 out := codersdk.AIProvider{
58 ID: row.ID,
59 Type: codersdk.AIProviderType(row.Type),
60 Name: row.Name,
61 DisplayName: display,
62 Enabled: row.Enabled,
63 BaseURL: row.BaseUrl,
64 APIKeys: maskAIProviderKeys(keys),
65 CreatedAt: row.CreatedAt,
66 UpdatedAt: row.UpdatedAt,
67 }
68 s, err := AIProviderSettings(row.Settings)
69 if err != nil {
70 return codersdk.AIProvider{}, xerrors.Errorf("decode settings: %w", err)
71 }
72 out.Settings = redactAIProviderSettings(s)
73 return out, nil
74}
75
76// AIProviderSettings parses the on-disk JSON form back into a codersdk
77// settings value. SQL NULL and the empty string decode to the zero

Callers 4

aiProvidersListMethod · 0.92
aiProvidersGetMethod · 0.92
aiProvidersCreateMethod · 0.92
aiProvidersUpdateMethod · 0.92

Calls 5

AIProviderTypeTypeAlias · 0.92
maskAIProviderKeysFunction · 0.85
redactAIProviderSettingsFunction · 0.85
AIProviderSettingsFunction · 0.70
ErrorfMethod · 0.45

Tested by

no test coverage detected