feat(import): data model for the bulk CSV/XLSX importer

First increment of the importer (docs/superpowers/specs/2026-06-01-bulk-import-design.md):
the three port-scoped tables, no changes to entity tables.

- import_batches — one row per run: entity_type, filename, storage_key,
  status, conflict_policy, mapping_json, live counts, created_by, timestamps.
- import_batch_rows — per-row action ledger (inserted/updated/skipped/errored)
  with entity_id + error; partial index on inserted rows powers Undo.
- import_mappings — saved column mappings, unique per (port, entity, name).

Migration 0090 applied via psql; schema re-exported from the index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 22:23:50 +02:00
parent a343eaa257
commit 372b585bf9
3 changed files with 143 additions and 0 deletions

View File

@@ -65,6 +65,9 @@ export * from './gdpr';
// Migration ledger (one-shot scripts - NocoDB import etc.)
export * from './migration';
// Bulk CSV/XLSX importer (batches, per-row ledger, saved mappings)
export * from './imports';
// Website submissions (dual-write capture from the marketing site)
export * from './website-submissions';