Zum Inhalt springen

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

  • Veraltet
    Operation onOwnUserUpdate
  • Veraltet
    Operation onAssessmentUpdate
  • Veraltet
    Operation onObjectiveRevisionUpdate
  • Veraltet
    Operation onFineObjectiveRevisionUpdate
  • Veraltet
    Operation onContentUnitRevisionUpdate
  • Veraltet
    Operation onLearningPhaseRevisionUpdate
  • Veraltet
    Operation onContentBlockRevisionUpdate
  • Veraltet
    Operation onCourseModuleRevisionUpdate
  • Veraltet
    Operation onTagUpdate
  • Veraltet
    Operation onExerciseRevisionUpdate
  • Veraltet
    Operation onNotificationsUpdate
  • Hinzugefügt
    Operation createOrUpdateGroupTagEdges
  • Hinzugefügt
    Operation deleteGroupTagEdges
  • Hinzugefügt
    Operation createOrUpdateRoleTagEdges
  • Hinzugefügt
    Operation deleteRoleTagEdges
  • Hinzugefügt
    Operation onOwnUserChanged
    Triggered 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ügt
    Operation onNotificationsChanged
    Triggered 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ügt
    Operation onAssessmentChanged
    Triggered 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ügt
    Operation onCourseModuleRevisionChanged
    Triggered 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, resetCourseModuleRevision and 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ügt
    Operation onContentUnitRevisionChanged
    Triggered 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, resetContentUnitRevision and 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ügt
    Operation onLearningPhaseRevisionChanged
    Triggered whenever the learning phase changes. Returns the learning phase id. Use getContentUnitRevision to fetch the updates. Triggered by: - updateLearningPhase and the editing lock mutations - all content block mutations - the exercise/learning phase edge mutations
  • Hinzugefügt
    Operation onContentBlockRevisionChanged
    Triggered whenever the content block changes. Returns the content block id. Use getContentUnitRevision to fetch the updates. Triggered by: updateContentBlock and its editing lock mutations.
  • Hinzugefügt
    Operation onExerciseRevisionChanged
    Triggered whenever the exercise revision changes. Returns the exercise id. Use getExerciseRevision to fetch the updates. Triggered by: - updateExercise, publishExercises, resetExerciseRevision and 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ügt
    Operation onObjectiveRevisionChanged
    Triggered 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ügt
    Operation onFineObjectiveRevisionChanged
    Triggered whenever the fine objective revision changes. Returns the fine objective id. Use getFineObjectiveRevision to fetch the updates. Triggered by: updateFineObjective and its editing lock mutations.
  • Hinzugefügt
    Operation onTagChanged
    Triggered whenever the tag itself or one of its content assignments changes. Returns the tag id. Use getTag to fetch the updates. Triggered by: updateTag, updateObjective and the tag edge mutations of all content types.
  • Hinzugefügt
    Typ GroupTagEdge
  • Hinzugefügt
    Typ GroupTagEdgeOrderArg
  • Hinzugefügt
    Typ GroupTagEdgeOrderField
  • Hinzugefügt
    Typ GroupTagEdgeOrderInfo
  • Hinzugefügt
    Typ GroupTagEdgesFilter
  • Hinzugefügt
    Typ GroupUserTagLogic
  • Hinzugefügt
    Typ InputGroupTagEdge
  • Hinzugefügt
    Typ InputGroupUserTagLogic
    When a connection with this logic is added: true: user gets added with this role false: no automatism
  • Hinzugefügt
    Typ InputRoleTagEdge
  • Hinzugefügt
    Typ RoleTagEdge
  • Hinzugefügt
    Typ RoleTagEdgesFilter
  • Hinzugefügt
    Feld PagedGroupTagEdgeList
  • Hinzugefügt
    Feld Chapter.updatedBy
    from EditableContent: who made the last change (children included). null like CourseModule.createdBy.
  • Hinzugefügt
    Feld ContentBlock.updatedBy
    from EditableContent: who made the last change (children included). null like CourseModule.createdBy.
  • Hinzugefügt
    Feld ContentUnit.updatedBy
    from EditableContent: who made the last change (children included). null like createdBy.
  • Hinzugefügt
    Feld ContentUnit.publishedBy
    from StandaloneContent: who published this version. null if unpublished / like createdBy.
  • Hinzugefügt
    Feld CourseModule.updatedBy
    from EditableContent: who made the last change (children included). null like createdBy.
  • Hinzugefügt
    Feld CourseModule.publishedBy
    from StandaloneContent: who published this version. null if unpublished / like createdBy.
  • Hinzugefügt
    Feld EditableContent.updatedBy
    Who made the last change to the content (children included)? null if the user is from a different tenant or without the corresponding LIST_/EDIT_ content privilege. Always null for Objective/FineObjective (versioning is being removed from them).
  • Hinzugefügt
    Feld Exercise.updatedBy
    from EditableContent: who made the last change (children included). null like createdBy.
  • Hinzugefügt
    Feld Exercise.publishedBy
    from StandaloneContent: who published this version. null if unpublished / like createdBy.
  • Hinzugefügt
    Feld FineObjective.updatedBy
    from EditableContent: always null for FineObjective (versioning being removed, #2517).
  • Hinzugefügt
    Feld Group.owner
    the 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ügt
    Feld Group.tags
    requires being manager of the group and LIST_TAG or EDIT_TAG empty list otherwise
  • Hinzugefügt
    Feld LearningPhase.updatedBy
    from EditableContent: who made the last change (children included). null like CourseModule.createdBy.
  • Hinzugefügt
    Feld Objective.updatedBy
    from EditableContent: always null for Objective (versioning being removed, #2517).
  • Hinzugefügt
    Feld Objective.publishedBy
    from StandaloneContent: always null for Objective (versioning being removed, #2517).
  • Hinzugefügt
    Feld Role.tags
    requires LIST_TAG or EDIT_TAG, empty list otherwise
  • Hinzugefügt
    Feld StandaloneContent.publishedBy
    Who published this version? null for unpublished contents, if the user is from a different tenant, or without the corresponding LIST_/EDIT_ content privilege. Always null for Objective/FineObjective (versioning is being removed from them).
  • Hinzugefügt
    Feld TagEdges.numberGroupEdges
  • Hinzugefügt
    Feld TagEdges.numberRoleEdges
  • Hinzugefügt
    Feld TagEdges.numberGroupEdgesWithLogic
  • Hinzugefügt
    Feld TagEdges.numberGroupEdgesWithUserLogic
  • Hinzugefügt
    Feld TagEdges.numberGroupEdgesWithCourseModuleLogic
  • Hinzugefügt
    Feld TagEdges.numberRoleEdgesWithLogic
  • Hinzugefügt
    Feld TagEdges.groups
  • Hinzugefügt
    Feld TagEdges.roles
  • Hinzugefügt
    Eingabefeld AssessmentFilter2.courseModuleIds
    only 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: users is empty, all actions are false, image, startInfo, startDate, endDate, duration, successThreshold and validityInMonths are null
  • Hinzugefügt
    Eingabefeld GroupFilter.tags
    only returns groups that have all of the tags assigned (Tag.id)
  • Hinzugefügt
    Eingabefeld GroupFilter.courseModuleIds
    only 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ügt
    Eingabefeld TagFilter.minGroupEdges
    minimum required number of GroupTagEdges the tag is only returned when it has at least this amount of GroupTagEdges default = 0 (no edges required)
  • Hinzugefügt
    Eingabefeld TagFilter.minRoleEdges
    minimum required number of RoleTagEdges the tag is only returned when it has at least this amount of RoleTagEdges default = 0 (no edges required)
  • Hinzugefügt
    Enum-Wert TagOrderField.AMOUNT_GROUP_EDGES
    number of Groups the tag is assigned to
  • Hinzugefügt
    Enum-Wert TagOrderField.AMOUNT_ROLE_EDGES
    number of Roles the tag is assigned to

Details zu diesem Release in den Versionshinweisen

Details zu diesem Release in den Versionshinweisen

  • Verhalten geändert AssessmentUser.completedSuccessfully is now null instead of false while pending exercises (hand in, open answer, …) could still change the result.
  • Verhalten geändert inviteUsers with roleIds now additionally requires EDIT_USER_ROLE.

Details zu diesem Release in den Versionshinweisen

  • Verhalten geändert updateExerciseOwner, updateContentUnitOwner, updateCourseModuleOwner, updateObjectiveOwner and the createOrUpdate…CollaboratorEdges mutations now reject users from another tenant.
  • Verhalten geändert edges.exerciseRevisions of a learning phase and edges.fineObjectiveRevisions of an exercise on an older version now resolve from that version, like edges.contentUnitRevisions already 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 createExercise and updateExercise now validate definition, answer and explanations against the JSON Schema of the exercise type and reject a mismatch with JSON_INVALID.
  • Verhalten geändert publishExercises now publishes only exercises whose Exercise.valid is true. The rest are skipped and counted as errors in the result.
  • Hinzugefügt
    Feld Exercise.valid
    true if the exercise passed the completeness check and is ready to be published

Details zu diesem Release in den Versionshinweisen

  • Verhalten geändert requestPasswordReset now recognizes single sign-on users and sends them an email pointing to their identity provider instead of a reset token.
  • Verhalten geändert setNewPassword now fails with INVALID_INPUT when the token belongs to a single sign-on user.
  • Verhalten geändert addActivityLogs no longer writes learning-phase progress as a side effect of a LEARNING_PHASE entry — setPhaseCompleted has taken over that responsibility.

Details zu diesem Release in den Versionshinweisen

Details zu diesem Release in den Versionshinweisen

  • Hinzugefügt
    Operation updateFileReferences
    updates file meta data for given files.
  • Hinzugefügt
    Operation getFileReferences
    get metadata on files
  • Hinzugefügt
    Typ UpdateFileReferenceInput
  • Hinzugefügt
    Feld FileReference.uuid
  • Hinzugefügt
    Feld FileReference.aiGenerated
    whether the file was produced by an AI feature
  • Hinzugefügt
    Feld Group.hasAiTutor
    does the group have the ai tutor enabled?
  • Hinzugefügt
    Enum-Wert Privilege.EDIT_FILE

Dieses Changelog beginnt mit dem heutigen Release.