document payload migration runtime plan

This commit is contained in:
makearmy 2026-07-10 20:02:57 -04:00
parent 4884b5d367
commit ed1c84eb76
12 changed files with 892 additions and 0 deletions

View file

@ -0,0 +1,28 @@
# Directus metadata disposition
This inventory is structural and contains no example user records or user-provided content.
| Directus area | Disposition | Reason |
|---|---|---|
| `directus_users` | Translate into Payload users | Preserve user IDs, supported profile fields, status, role mapping, timestamps, and password hashes pending compatibility findings |
| `directus_files`, `directus_folders` | Translate into media and folder metadata | Required to retain referenced files, hierarchy, checksums, timestamps, and ownership |
| `directus_collections`, `directus_fields`, `directus_relations` | Design input; do not import as runtime records | Re-expressed as committed Payload TypeScript collection definitions and migrations |
| `directus_roles`, `directus_policies`, `directus_access`, `directus_permissions` | Design input and verification fixtures | Re-expressed as Payload access functions and role fields; Directus policy rows have no runtime meaning in Payload |
| `directus_flows`, `directus_operations` | Translate behavior into hooks/jobs/endpoints | Flow graphs are implementation evidence, not portable executable definitions |
| `directus_settings` | Selective manual mapping | Only settings with a Payload or application equivalent are relevant |
| `directus_presets` | Archive-only pending editor review | UI bookmarks, filters, layouts, and per-user preferences are Directus Studio-specific |
| `directus_dashboards`, `directus_panels` | Archive-only | Directus Insights configuration is not portable and both source tables are empty |
| `directus_comments`, `directus_notifications` | Exclude from runtime | Empty in the scrubbed source; Directus collaboration internals |
| `directus_activity`, `directus_revisions` | Exclude from working migration | Intentionally scrubbed volatile audit history; untouched root-only archive remains authoritative |
| `directus_sessions` | Exclude | Intentionally scrubbed and cryptographically incompatible; all users receive new sessions |
| Static tokens and user `token` values | Exclude | Revoked credential material must never be migrated |
| TFA secrets, `auth_data` | Exclude | Intentionally scrubbed authentication secrets; users re-enroll if required |
| OAuth clients, codes, consents, tokens | Exclude | Empty/scrubbed live authorization material; providers must be configured afresh |
| `directus_shares` | Exclude | Scrubbed bearer-like public access grants must not survive cutover |
| `directus_migrations` | Exclude | Records Directus's schema history, not Payload's migration history |
| `directus_extensions` | Inspect source extension directory; do not import rows | Extension behavior must be reimplemented and reviewed; the metadata table is empty |
| deployment project/run tables | Archive-only | Directus deployment subsystem state has no Payload runtime equivalent |
| `directus_versions` | Exclude from initial runtime | Empty; Payload versioning will begin under its own schema if enabled |
| translations | Archive-only pending localization decision | Empty in source; no initial runtime effect |
No exclusion authorizes deletion of source data, frozen files, manifests, or the root-only archive.