Version 1.2.0
Nine new operations under one new tag, Group challenges, behind two new permissions, group-challenge/read and group-challenge/submit. Nothing that worked against 1.1.1 changes.
Added
- Group challenges, a new resource under
/v1/{organizationId}/group-challengewith the tag "Group challenges" and the permissiongroup-challenge/read(also granted by*/read,*/*and*):listGroupChallengesandgetGroupChallengeread the challenges an organization runs;listGroupChallengeStudentsandgetGroupChallengeStudentsay where each of your students stands (eligible by grade, in a group, the group's state) and give thepanelPathto send them to withcreateSigninLink;listGroupChallengeGroupsandgetGroupChallengeGroupread the groups your students are in, with each step and its files;listGroupChallengeActivitylists what happened in a group. Only your own students are named: every other person is their role alone. The operations answer404on an organization where group challenges are not switched on. - Submitting group challenge work for one of your students, behind the new permission
group-challenge/submit(also granted by*/*and*, not by*/read):submitGroupChallengeStepsubmits a group's open step and opens the next, andsubmitGroupChallengeWorksends the group's finished work and e-mails its members and teacher. Both take{ "studentId": "<studentId>" }, a student of yours who is an active member of the group, and are recorded in the group's history as your account acting for them. Repeating a submit that already happened answers200withchanged: false.
Changed
submitGroupChallengeStepandsubmitGroupChallengeWorkare the first operations whose409 conflictcarrieserror.details.reason(challenge_closed,window_closed,payment_pending,group_not_confirmed,step_locked,step_empty,steps_incomplete), and whose503 service_unavailablecarriesdetails.reason: busywithRetry-After: 1when the group is being changed by someone else. The error reference for both codes says so.- The agent kit has a seventh skill,
following-group-challenges-via-api: reading where your students stand withlistGroupChallengeStudentsandgetGroupChallengeGroupbefore submitting withsubmitGroupChallengeSteporsubmitGroupChallengeWork, never looping on a409, and sending a student to a challenge withcreateSigninLinkandpanelPath.
Release notes
Version 1.2.0 adds nine operations and removes and changes nothing. Code written against 1.1.1 keeps working without a change.
Group challenges
A group challenge is a project your students do in small groups, formed by their teacher, between two dates. Each group works through the challenge's steps in order, uploading its work in the panel or the app. The new tag, Group challenges, lets you:
- list the challenges an organization runs (
listGroupChallenges,getGroupChallenge); - see where each of your students stands (
listGroupChallengeStudents,getGroupChallengeStudent), including thepanelPathto send them to withcreateSigninLink; - read the groups your students are in, with each step and its files, and what happened in a group (
listGroupChallengeGroups,getGroupChallengeGroup,listGroupChallengeActivity); - submit a step, or send the finished work, for one of your students (
submitGroupChallengeStep,submitGroupChallengeWork).
Only your own students are named. Everyone else in a group — other members, the teacher, the organizers — is shown by role alone.
New permissions
group-challenge/read grants the seven reads and group-challenge/submit the two submits, on the
organization in the path. */read includes group-challenge/read; */* and * include both. See
Permissions.
Where it is available
Group challenges are switched on per organization. Where they are not, the nine operations answer
404 not_found, as an unknown path does.
Errors
The two submits are the first operations whose 409 conflict carries error.details.reason, and
whose 503 service_unavailable carries details.reason: busy with Retry-After: 1. Both are
described on the errors page.
Agent kit
The agent kit gains a seventh skill, following-group-challenges-via-api: it reads where your
students stand before it submits anything, never retries a 409 in a loop, and sends a student to a
challenge's page with a sign-in link instead of trying to upload for them.