mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-02 19:40:35 -05:00
move development of formbricks HQ to monorepo
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"name": "@formbricks/database",
|
||||
"version": "1.0.2",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.mjs",
|
||||
@@ -24,17 +23,16 @@
|
||||
"studio": "prisma studio"
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "^4.4.0"
|
||||
"@prisma/client": "^4.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "18.8.3",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint-config-formbricks": "workspace:*",
|
||||
"prisma": "^4.4.0",
|
||||
"eslint": "^8.27.0",
|
||||
"prisma": "^4.6.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"@formbricks/tsconfig": "workspace:*",
|
||||
"tsup": "^6.2.3",
|
||||
"tsx": "^3.10.1",
|
||||
"tsup": "^6.4.0",
|
||||
"tsx": "^3.12.0",
|
||||
"typescript": "^4.8.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "FormType" AS ENUM ('CODE', 'NOCODE');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "PipelineType" AS ENUM ('WEBHOOK');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Form" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"ownerId" INTEGER NOT NULL,
|
||||
"formType" "FormType" NOT NULL DEFAULT E'NOCODE',
|
||||
"name" TEXT NOT NULL DEFAULT E'',
|
||||
"published" BOOLEAN NOT NULL DEFAULT false,
|
||||
"schema" JSONB NOT NULL DEFAULT '{}',
|
||||
|
||||
CONSTRAINT "Form_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "NoCodeForm" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"formId" TEXT NOT NULL,
|
||||
"pages" JSONB NOT NULL DEFAULT '[]',
|
||||
"pagesDraft" JSONB NOT NULL DEFAULT '[]',
|
||||
|
||||
CONSTRAINT "NoCodeForm_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Pipeline" (
|
||||
"id" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"type" "PipelineType" NOT NULL,
|
||||
"formId" TEXT NOT NULL,
|
||||
"data" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Pipeline_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "SubmissionSession" (
|
||||
"id" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"formId" TEXT NOT NULL,
|
||||
"userFingerprint" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "SubmissionSession_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "SessionEvent" (
|
||||
"id" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"submissionSessionId" TEXT NOT NULL,
|
||||
"type" TEXT NOT NULL,
|
||||
"data" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "SessionEvent_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "users" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"name" TEXT,
|
||||
"email" TEXT,
|
||||
"email_verified" TIMESTAMP(3),
|
||||
"password" TEXT,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "verification_requests" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"identifier" TEXT NOT NULL,
|
||||
"token" TEXT NOT NULL,
|
||||
"expires" TIMESTAMP(3) NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "verification_requests_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "NoCodeForm_formId_key" ON "NoCodeForm"("formId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "verification_requests_token_key" ON "verification_requests"("token");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Form" ADD CONSTRAINT "Form_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "NoCodeForm" ADD CONSTRAINT "NoCodeForm_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Pipeline" ADD CONSTRAINT "Pipeline_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SubmissionSession" ADD CONSTRAINT "SubmissionSession_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SessionEvent" ADD CONSTRAINT "SessionEvent_submissionSessionId_fkey" FOREIGN KEY ("submissionSessionId") REFERENCES "SubmissionSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `published` on the `Form` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Form" DROP COLUMN "published";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "NoCodeForm" ADD COLUMN "published" BOOLEAN NOT NULL DEFAULT false;
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `pages` on the `NoCodeForm` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `pagesDraft` on the `NoCodeForm` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "NoCodeForm" DROP COLUMN "pages",
|
||||
DROP COLUMN "pagesDraft",
|
||||
ADD COLUMN "blocks" JSONB NOT NULL DEFAULT '[]',
|
||||
ADD COLUMN "blocksDraft" JSONB NOT NULL DEFAULT '[]';
|
||||
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `name` on the `users` table. All the data in the column will be lost.
|
||||
- You are about to drop the `verification_requests` table. If the table is not empty, all the data it contains will be lost.
|
||||
- Made the column `email` on table `users` required. This step will fail if there are existing NULL values in that column.
|
||||
- Made the column `password` on table `users` required. This step will fail if there are existing NULL values in that column.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Form" DROP CONSTRAINT "Form_ownerId_fkey";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "users" DROP COLUMN "name",
|
||||
ADD COLUMN "firstname" TEXT,
|
||||
ADD COLUMN "lastname" TEXT,
|
||||
ALTER COLUMN "email" SET NOT NULL,
|
||||
ALTER COLUMN "password" SET NOT NULL;
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "verification_requests";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Form" ADD CONSTRAINT "Form_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "NoCodeForm" ADD COLUMN "closed" BOOLEAN NOT NULL DEFAULT false;
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `name` to the `Pipeline` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- CreateEnum
|
||||
CREATE TYPE "PipelineEvent" AS ENUM ('PAGE_SUBMISSION');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Pipeline" ADD COLUMN "enabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "events" "PipelineEvent"[],
|
||||
ADD COLUMN "name" TEXT NOT NULL,
|
||||
ALTER COLUMN "data" SET DEFAULT '{}';
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `userFingerprint` on the `SubmissionSession` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "SubmissionSession" DROP COLUMN "userFingerprint";
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "PipelineEvent" ADD VALUE 'FORM_COMPLETED';
|
||||
|
||||
-- AlterEnum
|
||||
ALTER TYPE "PipelineType" ADD VALUE 'EMAIL_NOTIFICATION';
|
||||
@@ -0,0 +1,70 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "MembershipRole" AS ENUM ('MEMBER', 'ADMIN', 'OWNER');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "IdentityProvider" AS ENUM ('EMAIL', 'GITHUB');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Project" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"teamId" INTEGER NOT NULL,
|
||||
|
||||
CONSTRAINT "Project_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Team" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Team_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Membership" (
|
||||
"teamId" INTEGER NOT NULL,
|
||||
"userId" INTEGER NOT NULL,
|
||||
"accepted" BOOLEAN NOT NULL DEFAULT false,
|
||||
"role" "MembershipRole" NOT NULL,
|
||||
|
||||
CONSTRAINT "Membership_pkey" PRIMARY KEY ("userId","teamId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Account" (
|
||||
"id" TEXT NOT NULL,
|
||||
"userId" INTEGER NOT NULL,
|
||||
"type" TEXT NOT NULL,
|
||||
"provider" TEXT NOT NULL,
|
||||
"providerAccountId" TEXT NOT NULL,
|
||||
"access_token" TEXT,
|
||||
"refresh_token" TEXT,
|
||||
"expires_at" INTEGER,
|
||||
"token_type" TEXT,
|
||||
"scope" TEXT,
|
||||
"id_token" TEXT,
|
||||
"session_state" TEXT,
|
||||
|
||||
CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "users" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"name" TEXT,
|
||||
"email" TEXT NOT NULL,
|
||||
"email_verified" TIMESTAMP(3),
|
||||
"password" TEXT,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"identityProvider" "IdentityProvider" NOT NULL DEFAULT 'EMAIL',
|
||||
"identityProviderAccountId" TEXT,
|
||||
|
||||
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
||||
@@ -1,66 +1,82 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
referentialIntegrity = "prisma"
|
||||
}
|
||||
|
||||
enum PipelineType {
|
||||
WEBHOOK
|
||||
EMAIL_NOTIFICATION
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
previewFeatures = ["referentialIntegrity"]
|
||||
}
|
||||
|
||||
enum PipelineEvent {
|
||||
PAGE_SUBMISSION
|
||||
FORM_COMPLETED
|
||||
model Project {
|
||||
id Int @id @default(autoincrement())
|
||||
organization Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
|
||||
teamId Int
|
||||
}
|
||||
|
||||
model Form {
|
||||
id String @id
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
|
||||
ownerId Int
|
||||
name String @default("")
|
||||
schema Json @default("{}")
|
||||
submissions Submission[]
|
||||
pipelines Pipeline[]
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
members Membership[]
|
||||
projects Project[]
|
||||
}
|
||||
|
||||
model Pipeline {
|
||||
id String @id @default(uuid())
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @updatedAt @map(name: "updated_at")
|
||||
name String
|
||||
type PipelineType
|
||||
form Form @relation(fields: [formId], references: [id], onDelete: Cascade)
|
||||
formId String
|
||||
enabled Boolean @default(false)
|
||||
events PipelineEvent[]
|
||||
data Json @default("{}")
|
||||
}
|
||||
enum MembershipRole {
|
||||
MEMBER
|
||||
ADMIN
|
||||
OWNER
|
||||
}
|
||||
|
||||
model Submission {
|
||||
id String @id @default(uuid())
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @updatedAt @map(name: "updated_at")
|
||||
form Form @relation(fields: [formId], references: [id], onDelete: Cascade)
|
||||
formId String
|
||||
data Json
|
||||
model Membership {
|
||||
team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
|
||||
teamId Int
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
userId Int
|
||||
accepted Boolean @default(false)
|
||||
role MembershipRole
|
||||
|
||||
@@id([userId, teamId])
|
||||
}
|
||||
|
||||
enum IdentityProvider {
|
||||
EMAIL
|
||||
GITHUB
|
||||
}
|
||||
|
||||
model Account {
|
||||
id String @id @default(cuid())
|
||||
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
userId Int
|
||||
type String
|
||||
provider String
|
||||
providerAccountId String
|
||||
access_token String? @db.Text
|
||||
refresh_token String? @db.Text
|
||||
expires_at Int?
|
||||
token_type String?
|
||||
scope String?
|
||||
id_token String? @db.Text
|
||||
session_state String?
|
||||
|
||||
@@unique([provider, providerAccountId])
|
||||
}
|
||||
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
firstname String?
|
||||
lastname String?
|
||||
email String @unique
|
||||
emailVerified DateTime? @map(name: "email_verified")
|
||||
password String
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @updatedAt @map(name: "updated_at")
|
||||
forms Form[]
|
||||
id Int @id @default(autoincrement())
|
||||
name String?
|
||||
email String @unique
|
||||
emailVerified DateTime? @map(name: "email_verified")
|
||||
password String?
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @updatedAt @map(name: "updated_at")
|
||||
identityProvider IdentityProvider @default(EMAIL)
|
||||
identityProviderAccountId String?
|
||||
teams Membership[]
|
||||
accounts Account[]
|
||||
|
||||
@@map(name: "users")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user