121 changed files with 1240 additions and 150 deletions
@ -1,52 +1,64 @@ |
|||||
--- |
--- |
||||
repos: |
repos: |
||||
- repo: https://github.com/pre-commit/pre-commit-hooks |
- repo: https://github.com/pre-commit/pre-commit-hooks |
||||
rev: v6.0.0 |
rev: v6.0.0 |
||||
hooks: |
hooks: |
||||
- id: check-yaml |
- id: check-yaml |
||||
- id: check-json |
- id: check-json |
||||
- id: check-toml |
- id: check-toml |
||||
- id: mixed-line-ending |
- id: mixed-line-ending |
||||
args: ["--fix=no"] |
args: ["--fix=no"] |
||||
- id: end-of-file-fixer |
- id: end-of-file-fixer |
||||
exclude: "(.*js$|.*css$)" |
exclude: "(.*js$|.*css$)" |
||||
- id: check-case-conflict |
- id: check-case-conflict |
||||
- id: check-merge-conflict |
- id: check-merge-conflict |
||||
- id: detect-private-key |
- id: detect-private-key |
||||
- id: check-symlinks |
- id: check-symlinks |
||||
- id: forbid-submodules |
- id: forbid-submodules |
||||
- repo: local |
- repo: local |
||||
hooks: |
hooks: |
||||
- id: fmt |
- id: fmt |
||||
name: fmt |
name: fmt |
||||
description: Format files with cargo fmt. |
description: Format files with cargo fmt. |
||||
entry: cargo fmt |
entry: cargo fmt |
||||
language: system |
language: system |
||||
types: [rust] |
types: [rust] |
||||
args: ["--", "--check"] |
args: ["--", "--check"] |
||||
- id: cargo-test |
- id: cargo-test |
||||
name: cargo test |
name: cargo test |
||||
description: Test the package for errors. |
description: Test the package for errors. |
||||
entry: cargo test |
entry: cargo test |
||||
language: system |
language: system |
||||
args: ["--features", "sqlite,mysql,postgresql,enable_mimalloc", "--"] |
args: |
||||
types_or: [rust, file] |
[ |
||||
files: (Cargo.toml|Cargo.lock|rust-toolchain.toml|rustfmt.toml|.*\.rs$) |
"--features", |
||||
pass_filenames: false |
"sqlite,mysql,postgresql,cockroachdb,enable_mimalloc", |
||||
- id: cargo-clippy |
"--", |
||||
name: cargo clippy |
] |
||||
description: Lint Rust sources |
types_or: [rust, file] |
||||
entry: cargo clippy |
files: (Cargo.toml|Cargo.lock|rust-toolchain.toml|rustfmt.toml|.*\.rs$) |
||||
language: system |
pass_filenames: false |
||||
args: ["--features", "sqlite,mysql,postgresql,enable_mimalloc", "--", "-D", "warnings"] |
- id: cargo-clippy |
||||
types_or: [rust, file] |
name: cargo clippy |
||||
files: (Cargo.toml|Cargo.lock|rust-toolchain.toml|rustfmt.toml|.*\.rs$) |
description: Lint Rust sources |
||||
pass_filenames: false |
entry: cargo clippy |
||||
- id: check-docker-templates |
language: system |
||||
name: check docker templates |
args: |
||||
description: Check if the Docker templates are updated |
[ |
||||
language: system |
"--features", |
||||
entry: sh |
"sqlite,mysql,postgresql,cockroachdb,enable_mimalloc", |
||||
args: |
"--", |
||||
- "-c" |
"-D", |
||||
- "cd docker && make" |
"warnings", |
||||
|
] |
||||
|
types_or: [rust, file] |
||||
|
files: (Cargo.toml|Cargo.lock|rust-toolchain.toml|rustfmt.toml|.*\.rs$) |
||||
|
pass_filenames: false |
||||
|
- id: check-docker-templates |
||||
|
name: check docker templates |
||||
|
description: Check if the Docker templates are updated |
||||
|
language: system |
||||
|
entry: sh |
||||
|
args: |
||||
|
- "-c" |
||||
|
- "cd docker && make" |
||||
|
@ -0,0 +1,13 @@ |
|||||
|
DROP TABLE devices; |
||||
|
DROP TABLE attachments; |
||||
|
DROP TABLE users_collections; |
||||
|
DROP TABLE users_organizations; |
||||
|
DROP TABLE folders_ciphers; |
||||
|
DROP TABLE ciphers_collections; |
||||
|
DROP TABLE twofactor; |
||||
|
DROP TABLE invitations; |
||||
|
DROP TABLE collections; |
||||
|
DROP TABLE folders; |
||||
|
DROP TABLE ciphers; |
||||
|
DROP TABLE users; |
||||
|
DROP TABLE organizations; |
@ -0,0 +1,121 @@ |
|||||
|
CREATE TABLE users ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL, |
||||
|
updated_at TIMESTAMP NOT NULL, |
||||
|
email VARCHAR(255) NOT NULL UNIQUE, |
||||
|
name TEXT NOT NULL, |
||||
|
password_hash BYTEA NOT NULL, |
||||
|
salt BYTEA NOT NULL, |
||||
|
password_iterations INT4 NOT NULL, |
||||
|
password_hint TEXT, |
||||
|
akey TEXT NOT NULL, |
||||
|
private_key TEXT, |
||||
|
public_key TEXT, |
||||
|
totp_secret TEXT, |
||||
|
totp_recover TEXT, |
||||
|
security_stamp TEXT NOT NULL, |
||||
|
equivalent_domains TEXT NOT NULL, |
||||
|
excluded_globals TEXT NOT NULL, |
||||
|
client_kdf_type INT4 NOT NULL DEFAULT 0, |
||||
|
client_kdf_iter INT4 NOT NULL DEFAULT 100000 |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE devices ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL, |
||||
|
updated_at TIMESTAMP NOT NULL, |
||||
|
user_uuid CHAR(36) NOT NULL REFERENCES users (uuid), |
||||
|
name TEXT NOT NULL, |
||||
|
atype INT4 NOT NULL, |
||||
|
push_token TEXT, |
||||
|
refresh_token TEXT NOT NULL, |
||||
|
twofactor_remember TEXT |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE organizations ( |
||||
|
uuid VARCHAR(40) NOT NULL PRIMARY KEY, |
||||
|
name TEXT NOT NULL, |
||||
|
billing_email TEXT NOT NULL |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE ciphers ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL, |
||||
|
updated_at TIMESTAMP NOT NULL, |
||||
|
user_uuid CHAR(36) REFERENCES users (uuid), |
||||
|
organization_uuid CHAR(36) REFERENCES organizations (uuid), |
||||
|
atype INT4 NOT NULL, |
||||
|
name TEXT NOT NULL, |
||||
|
notes TEXT, |
||||
|
fields TEXT, |
||||
|
data TEXT NOT NULL, |
||||
|
favorite BOOLEAN NOT NULL, |
||||
|
password_history TEXT |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE attachments ( |
||||
|
id CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
cipher_uuid CHAR(36) NOT NULL REFERENCES ciphers (uuid), |
||||
|
file_name TEXT NOT NULL, |
||||
|
file_size INT4 NOT NULL, |
||||
|
akey TEXT |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE folders ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL, |
||||
|
updated_at TIMESTAMP NOT NULL, |
||||
|
user_uuid CHAR(36) NOT NULL REFERENCES users (uuid), |
||||
|
name TEXT NOT NULL |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE collections ( |
||||
|
uuid VARCHAR(40) NOT NULL PRIMARY KEY, |
||||
|
org_uuid VARCHAR(40) NOT NULL REFERENCES organizations (uuid), |
||||
|
name TEXT NOT NULL |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE users_collections ( |
||||
|
user_uuid CHAR(36) NOT NULL REFERENCES users (uuid), |
||||
|
collection_uuid CHAR(36) NOT NULL REFERENCES collections (uuid), |
||||
|
read_only BOOLEAN NOT NULL DEFAULT false, |
||||
|
PRIMARY KEY (user_uuid, collection_uuid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE users_organizations ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
user_uuid CHAR(36) NOT NULL REFERENCES users (uuid), |
||||
|
org_uuid CHAR(36) NOT NULL REFERENCES organizations (uuid), |
||||
|
|
||||
|
access_all BOOLEAN NOT NULL, |
||||
|
akey TEXT NOT NULL, |
||||
|
status INT4 NOT NULL, |
||||
|
atype INT4 NOT NULL, |
||||
|
|
||||
|
UNIQUE (user_uuid, org_uuid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE folders_ciphers ( |
||||
|
cipher_uuid CHAR(36) NOT NULL REFERENCES ciphers (uuid), |
||||
|
folder_uuid CHAR(36) NOT NULL REFERENCES folders (uuid), |
||||
|
PRIMARY KEY (cipher_uuid, folder_uuid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE ciphers_collections ( |
||||
|
cipher_uuid CHAR(36) NOT NULL REFERENCES ciphers (uuid), |
||||
|
collection_uuid CHAR(36) NOT NULL REFERENCES collections (uuid), |
||||
|
PRIMARY KEY (cipher_uuid, collection_uuid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE twofactor ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
user_uuid CHAR(36) NOT NULL REFERENCES users (uuid), |
||||
|
atype INT4 NOT NULL, |
||||
|
enabled BOOLEAN NOT NULL, |
||||
|
data TEXT NOT NULL, |
||||
|
UNIQUE (user_uuid, atype) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE invitations ( |
||||
|
email VARCHAR(255) NOT NULL PRIMARY KEY |
||||
|
); |
@ -0,0 +1,26 @@ |
|||||
|
ALTER TABLE attachments ALTER COLUMN id TYPE CHAR(36); |
||||
|
ALTER TABLE attachments ALTER COLUMN cipher_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users ALTER COLUMN email TYPE VARCHAR(255); |
||||
|
ALTER TABLE devices ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE devices ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE organizations ALTER COLUMN uuid TYPE CHAR(40); |
||||
|
ALTER TABLE ciphers ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE ciphers ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE ciphers ALTER COLUMN organization_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE folders ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE folders ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE collections ALTER COLUMN uuid TYPE CHAR(40); |
||||
|
ALTER TABLE collections ALTER COLUMN org_uuid TYPE CHAR(40); |
||||
|
ALTER TABLE users_collections ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users_collections ALTER COLUMN collection_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN org_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE folders_ciphers ALTER COLUMN cipher_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE folders_ciphers ALTER COLUMN folder_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE ciphers_collections ALTER COLUMN cipher_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE ciphers_collections ALTER COLUMN collection_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE twofactor ALTER COLUMN uuid TYPE CHAR(36); |
||||
|
ALTER TABLE twofactor ALTER COLUMN user_uuid TYPE CHAR(36); |
||||
|
ALTER TABLE invitations ALTER COLUMN email TYPE VARCHAR(255); |
@ -0,0 +1,27 @@ |
|||||
|
-- Switch from CHAR() types to VARCHAR() types to avoid padding issues. |
||||
|
ALTER TABLE attachments ALTER COLUMN id TYPE TEXT; |
||||
|
ALTER TABLE attachments ALTER COLUMN cipher_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users ALTER COLUMN email TYPE TEXT; |
||||
|
ALTER TABLE devices ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE devices ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE organizations ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE ciphers ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE ciphers ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE ciphers ALTER COLUMN organization_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE folders ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE folders ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE collections ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE collections ALTER COLUMN org_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users_collections ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users_collections ALTER COLUMN collection_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE users_organizations ALTER COLUMN org_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE folders_ciphers ALTER COLUMN cipher_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE folders_ciphers ALTER COLUMN folder_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE ciphers_collections ALTER COLUMN cipher_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE ciphers_collections ALTER COLUMN collection_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE twofactor ALTER COLUMN uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE twofactor ALTER COLUMN user_uuid TYPE VARCHAR(40); |
||||
|
ALTER TABLE invitations ALTER COLUMN email TYPE TEXT; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE twofactor ADD COLUMN last_used INT4 NOT NULL DEFAULT 0; |
@ -0,0 +1 @@ |
|||||
|
|
@ -0,0 +1,5 @@ |
|||||
|
ALTER TABLE users ADD COLUMN verified_at TIMESTAMP DEFAULT NULL; |
||||
|
ALTER TABLE users ADD COLUMN last_verifying_at TIMESTAMP DEFAULT NULL; |
||||
|
ALTER TABLE users ADD COLUMN login_verify_count INT4 NOT NULL DEFAULT 0; |
||||
|
ALTER TABLE users ADD COLUMN email_new VARCHAR(255) DEFAULT NULL; |
||||
|
ALTER TABLE users ADD COLUMN email_new_token VARCHAR(16) DEFAULT NULL; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE org_policies; |
@ -0,0 +1,9 @@ |
|||||
|
CREATE TABLE org_policies ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
org_uuid CHAR(36) NOT NULL REFERENCES organizations (uuid), |
||||
|
atype INT4 NOT NULL, |
||||
|
enabled BOOLEAN NOT NULL, |
||||
|
data TEXT NOT NULL, |
||||
|
|
||||
|
UNIQUE (org_uuid, atype) |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
|
@ -0,0 +1,3 @@ |
|||||
|
ALTER TABLE ciphers |
||||
|
ADD COLUMN |
||||
|
deleted_at TIMESTAMP; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE users_collections |
||||
|
ADD COLUMN hide_passwords BOOLEAN NOT NULL DEFAULT FALSE; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE favorites; |
@ -0,0 +1,6 @@ |
|||||
|
CREATE TABLE favorites ( |
||||
|
user_uuid VARCHAR(40) NOT NULL REFERENCES users(uuid), |
||||
|
cipher_uuid VARCHAR(40) NOT NULL REFERENCES ciphers(uuid), |
||||
|
|
||||
|
PRIMARY KEY (user_uuid, cipher_uuid) |
||||
|
); |
@ -0,0 +1,11 @@ |
|||||
|
ALTER TABLE ciphers |
||||
|
ADD COLUMN favorite BOOLEAN NOT NULL DEFAULT FALSE; |
||||
|
|
||||
|
-- Transfer favorite status for user-owned ciphers. |
||||
|
UPDATE ciphers |
||||
|
SET favorite = TRUE |
||||
|
WHERE EXISTS ( |
||||
|
SELECT * FROM favorites |
||||
|
WHERE favorites.user_uuid = ciphers.user_uuid |
||||
|
AND favorites.cipher_uuid = ciphers.uuid |
||||
|
); |
@ -0,0 +1,9 @@ |
|||||
|
-- Transfer favorite status for user-owned ciphers. |
||||
|
INSERT INTO favorites(user_uuid, cipher_uuid) |
||||
|
SELECT user_uuid, uuid |
||||
|
FROM ciphers |
||||
|
WHERE favorite = TRUE |
||||
|
AND user_uuid IS NOT NULL; |
||||
|
|
||||
|
ALTER TABLE ciphers |
||||
|
DROP COLUMN favorite; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE users ADD COLUMN enabled BOOLEAN NOT NULL DEFAULT true; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE users ADD COLUMN stamp_exception TEXT DEFAULT NULL; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE sends; |
@ -0,0 +1,25 @@ |
|||||
|
CREATE TABLE sends ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
user_uuid CHAR(36) REFERENCES users (uuid), |
||||
|
organization_uuid CHAR(36) REFERENCES organizations (uuid), |
||||
|
|
||||
|
name TEXT NOT NULL, |
||||
|
notes TEXT, |
||||
|
|
||||
|
atype INT4 NOT NULL, |
||||
|
data TEXT NOT NULL, |
||||
|
key TEXT NOT NULL, |
||||
|
password_hash BYTEA, |
||||
|
password_salt BYTEA, |
||||
|
password_iter INT4, |
||||
|
|
||||
|
max_access_count INT4, |
||||
|
access_count INT4 NOT NULL, |
||||
|
|
||||
|
creation_date TIMESTAMP NOT NULL, |
||||
|
revision_date TIMESTAMP NOT NULL, |
||||
|
expiration_date TIMESTAMP, |
||||
|
deletion_date TIMESTAMP NOT NULL, |
||||
|
|
||||
|
disabled BOOLEAN NOT NULL |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE sends RENAME COLUMN key TO akey; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE ciphers |
||||
|
ADD COLUMN reprompt INT4; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE sends |
||||
|
ADD COLUMN hide_email BOOLEAN; |
@ -0,0 +1,5 @@ |
|||||
|
ALTER TABLE organizations |
||||
|
ADD COLUMN private_key TEXT; |
||||
|
|
||||
|
ALTER TABLE organizations |
||||
|
ADD COLUMN public_key TEXT; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE emergency_access; |
@ -0,0 +1,14 @@ |
|||||
|
CREATE TABLE emergency_access ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
grantor_uuid CHAR(36) REFERENCES users (uuid), |
||||
|
grantee_uuid CHAR(36) REFERENCES users (uuid), |
||||
|
email VARCHAR(255), |
||||
|
key_encrypted TEXT, |
||||
|
atype INT4 NOT NULL, |
||||
|
status INT4 NOT NULL, |
||||
|
wait_time_days INT4 NOT NULL, |
||||
|
recovery_initiated_at TIMESTAMP, |
||||
|
last_notification_at TIMESTAMP, |
||||
|
updated_at TIMESTAMP NOT NULL, |
||||
|
created_at TIMESTAMP NOT NULL |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE twofactor_incomplete; |
@ -0,0 +1,9 @@ |
|||||
|
CREATE TABLE twofactor_incomplete ( |
||||
|
user_uuid VARCHAR(40) NOT NULL REFERENCES users(uuid), |
||||
|
device_uuid VARCHAR(40) NOT NULL, |
||||
|
device_name TEXT NOT NULL, |
||||
|
login_time TIMESTAMP NOT NULL, |
||||
|
ip_address TEXT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY (user_uuid, device_uuid) |
||||
|
); |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE users |
||||
|
ADD COLUMN api_key TEXT; |
@ -0,0 +1,4 @@ |
|||||
|
-- First remove the previous primary key |
||||
|
ALTER TABLE devices DROP CONSTRAINT devices_pkey; |
||||
|
-- Add a new combined one |
||||
|
ALTER TABLE devices ADD PRIMARY KEY (uuid, user_uuid); |
@ -0,0 +1,3 @@ |
|||||
|
DROP TABLE groups; |
||||
|
DROP TABLE groups_users; |
||||
|
DROP TABLE collections_groups; |
@ -0,0 +1,23 @@ |
|||||
|
CREATE TABLE groups ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
organizations_uuid VARCHAR(40) NOT NULL REFERENCES organizations (uuid), |
||||
|
name VARCHAR(100) NOT NULL, |
||||
|
access_all BOOLEAN NOT NULL, |
||||
|
external_id VARCHAR(300) NULL, |
||||
|
creation_date TIMESTAMP NOT NULL, |
||||
|
revision_date TIMESTAMP NOT NULL |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE groups_users ( |
||||
|
groups_uuid CHAR(36) NOT NULL REFERENCES groups (uuid), |
||||
|
users_organizations_uuid VARCHAR(36) NOT NULL REFERENCES users_organizations (uuid), |
||||
|
PRIMARY KEY (groups_uuid, users_organizations_uuid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE collections_groups ( |
||||
|
collections_uuid VARCHAR(40) NOT NULL REFERENCES collections (uuid), |
||||
|
groups_uuid CHAR(36) NOT NULL REFERENCES groups (uuid), |
||||
|
read_only BOOLEAN NOT NULL, |
||||
|
hide_passwords BOOLEAN NOT NULL, |
||||
|
PRIMARY KEY (collections_uuid, groups_uuid) |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE event; |
@ -0,0 +1,19 @@ |
|||||
|
CREATE TABLE event ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
event_type INT4 NOT NULL, |
||||
|
user_uuid CHAR(36), |
||||
|
org_uuid CHAR(36), |
||||
|
cipher_uuid CHAR(36), |
||||
|
collection_uuid CHAR(36), |
||||
|
group_uuid CHAR(36), |
||||
|
org_user_uuid CHAR(36), |
||||
|
act_user_uuid CHAR(36), |
||||
|
device_type INT4, |
||||
|
ip_address TEXT, |
||||
|
event_date TIMESTAMP NOT NULL, |
||||
|
policy_uuid CHAR(36), |
||||
|
provider_uuid CHAR(36), |
||||
|
provider_user_uuid CHAR(36), |
||||
|
provider_org_uuid CHAR(36), |
||||
|
UNIQUE (uuid) |
||||
|
); |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE users_organizations |
||||
|
ADD COLUMN reset_password_key TEXT; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE users |
||||
|
ADD COLUMN avatar_color TEXT; |
@ -0,0 +1,7 @@ |
|||||
|
ALTER TABLE users |
||||
|
ADD COLUMN |
||||
|
client_kdf_memory INT4 DEFAULT NULL; |
||||
|
|
||||
|
ALTER TABLE users |
||||
|
ADD COLUMN |
||||
|
client_kdf_parallelism INT4 DEFAULT NULL; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE devices ADD COLUMN push_uuid TEXT; |
@ -0,0 +1,10 @@ |
|||||
|
CREATE TABLE organization_api_key ( |
||||
|
uuid CHAR(36) NOT NULL, |
||||
|
org_uuid CHAR(36) NOT NULL REFERENCES organizations(uuid), |
||||
|
atype INT4 NOT NULL, |
||||
|
api_key VARCHAR(255), |
||||
|
revision_date TIMESTAMP NOT NULL, |
||||
|
PRIMARY KEY(uuid, org_uuid) |
||||
|
); |
||||
|
|
||||
|
ALTER TABLE users ADD COLUMN external_id TEXT; |
@ -0,0 +1,19 @@ |
|||||
|
CREATE TABLE auth_requests ( |
||||
|
uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
user_uuid CHAR(36) NOT NULL, |
||||
|
organization_uuid CHAR(36), |
||||
|
request_device_identifier CHAR(36) NOT NULL, |
||||
|
device_type INT4 NOT NULL, |
||||
|
request_ip TEXT NOT NULL, |
||||
|
response_device_id CHAR(36), |
||||
|
access_code TEXT NOT NULL, |
||||
|
public_key TEXT NOT NULL, |
||||
|
enc_key TEXT NOT NULL, |
||||
|
master_password_hash TEXT NOT NULL, |
||||
|
approved BOOLEAN, |
||||
|
creation_date TIMESTAMP NOT NULL, |
||||
|
response_date TIMESTAMP, |
||||
|
authentication_date TIMESTAMP, |
||||
|
FOREIGN KEY(user_uuid) REFERENCES users(uuid), |
||||
|
FOREIGN KEY(organization_uuid) REFERENCES organizations(uuid) |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE collections ADD COLUMN external_id TEXT; |
@ -0,0 +1,5 @@ |
|||||
|
ALTER TABLE auth_requests |
||||
|
ALTER COLUMN master_password_hash DROP NOT NULL; |
||||
|
|
||||
|
ALTER TABLE auth_requests |
||||
|
ALTER COLUMN enc_key DROP NOT NULL; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE users_organizations |
||||
|
ADD COLUMN external_id TEXT; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE sso_nonce; |
@ -0,0 +1,4 @@ |
|||||
|
CREATE TABLE sso_nonce ( |
||||
|
nonce CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now() |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE users_organizations DROP COLUMN invited_by_email; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE users_organizations ADD COLUMN invited_by_email TEXT DEFAULT NULL; |
@ -0,0 +1,2 @@ |
|||||
|
ALTER TABLE ciphers |
||||
|
ADD COLUMN "key" TEXT; |
@ -0,0 +1,3 @@ |
|||||
|
ALTER TABLE attachments |
||||
|
ALTER COLUMN file_size TYPE BIGINT, |
||||
|
ALTER COLUMN file_size SET NOT NULL; |
@ -0,0 +1,3 @@ |
|||||
|
ALTER TABLE twofactor |
||||
|
ALTER COLUMN last_used TYPE BIGINT, |
||||
|
ALTER COLUMN last_used SET NOT NULL; |
@ -0,0 +1,6 @@ |
|||||
|
DROP TABLE sso_nonce; |
||||
|
|
||||
|
CREATE TABLE sso_nonce ( |
||||
|
nonce CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now() |
||||
|
); |
@ -0,0 +1,8 @@ |
|||||
|
DROP TABLE sso_nonce; |
||||
|
|
||||
|
CREATE TABLE sso_nonce ( |
||||
|
state TEXT NOT NULL PRIMARY KEY, |
||||
|
nonce TEXT NOT NULL, |
||||
|
redirect_uri TEXT NOT NULL, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now() |
||||
|
); |
@ -0,0 +1,8 @@ |
|||||
|
DROP TABLE IF EXISTS sso_nonce; |
||||
|
|
||||
|
CREATE TABLE sso_nonce ( |
||||
|
state TEXT NOT NULL PRIMARY KEY, |
||||
|
nonce TEXT NOT NULL, |
||||
|
redirect_uri TEXT NOT NULL, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now() |
||||
|
); |
@ -0,0 +1,9 @@ |
|||||
|
DROP TABLE IF EXISTS sso_nonce; |
||||
|
|
||||
|
CREATE TABLE sso_nonce ( |
||||
|
state TEXT NOT NULL PRIMARY KEY, |
||||
|
nonce TEXT NOT NULL, |
||||
|
verifier TEXT, |
||||
|
redirect_uri TEXT NOT NULL, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now() |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE IF EXISTS sso_users; |
@ -0,0 +1,7 @@ |
|||||
|
CREATE TABLE sso_users ( |
||||
|
user_uuid CHAR(36) NOT NULL PRIMARY KEY, |
||||
|
identifier TEXT NOT NULL UNIQUE, |
||||
|
created_at TIMESTAMP NOT NULL DEFAULT now(), |
||||
|
|
||||
|
FOREIGN KEY(user_uuid) REFERENCES users(uuid) |
||||
|
); |
@ -0,0 +1,3 @@ |
|||||
|
ALTER TABLE sso_users |
||||
|
DROP CONSTRAINT "sso_users_user_uuid_fkey", |
||||
|
ADD CONSTRAINT "sso_users_user_uuid_fkey" FOREIGN KEY(user_uuid) REFERENCES users(uuid) ON UPDATE CASCADE ON DELETE CASCADE; |
@ -0,0 +1 @@ |
|||||
|
DROP TABLE twofactor_duo_ctx; |
@ -0,0 +1,8 @@ |
|||||
|
CREATE TABLE twofactor_duo_ctx ( |
||||
|
state VARCHAR(64) NOT NULL, |
||||
|
user_email VARCHAR(255) NOT NULL, |
||||
|
nonce VARCHAR(64) NOT NULL, |
||||
|
exp BIGINT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY (state) |
||||
|
); |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE twofactor_incomplete DROP COLUMN device_type; |
@ -0,0 +1 @@ |
|||||
|
ALTER TABLE twofactor_incomplete ADD COLUMN device_type INT4 NOT NULL DEFAULT 14; -- 14 = Unknown Browser |
@ -0,0 +1,5 @@ |
|||||
|
ALTER TABLE users_collections |
||||
|
ADD COLUMN manage BOOLEAN NOT NULL DEFAULT FALSE; |
||||
|
|
||||
|
ALTER TABLE collections_groups |
||||
|
ADD COLUMN manage BOOLEAN NOT NULL DEFAULT FALSE; |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue