Chapitre 13.3 — Checklists
⏱️ TL;DR — Quatre listes à cocher, pensées pour être passées avant de livrer : produire un SCORM valide, brancher un outil LTI 1.3, choisir et déployer un LRS, préparer une certification 1EdTech. Chaque case est une vérification concrète — pas un principe. Coche tout, et tu livres du vérifiable, pas du « ça devrait passer ». En cas de doute sur une valeur exacte, remonte aux specs (
adlnet.gov,1edtech.org).
🎯 Objectifs
- Disposer d’une liste actionnable pour chaque grande livraison d’interop.
- Ne rien oublier entre « ça marche chez moi » et « c’est conforme ».
- Transformer les pièges du cours en points de contrôle systématiques.
Checklist 1 — Livrer un SCORM valide
Packaging (Partie 3)
- Version SCORM choisie selon la cible (1.2 = compatibilité maximale ; 2004 = complétion/réussite séparées, séquencement).
-
imsmanifest.xmlprésent à la racine du.zip(le PIF), pas dans un sous-dossier. -
<metadata>:<schema>ADL SCORM</schema>+<schemaversion>correct (1.2ou2004 4th Edition). - Namespaces déclarés :
imscp(par défaut) etadlcp— copiés d’une référence, pas tapés de mémoire. -
<organizations default="…">pointe une<organization>existante. - Chaque
<item identifierref="…">correspond à unidentifierde<resource>présent. -
adlcp:scormType="sco"sur les ressources lançables (assetpour les fichiers passifs). - La page de lancement (
href) est aussi listée en<file>. - Tous les fichiers référencés sont réellement dans le
.zip. - Fichier en UTF-8 sans BOM ; caractères réservés échappés (
&,<,>).
Runtime (Partie 4)
- Le SCO trouve l’API (
APIen 1.2 /API_1484_11en 2004) en remontantwindow.parentpuiswindow.opener. - Ouverture par
LMSInitialize("")/Initialize("")avant tout autre appel. - Statut posé :
cmi.core.lesson_status(1.2) oucmi.completion_status+cmi.success_status(2004). - Score posé si pertinent :
cmi.core.score.raw(1.2) /cmi.score.scaled(2004). -
LMSCommit("")/Commit("")appelé pour forcer l’enregistrement. - Fermeture systématique par
LMSFinish("")/Terminate("")(y compris à la fermeture de l’onglet). -
cmi.suspend_datasous la limite (4096 en 1.2, 64000 en 2004).
Vérification
- Testé sur SCORM Cloud (référentiel neutre) et sur au moins un LMS cible réel.
- Remontée vérifiée : statut, score, reprise (
suspend_data/lesson_location).
Checklist 2 — Brancher un outil LTI 1.3
Pré-requis & enregistrement (Partie 9)
- Ne pas partir sur du LTI 1.1 pour du neuf (fin de vie) — viser 1.3.
- Paire de clés générée ;
jwks_uride l’outil exposé (clé publique). - Enregistrement effectué : échange de
client_id,deployment_id, endpoints OIDC/auth, token endpoint,jwks_uride chaque partie. -
redirect_uripré-enregistrées (cause n°1 d’échec au lancement). - Dynamic Registration proposé si possible (moins de support, moins d’erreurs).
Lancement (Partie 9)
- OIDC login third-party initiated implémenté (amorce → redirection →
POSTde l’id_token). -
id_tokenvalidé : signature via le JWKS de la plateforme,issattendu,aud= tonclient_id,expnon dépassé,noncevérifié. - Claims lus après validation :
message_type,roles,context,resource_link. - Identité de l’utilisateur =
sub+iss(jamais l’e-mail). -
rolesinterprétés par présence dans le tableau d’URIs (…membership#Instructor?). - Données personnelles : ne stocker que le nécessaire (outil branché dans des LMS d’écoles = données de mineurs, cf. RGPD).
Advantage — si nécessaire (Partie 10)
- Endpoints de service persistés au lancement (claims AGS/NRPS), indexés par
sub+iss+context.id. -
access_tokenobtenu viagrant_type=client_credentials+client_assertion(JWT signé par ta clé privée). - Scopes demandés au minimum nécessaire (séparés par des espaces).
- AGS :
scoreGivenavecscoreMaximum,activityProgress/gradingProgresscorrects,timestamppour l’idempotence. - NRPS : lecture du roster via
context_memberships_url.
Checklist 3 — Choisir & déployer un LRS
Conformité (Parties 6-7)
- LRS conforme xAPI (versions supportées vérifiées).
- Endpoints REST disponibles :
statements(PUT/POST/GET),activities/state,activities/profile,agents/profile,about. - En-tête
X-Experience-API-Versiongéré et exigé sur toutes les requêtes. - Authentification supportée : Basic et/ou OAuth.
- Support du profil cmi5 si tu diffuses des modules cmi5 (state
LMS.LaunchData,fetch/auth-token).
Choix & exploitation
- Candidat identifié parmi l’écosystème connu (Learning Locker, SQL LRS, Veracity, SCORM Cloud…).
- LRS de test disponible pour le développement.
- Volumétrie, stockage et capacités de requêtage évalués pour ton usage (tableau de bord, analytics).
- Choix xAPI vs Caliper tranché si besoin (xAPI = souple/ouvert ; Caliper = cadré, profils stricts).
- RGPD : les statements décrivent des apprenants (souvent mineurs) — minimisation, durées de conservation, sécurité de l’endpoint.
Checklist 4 — Passer une certification 1EdTech
Portée & standards (Parties 9-11)
- Standard(s) à certifier identifiés — chaque service LTI Advantage se certifie séparément (Core, Deep Linking, AGS, NRPS).
- Autres standards visés situés : QTI (tests), Common Cartridge (paquet de cours), OneRoster (rosters/notes), Caliper (analytics).
Rigueur exigée par les tests
- Sécurité LTI :
id_tokentoujours validé (signature,iss,aud,exp,nonce) ; moindre privilège sur les scopes. - AGS : barème respecté (
scoreMaximum),gradingProgresscorrect (FullyGradedpour une note définitive), idempotence partimestamp. - Jeton de service factorisé et mis en cache (
getServiceTokenréutilisable). - Comportement testé sur plusieurs cibles (les LMS implémentent les standards avec des variations).
Outillage de conformité (Partie 12)
- SCORM : SCORM Cloud + suites de test ADL.
- cmi5 : projet CATAPULT (suite de tests, lecteur, bonnes pratiques).
- xAPI : LRS de test.
- LTI / QTI / etc. : programme de certification 1EdTech.
- Documentation d’intégration prête (guide d’enregistrement, ou Dynamic Registration).
⚠️ Piège — La plus grosse erreur commune aux quatre checklists : confondre « marche chez moi » et « conforme ». Un SCORM qui s’affiche, un lancement LTI qui « passe » sans validation du JWT, un statement accepté par un LRS de test permissif — rien de tout cela ne prouve la conformité. La conformité se teste sur des référentiels neutres et, souvent, se certifie.
🧭 Sur FormaCampus — L’équipe a transformé ces quatre listes en gabarits de Pull Request : impossible de merger un export SCORM sans cocher la Checklist 1, ni une intégration LTI sans la Checklist 2. Résultat : les allers-retours avec les écoles clientes sur des « erreurs de forme » ont quasi disparu — le contrôle est passé en amont, dans le workflow.
📚 La spec — Les points de contrôle ci-dessus résument les exigences des specs : SCORM (CAM/RTE) et cmi5 sur
adlnet.gov; LTI 1.3, ses services et le programme de certification sur1edtech.org. Les seuils exacts (suspend_data, valeurs de statut, scopes) sont donnés en Parties 3 à 10 — et la source officielle tranche toujours.
Chapitre suivant : 13.4 — Glossaire — tous les sigles du cours, définis, en ordre alphabétique.