mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add ai_gateway_keys table and related RBAC (#25563)
Adds table to store keys that AI Gateway standalone replicas will use to authenticate into Coderd. Also adds RBAC and audit boilerplate.
This commit is contained in:
@@ -36,6 +36,7 @@ type Auditable interface {
|
||||
database.AiSeatState |
|
||||
database.AIProvider |
|
||||
database.AIProviderKey |
|
||||
database.AIGatewayKey |
|
||||
database.Chat |
|
||||
database.AuditableGroupAiBudget |
|
||||
database.UserSecret |
|
||||
|
||||
@@ -138,6 +138,8 @@ func ResourceTarget[T Auditable](tgt T) string {
|
||||
return typed.Name
|
||||
case database.AIProviderKey:
|
||||
return typed.ID.String()
|
||||
case database.AIGatewayKey:
|
||||
return typed.Name
|
||||
case database.AuditableGroupAiBudget:
|
||||
return typed.GroupName
|
||||
case database.Chat:
|
||||
@@ -222,6 +224,8 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
|
||||
return typed.ID
|
||||
case database.AIProviderKey:
|
||||
return typed.ID
|
||||
case database.AIGatewayKey:
|
||||
return typed.ID
|
||||
case database.AuditableGroupAiBudget:
|
||||
return typed.GroupID
|
||||
case database.Chat:
|
||||
@@ -291,6 +295,8 @@ func ResourceType[T Auditable](tgt T) database.ResourceType {
|
||||
return database.ResourceTypeAIProvider
|
||||
case database.AIProviderKey:
|
||||
return database.ResourceTypeAIProviderKey
|
||||
case database.AIGatewayKey:
|
||||
return database.ResourceTypeAIGatewayKey
|
||||
case database.AuditableGroupAiBudget:
|
||||
return database.ResourceTypeGroupAiBudget
|
||||
case database.Chat:
|
||||
@@ -366,6 +372,9 @@ func ResourceRequiresOrgID[T Auditable]() bool {
|
||||
// AI provider keys inherit the deployment scope of their parent
|
||||
// provider.
|
||||
return false
|
||||
case database.AIGatewayKey:
|
||||
// AI Gateway keys are deployment-scoped, not org-scoped.
|
||||
return false
|
||||
case database.AuditableGroupAiBudget:
|
||||
// Group AI budgets are org-scoped through their parent group.
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user