Files
rustpad/migrations/sqlite/0010_private_sharing.sql
T
2026-07-23 15:07:59 +02:00

23 lines
995 B
SQL

ALTER TABLE workspaces ADD COLUMN is_private INTEGER NOT NULL DEFAULT 0;
ALTER TABLE pads ADD COLUMN is_private INTEGER NOT NULL DEFAULT 0;
CREATE TABLE resource_permissions (
resource_kind TEXT NOT NULL,
resource_slug TEXT NOT NULL,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
permission TEXT NOT NULL CHECK(permission IN ('ro','rw')),
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(resource_kind, resource_slug, user_id)
);
CREATE INDEX idx_resource_permissions_user ON resource_permissions(user_id);
CREATE TABLE resource_share_links (
token_hash TEXT PRIMARY KEY,
resource_kind TEXT NOT NULL,
resource_slug TEXT NOT NULL,
permission TEXT NOT NULL CHECK(permission IN ('ro','rw')),
expires_at TEXT,
created_by INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
revoked_at TEXT
);
CREATE INDEX idx_resource_share_links_resource ON resource_share_links(resource_kind, resource_slug);