Decisions & open items

D-01BackendOPEN

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.

D-02Identity / SSOBLOCKER

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.

D-03SQL source completenessBLOCKER

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.

D-04File binariesBLOCKER

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.

D-05Moodle version/pluginsBLOCKER

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.

D-06History retentionOPEN

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.

D-07Archive formatOPEN

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.

D-08Target IDsOPEN

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.

D-09Data privacyOPEN

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.

D-10Custom workflowsOPEN

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.