TB-20 — PMS File Migration + Missing Project Import
Summary
Pull 14,416 files (48 GB) from SmartSuite PMS file attachments across 1,662 records. Phase 1: download files for 997 already-mapped projects. Phase 2: import 665 projects missing from Supabase entirely, creating new records with self-generated IDs. Phase 3: back-parse newly placed files. Phase 4: re-match archives against newly created projects.
What it produced
- migrate_pms_files.py script with —phase, —dry-run, —project-id, —resume, —parallel flags
- 14,416 files downloaded from SmartSuite Filestack CDN into /data/projects/
- 665 new projects created in Supabase from PMS records
- file-registry-service — all files registered with source=pms_smartsuite
- Cross-archive re-matching for newly created projects
Connections
- depends on: TB-08b-historical-file-linkage — reuses linkage and classification patterns
- depends on: TB-17-archive-backfill — back-parse infrastructure for newly placed files
- depends on: SmartSuite — PMS table as file source (Filestack CDN)
- depends on: Supabase — create missing projects, register files
- produced: complete PMS file migration into /data/projects/ with Supabase registration