MVP passwords
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "PrivateVault" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY DEFAULT 'vault',
|
||||
"passwordHash" TEXT NOT NULL,
|
||||
"salt" TEXT NOT NULL,
|
||||
"hint" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL
|
||||
);
|
||||
|
||||
-- RedefineTables
|
||||
PRAGMA defer_foreign_keys=ON;
|
||||
PRAGMA foreign_keys=OFF;
|
||||
CREATE TABLE "new_Drawing" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"name" TEXT NOT NULL,
|
||||
"elements" TEXT NOT NULL,
|
||||
"appState" TEXT NOT NULL,
|
||||
"files" TEXT NOT NULL DEFAULT '{}',
|
||||
"preview" TEXT,
|
||||
"version" INTEGER NOT NULL DEFAULT 1,
|
||||
"collectionId" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL,
|
||||
"isPrivate" BOOLEAN NOT NULL DEFAULT false,
|
||||
"encryptedData" TEXT,
|
||||
"iv" TEXT,
|
||||
CONSTRAINT "Drawing_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
||||
INSERT INTO "new_Drawing" ("appState", "collectionId", "createdAt", "elements", "files", "id", "name", "preview", "updatedAt", "version") SELECT "appState", "collectionId", "createdAt", "elements", "files", "id", "name", "preview", "updatedAt", "version" FROM "Drawing";
|
||||
DROP TABLE "Drawing";
|
||||
ALTER TABLE "new_Drawing" RENAME TO "Drawing";
|
||||
PRAGMA foreign_keys=ON;
|
||||
PRAGMA defer_foreign_keys=OFF;
|
||||
Binary file not shown.
Binary file not shown.
@@ -32,6 +32,21 @@ model Drawing {
|
||||
collection Collection? @relation(fields: [collectionId], references: [id])
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
// Privacy/Encryption fields
|
||||
isPrivate Boolean @default(false)
|
||||
encryptedData String? // Encrypted blob containing elements, appState, files when isPrivate=true
|
||||
iv String? // Initialization vector for AES-GCM decryption
|
||||
}
|
||||
|
||||
// Singleton model for storing vault password hash and settings
|
||||
model PrivateVault {
|
||||
id String @id @default("vault") // Singleton pattern
|
||||
passwordHash String // bcrypt hash for password verification
|
||||
salt String // Salt for client-side key derivation (hex encoded)
|
||||
hint String? // Optional password hint
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
model Library {
|
||||
|
||||
Reference in New Issue
Block a user