Package-level declarations
Types
Link copied to clipboard
data class EndpointExecutionPolicy(val timeoutMs: Long? = null, val maxPayloadBytes: Long? = null, val allowChunkedTransfer: Boolean = false)
Link copied to clipboard
Link copied to clipboard
data class JvmCommunicationStrategy(val preferredMode: JvmCommunicationMode = JvmCommunicationMode.UDS, val fallbackMode: JvmCommunicationMode = JvmCommunicationMode.TCP, val maxAttempts: Int = 3)
Link copied to clipboard
interface KeelPlugin
Link copied to clipboard
Link copied to clipboard
interface PluginAvailability
Link copied to clipboard
Link copied to clipboard
data class PluginConfig(val pluginId: String, val enabled: Boolean = true, val runtimeMode: PluginRuntimeMode = PluginRuntimeMode.IN_PROCESS, val communicationStrategy: JvmCommunicationStrategy = JvmCommunicationStrategy.DEFAULT, val recoveryPolicy: PluginRecoveryPolicy = PluginRecoveryPolicy(), val startupTimeoutMs: Long = 5000, val callTimeoutMs: Long = 3000, val stopTimeoutMs: Long = 3000, val healthCheckIntervalMs: Long = 10000, val maxConcurrentCalls: Int = 128, val eventLogRingBufferSize: Int = 4096, val criticalEventQueueSize: Int = 256, val reload: ReloadConfig = ReloadConfig(), val settings: JsonObject = buildJsonObject {})
Runtime configuration for a plugin instance, derived from its PluginDescriptor. This is no longer loaded from JSON files to ensure "Config-as-Code".
Link copied to clipboard
data class PluginDescriptor(val pluginId: String, val version: String, val displayName: String, val defaultRuntimeMode: PluginRuntimeMode = PluginRuntimeMode.IN_PROCESS, val communicationStrategy: JvmCommunicationStrategy = JvmCommunicationStrategy.DEFAULT, val supportedRuntimeModes: Set<PluginRuntimeMode> = setOf(
PluginRuntimeMode.IN_PROCESS,
PluginRuntimeMode.EXTERNAL_JVM
), val supportedServices: Set<PluginServiceType> = setOf(
PluginServiceType.ENDPOINT,
PluginServiceType.SSE,
PluginServiceType.STATIC_RESOURCE
), val recoveryPolicy: PluginRecoveryPolicy = PluginRecoveryPolicy(), val startupTimeoutMs: Long = 5000, val callTimeoutMs: Long = 3000, val stopTimeoutMs: Long = 3000, val healthCheckIntervalMs: Long = 10000, val maxConcurrentCalls: Int = 128, val eventLogRingBufferSize: Int = 4096, val criticalEventQueueSize: Int = 256)
Link copied to clipboard
Link copied to clipboard
object PluginEndpointBuilders
Link copied to clipboard
data class PluginEndpointDefinition<Req : Any, Res : Any>(val endpointId: String, val method: HttpMethod, val path: String, val requestType: KType?, val responseType: KType, val doc: OpenApiDoc = OpenApiDoc(), val executionPolicy: EndpointExecutionPolicy = EndpointExecutionPolicy(), val handler: suspend PluginRequestContext.(Req?) -> PluginResult<Res>) : PluginRouteDefinition
Link copied to clipboard
class PluginEndpointDsl
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface PluginInitContext
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class PluginRecoveryPolicy(val maxRestarts: Int = 5, val baseBackoffMs: Long = 250, val maxBackoffMs: Long = 5000, val resetWindowMs: Long = 60000)
Link copied to clipboard
interface PluginRequestContext
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class PluginRuntimeDiagnostics(val processAlive: Boolean? = null, val adminChannelHealth: PluginChannelHealth = PluginChannelHealth.UNKNOWN, val eventChannelHealth: PluginChannelHealth = PluginChannelHealth.UNKNOWN, val activeCommunicationMode: JvmCommunicationMode? = null, val fallbackActivated: Boolean = false, val lastFallbackReason: String? = null, val droppedLogCount: Long = 0, val eventQueueDepth: Int = 0, val eventOverflowed: Boolean = false, val lastHealthLatencyMs: Long? = null, val lastAdminLatencyMs: Long? = null, val lastEventAtEpochMs: Long? = null, val inflightInvocations: Int = 0)
Link copied to clipboard
Link copied to clipboard
data class PluginRuntimeSnapshot(val pluginId: String, val displayName: String, val version: String, val runtimeMode: PluginRuntimeMode, val lifecycleState: PluginLifecycleState, val healthState: PluginHealthState, val generation: PluginGeneration, val processState: PluginProcessState?, val processId: Long?, val processHandleAlive: Boolean? = null, val diagnostics: PluginRuntimeDiagnostics, val lastFailure: PluginFailureRecord? = null)
Link copied to clipboard
Link copied to clipboard
data class PluginSseDefinition(val path: String, val doc: OpenApiDoc = OpenApiDoc(), val handler: suspend PluginSseSession.() -> Unit) : PluginRouteDefinition
Link copied to clipboard
class PluginSseSession
Link copied to clipboard
data class PluginStaticResourceDefinition(val path: String, val basePackage: String, val doc: OpenApiDoc = OpenApiDoc(), val index: String? = null) : PluginRouteDefinition
Link copied to clipboard
class PluginTeardownRegistry
Link copied to clipboard
data class ReloadConfig(val watchEnabled: Boolean = false, val debounceMs: Long = 500, val replaceOnArtifactChange: Boolean = true, val reloadOnConfigChange: Boolean = true)
Link copied to clipboard
class UnifiedPluginManager(kernelKoin: Koin, runtimeRoot: File = File("/tmp/keel"), currentClasspath: String = System.getProperty("java.class.path"), observabilityHub: ObservabilityHub? = null) : PluginAvailability