QA Flow uses Prisma ORM to talk to its database, which means the same application code runs against SQLite for simple local setups, Turso (libsql) for cloud-backed deployments, or a full PostgreSQL server for teams that need robust multi-user persistence. Out of the box, no database configuration is required — the server creates a SQLite file automatically on first start.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/davidG97/qa-flow/llms.txt
Use this file to discover all available pages before exploring further.
Default Setup: SQLite
When you start QA Flow with Docker, the server writes its SQLite database to/app/data/qa-flow.db inside the container. A named Docker volume (qa-flow-data) is mounted at /app/data, so the database survives container restarts and upgrades.
DATABASE_URL for this path is:
Database Schema
QA Flow’s Prisma schema defines six models that cover users, projects, test execution history, and generated reports.User
Stores registered accounts. Fields:
id (UUID), email (unique), name, passwordHash, role (ADMIN or USER), createdAt, updatedAt.Project
Represents a test flow. Stores
name, description, nodes (JSON array), edges (JSON array), and config (JSON ProjectConfig), plus timestamps.ProjectMember
Junction table linking users to projects. Each record holds
projectId, userId, and role (OWNER or MEMBER). The combination of project + user is unique.TestRun
Records each execution. Tracks
status (pending → running → completed / failed), startedAt, completedAt, totalTests, passedTests, failedTests, duration (ms), and an optional error message.TestResult
Individual node-level results within a run. Stores
nodeId, nodeType, nodeLabel, success, message, error, duration (ms), and an optional screenshot path or base64 string.Report
Holds the generated Playwright-style HTML report for a test run. Contains
htmlContent (the full HTML string) and summary (a JSON object with aggregate statistics).Switching Databases
- SQLite (default)
- Turso (libsql)
- PostgreSQL
No changes needed. The default For Docker, the file lives inside the named volume:The Prisma schema uses
DATABASE_URL points to a local SQLite file.server/.env
provider = "sqlite" by default, so no schema changes are required.Prisma Commands
These commands are used during local development to manage the database schema and client.| Command | Description |
|---|---|
pnpm db:generate | Regenerate the Prisma client after any schema change |
pnpm db:migrate | Apply pending migrations to the database |
pnpm db:studio | Open Prisma Studio — a visual GUI for browsing and editing records |
pnpm --filter qa-flow-server db:reset | Drop and recreate the database, then re-run all migrations |
Create and Apply a Migration
Regenerate the Prisma Client