44 lines
1.4 KiB
SQL
44 lines
1.4 KiB
SQL
-- 007-ai-agent-profile-policy.sql
|
|||
|
|
-- Page AI agent profile policy: SQLite 是 profile 授权与归属真相层。
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ai_agent_profiles (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
agent_id TEXT NOT NULL,
|
||
|
|
profile_kind TEXT NOT NULL,
|
||
|
|
owner_user_id TEXT NOT NULL DEFAULT '',
|
||
|
|
base_profile_name TEXT NOT NULL,
|
||
|
|
isolated_profile_name TEXT NOT NULL,
|
||
|
|
display_name TEXT NOT NULL,
|
||
|
|
status TEXT NOT NULL DEFAULT 'active',
|
||
|
|
created_at TEXT NOT NULL,
|
||
|
|
updated_at TEXT NOT NULL,
|
||
|
|
revision INTEGER NOT NULL DEFAULT 1,
|
||
|
|
UNIQUE(agent_id, profile_kind, owner_user_id, base_profile_name)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_agent_profiles_agent
|
||
|
|
ON ai_agent_profiles(agent_id, status);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_agent_profiles_owner
|
||
|
|
ON ai_agent_profiles(owner_user_id, status);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ai_agent_profile_grants (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
profile_id TEXT NOT NULL REFERENCES ai_agent_profiles(id) ON DELETE CASCADE,
|
||
|
|
user_id TEXT NOT NULL DEFAULT '',
|
||
|
|
role TEXT NOT NULL,
|
||
|
|
can_run INTEGER NOT NULL DEFAULT 1,
|
||
|
|
can_manage_skills INTEGER NOT NULL DEFAULT 0,
|
||
|
|
can_manage_config INTEGER NOT NULL DEFAULT 0,
|
||
|
|
created_at TEXT NOT NULL,
|
||
|
|
updated_at TEXT NOT NULL,
|
||
|
|
revision INTEGER NOT NULL DEFAULT 1,
|
||
|
|
UNIQUE(profile_id, user_id, role)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_agent_profile_grants_profile
|
||
|
|
ON ai_agent_profile_grants(profile_id);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_agent_profile_grants_user
|
||
|
|
ON ai_agent_profile_grants(user_id);
|