Package-level declarations

Types

Link copied to clipboard
@Serializable
data class DiscoveredPluginInfo(val pluginId: String, val version: String, val mainClass: String, val jarPath: String, val dependencies: List<String>, val artifactLastModifiedMs: Long, val artifactChecksum: String)
Link copied to clipboard

Mounts the OpenAPI documentation routes under /api/_system/docs. Provides:

Link copied to clipboard
@Serializable
data class FrameworkVersionData(val frameworkVersion: String)
Link copied to clipboard

Gateway Interceptor that checks plugin status before routing requests. This implements the "logic switch over physical removal" pattern.

Link copied to clipboard
@Serializable
data class HealthData(val status: String, val timestamp: Long)
Link copied to clipboard
@Serializable
data class HotReloadStatusData(val enabled: Boolean, val inProgress: Boolean, val lastFailureSummary: String? = null, val lastEvent: DevReloadEvent? = null)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class PluginActionResult(val pluginId: String, val message: String, val action: String? = null, val lifecycleState: PluginLifecycleState? = null, val healthState: PluginHealthState? = null, val generation: Long? = null)
Link copied to clipboard
@Serializable
data class PluginDiscoverData(val discovered: List<DiscoveredPluginInfo>, val total: Int)
Link copied to clipboard
@Serializable
data class PluginFailureInfo(val timestamp: Long, val source: String, val message: String)
Link copied to clipboard
@Serializable
data class PluginInfo(val pluginId: String, val version: String, val runtimeMode: PluginRuntimeMode, val lifecycleState: PluginLifecycleState, val healthState: PluginHealthState, val generation: Long, val isIsolated: Boolean = false, val processState: PluginProcessState? = null, val processId: Long? = null, val processAlive: Boolean? = null, val activeCommunicationMode: JvmCommunicationMode? = null, val fallbackActivated: Boolean = false, val lastFallbackReason: String? = null, val adminChannelHealth: PluginChannelHealth = PluginChannelHealth.UNKNOWN, val eventChannelHealth: PluginChannelHealth = PluginChannelHealth.UNKNOWN, val socketHealthy: Boolean = false, val droppedLogCount: Long = 0, val eventQueueDepth: Int = 0, val eventOverflowed: Boolean = false, val inflightInvocations: Int = 0, val lastHealthLatencyMs: Long? = null, val lastAdminLatencyMs: Long? = null, val lastEventAtEpochMs: Long? = null, val lastFailure: PluginFailureInfo? = null, val displayName: String = pluginId)
Link copied to clipboard
@Serializable
data class PluginListData(val plugins: List<PluginInfo>, val total: Int)

Functions

Link copied to clipboard
fun Route.docRoutes()
Link copied to clipboard
fun Route.logRoutes()
Link copied to clipboard
fun Route.systemApi(block: Route.() -> Unit)
Link copied to clipboard
inline fun <Res : Any> Route.typedDelete(path: String = "", doc: OpenApiDoc = OpenApiDoc(), noinline body: suspend RoutingContext.() -> Unit)
Link copied to clipboard
inline fun <Res : Any> Route.typedGet(path: String = "", doc: OpenApiDoc = OpenApiDoc(), noinline body: suspend RoutingContext.() -> Unit)
Link copied to clipboard
@JvmName(name = "routingTypedPostWithoutRequest")
inline fun <Res : Any> Route.typedPost(path: String = "", doc: OpenApiDoc = OpenApiDoc(), noinline body: suspend RoutingContext.() -> Unit)
inline fun <Req : Any, Res : Any> Route.typedPost(path: String = "", doc: OpenApiDoc = OpenApiDoc(), noinline body: suspend RoutingContext.() -> Unit)
Link copied to clipboard
inline fun <Req : Any, Res : Any> Route.typedPut(path: String = "", doc: OpenApiDoc = OpenApiDoc(), noinline body: suspend RoutingContext.() -> Unit)
Link copied to clipboard
fun Route.typedRoute(path: String, block: Route.() -> Unit)
Link copied to clipboard
fun Route.unifiedSystemRoutes(pluginManager: UnifiedPluginManager, pluginLoader: DefaultPluginLoader? = null, hotReloadEngine: DevHotReloadEngine? = null)