mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
refactor: rename Ai* database identifiers to AI* (AIGOV-369) (#26327)
Adds `ai` to sqlc's `gen.go.initialisms` in `coderd/database/sqlc.yaml` so the generated DB code follows Go's initialism convention. Adds the matching `ai` -> `AI` case to the dbgen PascalCase helper (`scripts/dbgen/main.go`) so the corresponding `dbmem` / mock identifiers stay in sync. `make gen` regenerates the rest; hand-written call sites that consume DB-generated identifiers (`enterprise/audit/table.go`, `coderd/database/modelmethods.go`, `enterprise/coderd/aigatewaykeys.go`, `coderd/database/dbauthz/*`, etc.) are updated to match. Scope is deliberately limited to the database layer: - `coderd/rbac/*` (resource and scope generators) is untouched — `ResourceAi*` / `ScopeAi*` constants stay on main's casing. - `codersdk/*` (Go SDK) is untouched — `codersdk.ResourceAi*` / `codersdk.APIKeyScopeAi*` constants stay on main's casing, so external Go SDK consumers see no source-level break. - `Aibridge*` identifiers (one SQL token `aibridge`, not `ai_bridge`) are out of scope. On-the-wire values are unchanged: enum strings, RBAC resource type strings, API key scope strings, and JSON tags all stay the same. The HTTP/JSON surface is unaffected. Refs: [AIGOV-369](https://linear.app/codercom/issue/AIGOV-369/change-ai-references-in-coderddatabasemodelsgo-to-ai) 🤖 Generated with [Coder Agents](https://coder.com)
This commit is contained in:
+15
-15
@@ -132,7 +132,7 @@ func ResourceTarget[T Auditable](tgt T) string {
|
||||
return "Organization Role Sync"
|
||||
case database.TaskTable:
|
||||
return typed.Name
|
||||
case database.AiSeatState:
|
||||
case database.AISeatState:
|
||||
return "AI Seat"
|
||||
case database.AIProvider:
|
||||
return typed.Name
|
||||
@@ -140,9 +140,9 @@ func ResourceTarget[T Auditable](tgt T) string {
|
||||
return typed.ID.String()
|
||||
case database.AIGatewayKey:
|
||||
return typed.Name
|
||||
case database.AuditableGroupAiBudget:
|
||||
case database.AuditableGroupAIBudget:
|
||||
return typed.GroupName
|
||||
case database.AuditableUserAiBudgetOverride:
|
||||
case database.AuditableUserAIBudgetOverride:
|
||||
return typed.Username
|
||||
case database.Chat:
|
||||
// Chat titles can contain sensitive content (secrets, internal
|
||||
@@ -220,7 +220,7 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
|
||||
return noID // Org field on audit log has org id
|
||||
case database.TaskTable:
|
||||
return typed.ID
|
||||
case database.AiSeatState:
|
||||
case database.AISeatState:
|
||||
return typed.UserID
|
||||
case database.AIProvider:
|
||||
return typed.ID
|
||||
@@ -228,9 +228,9 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
|
||||
return typed.ID
|
||||
case database.AIGatewayKey:
|
||||
return typed.ID
|
||||
case database.AuditableGroupAiBudget:
|
||||
case database.AuditableGroupAIBudget:
|
||||
return typed.GroupID
|
||||
case database.AuditableUserAiBudgetOverride:
|
||||
case database.AuditableUserAIBudgetOverride:
|
||||
return typed.UserID
|
||||
case database.Chat:
|
||||
return typed.ID
|
||||
@@ -293,18 +293,18 @@ func ResourceType[T Auditable](tgt T) database.ResourceType {
|
||||
return database.ResourceTypeIdpSyncSettingsGroup
|
||||
case database.TaskTable:
|
||||
return database.ResourceTypeTask
|
||||
case database.AiSeatState:
|
||||
return database.ResourceTypeAiSeat
|
||||
case database.AISeatState:
|
||||
return database.ResourceTypeAISeat
|
||||
case database.AIProvider:
|
||||
return database.ResourceTypeAIProvider
|
||||
case database.AIProviderKey:
|
||||
return database.ResourceTypeAIProviderKey
|
||||
case database.AIGatewayKey:
|
||||
return database.ResourceTypeAIGatewayKey
|
||||
case database.AuditableGroupAiBudget:
|
||||
return database.ResourceTypeGroupAiBudget
|
||||
case database.AuditableUserAiBudgetOverride:
|
||||
return database.ResourceTypeUserAiBudgetOverride
|
||||
case database.AuditableGroupAIBudget:
|
||||
return database.ResourceTypeGroupAIBudget
|
||||
case database.AuditableUserAIBudgetOverride:
|
||||
return database.ResourceTypeUserAIBudgetOverride
|
||||
case database.Chat:
|
||||
return database.ResourceTypeChat
|
||||
case database.UserSecret:
|
||||
@@ -369,7 +369,7 @@ func ResourceRequiresOrgID[T Auditable]() bool {
|
||||
return true
|
||||
case database.TaskTable:
|
||||
return true
|
||||
case database.AiSeatState:
|
||||
case database.AISeatState:
|
||||
return false
|
||||
case database.AIProvider:
|
||||
// AI providers are deployment-scoped, not org-scoped.
|
||||
@@ -381,10 +381,10 @@ func ResourceRequiresOrgID[T Auditable]() bool {
|
||||
case database.AIGatewayKey:
|
||||
// AI Gateway keys are deployment-scoped, not org-scoped.
|
||||
return false
|
||||
case database.AuditableGroupAiBudget:
|
||||
case database.AuditableGroupAIBudget:
|
||||
// Group AI budgets are org-scoped through their parent group.
|
||||
return true
|
||||
case database.AuditableUserAiBudgetOverride:
|
||||
case database.AuditableUserAIBudgetOverride:
|
||||
// User AI budget overrides are org-scoped through their
|
||||
// attributed group.
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user