mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
Merging wave server code into mono-repo
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
// provides the io/fs for DB migrations
|
||||
package db
|
||||
|
||||
import "embed"
|
||||
|
||||
// since embeds must be relative to the package directory, this source file is required
|
||||
|
||||
//go:embed migrations/*.sql
|
||||
var MigrationFS embed.FS
|
||||
@@ -0,0 +1,13 @@
|
||||
DROP TABLE client;
|
||||
DROP TABLE session;
|
||||
DROP TABLE window;
|
||||
DROP TABLE screen;
|
||||
DROP TABLE screen_window;
|
||||
DROP TABLE remote_instance;
|
||||
DROP TABLE line;
|
||||
DROP TABLE remote;
|
||||
DROP TABLE cmd;
|
||||
DROP TABLE history;
|
||||
DROP TABLE state_base;
|
||||
DROP TABLE state_diff;
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
CREATE TABLE client (
|
||||
clientid varchar(36) NOT NULL,
|
||||
userid varchar(36) NOT NULL,
|
||||
activesessionid varchar(36) NOT NULL,
|
||||
userpublickeybytes blob NOT NULL,
|
||||
userprivatekeybytes blob NOT NULL,
|
||||
winsize json NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE session (
|
||||
sessionid varchar(36) PRIMARY KEY,
|
||||
name varchar(50) NOT NULL,
|
||||
sessionidx int NOT NULL,
|
||||
activescreenid varchar(36) NOT NULL,
|
||||
notifynum int NOT NULL,
|
||||
archived boolean NOT NULL,
|
||||
archivedts bigint NOT NULL,
|
||||
ownerid varchar(36) NOT NULL,
|
||||
sharemode varchar(12) NOT NULL,
|
||||
accesskey varchar(36) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE window (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
curremoteownerid varchar(36) NOT NULL,
|
||||
curremoteid varchar(36) NOT NULL,
|
||||
curremotename varchar(50) NOT NULL,
|
||||
nextlinenum int NOT NULL,
|
||||
winopts json NOT NULL,
|
||||
ownerid varchar(36) NOT NULL,
|
||||
sharemode varchar(12) NOT NULL,
|
||||
shareopts json NOT NULL,
|
||||
PRIMARY KEY (sessionid, windowid)
|
||||
);
|
||||
|
||||
CREATE TABLE screen (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
screenid varchar(36) NOT NULL,
|
||||
name varchar(50) NOT NULL,
|
||||
activewindowid varchar(36) NOT NULL,
|
||||
screenidx int NOT NULL,
|
||||
screenopts json NOT NULL,
|
||||
ownerid varchar(36) NOT NULL,
|
||||
sharemode varchar(12) NOT NULL,
|
||||
incognito boolean NOT NULL,
|
||||
archived boolean NOT NULL,
|
||||
archivedts bigint NOT NULL,
|
||||
PRIMARY KEY (sessionid, screenid)
|
||||
);
|
||||
|
||||
CREATE TABLE screen_window (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
screenid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
name varchar(50) NOT NULL,
|
||||
layout json NOT NULL,
|
||||
selectedline int NOT NULL,
|
||||
anchor json NOT NULL,
|
||||
focustype varchar(12) NOT NULL,
|
||||
PRIMARY KEY (sessionid, screenid, windowid)
|
||||
);
|
||||
|
||||
CREATE TABLE remote_instance (
|
||||
riid varchar(36) PRIMARY KEY,
|
||||
name varchar(50) NOT NULL,
|
||||
sessionid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
remoteownerid varchar(36) NOT NULL,
|
||||
remoteid varchar(36) NOT NULL,
|
||||
festate json NOT NULL,
|
||||
statebasehash varchar(36) NOT NULL,
|
||||
statediffhasharr json NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE state_base (
|
||||
basehash varchar(36) PRIMARY KEY,
|
||||
ts bigint NOT NULL,
|
||||
version varchar(200) NOT NULL,
|
||||
data blob NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE state_diff (
|
||||
diffhash varchar(36) PRIMARY KEY,
|
||||
ts bigint NOT NULL,
|
||||
basehash varchar(36) NOT NULL,
|
||||
diffhasharr json NOT NULL,
|
||||
data blob NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE line (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
userid varchar(36) NOT NULL,
|
||||
lineid varchar(36) NOT NULL,
|
||||
ts bigint NOT NULL,
|
||||
linenum int NOT NULL,
|
||||
linenumtemp boolean NOT NULL,
|
||||
linetype varchar(10) NOT NULL,
|
||||
linelocal boolean NOT NULL,
|
||||
text text NOT NULL,
|
||||
cmdid varchar(36) NOT NULL,
|
||||
ephemeral boolean NOT NULL,
|
||||
contentheight int NOT NULL,
|
||||
star int NOT NULL,
|
||||
archived boolean NOT NULL,
|
||||
PRIMARY KEY (sessionid, windowid, lineid)
|
||||
);
|
||||
|
||||
CREATE TABLE remote (
|
||||
remoteid varchar(36) PRIMARY KEY,
|
||||
physicalid varchar(36) NOT NULL,
|
||||
remotetype varchar(10) NOT NULL,
|
||||
remotealias varchar(50) NOT NULL,
|
||||
remotecanonicalname varchar(200) NOT NULL,
|
||||
remotesudo boolean NOT NULL,
|
||||
remoteuser varchar(50) NOT NULL,
|
||||
remotehost varchar(200) NOT NULL,
|
||||
connectmode varchar(20) NOT NULL,
|
||||
autoinstall boolean NOT NULL,
|
||||
sshopts json NOT NULL,
|
||||
remoteopts json NOT NULL,
|
||||
lastconnectts bigint NOT NULL,
|
||||
local boolean NOT NULL,
|
||||
archived boolean NOT NULL,
|
||||
remoteidx int NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE cmd (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
cmdid varchar(36) NOT NULL,
|
||||
remoteownerid varchar(36) NOT NULL,
|
||||
remoteid varchar(36) NOT NULL,
|
||||
remotename varchar(50) NOT NULL,
|
||||
cmdstr text NOT NULL,
|
||||
festate json NOT NULL,
|
||||
statebasehash varchar(36) NOT NULL,
|
||||
statediffhasharr json NOT NULL,
|
||||
termopts json NOT NULL,
|
||||
origtermopts json NOT NULL,
|
||||
status varchar(10) NOT NULL,
|
||||
startpk json NOT NULL,
|
||||
doneinfo json NOT NULL,
|
||||
runout json NOT NULL,
|
||||
rtnstate boolean NOT NULL,
|
||||
rtnbasehash varchar(36) NOT NULL,
|
||||
rtndiffhasharr json NOT NULL,
|
||||
PRIMARY KEY (sessionid, cmdid)
|
||||
);
|
||||
|
||||
CREATE TABLE history (
|
||||
historyid varchar(36) PRIMARY KEY,
|
||||
ts bigint NOT NULL,
|
||||
userid varchar(36) NOT NULL,
|
||||
sessionid varchar(36) NOT NULL,
|
||||
screenid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
lineid int NOT NULL,
|
||||
remoteownerid varchar(36) NOT NULL,
|
||||
remoteid varchar(36) NOT NULL,
|
||||
remotename varchar(50) NOT NULL,
|
||||
haderror boolean NOT NULL,
|
||||
cmdid varchar(36) NOT NULL,
|
||||
cmdstr text NOT NULL,
|
||||
ismetacmd boolean,
|
||||
incognito boolean
|
||||
);
|
||||
@@ -0,0 +1,3 @@
|
||||
DROP TABLE activity;
|
||||
|
||||
ALTER TABLE client DROP COLUMN clientopts;
|
||||
@@ -0,0 +1,11 @@
|
||||
CREATE TABLE activity (
|
||||
day varchar(20) PRIMARY KEY,
|
||||
uploaded boolean NOT NULL,
|
||||
tdata json NOT NULL,
|
||||
tzname varchar(50) NOT NULL,
|
||||
tzoffset int NOT NULL,
|
||||
clientversion varchar(20) NOT NULL,
|
||||
clientarch varchar(20) NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE client ADD COLUMN clientopts json NOT NULL DEFAULT '';
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE line DROP COLUMN renderer;
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE line ADD COLUMN renderer varchar(50) NOT NULL DEFAULT '';
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
DROP TABLE bookmark;
|
||||
DROP TABLE bookmark_order;
|
||||
DROP TABLE bookmark_cmd;
|
||||
|
||||
ALTER TABLE line DROP COLUMN bookmarked;
|
||||
ALTER TABLE line DROP COLUMN pinned;
|
||||
@@ -0,0 +1,26 @@
|
||||
CREATE TABLE bookmark (
|
||||
bookmarkid varchar(36) PRIMARY KEY,
|
||||
createdts bigint NOT NULL,
|
||||
cmdstr text NOT NULL,
|
||||
alias varchar(50) NOT NULL,
|
||||
tags json NOT NULL,
|
||||
description text NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE bookmark_order (
|
||||
tag varchar(50) NOT NULL,
|
||||
bookmarkid varchar(36) NOT NULL,
|
||||
orderidx int NOT NULL,
|
||||
PRIMARY KEY (tag, bookmarkid)
|
||||
);
|
||||
|
||||
CREATE TABLE bookmark_cmd (
|
||||
bookmarkid varchar(36) NOT NULL,
|
||||
sessionid varchar(36) NOT NULL,
|
||||
cmdid varchar(36) NOT NULL,
|
||||
PRIMARY KEY (bookmarkid, sessionid, cmdid)
|
||||
);
|
||||
|
||||
ALTER TABLE line ADD COLUMN bookmarked boolean NOT NULL DEFAULT 0;
|
||||
ALTER TABLE line ADD COLUMN pinned boolean NOT NULL DEFAULT 0;
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE activity DROP COLUMN buildtime;
|
||||
ALTER TABLE activity DROP COLUMN osrelease;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE activity ADD COLUMN buildtime varchar(20) NOT NULL DEFAULT '-';
|
||||
ALTER TABLE activity ADD COLUMN osrelease varchar(20) NOT NULL DEFAULT '-';
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE client DROP COLUMN feopts;
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE client ADD COLUMN feopts json NOT NULL DEFAULT '{}';
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
DROP TABLE playbook;
|
||||
|
||||
DROP TABLE playbook_entry;
|
||||
@@ -0,0 +1,16 @@
|
||||
CREATE TABLE playbook (
|
||||
playbookid varchar(36) PRIMARY KEY,
|
||||
playbookname varchar(100) NOT NULL,
|
||||
description text NOT NULL,
|
||||
entryids json NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE playbook_entry (
|
||||
entryid varchar(36) PRIMARY KEY,
|
||||
playbookid varchar(36) NOT NULL,
|
||||
description text NOT NULL,
|
||||
alias varchar(50) NOT NULL,
|
||||
cmdstr text NOT NULL,
|
||||
createdts bigint NOT NULL,
|
||||
updatedts bigint NOT NULL
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE session ADD COLUMN accesskey DEFAULT '';
|
||||
ALTER TABLE session ADD COLUMN ownerid DEFAULT '';
|
||||
|
||||
DROP TABLE cloud_session;
|
||||
DROP TABLE cloud_update;
|
||||
@@ -0,0 +1,20 @@
|
||||
ALTER TABLE session DROP COLUMN accesskey;
|
||||
ALTER TABLE session DROP COLUMN ownerid;
|
||||
|
||||
CREATE TABLE cloud_session (
|
||||
sessionid varchar(36) PRIMARY KEY,
|
||||
viewkey varchar(50) NOT NULL,
|
||||
writekey varchar(50) NOT NULL,
|
||||
enckey varchar(100) NOT NULL,
|
||||
enctype varchar(50) NOT NULL,
|
||||
vts bigint NOT NULL,
|
||||
acl json NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE cloud_update (
|
||||
updateid varchar(36) PRIMARY KEY,
|
||||
ts bigint NOT NULL,
|
||||
updatetype varchar(50) NOT NULL,
|
||||
updatekeys json NOT NULL
|
||||
);
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
-- invalid, will throw an error, cannot migrate down
|
||||
SELECT x;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
CREATE TABLE new_screen (
|
||||
sessionid varchar(36) NOT NULL,
|
||||
screenid varchar(36) NOT NULL,
|
||||
windowid varchar(36) NOT NULL,
|
||||
name varchar(50) NOT NULL,
|
||||
screenidx int NOT NULL,
|
||||
screenopts json NOT NULL,
|
||||
ownerid varchar(36) NOT NULL,
|
||||
sharemode varchar(12) NOT NULL,
|
||||
curremoteownerid varchar(36) NOT NULL,
|
||||
curremoteid varchar(36) NOT NULL,
|
||||
curremotename varchar(50) NOT NULL,
|
||||
nextlinenum int NOT NULL,
|
||||
selectedline int NOT NULL,
|
||||
anchor json NOT NULL,
|
||||
focustype varchar(12) NOT NULL,
|
||||
archived boolean NOT NULL,
|
||||
archivedts bigint NOT NULL,
|
||||
PRIMARY KEY (sessionid, screenid)
|
||||
);
|
||||
|
||||
INSERT INTO new_screen
|
||||
SELECT
|
||||
s.sessionid,
|
||||
s.screenid,
|
||||
w.windowid,
|
||||
s.name,
|
||||
s.screenidx,
|
||||
json_patch(s.screenopts, w.winopts),
|
||||
s.ownerid,
|
||||
s.sharemode,
|
||||
w.curremoteownerid,
|
||||
w.curremoteid,
|
||||
w.curremotename,
|
||||
w.nextlinenum,
|
||||
sw.selectedline,
|
||||
sw.anchor,
|
||||
sw.focustype,
|
||||
s.archived,
|
||||
s.archivedts
|
||||
FROM
|
||||
screen s,
|
||||
screen_window sw,
|
||||
window w
|
||||
WHERE
|
||||
s.screenid = sw.screenid
|
||||
AND sw.windowid = w.windowid
|
||||
;
|
||||
|
||||
DROP TABLE screen;
|
||||
DROP TABLE screen_window;
|
||||
DROP TABLE window;
|
||||
|
||||
ALTER TABLE new_screen RENAME TO screen;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user