Feature Wiki
Tabs
Assignment and Grade Services as Provider/Tool
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 3 User Interface Modifications
- 4 Technical Information
- 5 Privacy
- 6 Security
- 7 Contact
- 8 Funding
- 9 Discussion
- 10 Implementation
- 10.1 Description and Screenshots
- 10.2 Test Cases
- 10.3 Privacy
- 10.4 Approval
Notice: This feature is required to apply for the 1EdTech LTI Advantage certification of ILIAS as LTI Tool. "LTI Advantage Complete" requires LTI 1.3 Core and all three LTI Advantage services: Deep Linking, Assignment and Grade Services, and Names and Role Provisioning Services.
1 Initial Problem
When a platform launches an ILIAS object through LTI Advantage, it does not learn how the user progressed. Only LTI 1.1 could send the result back (Outcome Service). Institutions that want the learning progress of ILIAS in the gradebook of their platform have to stay with LTI 1.1.
2 Conceptual Summary
- What is sent: the learning progress of the user as a score from 0 to 1 (completed or failed courses and groups count 100 %; otherwise the percentage), with whether the user has finished and whether the result is final. SCORM modules without learning progress send their score. Without learning progress in the object, nothing is sent.
- Where: to the gradebook column the platform gives in the launch. If the platform gives none, ILIAS creates a column for the object and uses it from then on. ILIAS does not take over changes made in the gradebook of the platform.
- When: each time the learning progress of the user changes. The cron job "LTI Grade Service" sends the changes that raise no event, such as those caused by a change of the learning progress settings.
- Activation: no setting. AGS is used when the platform offers it in the launch; with Dynamic Registration ILIAS asks for it.
3 User Interface Modifications
3.1 List of Affected Views
- Administration > System Settings and Maintenance > Cron Jobs: the cron job "LTI Outcome Service" is renamed "LTI Grade Service".
3.2 User Interface Details
Only the title and description of the cron job change.
3.3 New User Interface Concepts
None.
3.4 Accessibility Implications
None.
4 Technical Information
- Part of the LTI rework for ILIAS 12; it uses celtic/lti and the key pair of the LTI component. The same code sends AGS scores and LTI 1.1 outcomes; the platform decides which one by what it offers.
- ILIAS creates and finds its column by the object (resource id) and reads back results, as required by the LTI Advantage certification of tools.
- The score is sent when the learning progress changes. A score the platform does not accept is logged; the cron job sends it again.
- No new tables.
5 Privacy
ILIAS sends the platform the score and the status of the learning progress of each user who launched the object, identified by the user id the platform gave in the launch. Nothing new is stored.
The data is described in the PRIVACY.md of the LTI component. Until the LTI rework is merged into the ILIAS repository, this link points to the branch trunk_LTI_rework of the SURLABS fork.
6 Security
Scores are sent only to the platform that launched the object, to the URLs it gave in the launch, with an access token of LTI Advantage signed with the key of ILIAS. This lets institutions leave LTI 1.1 and its OAuth 1.0 signatures. No new endpoint is added.
7 Contact
Author of the Request: Díaz, Saúl [sdiaz]
Maintainer: Díaz, Saúl [sdiaz]
Implementation of the feature is done by: Díaz, Saúl [sdiaz]
8 Funding
Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.
SURLABS funds this development in advance because it is needed for the maintenance and security of the LTI component and for the LTI Advantage certification. We expect to get funding from the community during and after the integration.
If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.
9 Discussion
JourFixe, ILIAS [jourfixe], 19 OCT 2026: We highly appreciate this suggestion and accept the feature for trunk.
Díaz, Saúl [sdiaz], 20 OCT 2026: The implementation is included in the LTI rework for ILIAS 12: https://github.com/ILIAS-eLearning/ILIAS/pull/12232. The pull request is open for review.
10 Implementation
Implemented by Saúl Díaz (SURLABS) as part of the LTI rework for ILIAS 12.
10.1 Description and Screenshots
The implementation is available in pull request #12232: https://github.com/ILIAS-eLearning/ILIAS/pull/12232. The pull request is open for review and has not yet been merged into trunk.
Implemented as described in the Conceptual Summary. ILIAS sends the learning progress of users of released objects through Assignment and Grade Services when the platform offers the service. It uses the line item supplied in the launch or finds or creates the line item for the object when none is supplied. Results are read before resending a score to avoid sending a result the platform already has.
Learning progress changes trigger score delivery. The LTI Grade Service cron job covers changes that do not raise an event and retries delivery. It keeps the existing cron id, activation and schedule; administrators will see its updated title and description. AGS needs no new activation setting and no manual migration.
10.2 Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
10.3 Privacy
The PRIVACY.md of the LTI component was updated on 20 OCT 2026 by Saúl Díaz.
It documents the scores, learning progress status and platform user identifiers exchanged through AGS. The update is included in pull request #12232: https://github.com/surlabs/ILIAS/blob/trunk_LTI_rework/components/ILIAS/LTI/PRIVACY.md. This link will point to the official ILIAS repository after the rework is merged.
10.4 Approval
The feature was accepted for trunk by the Jour Fixe on 19 OCT 2026 (see Discussion). Approval of the delivered implementation has not yet been recorded.
Last edited: Yesterday, 16:46, Kunkel, Matthias [mkunkel]