first commit
This commit is contained in:
46
Backend/schema.sql
Normal file
46
Backend/schema.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
username TEXT UNIQUE NOT NULL,
|
||||
client_salt TEXT NOT NULL,
|
||||
encrypted_master_key TEXT NOT NULL,
|
||||
hashed_auth_key TEXT NOT NULL,
|
||||
public_identity_key TEXT NOT NULL,
|
||||
public_signing_key TEXT NOT NULL,
|
||||
encrypted_private_keys TEXT NOT NULL, -- Added this column
|
||||
is_admin BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS channels (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT UNIQUE NOT NULL,
|
||||
type TEXT DEFAULT 'text',
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS roles (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
permissions JSONB
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS channel_keys (
|
||||
channel_id UUID NOT NULL,
|
||||
user_id UUID NOT NULL,
|
||||
encrypted_key_bundle TEXT NOT NULL,
|
||||
key_version INTEGER DEFAULT 1,
|
||||
PRIMARY KEY (channel_id, user_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
channel_id UUID NOT NULL,
|
||||
sender_id UUID NOT NULL,
|
||||
ciphertext TEXT NOT NULL,
|
||||
nonce TEXT NOT NULL,
|
||||
signature TEXT NOT NULL,
|
||||
key_version INTEGER NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
Reference in New Issue
Block a user