You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							121 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							121 lines
						
					
					
						
							3.7 KiB
						
					
					
				| 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 INTEGER  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     INTEGER NOT NULL DEFAULT 0, | |
|   client_kdf_iter INTEGER 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         INTEGER  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             INTEGER  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   INTEGER 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     INTEGER NOT NULL, | |
|   atype      INTEGER 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     INTEGER  NOT NULL, | |
|   enabled   BOOLEAN  NOT NULL, | |
|   data      TEXT     NOT NULL, | |
|   UNIQUE (user_uuid, atype) | |
| ); | |
| 
 | |
| CREATE TABLE invitations ( | |
|     email   VARCHAR(255) NOT NULL PRIMARY KEY | |
| ); |