feat: Initial release of Formbricks Vanity Server

This commit is contained in:
Marco Gallegos
2025-12-13 13:08:31 -06:00
commit cae1a4647b
24 changed files with 3081 additions and 0 deletions

42
src/db.js Normal file
View File

@@ -0,0 +1,42 @@
const fs = require("fs");
const path = require("path");
const Database = require("better-sqlite3");
const defaultDbPath = path.join(__dirname, "..", "data", "survey_mappings.db");
const dbPath = process.env.SQLITE_DB_PATH || defaultDbPath;
fs.mkdirSync(path.dirname(dbPath), { recursive: true });
const db = new Database(dbPath);
db.pragma("journal_mode = WAL");
db.exec(`
CREATE TABLE IF NOT EXISTS survey_mappings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project TEXT NOT NULL,
partner TEXT NOT NULL,
survey_name TEXT NOT NULL,
survey_id TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
UNIQUE(project, partner, survey_name)
);
CREATE TABLE IF NOT EXISTS environment_aliases (
environment_id TEXT PRIMARY KEY,
alias TEXT UNIQUE,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE TABLE IF NOT EXISTS surveys (
id TEXT PRIMARY KEY,
environment_id TEXT NOT NULL,
name TEXT NOT NULL,
type TEXT NOT NULL DEFAULT 'link',
custom_slug TEXT,
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);
`);
module.exports = db;