Files
microdao-daarion/supabase/migrations/000008_access_keys_capabilities.sql
Apple c552199eed chore: organize documentation structure for monorepo
- Create /docs structure (microdao, daarion, agents)
- Organize 61 cursor technical docs
- Add README files for each category
- Copy key documents to public categories
- Add GitHub setup instructions and scripts
2025-11-15 04:08:35 -08:00

59 lines
1.9 KiB
SQL

-- 000008_access_keys_capabilities.sql
-- Up
create table if not exists access_keys (
id text primary key, -- ak_...
subject_kind text not null
check (subject_kind in ('user','agent','integration','embassy')),
subject_id text not null, -- u_/ag_/...
team_id text references teams(id) on delete set null,
name text not null,
status text not null check (status in ('active','revoked','expired')),
created_at timestamptz not null default now(),
expires_at timestamptz,
last_used_at timestamptz
);
create index if not exists idx_access_keys_subject
on access_keys(subject_kind, subject_id);
create index if not exists idx_access_keys_team
on access_keys(team_id);
create table if not exists capabilities (
id text primary key, -- cap_...
code text not null unique, -- chat.message.send, wallet.stake.ringk, ...
description text not null
);
create table if not exists access_key_caps (
key_id text not null references access_keys(id) on delete cascade,
cap_id text not null references capabilities(id) on delete cascade,
primary key (key_id, cap_id)
);
create index if not exists idx_access_key_caps_cap_id
on access_key_caps(cap_id);
create table if not exists bundles (
id text primary key, -- bundle_...
name text not null unique, -- role.Member / plan.Premium / agent.default
created_at timestamptz not null default now()
);
create table if not exists bundle_caps (
bundle_id text not null references bundles(id) on delete cascade,
cap_id text not null references capabilities(id) on delete cascade,
primary key (bundle_id, cap_id)
);
create index if not exists idx_bundle_caps_cap_id
on bundle_caps(cap_id);
-- Down
drop table if exists bundle_caps cascade;
drop table if exists bundles cascade;
drop table if exists access_key_caps cascade;
drop table if exists capabilities cascade;
drop table if exists access_keys cascade;