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:
@@ -0,0 +1,92 @@
|
||||
-- name: GetAIProviderByID :one
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
ai_providers
|
||||
WHERE
|
||||
id = @id::uuid AND deleted = FALSE;
|
||||
|
||||
-- name: GetAIProviderByName :one
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
ai_providers
|
||||
WHERE
|
||||
name = @name::text AND deleted = FALSE;
|
||||
|
||||
-- name: GetAIProviders :many
|
||||
-- Returns AI provider rows. Soft-deleted and disabled rows are excluded
|
||||
-- unless include_deleted or include_disabled is set.
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
ai_providers
|
||||
WHERE
|
||||
(@include_deleted::boolean OR NOT deleted)
|
||||
AND (@include_disabled::boolean OR enabled)
|
||||
ORDER BY
|
||||
name ASC;
|
||||
|
||||
-- name: InsertAIProvider :one
|
||||
INSERT INTO ai_providers (
|
||||
id,
|
||||
type,
|
||||
name,
|
||||
display_name,
|
||||
enabled,
|
||||
base_url,
|
||||
settings,
|
||||
settings_key_id
|
||||
) VALUES (
|
||||
@id::uuid,
|
||||
@type::ai_provider_type,
|
||||
@name::text,
|
||||
sqlc.narg('display_name')::text,
|
||||
@enabled::boolean,
|
||||
@base_url::text,
|
||||
sqlc.narg('settings')::text,
|
||||
sqlc.narg('settings_key_id')::text
|
||||
)
|
||||
RETURNING
|
||||
*;
|
||||
|
||||
-- name: UpdateAIProvider :one
|
||||
UPDATE
|
||||
ai_providers
|
||||
SET
|
||||
display_name = sqlc.narg('display_name')::text,
|
||||
enabled = @enabled::boolean,
|
||||
base_url = @base_url::text,
|
||||
settings = sqlc.narg('settings')::text,
|
||||
settings_key_id = sqlc.narg('settings_key_id')::text,
|
||||
updated_at = NOW()
|
||||
WHERE
|
||||
id = @id::uuid AND deleted = FALSE
|
||||
RETURNING
|
||||
*;
|
||||
|
||||
-- name: DeleteAIProviderByID :exec
|
||||
UPDATE
|
||||
ai_providers
|
||||
SET
|
||||
deleted = TRUE,
|
||||
enabled = FALSE,
|
||||
updated_at = NOW()
|
||||
WHERE
|
||||
id = @id::uuid AND deleted = FALSE;
|
||||
|
||||
-- name: UpdateEncryptedAIProviderSettings :one
|
||||
-- Updates only the encrypted columns (settings, settings_key_id) and
|
||||
-- the updated_at timestamp on a row, regardless of its deleted flag.
|
||||
-- Used by the dbcrypt key rotation utility to re-encrypt or decrypt
|
||||
-- rows in place.
|
||||
UPDATE
|
||||
ai_providers
|
||||
SET
|
||||
settings = sqlc.narg('settings')::text,
|
||||
settings_key_id = sqlc.narg('settings_key_id')::text,
|
||||
updated_at = NOW()
|
||||
WHERE
|
||||
id = @id::uuid
|
||||
RETURNING
|
||||
*;
|
||||
Reference in New Issue
Block a user