feat: initial scaffold of unibus message bus (membership service + client lib + demo peers)
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
-- 001_init.sql — initial schema for the unibus membership/key-distribution service.
|
||||
-- Additive and idempotent: safe to apply repeatedly. Never modify this file;
|
||||
-- schema changes go in new numbered migrations (see .claude/rules/db_migrations.md).
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rooms (
|
||||
room_id TEXT PRIMARY KEY,
|
||||
subject TEXT NOT NULL,
|
||||
key_epoch INTEGER NOT NULL DEFAULT 1,
|
||||
encrypt INTEGER NOT NULL,
|
||||
persist INTEGER NOT NULL,
|
||||
sign_msgs INTEGER NOT NULL,
|
||||
owner_endpoint TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS members (
|
||||
room_id TEXT NOT NULL,
|
||||
endpoint TEXT NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
joined_at TEXT NOT NULL,
|
||||
sign_pub BLOB NOT NULL,
|
||||
kex_pub BLOB NOT NULL,
|
||||
PRIMARY KEY (room_id, endpoint)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS room_keys (
|
||||
room_id TEXT NOT NULL,
|
||||
epoch INTEGER NOT NULL,
|
||||
endpoint TEXT NOT NULL,
|
||||
sealed_key BLOB NOT NULL,
|
||||
PRIMARY KEY (room_id, epoch, endpoint)
|
||||
);
|
||||
Reference in New Issue
Block a user