Skip to content
Strata v1.2.6

v1.1.0

Strata v1.1.0 ships one new feature, three bug fixes, and a round of CI and developer-experience improvements on top of the v1.0.0 baseline.

A new Export as .db button in Settings → Backup downloads the raw SQLite database file directly from the running backend. The file can be opened in any SQLite viewer (DB Browser for SQLite, DBeaver, the VS Code SQLite extension, …) to inspect your data outside the app.

The download is also available programmatically:

GET /api/v1/admin/backup/sqlite

Returns the file as application/x-sqlite3 with a timestamped filename (strata-backup-YYYY-MM-DD.db).

Exporting a JSON backup and re-importing it failed with “Invalid backup format: missing version or data.”

Root cause: the backend exports { schemaVersion: "1", … } but the frontend type system and validation guard looked for version (wrong field name). The mismatch caused the import validator to always reject the file.

Fix: aligned BackupPayload, ParsedBackup, isParsedBackup, confirmRestore, and all related tests to use schemaVersion throughout.

Docker container re-seeding demo assets on every restart

Section titled “Docker container re-seeding demo assets on every restart”

Running npm run docker:prod (or docker:dev) caused the demo dataset to reappear after the user had deleted demo assets.

Root cause: the Dockerfile CMD ran npx prisma db seed unconditionally on every container start. The seed guards (findFirst by name) re-created any deleted record.

Fix: the new backend/docker-start.sh startup script checks whether the database file exists before prisma migrate deploy runs (which creates the file on a fresh install). The seed step runs only when the database is fresh; subsequent restarts skip it, preserving user data and deliberate deletions.

This is the same pattern as the Tauri desktop app reseed fix (already present in src-tauri/src/lib.rs).

Three surfaces showed the wrong version string or wrong environment label:

SurfaceWasNow
docker:dev docsv1.0.0 PRODv1.0.0-11-gcff978c — DEV
docker:prod docsv1.0.0 PRODv1.0.0 (no badge)
strata.ducatillon.netv0.0.0-dev+sha — DEVv1.1.0 (clean, no badge)

Fixes:

  • scripts/version.mjs now accepts a STRATA_ENV env var to force the environment label independent of the git tag. docker:reset and docker:nuke set STRATA_ENV=development before generating version files.
  • When git describe returns 0.0.0-dev (shallow clone — Cloudflare Pages), version.mjs falls back to the version in root package.json, which is always in sync with the release tag.
  • DocsSiteTitle.astro now shows a — DEV badge only in development builds; production builds show the clean tag with no badge.

CI build failure (Prisma + missing DATABASE_URL)

Section titled “CI build failure (Prisma + missing DATABASE_URL)”

npm run build on CI failed because prisma.config.ts validated DATABASE_URL at config-load time (even during prisma generate, before any database is involved).

Fix: prisma.config.ts now uses process.env.DATABASE_URL ?? 'file:/tmp/build.db' as a build-time fallback. The fallback value is never used at runtime.

  • Backend test coverage raised to meet the ≥ 90 % gate required by CI (062ec83).
  • Node 24 confirmed compatible; Docker base images updated to node:24-alpine.
  • Various UI fixes: acquisition date display, asset delete confirmation dialog, favicon, dark-mode flash on load, Codecov badge labels in README.

Standard Docker upgrade path:

Terminal window
git pull
npm run docker:reset # rebuilds images + preserves existing DB

For the desktop app, download the new .app bundle from the GitHub releases page.