From a67463a518c7e09f212c80720d00374e868f8e7e Mon Sep 17 00:00:00 2001 From: Milo Schwartz Date: Sat, 28 Sep 2024 17:42:07 -0400 Subject: [PATCH] add .editorconfig and fix db imports in scripts --- .editorconfig | 15 +++ scripts/hydrate.ts | 239 +++++++++++++++++++++++++++++---------------- scripts/migrate.ts | 34 +++---- 3 files changed, 182 insertions(+), 106 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..679a7df --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = double + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/scripts/hydrate.ts b/scripts/hydrate.ts index a4a0a17..eb3db63 100644 --- a/scripts/hydrate.ts +++ b/scripts/hydrate.ts @@ -1,99 +1,172 @@ -import { drizzle } from 'drizzle-orm/better-sqlite3'; -import Database from 'better-sqlite3'; -import { orgs, users, sites, resources, exitNodes, routes, targets } from '../server/db/schema'; - -const sqlite = new Database('./config/db/db.sqlite'); -const db = drizzle(sqlite); +import { + orgs, + users, + sites, + resources, + exitNodes, + routes, + targets, +} from "@server/db/schema"; +import db from "@server/db"; async function insertDummyData() { - // Insert dummy orgs - const org1 = await db.insert(orgs).values({ - name: 'Fosrl', - domain: 'fosrl.io' - }).returning().get(); + // Insert dummy orgs + const org1 = db + .insert(orgs) + .values({ + name: "Fosrl", + domain: "fosrl.io", + }) + .returning() + .get(); - const org2 = await db.insert(orgs).values({ - name: 'Fossorial', - domain: 'fossorial.io' - }).returning().get(); + const org2 = db + .insert(orgs) + .values({ + name: "Fossorial", + domain: "fossorial.io", + }) + .returning() + .get(); - // Insert dummy users - await db.insert(users).values([ - { orgId: org1.orgId, name: 'John Doe', email: 'john@fossorial.com', groups: 'admin,developer' }, - { orgId: org1.orgId, name: 'Jane Smith', email: 'jane@fossorial.com', groups: 'developer' }, - { orgId: org2.orgId, name: 'Bob Johnson', email: 'bob@fosrl.io', groups: 'admin' } - ]); + // Insert dummy users + await db.insert(users).values([ + { + orgId: org1.orgId, + name: "John Doe", + email: "john@fossorial.com", + groups: "admin,developer", + }, + { + orgId: org1.orgId, + name: "Jane Smith", + email: "jane@fossorial.com", + groups: "developer", + }, + { + orgId: org2.orgId, + name: "Bob Johnson", + email: "bob@fosrl.io", + groups: "admin", + }, + ]); - // Insert dummy exit nodes - const exitNode1 = db.insert(exitNodes).values({ - name: 'Exit Node 1', - address: '10.0.0.1/24', - privateKey: 'sKQlCNErB2n+dV8eLp5Yw/avsjK/zkrxJE0n48hjb10=', - listenPort: 51820 - }).returning().get(); + // Insert dummy exit nodes + const exitNode1 = db + .insert(exitNodes) + .values({ + name: "Exit Node 1", + address: "10.0.0.1/24", + privateKey: "sKQlCNErB2n+dV8eLp5Yw/avsjK/zkrxJE0n48hjb10=", + listenPort: 51820, + }) + .returning() + .get(); - const exitNode2 = db.insert(exitNodes).values({ - name: 'Exit Node 2', - address: '172.16.1.1/24', - privateKey: 'ACaw+q5vHVm8Xb0jIgIkMzlkJiriC7cURuOiNbGsGHg=', - listenPort: 51820 - }).returning().get(); + const exitNode2 = db + .insert(exitNodes) + .values({ + name: "Exit Node 2", + address: "172.16.1.1/24", + privateKey: "ACaw+q5vHVm8Xb0jIgIkMzlkJiriC7cURuOiNbGsGHg=", + listenPort: 51820, + }) + .returning() + .get(); - // Insert dummy sites - const site1 = db.insert(sites).values({ - orgId: org1.orgId, - exitNode: exitNode1.exitNodeId, - name: 'Main Site', - subdomain: 'main', - pubKey: 'Kn4eD0kvcTwjO//zqH/CtNVkMNdMiUkbqFxysEym2D8=', - subnet: '10.0.0.16/28' - }).returning().get(); + // Insert dummy sites + const site1 = db + .insert(sites) + .values({ + orgId: org1.orgId, + exitNode: exitNode1.exitNodeId, + name: "Main Site", + subdomain: "main", + pubKey: "Kn4eD0kvcTwjO//zqH/CtNVkMNdMiUkbqFxysEym2D8=", + subnet: "10.0.0.16/28", + }) + .returning() + .get(); - const site2 = db.insert(sites).values({ - orgId: org2.orgId, - exitNode: exitNode2.exitNodeId, - name: 'Dev Site', - subdomain: 'dev', - pubKey: 'V329Uf/vhnBwYxAuT/ZlMZuLokHy5tug/sGsLfIMK1w=', - subnet: '172.16.1.16/28' - }).returning().get(); + const site2 = db + .insert(sites) + .values({ + orgId: org2.orgId, + exitNode: exitNode2.exitNodeId, + name: "Dev Site", + subdomain: "dev", + pubKey: "V329Uf/vhnBwYxAuT/ZlMZuLokHy5tug/sGsLfIMK1w=", + subnet: "172.16.1.16/28", + }) + .returning() + .get(); - // Insert dummy resources - const resource1 = db.insert(resources).values({ - resourceId: `web.${site1.subdomain}.${org1.domain}`, - siteId: site1.siteId, - name: 'Web Server', - subdomain: 'web' - }).returning().get(); + // Insert dummy resources + const resource1 = db + .insert(resources) + .values({ + resourceId: `web.${site1.subdomain}.${org1.domain}`, + siteId: site1.siteId, + name: "Web Server", + subdomain: "web", + }) + .returning() + .get(); - const resource2 = db.insert(resources).values({ - resourceId: `web2.${site1.subdomain}.${org1.domain}`, - siteId: site1.siteId, - name: 'Web Server 2', - subdomain: 'web2' - }).returning().get(); + const resource2 = db + .insert(resources) + .values({ + resourceId: `web2.${site1.subdomain}.${org1.domain}`, + siteId: site1.siteId, + name: "Web Server 2", + subdomain: "web2", + }) + .returning() + .get(); - const resource3 = db.insert(resources).values({ - resourceId: `db.${site2.subdomain}.${org2.domain}`, - siteId: site2.siteId, - name: 'Database', - subdomain: 'db' - }).returning().get(); + const resource3 = db + .insert(resources) + .values({ + resourceId: `db.${site2.subdomain}.${org2.domain}`, + siteId: site2.siteId, + name: "Database", + subdomain: "db", + }) + .returning() + .get(); - // Insert dummy routes - await db.insert(routes).values([ - { exitNodeId: exitNode1.exitNodeId, subnet: '10.0.0.0/24' }, - { exitNodeId: exitNode2.exitNodeId, subnet: '172.16.1.1/24' } - ]); + // Insert dummy routes + await db.insert(routes).values([ + { exitNodeId: exitNode1.exitNodeId, subnet: "10.0.0.0/24" }, + { exitNodeId: exitNode2.exitNodeId, subnet: "172.16.1.1/24" }, + ]); - // Insert dummy targets - await db.insert(targets).values([ - { resourceId: resource1.resourceId, ip: '10.0.0.16', method: 'https', port: 443, protocol: 'TCP' }, - { resourceId: resource2.resourceId, ip: '10.0.0.17', method: 'http', port: 80, protocol: 'TCP' }, - { resourceId: resource3.resourceId, ip: '172.16.1.16', method: 'http', port: 80, protocol: 'TCP' } - ]); + // Insert dummy targets + await db.insert(targets).values([ + { + resourceId: resource1.resourceId, + ip: "10.0.0.16", + method: "https", + port: 443, + protocol: "TCP", + }, + { + resourceId: resource2.resourceId, + ip: "10.0.0.17", + method: "http", + port: 80, + protocol: "TCP", + }, + { + resourceId: resource3.resourceId, + ip: "172.16.1.16", + method: "http", + port: 80, + protocol: "TCP", + }, + ]); - console.log('Dummy data inserted successfully'); + console.log("Dummy data inserted successfully"); } -insertDummyData().catch(console.error); \ No newline at end of file +insertDummyData().catch(console.error); diff --git a/scripts/migrate.ts b/scripts/migrate.ts index 67d9172..9ac1a75 100644 --- a/scripts/migrate.ts +++ b/scripts/migrate.ts @@ -1,27 +1,15 @@ -import { drizzle } from 'drizzle-orm/better-sqlite3'; -import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; -import Database from 'better-sqlite3'; +import { migrate } from "drizzle-orm/better-sqlite3/migrator"; +import db from "@server/db"; const runMigrations = async () => { - // Create a new SQLite database connection - const sqlite = new Database('./config/db/db.sqlite'); - - // Create a Drizzle instance - const db = drizzle(sqlite); - - console.log('Running migrations...'); - - try { - // Run the migrations - await migrate(db, { migrationsFolder: './server/migrations' }); - console.log('Migrations completed successfully.'); - } catch (error) { - console.error('Error running migrations:', error); - process.exit(1); - } finally { - // Close the database connection - sqlite.close(); - } + console.log("Running migrations..."); + try { + migrate(db, { migrationsFolder: "./server/migrations" }); + console.log("Migrations completed successfully."); + } catch (error) { + console.error("Error running migrations:", error); + process.exit(1); + } }; -runMigrations(); \ No newline at end of file +runMigrations();