Package-level declarations

Types

Link copied to clipboard
@Serializable
data class ConsumeLtiNonceRequest(val consumerKey: String, val nonce: String, val timestampSeconds: Long)
Link copied to clipboard
data class CourseReference(val id: Long, val name: String?, val code: String?, val instanceName: String?, val htmlUrl: String?)
Link copied to clipboard
@Serializable
data class CreateFrontendSessionRequest(val token: String, val replacedSessionId: String? = null)
Link copied to clipboard
@Serializable
data class CreateFrontendSessionResponse(val sessionId: String, val expiresAtMillis: Long)
Link copied to clipboard
class ForbiddenException(courseId: Long, role: Role) : RuntimeException
Link copied to clipboard

Exchanges A+ tokens for opaque browser sessions and resolves those sessions on later requests.

Link copied to clipboard
data class FrontendSessionSettings(val activeEncryptionKeyVersion: String, val encryptionKeys: Map<String, ByteArray>, val serviceSecret: String, val studentIdleTimeoutMillis: Long, val studentAbsoluteTimeoutMillis: Long, val staffIdleTimeoutMillis: Long, val staffAbsoluteTimeoutMillis: Long, val lastUseWriteIntervalMillis: Long, val cleanupIntervalMillis: Long, val cleanupBatchSize: Int, val maxActiveSessionsPerUser: Int, val creationEnabled: Boolean)
Link copied to clipboard
data class Identity(val userId: Long, val username: String, val fullName: String?, val email: String?, val teacherCourses: Set<Long>, val teacherCourseDetails: Map<Long, CourseReference> = emptyMap(), val assistantCourses: Set<Long>, val staffCourses: Set<Long>, val enrolledCourses: Set<Long>)
Link copied to clipboard
interface IdentitySource

Resolves Hanami identities and exact A+ user profiles for an authenticated token.

Link copied to clipboard

Accepts each LTI consumer-key and nonce pair once within the configured timestamp window.

Link copied to clipboard
@Serializable
data class MeResponse(val userId: Long, val username: String, val fullName: String?, val courses: List<MeResponse.CourseRole>, val preferences: UserPreferences)
Link copied to clipboard
data class ResolvedFrontendSession(val token: String, val identity: Identity)
Link copied to clipboard
enum Role : Enum<Role>
Link copied to clipboard

Resolves the A+ identity associated with an authenticated token.

Link copied to clipboard
Link copied to clipboard
data class UserProfile(val id: Long, val username: String, val fullName: String?, val email: String?, val enrolledCourseIds: Set<Long>, val staffCourseIds: Set<Long>, val teacherCourseIds: Set<Long>, val assistantCourseIds: Set<Long>)