karadav/schema.sql

45 lines
1.2 KiB
MySQL
Raw Permalink Normal View History

2022-08-31 06:06:27 +00:00
CREATE TABLE users (
id INTEGER PRIMARY KEY NOT NULL,
login TEXT NOT NULL,
2022-08-31 06:06:27 +00:00
password TEXT NOT NULL,
quota INTEGER NULL,
is_admin INTEGER NOT NULL DEFAULT 0
);
CREATE UNIQUE INDEX users_login ON users(login);
2022-08-31 06:06:27 +00:00
CREATE TABLE locks (
user INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
2022-08-31 06:06:27 +00:00
uri TEXT NOT NULL,
token TEXT NOT NULL,
scope TEXT NOT NULL,
expiry TEXT NOT NULL
);
CREATE INDEX locks_uri ON locks (user, uri);
CREATE UNIQUE INDEX locks_unique ON locks (user, uri, token);
CREATE TABLE app_sessions (
user INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
2022-08-31 06:06:27 +00:00
token TEXT NULL, -- Temporary token, exchanged for an app password
user_agent TEXT NULL,
password TEXT NULL,
expiry TEXT NOT NULL
);
CREATE INDEX app_sessions_idx ON app_sessions (user);
2022-08-31 07:57:49 +00:00
CREATE UNIQUE INDEX app_sessions_token ON app_sessions (token);
2022-08-31 06:06:27 +00:00
-- Files properties stored using PROPPATCH
-- We are not using this currently, this is just to get test coverage from litmus
CREATE TABLE properties (
user INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
2022-08-31 06:06:27 +00:00
uri TEXT NOT NULL,
name TEXT NOT NULL,
2022-09-30 13:17:02 +00:00
attributes TEXT NULL,
xml TEXT NULL
2022-08-31 06:06:27 +00:00
);
2022-09-30 13:17:02 +00:00
CREATE UNIQUE INDEX properties_unique ON properties (user, uri, name);