Changelog
This page records partner-visible changes: operations in the published API Reference, documented behaviour in the published guides, and insight-type semantics. Internal changes with no external effect are not listed here.
2026.09.09.1
- Caliper ingest accepts
SessionEventwith theArchivedaction: a Person actor delivers an inlineSessionRecordingobject (proctored status, webcam usage, recording times, storage key, subject, extensions) for an existing session, and the platform applies the same session-metadata writes asPOST /insights/1.0/sessions. The event never creates a session and never changes session start or end times. See Caliper Events Reference and Session Management. Non-breaking.
2026.09.08.2
- Rostering users (
GET /rostering/1.0/users,GET /rostering/1.0/users/{sourcedId}, and the role-scoped user lists): theagentsarray now contains only open agent relationships. Relationships the roster has ended (inactive, or carrying an end date) are excluded, matching the/users/{sourcedId}/agentsand/users/{sourcedId}/linkedUsersendpoints. Breaking for integrators that readagentsas the full relationship history.
2026.09.08.1
- Webhooks:
proctoring_enforcement.recordednow also fires forexited_mid_test(client-written when the student leaves the mid-test readiness screen without resuming). Filter ondata.enforcementType. Analytics:proctoring_enforcement_actions.action_typeincludes that kind. Non-breaking. - Webhooks:
proctoring_enforcement.recordednow also fires forblocked_mid_test(platform-minted when a CLIENT START fact carried a trustedREADINESS_GATEmark) andunblocked_mid_test(client-written when the mid-test readiness dialog dismissed). Filter ondata.enforcementType. Analytics:insight_events.enforcement_surfaceisREADINESS_GATEwhen that mark was trusted, otherwise null. Non-breaking. - Store refunds: storefront purchases use an optional per-app refund window (default 7 days) set with
set_app_refund_window; in-app refunds stay on the global 7-day window. Non-breaking.
2026.09.07.2
- Breaking: IRI-only
actorandedAppvalues that have no Caliper entity yet are defined from the matching OneRoster user or LTI application. If neither registry has a match, ingest rejects the event instead of creating a stub. Other entity references keep stub semantics. See General Concepts.
2026.09.07.1
- Analytics schema:
proctoring_enforcement_actionsandinsight_notificationswithhold internal catalogue rule identities instead of dropping those rows. When the resolved type visibility is internal,insight_typeandinsight_groupare null and the newrule_visibilitycolumn isinternal.insight_notifications.insight_typeis now nullable (zero current rows affected). Non-breaking for callers that already treated those identity columns as optional on enforcement actions.
2026.09.03.1
- Store Discount Codes guide: documents
POST /apps/v1/discount-codes/validate(Cognito client-credentials, samepurchases.writescope as in-app purchases). Parent checkout remainsPOST /store/v1/discount-codes/validatewith a parent session. Non-breaking. - Insights guide:
insightGroupis required when the resulting type is notJournal. AJournaltype may omit it (insightGroup: null). An update whose merged state is a non-Journal type without a group is refused. Previously the guide said a group was required on every new type. Non-breaking.
2026.09.01.1
- New insight findings are no longer hidden by
insights_config.is_visibleor orginsightTypeConfigOverrides.isVisible. Hide vs publish isrollout_stateand org policy only. The override JSON key is still accepted and ignored. Non-breaking for readers; operators who hid a detector only via that boolean should use aSHADOWorg policy.
2026.08.31.1
- Insights guide and webhooks: new findings default to
SHADOWwhen the session has no pinned rollout stage for that type. RemainingrolloutStatenulls will be filled toSHADOW; until that fill, a null stage still passes the customer-read gate. New unpinned detections stay off the customer read API andinsight.*events.
2026.08.28.2
- Insight types can carry a minimum occurrence duration. Occurrences shorter than that minimum are stored as suppressed rows and are absent from the Insights API, webhooks, and coaching analytics views. Types with no minimum configured are unchanged. Non-breaking.
2026.08.27.2
- Insights types
IgnoringHelpandTopicShoppingstop producing new detections in this release.GET /insights/1.0/typeskeeps both in the catalog withdeprecated: trueandsunsetAt: 2026-11-26T00:00:00.000Z; after that datetime they leave the catalog. Insights already recorded against either type remain readable. Non-breaking.
2026.08.27.1
- Insights guide: customer reads of detections now also require
insights_insight.outcome = raised. Segments whose context predicate failed (for example an academic-integrity signal on a standard session, or minutes outside an assessment window) are stored as suppressed rows and are absent from the Insights API, webhooks, and coaching analytics views. Non-breaking for callers that already consumed only raised detections; suppressed minutes no longer inflate waste or integrity totals.
2026.08.26.1
- Insights API Reference:
GET /insights/1.0/typesnow returnsdeprecated(boolean, always present) andsunsetAt(nullable RFC 3339 datetime) on each type. During a deprecation window the type stays in the catalog; aftersunsetAtit leaves the catalog and stops producing new insights. Previously recorded insights remain readable. Non-breaking.
2026.08.24.1
- Webhooks guide:
org.config.updatedis now in the event catalog. It fires when an organization's config row set is written throughPUT /rostering/1.0/orgs/{sourcedId}/config(any key write). Payload:{ orgId }. Subscription routing follows the standard org-scope rule. Non-breaking.
2026.08.17.1
- Insights API Reference:
GET /insights/1.0/insight-groupsis now published. It returns the registered insight groups with family, membership rule, and a count of types visible to the caller in each group. Non-breaking.
2026.08.11.1
- Insights API Reference:
GET /insights/1.0/cataloghas been removed from the published surface. It returned locale-keyed message bundles for catalog-managed proctoring insights and was consumed at session start. Breaking for integrators that called it directly.
2026.08.03.1
- The insight types the guide used to list are marked deprecated: they are being retired and will stop being populated. Pull the current list from the type catalog. Breaking for integrators that hard-coded those slugs.
