MoodlIA Sync lee un curso de origen y escribe un plan con los cambios exactos que necesita el curso de destino. No se escribe nada hasta que apruebas ese plan; entonces lo aplica y verifica el resultado. Funciona con los servicios web estándar de Moodle y, donde esté instalado, con el plugin MoodlIA, eligiendo en cada caso.
Qué hace
- Planificar, aprobar, aplicar y verificar, como pasos separados.
- Se detiene si alguno de los cursos cambió después de hacer el plan.
- Guarda los tokens en variables de entorno, nunca en los planes ni en el estado.
Qué necesitas
- Node.js 22.13 o posterior.
- Tokens para los dos sitios Moodle (servicios web estándar y/o el plugin MoodlIA).
Instalación
Instala
Instala el comando de forma global:
npm install -g moodlia-syncSi tu política de npm bloquea los scripts de instalación, aprueba y compila una vez el controlador de base de datos:
npm approve-scripts better-sqlite3 npm rebuild better-sqlite3Describe los dos sitios en
.moodle-profiles.json; cada token se lee de la variable de entorno que indiques:{ "schema_version": 1, "profiles": { "school_a": { "url": "https://moodle-a.example.edu", "credentials": { "core": { "token_env": "SCHOOL_A_CORE_TOKEN" } } }, "school_b": { "url": "https://moodle-b.example.edu", "credentials": { "core": { "token_env": "SCHOOL_B_CORE_TOKEN" } } } } }
Primer uso
Planifica (solo lectura) y revisa plan.json:
moodlia-sync plan --source-profile school_a --source-course-id 42 \ --target-profile school_b --target-course-id 108 --plan-file plan.jsonAprueba exactamente ese plan, aplícalo y verifica:
moodlia-sync approve plan.json --yes moodlia-sync apply plan.json --plan-digest <sha256:...> --allow-write moodlia-sync verify --plan-id <plan_id>
Conviene saber
- En preview: solo se sincronizan los tipos de contenido verificados para cada pareja de sitios; el resto se indica en el plan.
- Pruébalo con cursos de prueba antes de usarlo con cursos reales.