T11: tags plugin + permissions plugin + entity links backend — 68 tests, 66.61% coverage
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
-- Permissions plugin initial migration: creates permissions and share_links tables
|
||||
CREATE TABLE IF NOT EXISTS permissions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id UUID NOT NULL,
|
||||
file_id UUID NOT NULL,
|
||||
user_id UUID NOT NULL,
|
||||
group_id UUID,
|
||||
access_level VARCHAR(10) NOT NULL DEFAULT 'read',
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
CONSTRAINT uq_permissions_file_user_level UNIQUE (tenant_id, file_id, user_id, access_level)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_permissions_file ON permissions(tenant_id, file_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_permissions_user ON permissions(tenant_id, user_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS share_links (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id UUID NOT NULL,
|
||||
file_id UUID NOT NULL,
|
||||
token VARCHAR(64) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255),
|
||||
expires_at TIMESTAMPTZ,
|
||||
access_level VARCHAR(10) NOT NULL DEFAULT 'download',
|
||||
created_by UUID,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS ix_share_links_token ON share_links(token);
|
||||
CREATE INDEX IF NOT EXISTS ix_share_links_file ON share_links(tenant_id, file_id);
|
||||
Reference in New Issue
Block a user