| Account | users (email, bcrypt password, status, 2FA flags, google2fa secret, timezone, preferences) | V8 users | Passwords: both are Laravel bcrypt, so they can be copied Assumption. Statuses (not_active, locked, banned) need mapping. Deleted users (deleted_users) excluded? Open question |
| Social logins | user_providers (google/github) | V8 linked accounts | V8 requirement keep |
| 2FA / backup codes / IP whitelist | two_fa_backup_codes, whitelist_ips | V8 equivalents (encrypted) | V8 requirement keep |
| Organizations | organizations (+ main, logo, SSH key pair) | V8 organizations | SSH key pair not needed (OSS) Assumption |
| Members / invitations | organization_members, member_role | V8 members | Pending invitations: carry over or drop? Open question |
| Roles / permissions | organization_roles, permission_role (boolean, ~92 V7 permission names) | V8 roles with none/view/manage | Permission names differ (V7 server.firewall vs OSS firewall/app_*). A mapping table is needed. Granted → manage Assumption D-7 |
| Shared-server members | organization_members.server_id | ? | Depends on D-8 |
| Servers | servers (agent-based, ~40 columns incl. root/DB passwords) | V8 server link | Not migratable as data. A V7 server becomes manageable by V8 only after OSS is installed on it and its Central key is linked. The OSS team is making OSS behave like V7 on V7 servers (commit 5b4e01e9: "Many v7 servers will move to v8"), and OSS Server Sync adopts existing sites, databases and workers. But installing OSS on a live V7 server is not documented or tested Open question D-19 |
| Applications / databases / backups | V7 tables | Stay on the server (OSS adopts through Sync) | Not moved to Central (R5) |
| Plan | new_subscription_plans (tier, cycle, price, limits, expires_in_days), old subscription_plans/subscriptions (server-based), lifetime | V8 subscription | Needs the V8 plan catalog first, plus rules for legacy server-based and lifetime plans Open question D-4 |
| Usage | Counted from servers/apps | Recomputed in V8 | Can't be computed until servers are linked |
| Wallet / credits | users.credits, free_credits, server_credits | V8 wallet | Money must move exactly. Needs reconciliation + a sign-off report Open question |
| Billing history | transactions, wallet_histories, charges, invoices | V8 billing (read-only history) | Keep invoices for legal/tax reasons Assumption |
| Payment methods | Stripe customer/cards, auto-recharge | V8 | Stripe customer ids can be reused if the same Stripe account is used Assumption |
| Audit | activities (English sentences) | V8 audit | Import as "legacy" entries or leave in V7 (read-only) Open question |
| Notification channels | notification_channels | V8 channels | V8 requirement keep. All V7 types are supported in V8 after 2026-10-03 (Email, Telegram, Pushover, Slack, Discord, Webhook), so no channel is dropped at migration |
| API tokens | V7 personal API token (6-month personal access token) | V8 personal API token | V8 requirement Migrated and kept working (2026-10-03). The Account → API screen therefore shows an existing token instead of offering to create one (3.13) |
| Blueprints | wordpress_blueprints | V8 blueprints | Simple copy. Owner model D-14 |
| Affiliate / referral / support / whitelabel / self-hosted | many tables | — | Out of V8 scope so far Open question |