{ "db": "SQLite", "10350f5a16f1b2a6ce91672ae5dc6acc46691bd8f901861545ec83c326a8ccef": { "query": "INSERT INTO ssh_keys (fingerprint, openssh_pubkey, created_at) VALUES (?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "118d59de5cf930d5a3b5667b2220e9a3d593bd84276beb2b76c93b2694b0fd72": { "query": "INSERT INTO session (id, user_agent, metadata) VALUES (?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "165daa7d6a60cb42122373b2c5ac7d39399bcc99992f0002ee7bfef50a8daceb": { "query": "DELETE FROM certificates WHERE id = 0 OR id = 1;", "describe": { "columns": [], "parameters": { "Right": 0 }, "nullable": [] } }, "177c4b9cc7901a3b906e5969b86b1c11e6acbfb8e86e98f197d7333030b17964": { "query": "DELETE FROM notifications WHERE id = ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "1b2242afa55e730b37b00929b656d80940b457ec86c234ddd0de917bd8872611": { "query": "INSERT INTO cifs_shares (hostname, path, username, password) VALUES (?, ?, ?, ?) RETURNING id AS \"id: u32\"", "describe": { "columns": [ { "name": "id: u32", "ordinal": 0, "type_info": "Int64" } ], "parameters": { "Right": 4 }, "nullable": [ false ] } }, "1eee1fdc793919c391008854407143d7a11b4668486c11a760b49af49992f9f8": { "query": "REPLACE INTO tor (package, interface, key) VALUES (?, 'main', ?)", "describe": { "columns": [], "parameters": { "Right": 2 }, "nullable": [] } }, "2932aa02735b6422fca4ba889abfb3de8598178d4690076dc278898753d9df62": { "query": "UPDATE session SET logged_out = CURRENT_TIMESTAMP WHERE id = ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "3502e58f2ab48fb4566d21c920c096f81acfa3ff0d02f970626a4dcd67bac71d": { "query": "SELECT tor_key FROM account", "describe": { "columns": [ { "name": "tor_key", "ordinal": 0, "type_info": "Blob" } ], "parameters": { "Right": 0 }, "nullable": [ false ] } }, "3e57a0e52b69f33e9411c13b03a5d82c5856d63f0375eb4c23b255a09c54f8b1": { "query": "SELECT key FROM tor WHERE package = ? AND interface = ?", "describe": { "columns": [ { "name": "key", "ordinal": 0, "type_info": "Blob" } ], "parameters": { "Right": 2 }, "nullable": [ false ] } }, "4691e3a2ce80b59009ac17124f54f925f61dc5ea371903e62cdffa5d7b67ca96": { "query": "SELECT * FROM session WHERE logged_out IS NULL OR logged_out > CURRENT_TIMESTAMP", "describe": { "columns": [ { "name": "id", "ordinal": 0, "type_info": "Text" }, { "name": "logged_in", "ordinal": 1, "type_info": "Datetime" }, { "name": "logged_out", "ordinal": 2, "type_info": "Datetime" }, { "name": "last_active", "ordinal": 3, "type_info": "Datetime" }, { "name": "user_agent", "ordinal": 4, "type_info": "Text" }, { "name": "metadata", "ordinal": 5, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false, false, true, false, true, false ] } }, "530192a2a530ee6b92e5b98e1eb1bf6d1426c7b0cb2578593a367cb0bf2c3ca8": { "query": "UPDATE certificates SET priv_key_pem = ?, certificate_pem = ?, updated_at = datetime('now') WHERE lookup_string = ?", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "56b986f2a2b7091d9c3acdd78f75d9842242de1f4da8f3672f2793d9fb256928": { "query": "DELETE FROM tor WHERE package = ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "5b114c450073f77f466c980a2541293f30087b57301c379630326e5e5c2fb792": { "query": "REPLACE INTO tor (package, interface, key) VALUES (?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "5c47da44b9c84468e95a13fc47301989900f130b3b5899d1ee6664df3ed812ac": { "query": "INSERT INTO certificates (id, priv_key_pem, certificate_pem, lookup_string, created_at, updated_at) VALUES (0, ?, ?, NULL, datetime('now'), datetime('now'))", "describe": { "columns": [], "parameters": { "Right": 2 }, "nullable": [] } }, "629be61c3c341c131ddbbff0293a83dbc6afd07cae69d246987f62cf0cc35c2a": { "query": "SELECT password FROM account", "describe": { "columns": [ { "name": "password", "ordinal": 0, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false ] } }, "63785dc5f193ea31e6f641a910c75857ccd288a3f6e9c4f704331531e4f0689f": { "query": "UPDATE session SET last_active = CURRENT_TIMESTAMP WHERE id = ? AND logged_out IS NULL OR logged_out > CURRENT_TIMESTAMP", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "6440354d73a67c041ea29508b43b5f309d45837a44f1a562051ad540d894c7d6": { "query": "DELETE FROM ssh_keys WHERE fingerprint = ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "65e6c3fbb138da5cf385af096fdd3c062b6e826e12a8a4b23e16fcc773004c29": { "query": "SELECT id, package_id, created_at, code, level, title, message, data FROM notifications WHERE id < ? ORDER BY id DESC LIMIT ?", "describe": { "columns": [ { "name": "id", "ordinal": 0, "type_info": "Int64" }, { "name": "package_id", "ordinal": 1, "type_info": "Text" }, { "name": "created_at", "ordinal": 2, "type_info": "Datetime" }, { "name": "code", "ordinal": 3, "type_info": "Int64" }, { "name": "level", "ordinal": 4, "type_info": "Text" }, { "name": "title", "ordinal": 5, "type_info": "Text" }, { "name": "message", "ordinal": 6, "type_info": "Text" }, { "name": "data", "ordinal": 7, "type_info": "Text" } ], "parameters": { "Right": 2 }, "nullable": [ false, true, false, false, false, false, false, true ] } }, "668f39c868f90cdbcc635858bac9e55ed73192ed2aec5c52dcfba9800a7a4a41": { "query": "SELECT id AS \"id: u32\", hostname, path, username, password FROM cifs_shares", "describe": { "columns": [ { "name": "id: u32", "ordinal": 0, "type_info": "Int64" }, { "name": "hostname", "ordinal": 1, "type_info": "Text" }, { "name": "path", "ordinal": 2, "type_info": "Text" }, { "name": "username", "ordinal": 3, "type_info": "Text" }, { "name": "password", "ordinal": 4, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false, false, false, false, true ] } }, "6b9abc9e079cff975f8a7f07ff70548c7877ecae3be0d0f2d3f439a6713326c0": { "query": "DELETE FROM notifications WHERE id < ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } }, "6c96d76bffcc5f03290d8d8544a58521345ed2a843a509b17bbcd6257bb81821": { "query": "SELECT priv_key_pem, certificate_pem FROM certificates WHERE id = 1;", "describe": { "columns": [ { "name": "priv_key_pem", "ordinal": 0, "type_info": "Text" }, { "name": "certificate_pem", "ordinal": 1, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false, false ] } }, "7d548d2472fa3707bd17364b4800e229b9c2b1c0a22e245bf4e635b9b16b8c24": { "query": "INSERT INTO certificates (priv_key_pem, certificate_pem, lookup_string, created_at, updated_at) VALUES (?, ?, ?, datetime('now'), datetime('now'))", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "8595651866e7db772260bd79e19d55b7271fd795b82a99821c935a9237c1aa16": { "query": "SELECT interface, key FROM tor WHERE package = ?", "describe": { "columns": [ { "name": "interface", "ordinal": 0, "type_info": "Text" }, { "name": "key", "ordinal": 1, "type_info": "Blob" } ], "parameters": { "Right": 1 }, "nullable": [ false, false ] } }, "9496e17a73672ac3675e02efa7c4bf8bd479b866c0d31fa1e3a85ef159310a57": { "query": "SELECT priv_key_pem, certificate_pem FROM certificates WHERE lookup_string = ?", "describe": { "columns": [ { "name": "priv_key_pem", "ordinal": 0, "type_info": "Text" }, { "name": "certificate_pem", "ordinal": 1, "type_info": "Text" } ], "parameters": { "Right": 1 }, "nullable": [ false, false ] } }, "9fcedab1ba34daa2c6ae97c5953c09821b35b55be75b0c66045ab31a2cf4553e": { "query": "REPLACE INTO account (id, password, tor_key) VALUES (?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "a1cbaac36d8e14c8c3e7276237c4824bff18861f91b0b08aa5791704c492acb7": { "query": "INSERT INTO certificates (id, priv_key_pem, certificate_pem, lookup_string, created_at, updated_at) VALUES (1, ?, ?, NULL, datetime('now'), datetime('now'))", "describe": { "columns": [], "parameters": { "Right": 2 }, "nullable": [] } }, "a4e7162322b28508310b9de7ebc891e619b881ff6d3ea09eba13da39626ab12f": { "query": "UPDATE cifs_shares SET hostname = ?, path = ?, username = ?, password = ? WHERE id = ?", "describe": { "columns": [], "parameters": { "Right": 5 }, "nullable": [] } }, "a6b0c8909a3a5d6d9156aebfb359424e6b5a1d1402e028219e21726f1ebd282e": { "query": "SELECT fingerprint, openssh_pubkey, created_at FROM ssh_keys", "describe": { "columns": [ { "name": "fingerprint", "ordinal": 0, "type_info": "Text" }, { "name": "openssh_pubkey", "ordinal": 1, "type_info": "Text" }, { "name": "created_at", "ordinal": 2, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false, false, false ] } }, "abfdeea8cd10343b85f647d7abc5dc3bd0b5891101b143485938192ee3b8c907": { "query": "SELECT id, package_id, created_at, code, level, title, message, data FROM notifications ORDER BY id DESC LIMIT ?", "describe": { "columns": [ { "name": "id", "ordinal": 0, "type_info": "Int64" }, { "name": "package_id", "ordinal": 1, "type_info": "Text" }, { "name": "created_at", "ordinal": 2, "type_info": "Datetime" }, { "name": "code", "ordinal": 3, "type_info": "Int64" }, { "name": "level", "ordinal": 4, "type_info": "Text" }, { "name": "title", "ordinal": 5, "type_info": "Text" }, { "name": "message", "ordinal": 6, "type_info": "Text" }, { "name": "data", "ordinal": 7, "type_info": "Text" } ], "parameters": { "Right": 1 }, "nullable": [ false, true, false, false, false, false, false, true ] } }, "b376d9e77e0861a9af2d1081ca48d14e83abc5a1546213d15bb570972c403beb": { "query": "-- Add migration script here\nCREATE TABLE IF NOT EXISTS tor\n(\n package TEXT NOT NULL,\n interface TEXT NOT NULL,\n key BLOB NOT NULL CHECK (length(key) = 64),\n PRIMARY KEY (package, interface)\n);\nCREATE TABLE IF NOT EXISTS session\n(\n id TEXT NOT NULL PRIMARY KEY,\n logged_in TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n logged_out TIMESTAMP,\n last_active TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n user_agent TEXT,\n metadata TEXT NOT NULL DEFAULT 'null'\n);\nCREATE TABLE IF NOT EXISTS account\n(\n id INTEGER PRIMARY KEY CHECK (id = 0),\n password TEXT NOT NULL,\n tor_key BLOB NOT NULL CHECK (length(tor_key) = 64)\n);\nCREATE TABLE IF NOT EXISTS ssh_keys\n(\n fingerprint TEXT NOT NULL,\n openssh_pubkey TEXT NOT NULL,\n created_at TEXT NOT NULL,\n PRIMARY KEY (fingerprint)\n);\nCREATE TABLE IF NOT EXISTS certificates\n(\n id INTEGER PRIMARY KEY, -- Root = 0, Int = 1, Other = 2..\n priv_key_pem TEXT NOT NULL,\n certificate_pem TEXT NOT NULL,\n lookup_string TEXT UNIQUE,\n created_at TEXT,\n updated_at TEXT\n);\nCREATE TABLE IF NOT EXISTS notifications\n(\n id INTEGER PRIMARY KEY,\n package_id TEXT,\n created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n code INTEGER NOT NULL,\n level TEXT NOT NULL,\n title TEXT NOT NULL,\n message TEXT NOT NULL,\n data TEXT\n);\nCREATE TABLE IF NOT EXISTS cifs_shares\n(\n id INTEGER PRIMARY KEY,\n hostname TEXT NOT NULL,\n path TEXT NOT NULL,\n username TEXT NOT NULL,\n password TEXT\n);", "describe": { "columns": [], "parameters": { "Right": 0 }, "nullable": [] } }, "cc33fe2958fe7caeac6999a217f918a68b45ad596664170b4d07671c6ea49566": { "query": "SELECT hostname, path, username, password FROM cifs_shares WHERE id = ?", "describe": { "columns": [ { "name": "hostname", "ordinal": 0, "type_info": "Text" }, { "name": "path", "ordinal": 1, "type_info": "Text" }, { "name": "username", "ordinal": 2, "type_info": "Text" }, { "name": "password", "ordinal": 3, "type_info": "Text" } ], "parameters": { "Right": 1 }, "nullable": [ false, false, false, true ] } }, "d5117054072476377f3c4f040ea429d4c9b2cf534e76f35c80a2bf60e8599cca": { "query": "SELECT openssh_pubkey FROM ssh_keys", "describe": { "columns": [ { "name": "openssh_pubkey", "ordinal": 0, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false ] } }, "d54bd5b53f8c760e1f8cde604aa8b1bdc66e4e025a636bc44ffbcd788b5168fd": { "query": "INSERT INTO notifications (package_id, code, level, title, message, data) VALUES (?, ?, ?, ?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 6 }, "nullable": [] } }, "d79d608ceb862c15b741a6040044c6dd54a837a3a0c5594d15a6041c7bc68ea8": { "query": "INSERT OR IGNORE INTO tor (package, interface, key) VALUES (?, ?, ?)", "describe": { "columns": [], "parameters": { "Right": 3 }, "nullable": [] } }, "de2a5e90798d606047ab8180c044baac05469c0cdf151316bd58ee8c7196fdef": { "query": "SELECT * FROM ssh_keys WHERE fingerprint = ?", "describe": { "columns": [ { "name": "fingerprint", "ordinal": 0, "type_info": "Text" }, { "name": "openssh_pubkey", "ordinal": 1, "type_info": "Text" }, { "name": "created_at", "ordinal": 2, "type_info": "Text" } ], "parameters": { "Right": 1 }, "nullable": [ false, false, false ] } }, "ed848affa5bf92997cd441e3a50b3616b6724df3884bd9d199b3225e0bea8a54": { "query": "SELECT priv_key_pem, certificate_pem FROM certificates WHERE id = 0;", "describe": { "columns": [ { "name": "priv_key_pem", "ordinal": 0, "type_info": "Text" }, { "name": "certificate_pem", "ordinal": 1, "type_info": "Text" } ], "parameters": { "Right": 0 }, "nullable": [ false, false ] } }, "f63c8c5a8754b34a49ef5d67802fa2b72aa409bbec92ecc6901492092974b71a": { "query": "DELETE FROM cifs_shares WHERE id = ?", "describe": { "columns": [], "parameters": { "Right": 1 }, "nullable": [] } } }