Wise Ed · Wise Technologies · Slovenščina
Wise Ed and Moodle - the administrator's guide
For the school's Moodle administrator. Two connections, each on its own and each optional: the web services keep Moodle's courses, enrolments and groups in step with Wise Ed and read the gradebook back; LTI 1.3 opens Wise Ed inside a Moodle course and, with LTI Advantage, exchanges grades with Moodle's gradebook. About half an hour, with Moodle's administration and Wise Ed's LMS settings screen open side by side.
- Login initiation
https://wise-tt.com/web/{school}/lti/login- Launch (tool URL)
https://wise-tt.com/web/{school}/lti/launch- Redirect URI
https://wise-tt.com/web/{school}/lti/launch- Deep linking (content selection)
https://wise-tt.com/web/{school}/lti/launch- Public keyset (JWKS)
https://wise-tt.com/web/{school}/lti/jwks
Opened without the school's addresses: {school} is the school's code, the one in its Wise Timetable address. The LMS settings screen in Wise Ed shows the exact addresses too.
Before you start
- Moodle 3.2 or later for the web services (Part A); Moodle 3.7 or later for LTI 1.3 with its grade services (Part B). Moodle 4.x is recommended. The menu paths below are Moodle 4.x's; Moodle 3.x has the same pages, sometimes one level higher.
- Site administrator rights in Moodle.
- A person of the student office with the Wise Ed screens LMS settings, Moodle and Moodle grades - they type into Wise Ed what you give them (the token, the platform's details) and run the dry runs.
- Moodle matches people by e-mail address: a student's address in Moodle must be the school address Wise Ed has. Wise Ed never guesses - whom it cannot match it names on its screen.
Part A - the web services (the Moodle sync)
Needed for: courses made per subject and year, students and teachers enrolled, the timetable's groups as Moodle groups, the Moodle gradebook read back. Not needed if the school only wants Wise Ed inside Moodle courses (Part B).
A1 - Switch on web services
Site administration > General > Advanced features
Tick Enable web services and save.
A2 - Switch on the REST protocol
Site administration > Server > Web services > Manage protocols
Enable REST protocol (the eye icon). Wise Ed uses REST and nothing else.
A3 - A user for Wise Ed
Site administration > Users > Accounts > Add a new user
- Username:
wiseed(any name will do; this guide calls it that). - Authentication method: Web services authentication - it cannot sign in through the web page. If the method is not offered, enable it first (Site administration > Plugins > Authentication > Manage authentication), or use Manual accounts with a long random password nobody keeps.
- E-mail: an address of the school's IT (not a student's or a teacher's - Wise Ed matches people by e-mail).
- Do not enrol this user in any course.
A4 - A role with exactly what Wise Ed needs
Site administration > Users > Permissions > Define roles > Add a new role
Use role archetype: No role. Short name wiseedsync, full name Wise Ed sync, Context types where this role may be assigned: System. Set these capabilities to Allow (search the list by the capability's name):
| Capability | Why |
|---|---|
webservice/rest:use | to use the REST protocol at all |
moodle/category:manage | make a category per programme and year of study, and see their ID numbers |
moodle/category:viewhiddencategories | find the categories Wise Ed made even when hidden |
moodle/course:create | make a course per subject and year |
moodle/course:visibility | part of making a course (Moodle's service definition asks for it) |
moodle/course:view | see every course without being enrolled in it |
moodle/course:viewhiddencourses | find the courses Wise Ed made even when hidden |
moodle/course:update | see the course ID numbers by which a second run recognises its courses |
moodle/course:viewparticipants | read who is enrolled in a course |
moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update | find accounts by e-mail address and read enrolments (Moodle's own list for these functions) |
moodle/site:accessallgroups | read the enrolments of every group |
enrol/manual:enrol | enrol students and teachers |
moodle/role:assign | give them their role in the course (with A5) |
moodle/course:managegroups | make the timetable's groups and put the students in them |
gradereport/user:view, moodle/grade:viewall | read the gradebook of every student of a course |
enrol/manual:unenrol | only if the office switches on Take out who no longer belongs (only enrolments Wise Ed itself made are ever taken out) |
moodle/user:create | only if the office switches on Make Moodle accounts |
A5 - Let the role give the course roles
Site administration > Users > Permissions > Define roles > Allow role assignments
In the row Wise Ed sync tick Student, Teacher and Non-editing teacher, and save. Without this Moodle answers wsusercannotassign. If the school uses other role numbers than Moodle's standard 5 / 3 / 4, the office types them into Wise Ed's LMS settings.
A6 - Give the user the role
Site administration > Users > Permissions > Assign system roles > Wise Ed sync
Add the user wiseed.
A7 - The service and its 15 functions
Site administration > Server > Web services > External services > Add
Name Wise Ed, short name wiseed, tick Enabled and Authorised users only, Add service. Then Functions > Add functions and add all of these - every one is standard Moodle core:
| Function | For |
|---|---|
core_webservice_get_site_info | the connection check |
core_course_get_categories, core_course_create_categories | the categories |
core_course_get_courses_by_field, core_course_create_courses | the courses |
core_user_get_users_by_field, core_user_create_users | the accounts (the second only with Make Moodle accounts) |
core_enrol_get_enrolled_users, enrol_manual_enrol_users, enrol_manual_unenrol_users | the enrolments |
core_group_get_course_groups, core_group_create_groups, core_group_get_group_members, core_group_add_group_members | the groups |
gradereport_user_get_grade_items | the gradebook read back |
Then Authorised users of the service: add wiseed.
Courses need the Manual enrolments method, which Moodle adds to new courses by default (Site administration > Plugins > Enrolments > Manage enrol plugins: Manual enrolments enabled; in its settings Add instance to new courses ticked).
A8 - The token
Site administration > Server > Web services > Manage tokens > Create token
User wiseed, service Wise Ed. Valid until and IP restriction may stay empty (ask Wise Technologies for the server's address if you want to restrict it). Save, and copy the token: Moodle shows it once.
A9 - Into Wise Ed
The office opens LMS settings > Moodle, types the Moodle address (https://...) and the token, and saves. Wise Ed stores the token sealed; it is never shown again. On the Moodle screen, Check the connection must answer "Connected to ... Every function Wise Ed needs is allowed." If a function is missing it is named - add it in A7.
Part B - the LTI 1.3 tool
Needed for: Wise Ed inside a Moodle course (the subject's timetable, its exam dates and registration, a student's grades, "my progress") and, with the grade services, Wise Ed's points and final grades in Moodle's gradebook and Moodle's activity grades back in Wise Ed - with no web-service user at all.
B1 - A new tool
Site administration > Plugins > Activity modules > External tool > Manage tools > configure a tool manually
B2 - Tool settings
| Field | Value |
|---|---|
| Tool name | Wise Ed |
| Tool URL | https://wise-tt.com/web/{school}/lti/launch |
| LTI version | LTI 1.3 |
| Client ID | Moodle fills it in when you save - you copy it in B5 |
| Public key type | Keyset URL |
| Public keyset | https://wise-tt.com/web/{school}/lti/jwks |
| Initiate login URL | https://wise-tt.com/web/{school}/lti/login |
| Redirection URI(s) | https://wise-tt.com/web/{school}/lti/launch |
| Custom parameters | leave empty - each link Wise Ed makes carries its own |
| Tool configuration usage | Show in activity chooser and as a preconfigured tool |
| Default launch container | Embed, without blocks (or New window) |
| Supports Deep Linking (Content-Item Message) | ticked |
| Content Selection URL | https://wise-tt.com/web/{school}/lti/launch |
B3 - Services: the grade services to tick
| Service | Choose |
|---|---|
| IMS LTI Assignment and Grade Services | Use this service for grade sync and column management - Wise Ed makes its own columns (one per assessment component, one for the final grade) and reads the course's columns |
| IMS LTI Names and Role Provisioning | Use this service to retrieve members' information as per privacy settings - Wise Ed learns who the course's students are, so it can send a score to a student who has not opened Wise Ed yet |
| Tool Settings | Do not use this service |
B4 - Privacy
| Field | Value |
|---|---|
| Share launcher's name with tool | Always |
| Share launcher's email with tool | Always - Wise Ed recognises students and teachers by e-mail |
| Accept grades from the tool | Always |
| Force SSL | ticked |
Save changes.
B5 - What Moodle shows you
On the tool's card press View configuration details (the list icon). Moodle shows six values; keep them for B6: Platform ID, Client ID, Deployment ID, Public keyset URL, Access token URL, Authentication request URL.
B6 - The platform in Wise Ed
The office opens LMS settings > Inside the LMS (LTI 1.3) > A new platform:
| Wise Ed field | From Moodle (B5) |
|---|---|
| Name | how the office calls it, e.g. Faculty Moodle |
| Issuer | Platform ID |
| Client id | Client ID |
| Deployment ids | Deployment ID |
| Authorisation address | Authentication request URL |
| Token address | Access token URL |
| Key set address | Public keyset URL |
| Grades through LTI | By hand to start (the office presses Send); Every night once the office trusts it |
| Send | published component points, confirmed final grades (either or both) |
| Name of the final grade column | as teachers and students will see it in Moodle's gradebook |
| Token audience | leave empty for Moodle |
Add the platform. Switching grades on is asked first; Save anyway confirms.
B7 - Wise Ed in a course
In a course: Edit mode on > Add an activity or resource > Wise Ed > Select content. Wise Ed opens and the teacher chooses what it shows - The subject's timetable, Exam dates and registration, The student's grades in this subject, The student's progress, or another part the school uses - and presses Add to the course. Save. Each choice is its own link; a course may have several.
B8 - The first opening
The grade exchange with a course begins when somebody opens Wise Ed from it: that launch tells Wise Ed the course's gradebook and member-list addresses. The course then appears on Wise Ed's Moodle grades screen under LMS courses that opened Wise Ed, with the subject Wise Ed found for it (from the link, from the course Wise Ed made, or from the subject code as the course's short name). The office corrects the subject or the year there when needed.
Part C - testing with the dry run
Nothing is written to Moodle by reading a preview, on either side.
- The sync. On the Wise Ed Moodle screen: Check the connection, then read the Preview: every category, course, enrolment and group it would make, in words, and what cannot be done and why. For a first run the office limits Only these programmes in the settings to one programme. Apply writes exactly the preview; a second Apply finds nothing to do.
- Grades to Moodle. On the Moodle grades screen: Preview what would be sent lists the columns it would make in each course, the scores and final grades it would send, and what it does not send and why. Send sends exactly that. In Moodle: Course > Grades > Grader report shows the columns and the scores. A second Send sends nothing.
- Grades from Moodle. Read the LMS columns back brings the course's own activities (assignments, quizzes) into the mapping list, marked by LTI. The office maps one onto a part of the subject's assessment and presses Carry into Wise Ed; nothing reaches a record before that.
- The calls. Calls to the LMS on the same screen lists every call Wise Ed made - what, when, Moodle's answer. Only errors narrows it.
Troubleshooting, by what the screen says
The sync (web services)
Wise Ed passes Moodle's own error code on: "Moodle's own code is ...".
| Moodle's code | What it means | What to do |
|---|---|---|
invalidtoken | the token is wrong, expired or deleted | A8 again; the office types the new token |
accessexception | a function is not in the service, or the user is not an authorised user of it, or the role lacks webservice/rest:use | A7 (functions, authorised users), A4 |
wsusercannotassign | the role may not give Student / Teacher / Non-editing teacher | A5 |
nopermissions, requireloginerror | a capability of A4 is missing | A4, A6 |
shortnametaken, categoryidnumbertaken | a course or category with that short name / ID number exists (made by hand) | none usually: Wise Ed links a course it finds by short name; tell Wise Technologies if it repeats |
invalidrecord | a course or user Wise Ed knew was deleted in Moodle | the next preview makes it again |
http_403, http_404, not_json | the address is not the Moodle's own, or REST is off | the Moodle address in Wise Ed; A2 |
unreachable | Moodle could not be reached (a firewall, a VPN-only Moodle) | Moodle must be reachable from the internet over https |
Opening Wise Ed from a course (LTI 1.3)
| Wise Ed says | What it means | What to do |
|---|---|---|
| This LMS is not registered with this school's Wise Ed yet. | the Issuer in Wise Ed is not Moodle's Platform ID (or the client id differs) | B5 / B6: copy them again, exactly |
| The LMS's request could not be verified. | a check of the launch failed: the key, the client id, the deployment id, the time on Moodle's server, or a page opened twice | B6 Key set address, Client id, Deployment ids; the server clocks; open Wise Ed again from the course |
| Wise Ed cannot answer right now. Try again in a minute. | often: Wise Ed could not read Moodle's Public keyset URL to check the launch | B6 Key set address; if it stays, tell Wise Technologies |
| This Wise Ed page has expired. | the page inside the course was open for over an hour | open it again from the course |
| Wise Ed did not recognise you by your e-mail address. | Moodle did not send the e-mail, or it is not the address Wise Ed has | B4 Share launcher's email Always; the person's e-mail in Moodle |
| This course is not linked to a subject in Wise Ed. | Wise Ed found no subject for the Moodle course | the office chooses it on the Moodle grades screen (B8), or the teacher adds the link again through Select content |
| The course's teacher chooses what Wise Ed shows in it. | a student opened the content selection | none - only a teacher adds Wise Ed to a course |
Grades through LTI - the codes of Calls to the LMS and of the preview
| Wise Ed says | What to do |
|---|---|
| The platform has no token address in Wise Ed. | B6: Token address = Moodle's Access token URL |
| Wise Ed's own LTI key cannot be used on this server. | tell Wise Technologies |
| The LMS did not accept Wise Ed's signed request for a token. | in Moodle the tool's Public keyset must be Wise Ed's JWKS address and Public key type Keyset URL (B2); in Wise Ed the Client id and Token address must be Moodle's (B6); Token audience empty |
| The LMS does not let Wise Ed use the grade service or the member list in this course. | B3: grade sync and column management and the member list; then open Wise Ed from the course once again |
| This LMS course has not given Wise Ed a gradebook address. | B3, then open Wise Ed from the course once (B8) |
| The LMS refused Wise Ed access to this course's gradebook. | the tool may be hidden or removed from the course, or the course closed |
| The LMS no longer has this column (or course). | it was deleted in Moodle; the next Send makes the column again |
| The LMS refused what Wise Ed sent. | Moodle's own words are beside it - read them |
| The LMS could not be reached. · The LMS did not answer in time. · The LMS failed while answering (an error on its side). · The LMS asked Wise Ed to slow down. | nothing: Wise Ed sends it again by itself, waiting longer each time (10, 30, 90, then 270 minutes, at the next run of its scheduled job, which runs twice an hour); after the fifth attempt it names it as not taken |
| The LMS answered something Wise Ed cannot read. | B6: the addresses must be Moodle's own |
| Not sent (in the preview) | What to do |
|---|---|
| ... is a student of "..." in the LMS, but no Wise Ed student has that address. | the student's e-mail in Moodle differs from the school address in Wise Ed - correct one of them; B4 Share launcher's email Always |
| ... has a score, but has not opened Wise Ed from "..." yet and the LMS shares no member list. | B3 member list (Names and Role Provisioning) |
| Wise Ed does not know which subject the LMS course "..." is. | the office chooses it in LMS courses that opened Wise Ed |
| ... has no published assessment scheme for ... | the subject holder publishes the scheme in Wise Ed |
| "..." takes its points from an LMS column, so they are not sent back. | nothing - that part is graded in Moodle, and sending it back would only echo it |
| The school's grade scale counts down (1 is best) ... | a gradebook cannot show such a grade as points; final grades stay in Wise Ed |
Canvas, Brightspace, Blackboard
The same tool, the same addresses (above). In each, grant the LTI Advantage scopes https://purl.imsglobal.org/spec/lti-ags/scope/lineitem, .../lineitem.readonly, .../result.readonly, .../score and https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly, share the user's name and e-mail, and copy the platform's issuer, client id, deployment id and its authorisation, token and key-set addresses into Wise Ed (B6).
- Canvas: Admin > Developer Keys > + Developer Key > LTI Key, Method Manual Entry: Redirect URIs, Target Link URI, OpenID Connect Initiation Url and the Public JWK URL from the box above; the LTI Advantage services for line items, results, scores and course memberships on; Privacy level Public; a placement with message type LtiDeepLinkingRequest for content selection. Then deploy the key (Settings > Apps). Canvas's issuer is
https://canvas.instructure.com. - Brightspace (D2L): Manage Extensibility > LTI Advantage > Register Tool, then a deployment with the grade and names-and-roles services; in Wise Ed set Token audience to
https://api.brightspace.com/auth/token. - Blackboard Learn: register the tool in the Anthology developer portal with the addresses above, then add it under LTI Tool Providers with its client id; issuer
https://blackboard.com.
These platforms move their menus now and then; their own documentation for LTI 1.3 tools is the final word. Wise Ed asks nothing of them that is not in the IMS LTI 1.3 / LTI Advantage standard.
What travels, and what is kept
- To Moodle (Part A): course names, categories, enrolments (by e-mail) and groups; through LTI: scores with Moodle's own user ids - no names, no e-mails, nothing else of the record.
- From Moodle: the gradebook (Part A); the course's member list (names, e-mails, roles) and its columns' results (Part B). Nothing from Moodle reaches a Wise Ed record without a person mapping and carrying it.
- The web-service token is stored sealed and never shown again; the LTI access tokens live only for the minutes of a run and are never written down. Every call to Moodle is in Wise Ed's call log (never a token); every change of a setting is in the history.
- Switching off: Keeping in step: Off (Part A) and Grades through LTI: Off (Part B) stop everything at once; in Moodle, suspending the token or the tool does the same from your side.
Wise Technologies d.o.o. · Ljubljana · wise-tt.com