API-Changelog
Die MILES API entwickelt sich stetig weiter: Neue Funktionen kommen hinzu, alte fallen weg. Damit Sie als API-Nutzende auf dem Laufenden bleiben, kündigen wir hier Änderungen am Schema an — und ebenso Änderungen, die das Schema nicht ausdrücken kann.
Sie können den Feed auch per RSS abonnieren. Jeder Feed-Eintrag ist den Arten der enthaltenen Änderungen zugeordnet — so können Sie gezielt nach den Releases filtern, die für Sie relevant sind (etwa nur solche mit Deprecations).
Die Angaben unten stammen wörtlich aus dem GraphQL-Schema und sind deshalb englisch.
Details zu diesem Release in den Versionshinweisen
- VeraltetOperation
onOwnUserUpdate - VeraltetOperation
onAssessmentUpdate - VeraltetOperation
onObjectiveRevisionUpdate - VeraltetOperation
onFineObjectiveRevisionUpdate - VeraltetOperation
onContentUnitRevisionUpdate - VeraltetOperation
onLearningPhaseRevisionUpdate - VeraltetOperation
onContentBlockRevisionUpdate - VeraltetOperation
onCourseModuleRevisionUpdate - VeraltetOperation
onTagUpdate - VeraltetOperation
onExerciseRevisionUpdate - VeraltetOperation
onNotificationsUpdate - HinzugefügtOperation
createOrUpdateGroupTagEdges - HinzugefügtOperation
deleteGroupTagEdges - HinzugefügtOperation
createOrUpdateRoleTagEdges - HinzugefügtOperation
deleteRoleTagEdges - HinzugefügtOperation
onOwnUserChangedTriggered whenever the logged in user’s own profile changes. Returns the logged in user’s id. Use getOwnUser to fetch the updates. Triggered by:updateOwnUser,updateUser. - HinzugefügtOperation
onNotificationsChangedTriggered whenever a notification for the logged in user is created, read or deleted. Returns the logged in user’s id. Use getNotifications to fetch the updates. - HinzugefügtOperation
onAssessmentChangedTriggered whenever the assessment, its user assignments or its content assignments change. Returns the assessment id. Use getAssessment to fetch the updates. Triggered by: -updateAssessment,updateAssessmentUser,updateAssessmentOwnUser- assignments:assignUsersToAssessment,unassignUsersFromAssessment,assignContentToAssessment,unassignContentFromAssessment-updateUsersInGroups(auto assign/unassign via group membership) - the scheduled assessment end job: a user’s time ran out, or the assessment started - HinzugefügtOperation
onCourseModuleRevisionChangedTriggered whenever the course module revision or one of its chapters changes. Returns the course module id. Use getCourseModuleRevision to fetch the updates. Triggered by: -updateCourseModule,publishCourseModule,resetCourseModuleRevisionand the editing lock mutations - the chapter mutations and the chapter/content unit edge mutations -createCourseModuleContentFile- the tag edge mutations - the collaborator, content rights and owner mutations -setContentsSharedBySystem,setContentsSharedByTenant - HinzugefügtOperation
onContentUnitRevisionChangedTriggered whenever the content unit revision, one of its learning phases or one of its content blocks changes. Returns the content unit id. Use getContentUnitRevision to fetch the updates. Triggered by: -updateContentUnit,publishContentUnits,resetContentUnitRevisionand the editing lock mutations - all learning phase and content block mutations - the exercise/learning phase and chapter/content unit edge mutations - the tag edge mutations - the collaborator, content rights and owner mutations -setContentsSharedBySystem,setContentsSharedByTenant - HinzugefügtOperation
onLearningPhaseRevisionChangedTriggered whenever the learning phase changes. Returns the learning phase id. Use getContentUnitRevision to fetch the updates. Triggered by: -updateLearningPhaseand the editing lock mutations - all content block mutations - the exercise/learning phase edge mutations - HinzugefügtOperation
onContentBlockRevisionChangedTriggered whenever the content block changes. Returns the content block id. Use getContentUnitRevision to fetch the updates. Triggered by:updateContentBlockand its editing lock mutations. - HinzugefügtOperation
onExerciseRevisionChangedTriggered whenever the exercise revision changes. Returns the exercise id. Use getExerciseRevision to fetch the updates. Triggered by: -updateExercise,publishExercises,resetExerciseRevisionand the editing lock mutations -generateExerciseHints(hints arrive asynchronously from the AI) - the fine objective edge and tag edge mutations - the collaborator, content rights and owner mutations - HinzugefügtOperation
onObjectiveRevisionChangedTriggered whenever the objective revision or one of its fine objectives changes. Returns the objective id. Use getObjectiveRevision to fetch the updates. Triggered by: -updateObjective,publishObjectives- all fine objective mutations - the editing lock mutations of objectives and fine objectives - the tag edge mutations - the collaborator, content rights and owner mutations - HinzugefügtOperation
onFineObjectiveRevisionChangedTriggered whenever the fine objective revision changes. Returns the fine objective id. Use getFineObjectiveRevision to fetch the updates. Triggered by:updateFineObjectiveand its editing lock mutations. - HinzugefügtOperation
onTagChangedTriggered whenever the tag itself or one of its content assignments changes. Returns the tag id. Use getTag to fetch the updates. Triggered by:updateTag,updateObjectiveand the tag edge mutations of all content types. - HinzugefügtTyp
GroupTagEdge - HinzugefügtTyp
GroupTagEdgeOrderArg - HinzugefügtTyp
GroupTagEdgeOrderField - HinzugefügtTyp
GroupTagEdgeOrderInfo - HinzugefügtTyp
GroupTagEdgesFilter - HinzugefügtTyp
GroupUserTagLogic - HinzugefügtTyp
InputGroupTagEdge - HinzugefügtTyp
InputGroupUserTagLogicWhen a connection with this logic is added: true: user gets added with this role false: no automatism - HinzugefügtTyp
InputRoleTagEdge - HinzugefügtTyp
RoleTagEdge - HinzugefügtTyp
RoleTagEdgesFilter - HinzugefügtFeld
PagedGroupTagEdgeList - HinzugefügtFeld
Chapter.updatedByfrom EditableContent: who made the last change (children included). null like CourseModule.createdBy. - HinzugefügtFeld
ContentBlock.updatedByfrom EditableContent: who made the last change (children included). null like CourseModule.createdBy. - HinzugefügtFeld
ContentUnit.updatedByfrom EditableContent: who made the last change (children included). null like createdBy. - HinzugefügtFeld
ContentUnit.publishedByfrom StandaloneContent: who published this version. null if unpublished / like createdBy. - HinzugefügtFeld
CourseModule.updatedByfrom EditableContent: who made the last change (children included). null like createdBy. - HinzugefügtFeld
CourseModule.publishedByfrom StandaloneContent: who published this version. null if unpublished / like createdBy. - HinzugefügtFeld
EditableContent.updatedByWho made the last change to the content (children included)?nullif the user is from a different tenant or without the corresponding LIST_/EDIT_ content privilege. Alwaysnullfor Objective/FineObjective (versioning is being removed from them). - HinzugefügtFeld
Exercise.updatedByfrom EditableContent: who made the last change (children included). null like createdBy. - HinzugefügtFeld
Exercise.publishedByfrom StandaloneContent: who published this version. null if unpublished / like createdBy. - HinzugefügtFeld
FineObjective.updatedByfrom EditableContent: always null for FineObjective (versioning being removed, #2517). - HinzugefügtFeld
Group.ownerthe user with the OWNER role in the group visible to everybody who can see the group (same as name), also to non-members null if the group has no owner or the owner was deleted - HinzugefügtFeld
LearningPhase.updatedByfrom EditableContent: who made the last change (children included). null like CourseModule.createdBy. - HinzugefügtFeld
Objective.updatedByfrom EditableContent: always null for Objective (versioning being removed, #2517). - HinzugefügtFeld
Objective.publishedByfrom StandaloneContent: always null for Objective (versioning being removed, #2517). - HinzugefügtFeld
StandaloneContent.publishedByWho published this version?nullfor unpublished contents, if the user is from a different tenant, or without the corresponding LIST_/EDIT_ content privilege. Alwaysnullfor Objective/FineObjective (versioning is being removed from them). - HinzugefügtFeld
TagEdges.numberGroupEdges - HinzugefügtFeld
TagEdges.numberRoleEdges - HinzugefügtFeld
TagEdges.numberGroupEdgesWithLogic - HinzugefügtFeld
TagEdges.numberGroupEdgesWithUserLogic - HinzugefügtFeld
TagEdges.numberGroupEdgesWithCourseModuleLogic - HinzugefügtFeld
TagEdges.numberRoleEdgesWithLogic - HinzugefügtFeld
TagEdges.groups - HinzugefügtFeld
TagEdges.roles - HinzugefügtEingabefeld
AssessmentFilter2.courseModuleIdsonly returns assessments whose library contains at least one of the given course modules (CourseModule.id) with VIEW_ALL_GROUPS, this also returns the assessments of groups where the current user is not manager/tutor. those are restricted to basic information:usersis empty, allactionsare false,image,startInfo,startDate,endDate,duration,successThresholdandvalidityInMonthsare null - HinzugefügtEingabefeld
GroupFilter.courseModuleIdsonly returns groups whose library contains at least one of the given course modules (CourseModule.id) visibility rules still apply: without VIEW_ALL_GROUPS only public groups and groups the user is member of are returned - HinzugefügtEingabefeld
TagFilter.minGroupEdgesminimum required number ofGroupTagEdges the tag is only returned when it has at least this amount ofGroupTagEdges default = 0 (no edges required) - HinzugefügtEingabefeld
TagFilter.minRoleEdgesminimum required number ofRoleTagEdges the tag is only returned when it has at least this amount ofRoleTagEdges default = 0 (no edges required) - HinzugefügtEnum-Wert
TagOrderField.AMOUNT_GROUP_EDGESnumber of Groups the tag is assigned to - HinzugefügtEnum-Wert
TagOrderField.AMOUNT_ROLE_EDGESnumber of Roles the tag is assigned to
Details zu diesem Release in den Versionshinweisen
- Verhalten geändert Some errors that were returned as
ACCESS_DENIED(“Internal error”) now carry their own error code, e.g.registerwith an invalid token returnsINVITATION_TOKEN_INVALID, a request for another tenant’s data returnsINVALID_TENANT. - EntferntOperation
exerciseImport - EntferntOperation
checkExerciseImport - EntferntTyp
ExcelImportError - EntferntEnum-Wert
Privilege.EXERCISE_IMPORT - EntferntEnum-Wert
UploadType.IMPORTFILE
Details zu diesem Release in den Versionshinweisen
- Verhalten geändert
AssessmentUser.completedSuccessfullyis nownullinstead offalsewhile pending exercises (hand in, open answer, …) could still change the result. - Verhalten geändert
inviteUserswithroleIdsnow additionally requiresEDIT_USER_ROLE.
Details zu diesem Release in den Versionshinweisen
- Verhalten geändert
updateExerciseOwner,updateContentUnitOwner,updateCourseModuleOwner,updateObjectiveOwnerand thecreateOrUpdate…CollaboratorEdgesmutations now reject users from another tenant. - Verhalten geändert
edges.exerciseRevisionsof a learning phase andedges.fineObjectiveRevisionsof an exercise on an older version now resolve from that version, likeedges.contentUnitRevisionsalready did.
Details zu diesem Release in den Versionshinweisen
Übungsinhalte werden beim Schreiben ab sofort validiert. Details dazu finden Sie unter Schema-Validierung.
- Verhalten geändert
createExerciseandupdateExercisenow validatedefinition,answerandexplanationsagainst the JSON Schema of the exercise type and reject a mismatch withJSON_INVALID. - Verhalten geändert
publishExercisesnow publishes only exercises whoseExercise.validistrue. The rest are skipped and counted as errors in the result. - HinzugefügtFeld
Exercise.validtrue if the exercise passed the completeness check and is ready to be published
Details zu diesem Release in den Versionshinweisen
- Verhalten geändert
requestPasswordResetnow recognizes single sign-on users and sends them an email pointing to their identity provider instead of a reset token. - Verhalten geändert
setNewPasswordnow fails withINVALID_INPUTwhen the token belongs to a single sign-on user. - Verhalten geändert
addActivityLogsno longer writes learning-phase progress as a side effect of aLEARNING_PHASEentry —setPhaseCompletedhas taken over that responsibility.
Details zu diesem Release in den Versionshinweisen
Details zu diesem Release in den Versionshinweisen
- HinzugefügtOperation
updateFileReferencesupdates file meta data for given files. - HinzugefügtOperation
getFileReferencesget metadata on files - HinzugefügtTyp
UpdateFileReferenceInput - HinzugefügtFeld
FileReference.uuid - HinzugefügtFeld
FileReference.aiGeneratedwhether the file was produced by an AI feature - HinzugefügtFeld
Group.hasAiTutordoes the group have the ai tutor enabled? - HinzugefügtEnum-Wert
Privilege.EDIT_FILE
Dieses Changelog beginnt mit dem heutigen Release.
- VeraltetFeld
Appointment.startDateString - VeraltetFeld
Appointment.endDateString - VeraltetEnum-Wert
ActivityType.COURSE - VeraltetEnum-Wert
PrivilegeScope.HINT - VeraltetArgument
filtervonFineObjectiveEdges.exerciseRevisions - VeraltetArgument
filtervonLearningPhaseEdges.exerciseRevisions - VeraltetEingabefeld
SystemContentFilter.ordering