No description
Find a file
Mitchell R 64f47a9a6b
refactor: migrate all auto-increment PKs to UUIDv7 text IDs
Replace SERIAL/AUTOINCREMENT integer primary keys with UUIDv7 text
IDs across all 15 entity tables (users, api_keys, displays, cameras,
camera_streams, layouts, layout_cells, entities, kiosks, labels,
kiosk_gpio_bindings, event_log, kiosk_logs, audit_log,
camera_event_subscriptions). SetupState keeps id=1 INTEGER singleton.

Changes:
- types.ts: all id fields number->string, all FK fields number->string
- mappers.ts: n(r["id"])->s(r["id"]) for PKs, nn()->sn() for nullable FKs
- repository.ts: import uuidv7, generate IDs before INSERT, remove
  RETURNING id, change all method signatures from number to string
- migrations-pg.ts: SERIAL->TEXT NOT NULL PRIMARY KEY, INTEGER FK->TEXT FK
- bundle.ts: all bundle interface IDs number->string
- pairing.ts, auth.ts: kioskId/userId types number->string
- coordinator-registry.ts: kioskId number->string
- audit.ts: actor_id number->string
- mqtt-bridge.ts: kioskId number->string in publish/subscribe
- All route handlers: Number(getRouterParam)->getRouterParam ?? ""
- admin-pages.tsx: template function params and Map types number->string
- kiosk/src/bundle.rs: flexible serde deserializer that accepts both
  u32 (old) and String (new) IDs for backward compatibility

Fresh PG database -- no data migration needed, just schema changes.
SQLite migrations unchanged (dev-only, recreate DB for UUIDv7).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 07:11:45 +02:00
.github/workflows fix(ci): pass Axiom secrets to reusable build workflow 2026-05-26 04:26:35 +02:00
deploy fix(rauc): increase rootfs headroom from 25% to 50% 2026-05-26 02:46:17 +02:00
docs feat(ota): add RAUC OS update foundation 2026-05-20 05:15:29 +02:00
kiosk refactor: migrate all auto-increment PKs to UUIDv7 text IDs 2026-05-26 07:11:45 +02:00
nodered feat(nodered): motion + ANPR + generic ONVIF event trigger nodes 2026-05-23 02:17:05 +02:00
scripts fix(rauc): switch signing keys from Ed25519 to ECDSA P-256 2026-05-21 15:45:26 +02:00
server refactor: migrate all auto-increment PKs to UUIDv7 text IDs 2026-05-26 07:11:45 +02:00
.gitattributes fix(deploy): mark setup-pi-kiosk.sh executable in git index + add .gitattributes 2026-05-13 03:33:41 +02:00
.gitignore chore: gitignore doc files + remove from tracking 2026-05-26 04:16:33 +02:00
CLAUDE.md fix(proxy): split Node-RED route surfaces 2026-05-11 10:44:45 +02:00
docker-compose.coolify.yml fix(docker): simplify version arg to COOLIFY_GIT_COMMIT 2026-05-26 03:36:09 +02:00
docker-compose.yml fix: resolve merge conflict + align BSB workdir /home/bsb 2026-05-23 23:58:36 +02:00
LICENSE-AGPL.txt docs: dual-license declaration + vendored AGPL-3.0 text 2026-05-15 04:47:46 +02:00
LICENSE-COMMERCIAL.md docs: dual-license declaration + vendored AGPL-3.0 text 2026-05-15 04:47:46 +02:00
LICENSE.md docs: dual-license declaration + vendored AGPL-3.0 text 2026-05-15 04:47:46 +02:00
package-lock.json fix: regenerate lockfile for package name betterframe 2026-05-24 03:19:38 +02:00
package.json adding initial project 2026-05-10 01:09:13 +02:00
sec-config.template.yaml fix(db): clean config field names under db: object 2026-05-24 05:12:53 +02:00
tsconfig.base.json adding initial project 2026-05-10 01:09:13 +02:00