Decisions & open items
Recommendation
Recommend Supabase (PostgreSQL) as provisional default for Lovable, subject to architecture proof-of-concept.
Why / impact
Lovable commonly pairs with Supabase; relational LMS data and SQL migration suit PostgreSQL, but row-level security and scale need deliberate design.
Evidence needed / owner
Confirm hosting region, data residency, RLS policy model, expected concurrency, file volume, background jobs, reporting and vendor constraints.
Sign in to update status, owner and notes.
Recommendation
Keep existing IdP authoritative; app stores IdP issuer + immutable subject, not a copied password.
Why / impact
Avoid password migration and duplicate identity systems.
Evidence needed / owner
IdP product/protocol (OIDC/SAML), subject claim, tenant/realm, logout, MFA, user provisioning/deprovisioning, role claims.
Sign in to update status, owner and notes.
Recommendation
Provided SQL is schema-only: 769 CREATE TABLE definitions and no INSERT statements.
Why / impact
No record-level validation, actual FK mapping or row-by-row ETL can be finalized from this file alone.
Evidence needed / owner
Obtain secure, masked data extract or source DB read-only counts and representative samples.
Sign in to update status, owner and notes.
Recommendation
SQL schema does not include Moodle file content.
Why / impact
Need moodledata filesystem/object store export and mapping by contenthash/pathnamehash.
Evidence needed / owner
Infrastructure owner to provide controlled export and manifest with hashes/sizes.
Sign in to update status, owner and notes.
Recommendation
Schema has Moodle core and plugin/custom tables; exact deployed code/version is not in SQL alone.
Why / impact
Plugin table semantics and activity behavior cannot be inferred reliably from table names.
Evidence needed / owner
Moodle version/build, installed plugin list/version, local plugin source, config and scheduled-task inventory.
Sign in to update status, owner and notes.
Recommendation
Migrate progress, assessment attempts, grades, certificates; archive technical logs separately.
Why / impact
Matches agreed scope; preserves learning records without loading logs into primary DB.
Evidence needed / owner
Business/legal sign-off on retention, audit and learner dispute windows.
Sign in to update status, owner and notes.
Recommendation
Compressed object storage; recommend date-partitioned JSONL or Parquet, manifest + SHA-256 checksums.
Why / impact
JSONL is portable; Parquet is efficient for analytical queries. Choose one canonical export format.
Evidence needed / owner
Confirm future search/query need, cloud provider, encryption/KMS, retention and deletion process.
Sign in to update status, owner and notes.
Recommendation
Use target-generated UUID/PKs and a migration crosswalk table keyed by source table + source ID.
Why / impact
Avoid ID collisions and enable reconciliation/re-runs.
Evidence needed / owner
Approve schema for migration_id_map; define idempotent upsert strategy.
Sign in to update status, owner and notes.
Recommendation
Minimize PII; do not move password hashes, tokens, MFA secrets, session IDs or IP logs to target unless approved.
Why / impact
Reduces security and privacy risk.
Evidence needed / owner
DPO/security review and field-level retention decisions.
Sign in to update status, owner and notes.
Recommendation
All custom tables must be traced to UI/API/background job references before final disposition.
Why / impact
Custom table names alone do not reveal active business function or downstream dependencies.
Evidence needed / owner
Code search, route/controller review, plugin owner walkthrough, row counts, sample data, reports and API integrations.
Sign in to update status, owner and notes.