Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class DefaultPluginRequestContext(val pluginId: String, val method: String, val rawPath: String, val pathParameters: Map<String, String>, val queryParameters: Map<String, List<String>>, val requestHeaders: Map<String, List<String>>, val requestId: String, val attributes: MutableMap<String, Any?> = linkedMapOf(), var principal: Any? = null, var tenant: Any? = null) : KeelRequestContext
Link copied to clipboard
data class EndpointExecutionPolicy(val timeoutMs: Long? = null, val maxPayloadBytes: Long? = null, val allowChunkedTransfer: Boolean = false)
Link copied to clipboard
interface EndpointPlugin
Link copied to clipboard
Link copied to clipboard
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 KeelGeneratedInterceptorMetadataProvider
Link copied to clipboard
Link copied to clipboard
interface KeelPlugin
Link copied to clipboard
interface KeelRequestContext
Link copied to clipboard
interface KeelRequestInterceptor
Link copied to clipboard
interface KtorScopedPlugin
Link copied to clipboard
interface LifecyclePlugin
Link copied to clipboard
interface ModulePlugin
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, val nodeAssetMetadata: PluginNodeAssetMetadata? = null)
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 interceptors: List<KClass<out KeelRequestInterceptor>> = emptyList(), val interceptorSource: InterceptorMetadataSource = InterceptorMetadataSource.NONE, val handler: suspend KeelRequestContext.(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
class PluginKtorConfig
Link copied to clipboard
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
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, val processCpuLoadPercent: Double? = null, val heapUsedBytes: Long? = null, val heapMaxBytes: Long? = null, val heapUsedPercent: Double? = null, val assetMetadata: PluginNodeAssetMetadata? = null)
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
Link copied to clipboard
class ServiceKtorPluginConfig
Link copied to clipboard
Link copied to clipboard
class UnifiedPluginManager(kernelKoin: Koin, runtimeRoot: File = File("/tmp/keel"), currentClasspath: String = System.getProperty("java.class.path"), observabilityHub: ObservabilityHub? = null) : PluginAvailability