Implement file sharing functionality with public share links and associated API endpoints

This commit is contained in:
Leon Bösche
2026-01-24 21:06:18 +01:00
parent 4770380e38
commit 6bbdc157cb
12 changed files with 883 additions and 7 deletions

View File

@@ -0,0 +1,17 @@
-- Create file_share_links table
CREATE TABLE file_share_links (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
token TEXT NOT NULL UNIQUE,
file_id UUID NOT NULL REFERENCES files(id) ON DELETE CASCADE,
org_id UUID NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
created_by_user_id UUID NOT NULL REFERENCES users(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
expires_at TIMESTAMP WITH TIME ZONE,
is_revoked BOOLEAN DEFAULT FALSE
);
CREATE INDEX idx_file_share_links_token ON file_share_links(token);
CREATE INDEX idx_file_share_links_file_id ON file_share_links(file_id);
CREATE INDEX idx_file_share_links_org_id ON file_share_links(org_id);

View File

@@ -0,0 +1,10 @@
-- Drop file_share_links table
DROP TABLE IF EXISTS file_share_links;
expires_at TIMESTAMP WITH TIME ZONE,
is_revoked BOOLEAN DEFAULT FALSE
);
CREATE INDEX idx_file_share_links_token ON file_share_links(token);
CREATE INDEX idx_file_share_links_file_id ON file_share_links(file_id);
CREATE INDEX idx_file_share_links_org_id ON file_share_links(org_id);

View File

@@ -0,0 +1,3 @@
-- Drop file_share_links table
DROP TABLE IF EXISTS file_share_links;