feat: add dashboard persistence store
This commit is contained in:
parent
5eeec0dcb5
commit
5e42ee8869
18 changed files with 1181 additions and 19 deletions
47
README.md
47
README.md
|
|
@ -9,27 +9,46 @@ in validated dashboard model state.
|
|||
|
||||
## Development
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The current workspace has Bun available, so local verification can also use:
|
||||
|
||||
```sh
|
||||
bun install
|
||||
bun run dev
|
||||
```
|
||||
|
||||
This MVP uses Drizzle with Bun SQLite for local file-backed persistence.
|
||||
|
||||
## Scripts
|
||||
|
||||
- `npm run dev`: start the local development server.
|
||||
- `npm run check`: run Svelte and TypeScript checks.
|
||||
- `npm run build`: build the production app.
|
||||
- `npm run preview`: preview the production build.
|
||||
- `bun run dev`: start the local development server.
|
||||
- `bun run check`: run Svelte and TypeScript checks.
|
||||
- `bun run test`: run Vitest.
|
||||
- `bun run build`: build the production app.
|
||||
- `bun run preview`: preview the production build.
|
||||
- `bun run db:generate`: generate Drizzle migrations from the server schema.
|
||||
- `bun run db:check`: validate migration consistency.
|
||||
|
||||
## Persistence
|
||||
|
||||
Dashboard documents are stored in SQLite through Drizzle. The default database
|
||||
URL is:
|
||||
|
||||
```sh
|
||||
DATABASE_URL=file:./data/dimensionlab.sqlite
|
||||
```
|
||||
|
||||
SQLite files under `data/` are ignored. Drizzle schema lives in
|
||||
`src/lib/server/db/schema.ts`; tracked migrations live in `drizzle/`. Runtime
|
||||
startup applies the checked-in dashboard migrations before reads or writes. If
|
||||
the app is launched from outside the repo tree, set `DASHBOARD_MIGRATIONS_DIR`
|
||||
to the tracked migrations directory. The current driver is `bun:sqlite`, which
|
||||
keeps this repo installable in the Bun workflow. The store boundary is isolated
|
||||
so a later Postgres driver can replace the SQLite connection without changing
|
||||
the dashboard model or renderer.
|
||||
Stored dashboard documents pass through a version migration boundary before
|
||||
reads or writes; the MVP supports `dashboard.v1` and fails unsupported versions
|
||||
with an explicit migration error.
|
||||
|
||||
## Runtime Shape
|
||||
|
||||
The first deployment target is a Node/container-friendly SvelteKit build. Later
|
||||
issues add the versioned dashboard model, SQLite persistence, component system,
|
||||
Storybook, seed data, and rendering pipeline.
|
||||
The SvelteKit build uses the Node adapter, and the current persistence runtime
|
||||
is Bun because the MVP SQLite driver is `bun:sqlite`. Later issues add the
|
||||
component system, Storybook, seed data expansion, and rendering pipeline.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue