mirror of
https://github.com/coder/coder.git
synced 2026-06-03 13:08:25 +00:00
61 lines
1.6 KiB
SQL
61 lines
1.6 KiB
SQL
DROP VIEW IF EXISTS chats_expanded;
|
|
|
|
ALTER TABLE chats
|
|
ADD COLUMN user_acl jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
ADD COLUMN group_acl jsonb NOT NULL DEFAULT '{}'::jsonb;
|
|
|
|
ALTER TABLE chats
|
|
ADD CONSTRAINT chat_user_acl_not_null_jsonb
|
|
CHECK (user_acl IS NOT NULL AND jsonb_typeof(user_acl) = 'object'),
|
|
ADD CONSTRAINT chat_group_acl_not_null_jsonb
|
|
CHECK (group_acl IS NOT NULL AND jsonb_typeof(group_acl) = 'object'),
|
|
ADD CONSTRAINT chat_acl_only_on_root_chats
|
|
CHECK (
|
|
(parent_chat_id IS NULL AND root_chat_id IS NULL)
|
|
OR (
|
|
user_acl = '{}'::jsonb
|
|
AND group_acl = '{}'::jsonb
|
|
)
|
|
);
|
|
|
|
CREATE VIEW chats_expanded AS
|
|
SELECT
|
|
c.id,
|
|
c.owner_id,
|
|
c.workspace_id,
|
|
c.title,
|
|
c.status,
|
|
c.worker_id,
|
|
c.started_at,
|
|
c.heartbeat_at,
|
|
c.created_at,
|
|
c.updated_at,
|
|
c.parent_chat_id,
|
|
c.root_chat_id,
|
|
c.last_model_config_id,
|
|
c.archived,
|
|
c.last_error,
|
|
c.mode,
|
|
c.mcp_server_ids,
|
|
c.labels,
|
|
c.build_id,
|
|
c.agent_id,
|
|
c.pin_order,
|
|
c.last_read_message_id,
|
|
c.last_injected_context,
|
|
c.dynamic_tools,
|
|
c.organization_id,
|
|
c.plan_mode,
|
|
c.client_type,
|
|
c.last_turn_summary,
|
|
COALESCE(root.user_acl, c.user_acl) AS user_acl,
|
|
COALESCE(root.group_acl, c.group_acl) AS group_acl,
|
|
owner.username AS owner_username,
|
|
owner.name AS owner_name
|
|
FROM
|
|
chats c
|
|
LEFT JOIN chats root ON root.id = COALESCE(c.root_chat_id, c.parent_chat_id)
|
|
JOIN visible_users owner ON owner.id = c.owner_id;
|
|
|
|
ALTER TYPE api_key_scope ADD VALUE IF NOT EXISTS 'chat:share';
|