Add db/dev-snapshot.sql with Stephan's local working state

Full mariadb-dump (schema + data) from the live develop instance,
post-NFP-18 migration. Includes test data new devs can immediately
poke at instead of staring at an empty dashboard.

Contents:
  - 36 tables (full schema)
  - 2 users (admin@finetune.ai/admin123, testuser@example.com/test123)
  - 5 datasets, 1 job (Support Bot v1, completed), 1 model
  - 1 user_billing row, 5 user_settings rows
  - 8 email_templates, 3 ACL roles, all migrations table state

Sanitization applied at the end of the dump (POST-LOAD block):
  - user.user_pass set to NULL (legacy AES-encrypted passwords;
    post-NFP-18 auth uses user_password_hash only)
  - user_settings values for keys matching token/key/secret/password/api
    set to empty string (devs add their own HF token, etc.)
  - user_password_hash for both default users reset to freshly-generated
    argon2id hashes that verify against the documented plaintexts

bootstrap-db.sh adds NFP_USE_SNAPSHOT=1 to load this instead of the
clean 3-file path. Both routes arrive at the same credentials.

Verified end-to-end:
  - dump loads on a fresh DB (exit 0)
  - both default credentials authenticate via password_verify
  - all data rows preserved
  - no credential-shaped strings in non-comment lines
This commit is contained in:
2026-05-14 13:15:32 +02:00
parent b0a2014dd7
commit f3d6d6b6d3
3 changed files with 1111 additions and 21 deletions

View File

@@ -12,8 +12,25 @@ bootstrap-db.sh ← one-command DB initialization
db/01-schema.sql ← MariaDB schema (no data)
db/02-seed.sql ← reference data: ACL, email templates, API registry
db/03-default-users.sql ← admin@finetune.ai / admin123 and testuser@example.com / test123
db/dev-snapshot.sql ← Stephan's working state with test data — 5 datasets, 1 job,
1 model, etc. Secrets pre-scrubbed. Use this if you want
a populated platform instead of an empty one.
```
## Two bootstrap modes
**Clean install** (default) — empty platform, just users + reference data:
```bash
./bootstrap-db.sh
```
**Dev snapshot** — Stephan's local state with test data preloaded:
```bash
NFP_USE_SNAPSHOT=1 ./bootstrap-db.sh
```
Both arrive at the same credentials (`admin@finetune.ai/admin123`, `testuser@example.com/test123`). The snapshot just gives you something to look at on day 1.
## TL;DR (10 min for experienced devs)
```bash