Merging wave server code into mono-repo

This commit is contained in:
sawka
2023-10-16 13:22:23 -07:00
92 changed files with 22462 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+9
View File
@@ -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;
+167
View File
@@ -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