From f291fc8fc8c76093e39f5820523523343170645e Mon Sep 17 00:00:00 2001 From: Mathieu Ancelin Date: Tue, 21 Nov 2023 10:35:23 +0100 Subject: [PATCH] first import from https://github.com/MAIF/otoroshi/tree/master/experiments/common-wasm --- .gitignore | 8 + build.sbt | 80 +++ build.sh | 6 + lib/extism-v0.4.0.jar | Bin 0 -> 54803 bytes project/Dependencies.scala | 5 + project/build.properties | 1 + project/plugins.sbt | 4 + readme.md | 109 ++++ src/main/resources/.keepit | 0 .../scala/io/otoroshi/wasm4s/impl/opa.scala | 293 +++++++++ .../io/otoroshi/wasm4s/impl/runtimev2.scala | 572 ++++++++++++++++++ .../wasm4s/scaladsl/ApikeyHelper.scala | 30 + .../otoroshi/wasm4s/scaladsl/functions.scala | 169 ++++++ .../wasm4s/scaladsl/integration.scala | 200 ++++++ .../io/otoroshi/wasm4s/scaladsl/manager.scala | 43 ++ .../io/otoroshi/wasm4s/scaladsl/opa.scala | 25 + .../otoroshi/wasm4s/scaladsl/security.scala | 124 ++++ .../io/otoroshi/wasm4s/scaladsl/syntax.scala | 386 ++++++++++++ .../io/otoroshi/wasm4s/scaladsl/wasm.scala | 570 +++++++++++++++++ src/test/resources/basic.wasm | Bin 0 -> 907906 bytes src/test/resources/opa.wasm | Bin 0 -> 116672 bytes .../io/otoroshi/wasm4s/test/WasmSpec.scala | 101 ++++ update-extism.sh | 43 ++ 23 files changed, 2769 insertions(+) create mode 100644 .gitignore create mode 100644 build.sbt create mode 100755 build.sh create mode 100644 lib/extism-v0.4.0.jar create mode 100644 project/Dependencies.scala create mode 100644 project/build.properties create mode 100644 project/plugins.sbt create mode 100644 readme.md create mode 100644 src/main/resources/.keepit create mode 100644 src/main/scala/io/otoroshi/wasm4s/impl/opa.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/impl/runtimev2.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/ApikeyHelper.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/functions.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/integration.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/manager.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/opa.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/security.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/syntax.scala create mode 100644 src/main/scala/io/otoroshi/wasm4s/scaladsl/wasm.scala create mode 100644 src/test/resources/basic.wasm create mode 100644 src/test/resources/opa.wasm create mode 100644 src/test/scala/io/otoroshi/wasm4s/test/WasmSpec.scala create mode 100755 update-extism.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2d339bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.bsp +.DS_Store +.idea +.metals +.vscode +darwin-** +linux-** +target diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..ec8828f --- /dev/null +++ b/build.sbt @@ -0,0 +1,80 @@ +import Dependencies.munit + +lazy val scala212 = "2.12.16" +lazy val scala213 = "2.13.11" +lazy val supportedScalaVersions = List(scala212, scala213) + +ThisBuild / scalaVersion := scala212 +ThisBuild / version := "1.0.0" +ThisBuild / organization := "io.otoroshi" +ThisBuild / organizationName := "wasm4s" + +inThisBuild( + List( + description := "Library to run wasm vm in a scala app", + startYear := Some(2023), + organization := "io.otoroshi", + homepage := Some(url("https://github.com/MAIF/wasm4s")), + licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")), + scmInfo := Some( + ScmInfo( + url("https://github.com/MAIF/otoroshi"), + "scm:git@github.com:MAIF/otoroshi.git" + ) + ), + publishMavenStyle := true, + developers := List( + Developer( + "mathieuancelin", + "Mathieu Ancelin", + "mathieu.ancelin@serli.com", + url("https://github.com/mathieuancelin") + ) + ) + ) +) + + +lazy val playJsonVersion = "2.9.3" +lazy val playWsVersion = "2.8.19" +lazy val akkaVersion = "2.6.20" +lazy val akkaHttpVersion = "10.2.10" +lazy val metricsVersion = "4.2.12" +lazy val excludesJackson = Seq( + ExclusionRule(organization = "com.fasterxml.jackson.core"), + ExclusionRule(organization = "com.fasterxml.jackson.datatype"), + ExclusionRule(organization = "com.fasterxml.jackson.dataformat") +) + +scalacOptions ++= Seq( + "-feature", + "-language:higherKinds", + "-language:implicitConversions", + "-language:existentials", + "-language:postfixOps" +) + +lazy val root = (project in file(".")) + .settings( + name := "wasm4s", + crossScalaVersions := supportedScalaVersions, + //githubOwner := "MAIF", + //githubRepository := "wasm4s", + //githubTokenSource := TokenSource.Environment("GITHUB_PACKAGES_TOKEN"), + libraryDependencies ++= Seq( + munit % Test, + "com.typesafe.play" %% "play-ws" % playWsVersion % "provided", + "com.typesafe.play" %% "play-json" % playJsonVersion % "provided", + "com.typesafe.akka" %% "akka-stream" % akkaVersion % "provided", + "com.typesafe.akka" %% "akka-http" % akkaHttpVersion % "provided", + "com.typesafe.play" %% "play-json-joda" % playJsonVersion % "provided", + "com.auth0" % "java-jwt" % "4.2.0" % "provided" excludeAll (excludesJackson: _*), + "commons-codec" % "commons-codec" % "1.16.0" % "provided", + "net.java.dev.jna" % "jna" % "5.13.0" % "provided", + "com.google.code.gson" % "gson" % "2.10" % "provided", + "io.dropwizard.metrics" % "metrics-json" % metricsVersion % "provided" excludeAll (excludesJackson: _*), // Apache 2.0 + ), + ) + +assembly / test := {} +assembly / assemblyJarName := s"wasm4s-bundle_${scalaVersion.value.split("\\.").init.mkString(".")}-${version.value}.jar" diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..08a9e94 --- /dev/null +++ b/build.sh @@ -0,0 +1,6 @@ +rm ./target/scala-2.12/wasm4s_2.12-*.jar +rm ./target/scala-2.13/wasm4s_2.13-*.jar +rm ./target/scala-2.12/wasm4s-bundle_2.12-*.jar +rm ./target/scala-2.13/wasm4s-bundle_2.13-*.jar +sbt '+package' +sbt '+assembly' diff --git a/lib/extism-v0.4.0.jar b/lib/extism-v0.4.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..997bcce9ee03d31538f23ff795fe2c29e3a5f786 GIT binary patch literal 54803 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 BasicWasmConfiguration.fromWasiSource(WasmSource(WasmSourceKind.File, "./src/test/resources/basic.wasm")), + "opa" -> BasicWasmConfiguration.fromOpaSource(WasmSource(WasmSourceKind.File, "./src/test/resources/opa.wasm")), +) + +class FooWasmIntegrationContext(env: Env) extends WasmIntegrationContext { + val system = ActorSystem("foo-wasm") + val materializer: Materializer = Materializer(system) + val executionContext: ExecutionContext = system.dispatcher + val logger: Logger = Logger("foo-wasm") + val wasmCacheTtl: Long = 2000 + val wasmQueueBufferSize: Int = 100 + val wasmManagerSettings: Future[Option[WasmManagerSettings]] = Future.successful(None) + val wasmScriptCache: TrieMap[String, CacheableWasmScript] = new TrieMap[String, CacheableWasmScript]() + val wasmExecutor: ExecutionContext = ExecutionContext.fromExecutorService( + Executors.newWorkStealingPool(Math.max(32, (Runtime.getRuntime.availableProcessors * 4) + 1)) + ) + override def url(path: String): WSRequest = ??? // we do not provide http call right now ;) + override def mtlsUrl(path: String, tlsConfig: TlsConfig): WSRequest = ??? // we do not provide http call right now ;) + override def wasmConfig(path: String): Option[WasmConfiguration] = testWasmConfigs.wasmConfiguration(path) + override def wasmConfigs(): Seq[WasmConfiguration] = testWasmConfigs.wasmConfigurations() + override def hostFunctions(config: WasmConfiguration, pluginId: String): Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = Array.empty +} +``` + +then instanciate a wasm integration + +```scala +val wasmIntegration = WasmIntegration(new FooWasmIntegrationContext(env)) +``` + +now you have to trigger jobs that will cache wasm stuff and clean vm. you can either do it manually or let the integration do it. + +```scala +wasmIntegration.start() +Runtime.getRuntime().addShutdownHook(() => { + wasmIntegration.stop() +}) +``` + +now you can get a wasm vm through the wasm integration object and use it + +```scala +wasmIntegration.withPooledVm(basicConfiguration) { vm => + vm.callExtismFunction( + "execute", + Json.obj("message" -> "coucou").stringify + ).map { + case Left(error) => println(s"error: ${error.prettify}") + case Right(out) => { + assertEquals(out, "{\"input\":{\"message\":\"coucou\"},\"message\":\"yo\"}") + println(s"output: ${out}") + } + } +} +``` diff --git a/src/main/resources/.keepit b/src/main/resources/.keepit new file mode 100644 index 0000000..e69de29 diff --git a/src/main/scala/io/otoroshi/wasm4s/impl/opa.scala b/src/main/scala/io/otoroshi/wasm4s/impl/opa.scala new file mode 100644 index 0000000..dd41e84 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/impl/opa.scala @@ -0,0 +1,293 @@ +package io.otoroshi.wasm4s.impl + +import io.otoroshi.wasm4s.scaladsl._ +import implicits._ +import org.extism.sdk.wasmotoroshi._ +import play.api.libs.json._ + +import java.nio.charset.StandardCharsets +import java.util.Optional; + +object OPA extends AwaitCapable { + + def opaAbortFunction: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaAbortFunction"); + } + + def opaPrintlnFunction: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaPrintlnFunction"); + } + + def opaBuiltin0Function: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaBuiltin0Function"); + } + + def opaBuiltin1Function: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaBuiltin1Function"); + } + + def opaBuiltin2Function: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaBuiltin2Function"); + } + + def opaBuiltin3Function: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaBuiltin3Function"); + }; + + def opaBuiltin4Function: WasmOtoroshiExtismFunction[EmptyUserData] = + ( + plugin: WasmOtoroshiInternal, + params: Array[WasmBridge.ExtismVal], + returns: Array[WasmBridge.ExtismVal], + data: Optional[EmptyUserData] + ) => { + System.out.println("opaBuiltin4Function"); + } + + def opaAbort() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_abort", + Array(WasmBridge.ExtismValType.I32), + Array(), + opaAbortFunction, + Optional.empty() + ) + + def opaPrintln() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_println", + Array(WasmBridge.ExtismValType.I64), + Array(WasmBridge.ExtismValType.I64), + opaPrintlnFunction, + Optional.empty() + ) + + def opaBuiltin0() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_builtin0", + Array(WasmBridge.ExtismValType.I32, WasmBridge.ExtismValType.I32), + Array(WasmBridge.ExtismValType.I32), + opaBuiltin0Function, + Optional.empty() + ) + + def opaBuiltin1() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_builtin1", + Array(WasmBridge.ExtismValType.I32, WasmBridge.ExtismValType.I32, WasmBridge.ExtismValType.I32), + Array(WasmBridge.ExtismValType.I32), + opaBuiltin1Function, + Optional.empty() + ) + + def opaBuiltin2() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_builtin2", + Array( + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32 + ), + Array(WasmBridge.ExtismValType.I32), + opaBuiltin2Function, + Optional.empty() + ) + + def opaBuiltin3() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_builtin3", + Array( + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32 + ), + Array(WasmBridge.ExtismValType.I32), + opaBuiltin3Function, + Optional.empty() + ) + + def opaBuiltin4() = new WasmOtoroshiHostFunction[EmptyUserData]( + "opa_builtin4", + Array( + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32, + WasmBridge.ExtismValType.I32 + ), + Array(WasmBridge.ExtismValType.I32), + opaBuiltin4Function, + Optional.empty() + ) + + def getFunctions(config: WasmConfiguration): Seq[HostFunctionWithAuthorization] = { + Seq( + HostFunctionWithAuthorization(opaAbort(), _ => config.opa), + HostFunctionWithAuthorization(opaPrintln(), _ => config.opa), + HostFunctionWithAuthorization(opaBuiltin0(), _ => config.opa), + HostFunctionWithAuthorization(opaBuiltin1(), _ => config.opa), + HostFunctionWithAuthorization(opaBuiltin2(), _ => config.opa), + HostFunctionWithAuthorization(opaBuiltin3(), _ => config.opa), + HostFunctionWithAuthorization(opaBuiltin4(), _ => config.opa) + ) + } + + def getLinearMemories(): Seq[WasmOtoroshiLinearMemory] = { + Seq( + new WasmOtoroshiLinearMemory("memory", "env", new WasmOtoroshiLinearMemoryOptions(5, Optional.empty())) + ) + } + + def loadJSON(plugin: WasmOtoroshiInstance, value: Array[Byte]): Either[JsValue, Int] = { + if (value.length == 0) { + 0.right + } else { + val value_buf_len = value.length + var parameters = new WasmOtoroshiParameters(1) + .pushInt(value_buf_len) + + val raw_addr = plugin.call("opa_malloc", parameters, 1) + + if ( + plugin.writeBytes( + value, + value_buf_len, + raw_addr.getValue(0).v.i32 + ) == -1 + ) { + JsString("Cant' write in memory").left + } else { + parameters = new WasmOtoroshiParameters(2) + .pushInts(raw_addr.getValue(0).v.i32, value_buf_len) + val parsed_addr = plugin.call( + "opa_json_parse", + parameters, + 1 + ) + + if (parsed_addr.getValue(0).v.i32 == 0) { + JsString("failed to parse json value").left + } else { + parsed_addr.getValue(0).v.i32.right + } + } + } + } + + def initialize(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + loadJSON(plugin, "{}".getBytes(StandardCharsets.UTF_8)) + .flatMap(dataAddr => { + val base_heap_ptr = plugin.call( + "opa_heap_ptr_get", + new WasmOtoroshiParameters(0), + 1 + ) + + val data_heap_ptr = base_heap_ptr.getValue(0).v.i32 + ( + Json.obj("dataAddr" -> dataAddr, "baseHeapPtr" -> data_heap_ptr).stringify, + ResultsWrapper(new WasmOtoroshiResults(0)) + ).right + }) + } + + def evaluate( + plugin: WasmOtoroshiInstance, + dataAddr: Int, + baseHeapPtr: Int, + input: String + ): Either[JsValue, (String, ResultsWrapper)] = { + val entrypoint = 0 + + // TODO - read and load builtins functions by calling dumpJSON + val input_len = input.getBytes(StandardCharsets.UTF_8).length + plugin.writeBytes( + input.getBytes(StandardCharsets.UTF_8), + input_len, + baseHeapPtr + ) + + val heap_ptr = baseHeapPtr + input_len + val input_addr = baseHeapPtr + + val ptr = new WasmOtoroshiParameters(7) + .pushInts(0, entrypoint, dataAddr, input_addr, input_len, heap_ptr, 0) + + val ret = plugin.call("opa_eval", ptr, 1) + + val memory = plugin.getMemory("memory") + + val offset: Int = ret.getValue(0).v.i32 + val arraySize: Int = 65356 + + val mem: Array[Byte] = memory.getByteArray(offset, arraySize) + val size: Int = lastValidByte(mem) + + ( + new String(java.util.Arrays.copyOf(mem, size), StandardCharsets.UTF_8), + ResultsWrapper(new WasmOtoroshiResults(0)) + ).right + } + + def lastValidByte(arr: Array[Byte]): Int = { + for (i <- arr.indices) { + if (arr(i) == 0) { + return i + } + } + arr.length + } +} + + +/* + String dumpJSON() { + Results addr = plugin.call("builtins", new WasmOtoroshiParameters(0), 1); + + Parameters parameters = new WasmOtoroshiParameters(1); + IntegerParameter builder = new IntegerParameter(); + builder.add(parameters, addr.getValue(0).v.i32, 0); + + Results rawAddr = plugin.call("opa_json_dump", parameters, 1); + + Pointer memory = WasmBridge.INSTANCE.extism_get_memory(plugin.getPointer(), plugin.getIndex(), "memory"); + byte[] mem = memory.getByteArray(rawAddr.getValue(0).v.i32, 65356); + int size = lastValidByte(mem); + + return new String(Arrays.copyOf(mem, size), StandardCharsets.UTF_8); + } +}*/ diff --git a/src/main/scala/io/otoroshi/wasm4s/impl/runtimev2.scala b/src/main/scala/io/otoroshi/wasm4s/impl/runtimev2.scala new file mode 100644 index 0000000..c2f3d99 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/impl/runtimev2.scala @@ -0,0 +1,572 @@ +package io.otoroshi.wasm4s.impl + +import akka.stream.OverflowStrategy +import akka.stream.scaladsl._ +import com.codahale.metrics.UniformReservoir +import io.otoroshi.wasm4s.scaladsl.CacheableWasmScript.CachedWasmScript +import io.otoroshi.wasm4s.scaladsl._ +import io.otoroshi.wasm4s.scaladsl.opa._ +import io.otoroshi.wasm4s.scaladsl.implicits._ +import io.otoroshi.wasm4s.impl.WasmVmPoolImpl.logger +import org.extism.sdk.manifest.{Manifest, MemoryOptions} +import org.extism.sdk.wasm.WasmSourceResolver +import org.extism.sdk.wasmotoroshi._ +import play.api.Logger +import play.api.libs.json._ + +import java.util.concurrent.ConcurrentLinkedQueue +import java.util.concurrent.atomic._ +import scala.collection.JavaConverters._ +import scala.collection.concurrent.TrieMap +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future, Promise} + +sealed trait WasmVmAction + +object WasmVmAction { + case object WasmVmKillAction extends WasmVmAction + case class WasmVmCallAction( + parameters: WasmFunctionParameters, + context: Option[WasmVmData], + promise: Promise[Either[JsValue, (String, ResultsWrapper)]] + ) extends WasmVmAction +} + +case class OPAWasmVm(opaDataAddr: Int, opaBaseHeapPtr: Int) + +case class WasmVmImpl( + index: Int, + maxCalls: Int, + maxMemory: Long, + resetMemory: Boolean, + instance: WasmOtoroshiInstance, + vmDataRef: AtomicReference[WasmVmData], + memories: Array[WasmOtoroshiLinearMemory], + functions: Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]], + pool: WasmVmPoolImpl, + var opaPointers: Option[OPAWasmVm] = None +) extends WasmVm { + + private val callDurationReservoirNs = new UniformReservoir() + private val lastUsage: AtomicLong = new AtomicLong(System.currentTimeMillis()) + private val initializedRef: AtomicBoolean = new AtomicBoolean(false) + private val killAtRelease: AtomicBoolean = new AtomicBoolean(false) + private val inFlight = new AtomicInteger(0) + private val callCounter = new AtomicInteger(0) + private val queue = { + val env = pool.ic + Source + .queue[WasmVmAction](env.wasmQueueBufferSize, OverflowStrategy.dropTail) + .mapAsync(1)(handle) + .toMat(Sink.ignore)(Keep.both) + .run()(env.materializer) + ._1 + } + + def calls: Int = callCounter.get() + def current: Int = inFlight.get() + + private def handle(act: WasmVmAction): Future[Unit] = { + Future.apply { + lastUsage.set(System.currentTimeMillis()) + act match { + case WasmVmAction.WasmVmKillAction => destroy() + case action: WasmVmAction.WasmVmCallAction => { + try { + inFlight.decrementAndGet() + // action.context.foreach(ctx => WasmContextSlot.setCurrentContext(ctx)) + action.context.foreach(ctx => vmDataRef.set(ctx)) + if (pool.ic.logger.isDebugEnabled) + pool.ic.logger.debug(s"call vm ${index} with method ${action.parameters.functionName} on thread ${Thread + .currentThread() + .getName} on path ${action.context.map(_.properties.get("request.path").map(v => new String(v))).getOrElse("--")}") + val start = System.nanoTime() + val res = action.parameters.call(instance) + callDurationReservoirNs.update(System.nanoTime() - start) + if (res.isRight && res.right.get._2.results.getValues() != null) { + val ret = res.right.get._2.results.getValues()(0).v.i32 + if (ret > 7 || ret < 0) { // weird multi thread issues + ignore() + killAtRelease.set(true) + } + } + action.promise.trySuccess(res) + } catch { + case t: Throwable => action.promise.tryFailure(t) + } finally { + if (resetMemory) { + instance.reset() + } + pool.ic.logger.debug(s"functions: ${functions.size}") + pool.ic.logger.debug(s"memories: ${memories.size}") + // WasmContextSlot.clearCurrentContext() + // vmDataRef.set(null) + val count = callCounter.incrementAndGet() + if (count >= maxCalls) { + callCounter.set(0) + if (pool.ic.logger.isDebugEnabled) + pool.ic.logger.debug(s"killing vm ${index} with remaining ${inFlight.get()} calls (${count})") + destroyAtRelease() + } + } + } + } + () + }(pool.ic.wasmExecutor) + } + + def getOpaPointers(): Option[OPAWasmVm] = opaPointers + + def reset(): Unit = instance.reset() + + def destroy(): Unit = { + if (pool.ic.logger.isDebugEnabled) pool.ic.logger.debug(s"destroy vm: ${index}") + pool.ic.logger.debug(s"destroy vm: ${index}") + pool.clear(this) + instance.close() + } + + def isBusy(): Boolean = { + inFlight.get() > 0 + } + + def destroyAtRelease(): Unit = { + ignore() + killAtRelease.set(true) + } + + def release(): Unit = { + if (killAtRelease.get()) { + queue.offer(WasmVmAction.WasmVmKillAction) + } else { + pool.release(this) + } + } + + def lastUsedAt(): Long = lastUsage.get() + + def hasNotBeenUsedInTheLast(duration: FiniteDuration): Boolean = + if (duration.toNanos == 0L) false else !hasBeenUsedInTheLast(duration) + + def consumesMoreThanMemoryPercent(percent: Double): Boolean = if (percent == 0.0) { + false + } else { + val consumed: Double = instance.getMemorySize.toDouble / maxMemory.toDouble + val res = consumed > percent + if (pool.ic.logger.isDebugEnabled) + pool.ic.logger.debug( + s"consumesMoreThanMemoryPercent($percent) = (${instance.getMemorySize} / $maxMemory) > $percent : $res : (${consumed * 100.0}%)" + ) + res + } + + def tooSlow(max: Long): Boolean = { + if (max == 0L) { + false + } else { + callDurationReservoirNs.getSnapshot.getMean.toLong > max + } + } + + def hasBeenUsedInTheLast(duration: FiniteDuration): Boolean = { + val now = System.currentTimeMillis() + val limit = lastUsage.get() + duration.toMillis + now < limit + } + + def ignore(): Unit = pool.ignore(this) + + def initialized(): Boolean = initializedRef.get() + + def initialize(f: => Any): Unit = { + if (initializedRef.compareAndSet(false, true)) { + f + } + } + + def finitialize[A](f: => Future[A]): Future[Unit] = { + if (initializedRef.compareAndSet(false, true)) { + f.map(_ => ())(pool.ic.executionContext) + } else { + ().vfuture + } + } + + def call( + parameters: WasmFunctionParameters, + context: Option[WasmVmData] + ): Future[Either[JsValue, (String, ResultsWrapper)]] = { + val promise = Promise[Either[JsValue, (String, ResultsWrapper)]]() + inFlight.incrementAndGet() + lastUsage.set(System.currentTimeMillis()) + queue.offer(WasmVmAction.WasmVmCallAction(parameters, context, promise)) + promise.future + } + + def callOpa(functionName: String, in: String, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, (String, ResultsWrapper)]] = { + ensureOpaInitialized().call(WasmFunctionParameters.OPACall(functionName, opaPointers, in), context) + } + + def ensureOpaInitializedAsync(in: Option[String] = None)(implicit ec: ExecutionContext): Future[WasmVmImpl] = { + if (!initialized()) { + call( + WasmFunctionParameters.OPACall( + "initialize", + in = in.getOrElse(Json.obj().stringify), + ), + None + ) flatMap { + case Left(error) => Future.failed(new RuntimeException(s"opa initialize error: ${error.stringify}")) + case Right(value) => + initialize { + val pointers = Json.parse(value._1) + opaPointers = OPAWasmVm( + opaDataAddr = (pointers \ "dataAddr").as[Int], + opaBaseHeapPtr = (pointers \ "baseHeapPtr").as[Int] + ).some + } + this.vfuture + } + } else { + this.vfuture + } + } + + def ensureOpaInitialized(in: Option[String] = None)(implicit ec: ExecutionContext): WasmVmImpl = { + Await.result( + ensureOpaInitializedAsync(in), + 10.seconds + ) + } +} + +case class WasmVmPoolAction(promise: Promise[WasmVmImpl], options: WasmVmInitOptions) { + private[wasm4s] def provideVm(vm: WasmVmImpl): Unit = promise.trySuccess(vm) + private[wasm4s] def fail(e: Throwable): Unit = promise.tryFailure(e) +} + +object WasmVmPoolImpl { + + private[wasm4s] val logger = Logger("otoroshi-wasm-vm-pool") + private[wasm4s] val engine = new WasmOtoroshiEngine() + private val instances = new TrieMap[String, WasmVmPoolImpl]() + + def allInstances(): Map[String, WasmVmPoolImpl] = instances.synchronized { + instances.toMap + } + + def forConfig(config: => WasmConfiguration, maxCallsBetweenUpdates: Int = 100000)(implicit ic: WasmIntegrationContext): WasmVmPoolImpl = instances.synchronized { + val key = s"${config.source.cacheKey}?mcbu=${maxCallsBetweenUpdates}&cfg=${config.json.stringify.sha512}" + instances.getOrUpdate(key) { + new WasmVmPoolImpl(key, config.some, maxCallsBetweenUpdates, ic) + } + } + + private[wasm4s] def removePlugin(id: String): Unit = instances.synchronized { + instances.remove(id) + } +} + +class WasmVmPoolImpl(stableId: => String, optConfig: => Option[WasmConfiguration], maxCallsBetweenUpdates: Int = 100000, val ic: WasmIntegrationContext) extends WasmVmPool { + + WasmVmPoolImpl.logger.debug("new WasmVmPool") + + private val engine = new WasmOtoroshiEngine() + private val counter = new AtomicInteger(-1) + private val templateRef = new AtomicReference[WasmOtoroshiTemplate](null) + private[wasm4s] val availableVms = new ConcurrentLinkedQueue[WasmVmImpl]() + private[wasm4s] val inUseVms = new ConcurrentLinkedQueue[WasmVmImpl]() + private val lastCacheUpdateTime = new AtomicLong(System.currentTimeMillis()) + private val lastCacheUpdateCalls = new AtomicLong(System.currentTimeMillis()) + private val creatingRef = new AtomicBoolean(false) + private val lastPluginVersion = new AtomicReference[String](null) + private val requestsSource = Source.queue[WasmVmPoolAction](ic.wasmQueueBufferSize, OverflowStrategy.dropTail) + private val prioritySource = Source.queue[WasmVmPoolAction](ic.wasmQueueBufferSize, OverflowStrategy.dropTail) + private val (priorityQueue, requestsQueue) = { + prioritySource + .mergePrioritizedMat(requestsSource, 99, 1, false)(Keep.both) + .map(handleAction) + .toMat(Sink.ignore)(Keep.both) + .run()(ic.materializer) + ._1 + } + + // unqueue actions from the action queue + private def handleAction(action: WasmVmPoolAction): Unit = try { + val time = System.currentTimeMillis() + wasmConfig() match { + case None => + // if we cannot find the current wasm config, something is wrong, we destroy the pool + destroyCurrentVms() + WasmVmPoolImpl.removePlugin(stableId) + action.fail(new RuntimeException(s"No more plugin ${stableId}")) + case Some(wcfg) => { + // first we ensure the wasm source has been fetched + if (!wcfg.source.isCached()(ic)) { + wcfg.source + .getWasm()(ic, ic.executionContext) + .andThen { case _ => + priorityQueue.offer(action) + }(ic.executionContext) + } else { + // try to self refresh cache if more call than or time elapsed + if (ic.selfRefreshingPools && (((time - lastCacheUpdateTime.get()) > ic.wasmCacheTtl) || (lastCacheUpdateCalls.get() > maxCallsBetweenUpdates))) { + lastCacheUpdateTime.set(time) + lastCacheUpdateCalls.set(0L) + wcfg.source.getWasm()(ic, ic.executionContext) + } + // TODO: try to refresh cache if more than n calls or env.wasmCacheTtl elasped since last time + val changed = hasChanged(wcfg) + val available = hasAvailableVm(wcfg) + val creating = isVmCreating() + val atMax = atMaxPoolCapacity(wcfg) + // then we check if the underlying wasmcode + config has not changed since last time + if (changed) { + // if so, we destroy all current vms and recreate a new one + WasmVmPoolImpl.logger.warn("plugin has changed, destroying old instances") + destroyCurrentVms() + createVm(wcfg, action.options) + } + // check if a vm is available + if (!available) { + // if not, but a new one is creating, just wait a little bit more + if (creating) { + priorityQueue.offer(action) + } else { + // check if we hit the max possible instances + if (atMax) { + // if so, just wait + priorityQueue.offer(action) + } else { + // if not, create a new instance because we need one + createVm(wcfg, action.options) + priorityQueue.offer(action) + } + } + } else { + // if so, acquire one + val vm = acquireVm() + action.provideVm(vm) + } + } + } + } + } catch { + case t: Throwable => + t.printStackTrace() + action.fail(t) + } + + // create a new vm for the pool + // we try to create vm one by one and to not create more than needed + private def createVm(config: WasmConfiguration, options: WasmVmInitOptions): Unit = synchronized { + if (creatingRef.compareAndSet(false, true)) { + val index = counter.incrementAndGet() + WasmVmPoolImpl.logger.debug(s"creating vm: ${index}") + if (templateRef.get() == null) { + if (!config.source.isCached()(ic)) { + // this part should never happen anymore, but just in case + WasmVmPoolImpl.logger.warn("fetching missing source") + Await.result(config.source.getWasm()(ic, ic.executionContext), 30.seconds) + } + lastPluginVersion.set(computeHash(config, config.source.cacheKey, ic.wasmScriptCache)) + val cache = ic.wasmScriptCache + val key = config.source.cacheKey + val wasm = cache(key) match { + case CacheableWasmScript.CachedWasmScript(script, _) => script + case CacheableWasmScript.FetchingCachedWasmScript(_, script) => script + case _ => throw new RuntimeException("unable to get wasm source from cache. this should not happen !") + } + val hash = wasm.sha256 + val resolver = new WasmSourceResolver() + val source = resolver.resolve("wasm", wasm.toByteBuffer.array()) + templateRef.set( + new WasmOtoroshiTemplate( + engine, + hash, + new Manifest( + Seq[org.extism.sdk.wasm.WasmSource](source).asJava, + new MemoryOptions(config.memoryPages), + config.config.asJava, + config.allowedHosts.asJava, + config.allowedPaths.asJava + ) + ) + ) + } + val template = templateRef.get() + val vmDataRef = new AtomicReference[WasmVmData](null) + val addedFunctions = options.addHostFunctions(vmDataRef) + val functions: Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = { + val fs: Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = if (options.importDefaultHostFunctions) { + ic.hostFunctions(config, stableId) ++ addedFunctions + } else { + addedFunctions.toArray[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] + } + if (config.opa) { + val opaFunctions: Seq[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = OPA.getFunctions(config).collect { + case func if func.authorized(config) => func.function + } + fs ++ opaFunctions + } else { + fs + } + } + val memories = LinearMemories.getMemories(config) + val instance = template.instantiate(engine, functions, memories, config.wasi) + val vm = WasmVmImpl( + index, + config.killOptions.maxCalls, + config.memoryPages * (64L * 1024L), + options.resetMemory, + instance, + vmDataRef, + memories, + functions, + this + ) + availableVms.offer(vm) + creatingRef.compareAndSet(true, false) + } + } + + // acquire an available vm for work + private def acquireVm(): WasmVmImpl = synchronized { + if (availableVms.size() > 0) { + availableVms.synchronized { + val vm = availableVms.poll() + availableVms.remove(vm) + inUseVms.offer(vm) + vm + } + } else { + throw new RuntimeException("no instances available") + } + } + + // release the vm to be available for other tasks + private[wasm4s] def release(vm: WasmVmImpl): Unit = synchronized { + availableVms.synchronized { + availableVms.offer(vm) + inUseVms.remove(vm) + } + } + + // do not consider the vm anymore for more work (the vm is being dropped for some reason) + private[wasm4s] def ignore(vm: WasmVmImpl): Unit = synchronized { + availableVms.synchronized { + inUseVms.remove(vm) + } + } + + // do not consider the vm anymore for more work (the vm is being dropped for some reason) + private[wasm4s] def clear(vm: WasmVmImpl): Unit = synchronized { + availableVms.synchronized { + availableVms.remove(vm) + } + } + + private[wasm4s] def wasmConfig(): Option[WasmConfiguration] = { + optConfig.orElse(ic.wasmConfigSync(stableId)).orElse(ic.wasmConfig(stableId).await(30.seconds)) // ugly but ... + } + + private def hasAvailableVm(plugin: WasmConfiguration): Boolean = + availableVms.size() > 0 && (inUseVms.size < plugin.instances) + + private def isVmCreating(): Boolean = creatingRef.get() + + private def atMaxPoolCapacity(plugin: WasmConfiguration): Boolean = (availableVms.size + inUseVms.size) >= plugin.instances + + // close the current pool + private[wasm4s] def close(): Unit = availableVms.synchronized { + engine.close() + } + + // destroy all vms and clear everything in order to destroy the current pool + private[wasm4s] def destroyCurrentVms(): Unit = availableVms.synchronized { + WasmVmPoolImpl.logger.info("destroying all vms") + availableVms.asScala.foreach(_.destroy()) + availableVms.clear() + inUseVms.clear() + //counter.set(0) + templateRef.set(null) + creatingRef.set(false) + lastPluginVersion.set(null) + } + + // compute the current hash for a tuple (wasmcode + config) + private def computeHash( + config: WasmConfiguration, + key: String, + cache: TrieMap[String, CacheableWasmScript] + ): String = { + config.json.stringify.sha512 + "#" + cache + .get(key) + .map { + case CacheableWasmScript.CachedWasmScript(wasm, _) => wasm.sha512 + case CacheableWasmScript.FetchingCachedWasmScript(_, wasm) => wasm.sha512 + case _ => "fetching" + } + .getOrElse("null") + } + + // compute if the source (wasm code + config) is the same than current + private def hasChanged(config: WasmConfiguration): Boolean = availableVms.synchronized { + val key = config.source.cacheKey + val cache = ic.wasmScriptCache + var oldHash = lastPluginVersion.get() + if (oldHash == null) { + oldHash = computeHash(config, key, cache) + lastPluginVersion.set(oldHash) + } + cache.get(key) match { + case Some(CacheableWasmScript.CachedWasmScript(_, _)) => { + val currentHash = computeHash(config, key, cache) + oldHash != currentHash + } + case Some(CacheableWasmScript.FetchingCachedWasmScript(_, _)) => { + val currentHash = computeHash(config, key, cache) + oldHash != currentHash + } + case _ => false + } + } + + // get a pooled vm when one available. + // Do not forget to release it after usage + def getPooledVm(options: WasmVmInitOptions = WasmVmInitOptions.empty()): Future[WasmVm] = { + val p = Promise[WasmVmImpl]() + requestsQueue.offer(WasmVmPoolAction(p, options)) + p.future + } + + // borrow a vm for sync operations + def withPooledVm[A](options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => A): Future[A] = { + implicit val ev = ic + implicit val ec = ic.executionContext + getPooledVm(options).flatMap { vm => + val p = Promise[A]() + try { + val ret = f(vm) + p.trySuccess(ret) + } catch { + case e: Throwable => + p.tryFailure(e) + } finally { + vm.release() + } + p.future + } + } + + // borrow a vm for async operations + def withPooledVmF[A](options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => Future[A]): Future[A] = { + implicit val ev = ic + implicit val ec = ic.executionContext + getPooledVm(options).flatMap { vm => + f(vm).andThen { case _ => + vm.release() + } + } + } +} \ No newline at end of file diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/ApikeyHelper.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/ApikeyHelper.scala new file mode 100644 index 0000000..a3b6f3c --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/ApikeyHelper.scala @@ -0,0 +1,30 @@ +package io.otoroshi.wasm4s.scaladsl + +import com.auth0.jwt.algorithms.Algorithm +import play.api.libs.json.{JsObject, Json} + +import java.nio.charset.StandardCharsets + +object ApikeyHelper { + + def generate(settings: WasmManagerSettings): String = { + val header = Json.obj( + "typ" -> "JWT", + "alg" -> "HS512" + ) + val payload = Json.obj( + "iss" -> "otoroshi" + ) + sign(header, payload, settings.tokenSecret.getOrElse("")) + } + + private def sign(headerJson: JsObject, payloadJson: JsObject, tokenSecret: String): String = { + val header: String = org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString(Json.toBytes(headerJson)) + val payload: String = org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString(Json.toBytes(payloadJson)) + val signatureBytes: Array[Byte] = + Algorithm.HMAC512(tokenSecret).sign(header.getBytes(StandardCharsets.UTF_8), payload.getBytes(StandardCharsets.UTF_8)) + + val signature: String = org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString(signatureBytes) + String.format("%s.%s.%s", header, payload, signature) + } +} diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/functions.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/functions.scala new file mode 100644 index 0000000..ed87881 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/functions.scala @@ -0,0 +1,169 @@ +package io.otoroshi.wasm4s.scaladsl + +import akka.stream.Materializer +import akka.util.ByteString +import io.otoroshi.wasm4s.impl._ +import io.otoroshi.wasm4s.scaladsl.implicits._ +import org.extism.sdk.wasmotoroshi._ +import play.api.libs.json._ + +import java.nio.charset.StandardCharsets +import scala.collection.concurrent.TrieMap +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} + +trait AwaitCapable { + def await[T](future: Future[T], atMost: FiniteDuration = 5.seconds): T = { + Await.result(future, atMost) + } +} + +case class HostFunctionWithAuthorization( + function: WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData], + authorized: WasmConfiguration => Boolean + ) + +case class EnvUserData( + ic: WasmIntegrationContext, + executionContext: ExecutionContext, + mat: Materializer, + config: WasmConfiguration + ) extends WasmOtoroshiHostUserData + +case class StateUserData( + ic: WasmIntegrationContext, + executionContext: ExecutionContext, + mat: Materializer, + cache: TrieMap[String, TrieMap[String, ByteString]] + ) extends WasmOtoroshiHostUserData + +case class EmptyUserData() extends WasmOtoroshiHostUserData + +sealed abstract class WasmFunctionParameters { + def functionName: String + def input: Option[String] + def parameters: Option[WasmOtoroshiParameters] + def resultSize: Option[Int] + def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] + def withInput(input: Option[String]): WasmFunctionParameters + def withFunctionName(functionName: String): WasmFunctionParameters +} + +object WasmFunctionParameters { + + def from( + functionName: String, + input: Option[String], + parameters: Option[WasmOtoroshiParameters], + resultSize: Option[Int] + ) = { + (input, parameters, resultSize) match { + case (_, Some(p), Some(s)) => BothParamsResults(functionName, p, s) + case (_, Some(p), None) => NoResult(functionName, p) + case (_, None, Some(s)) => NoParams(functionName, s) + case (Some(in), None, None) => ExtismFuntionCall(functionName, in) + case _ => UnknownCombination() + } + } + + case class UnknownCombination( + functionName: String = "unknown", + input: Option[String] = None, + parameters: Option[WasmOtoroshiParameters] = None, + resultSize: Option[Int] = None + ) extends WasmFunctionParameters { + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + Left(Json.obj("error" -> "bad call combination")) + } + def withInput(input: Option[String]): WasmFunctionParameters = this.copy(input = input) + def withFunctionName(functionName: String): WasmFunctionParameters = this.copy(functionName = functionName) + } + + case class NoResult( + functionName: String, + params: WasmOtoroshiParameters, + input: Option[String] = None, + resultSize: Option[Int] = None + ) extends WasmFunctionParameters { + override def parameters: Option[WasmOtoroshiParameters] = Some(params) + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + plugin.callWithoutResults(functionName, parameters.get) + Right[JsValue, (String, ResultsWrapper)](("", ResultsWrapper(new WasmOtoroshiResults(0), plugin))) + } + override def withInput(input: Option[String]): WasmFunctionParameters = this.copy(input = input) + override def withFunctionName(functionName: String): WasmFunctionParameters = this.copy(functionName = functionName) + } + + case class NoParams( + functionName: String, + result: Int, + input: Option[String] = None, + parameters: Option[WasmOtoroshiParameters] = None + ) extends WasmFunctionParameters { + override def resultSize: Option[Int] = Some(result) + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + plugin + .callWithoutParams(functionName, resultSize.get) + .right + .map(_ => ("", ResultsWrapper(new WasmOtoroshiResults(0), plugin))) + } + override def withInput(input: Option[String]): WasmFunctionParameters = this.copy(input = input) + override def withFunctionName(functionName: String): WasmFunctionParameters = this.copy(functionName = functionName) + } + + case class BothParamsResults( + functionName: String, + params: WasmOtoroshiParameters, + result: Int, + input: Option[String] = None + ) extends WasmFunctionParameters { + override def parameters: Option[WasmOtoroshiParameters] = Some(params) + override def resultSize: Option[Int] = Some(result) + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + plugin + .call(functionName, parameters.get, resultSize.get) + .right + .map(res => ("", ResultsWrapper(res, plugin))) + } + override def withInput(input: Option[String]): WasmFunctionParameters = this.copy(input = input) + override def withFunctionName(functionName: String): WasmFunctionParameters = this.copy(functionName = functionName) + } + + case class ExtismFuntionCall( + functionName: String, + in: String, + parameters: Option[WasmOtoroshiParameters] = None, + resultSize: Option[Int] = None + ) extends WasmFunctionParameters { + override def input: Option[String] = Some(in) + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + plugin + .extismCall(functionName, input.get.getBytes(StandardCharsets.UTF_8)) + .right + .map { str => + (str, ResultsWrapper(new WasmOtoroshiResults(0), plugin)) + } + } + + override def withInput(input: Option[String]): WasmFunctionParameters = this.copy(in = input.get) + override def withFunctionName(functionName: String): WasmFunctionParameters = this.copy(functionName = functionName) + } + + case class OPACall(functionName: String, pointers: Option[OPAWasmVm] = None, in: String) + extends WasmFunctionParameters { + override def input: Option[String] = Some(in) + + override def call(plugin: WasmOtoroshiInstance): Either[JsValue, (String, ResultsWrapper)] = { + if (functionName == "initialize") + OPA.initialize(plugin) + else + OPA.evaluate(plugin, pointers.get.opaDataAddr, pointers.get.opaBaseHeapPtr, in) + } + + override def withInput(input: Option[String]): WasmFunctionParameters = this.copy(in = input.get) + + override def withFunctionName(functionName: String): WasmFunctionParameters = this + override def parameters: Option[WasmOtoroshiParameters] = None + override def resultSize: Option[Int] = None + } +} \ No newline at end of file diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/integration.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/integration.scala new file mode 100644 index 0000000..d5e2d17 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/integration.scala @@ -0,0 +1,200 @@ +package io.otoroshi.wasm4s.scaladsl + +import akka.actor.ActorSystem +import akka.stream.Materializer +import io.otoroshi.wasm4s.scaladsl.implicits._ +import io.otoroshi.wasm4s.scaladsl.security.TlsConfig +import org.extism.sdk.wasmotoroshi.{WasmOtoroshiHostFunction, WasmOtoroshiHostUserData} +import play.api.Logger +import play.api.libs.json.{JsObject, Json} +import play.api.libs.ws.WSRequest + +import java.util.concurrent.atomic.AtomicReference +import java.util.concurrent.{Executors, ScheduledFuture, TimeUnit} +import scala.collection.JavaConverters._ +import scala.collection.concurrent.TrieMap +import scala.concurrent.duration._ +import scala.concurrent.{ExecutionContext, Future} + +trait WasmVmData { + def properties: Map[String, Array[Byte]] +} + +trait WasmIntegrationContext { + + def logger: Logger + def materializer: Materializer + def executionContext: ExecutionContext + + def wasmCacheTtl: Long + def wasmQueueBufferSize: Int + def selfRefreshingPools: Boolean + + def url(path: String, tlsConfigOpt: Option[TlsConfig] = None): WSRequest + + def wasmManagerSettings: Future[Option[WasmManagerSettings]] + def wasmConfigSync(path: String): Option[WasmConfiguration] = None + def wasmConfig(path: String): Future[Option[WasmConfiguration]] = wasmConfigSync(path).vfuture + def wasmConfigs(): Future[Seq[WasmConfiguration]] + def inlineWasmSources(): Future[Seq[WasmSource]] = Seq.empty.vfuture + def hostFunctions(config: WasmConfiguration, pluginId: String): Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] + + def wasmScriptCache: TrieMap[String, CacheableWasmScript] + def wasmExecutor: ExecutionContext +} + +object BasicWasmIntegrationContextWithNoHttpClient { + def apply[A <: WasmConfiguration](name: String, store: InMemoryWasmConfigurationStore[A]): BasicWasmIntegrationContextWithNoHttpClient[A] = new BasicWasmIntegrationContextWithNoHttpClient[A](name, store) +} + +class BasicWasmIntegrationContextWithNoHttpClient[A <: WasmConfiguration](name: String, store: InMemoryWasmConfigurationStore[A]) extends WasmIntegrationContext { + val system = ActorSystem(name) + val materializer: Materializer = Materializer(system) + val executionContext: ExecutionContext = system.dispatcher + val logger: Logger = Logger(name) + val wasmCacheTtl: Long = 2000 + val wasmQueueBufferSize: Int = 100 + val selfRefreshingPools: Boolean = false + val wasmManagerSettings: Future[Option[WasmManagerSettings]] = Future.successful(None) + val wasmScriptCache: TrieMap[String, CacheableWasmScript] = new TrieMap[String, CacheableWasmScript]() + val wasmExecutor: ExecutionContext = ExecutionContext.fromExecutorService( + Executors.newWorkStealingPool(Math.max(32, (Runtime.getRuntime.availableProcessors * 4) + 1)) + ) + + override def url(path: String, tlsConfigOpt: Option[TlsConfig] = None): WSRequest = ??? + + override def wasmConfigSync(path: String): Option[WasmConfiguration] = store.wasmConfiguration(path) + override def wasmConfigs(): Future[Seq[WasmConfiguration]] = store.wasmConfigurations().vfuture + override def hostFunctions(config: WasmConfiguration, pluginId: String): Array[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = Array.empty +} + +object WasmIntegration { + def apply(ic: WasmIntegrationContext): WasmIntegration = new WasmIntegration(ic) +} + +class WasmIntegration(ic: WasmIntegrationContext) { + + implicit val context: WasmIntegrationContext = ic + implicit val executionContext: ExecutionContext = ic.executionContext + + private lazy val scheduler = Executors.newScheduledThreadPool(2) + private lazy val schedRef = new AtomicReference[ScheduledFuture[_]](null) + + /// vm apis + + private[wasm4s] def wasmVmById(id: String, maxCallsBetweenUpdates: Int = 100000): Future[Option[(WasmVm, WasmConfiguration)]] = { + ic.wasmConfig(id).flatMap(_.map(cfg => wasmVmFor(cfg, maxCallsBetweenUpdates)).getOrElse(Future.successful(None))) + } + + def wasmVmFor(config: WasmConfiguration, maxCallsBetweenUpdates: Int = 100000): Future[Option[(WasmVm, WasmConfiguration)]] = { + if (config.source.kind == WasmSourceKind.Local) { + ic.wasmConfig(config.source.path) flatMap { + case None => None.vfuture + case Some(localConfig) => { + localConfig.pool(maxCallsBetweenUpdates).getPooledVm().map(vm => Some((vm, localConfig))) + } + } + } else { + config.pool(maxCallsBetweenUpdates).getPooledVm().map(vm => Some((vm, config))) + } + } + + def withPooledVmSync[A](config: WasmConfiguration, maxCallsBetweenUpdates: Int = 100000, options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => A): Future[A] = { + if (config.source.kind == WasmSourceKind.Local) { + ic.wasmConfig(config.source.path) flatMap { + case None => Future.failed(new RuntimeException(s"no wasm config. found with path '${config.source.path}'")) + case Some(localConfig) => localConfig.pool(maxCallsBetweenUpdates).withPooledVm(options)(f) + } + } else { + config.pool(maxCallsBetweenUpdates).withPooledVm(options)(f) + } + } + + // borrow a vm for async operations + def withPooledVm[A](config: WasmConfiguration, maxCallsBetweenUpdates: Int = 100000, options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => Future[A]): Future[A] = { + if (config.source.kind == WasmSourceKind.Local) { + ic.wasmConfig(config.source.path) flatMap { + case None => Future.failed(new RuntimeException(s"no wasm config. found with path '${config.source.path}'")) + case Some(localConfig) => localConfig.pool(maxCallsBetweenUpdates).withPooledVmF(options)(f) + } + } else { + config.pool(maxCallsBetweenUpdates).withPooledVmF(options)(f) + } + } + + /// Jobs api + + def startF(cleanerJobConfig: JsObject = Json.obj()): Future[Unit] = Future(start(cleanerJobConfig)) + + def start(cleanerJobConfig: JsObject): Unit = { + schedRef.set(scheduler.scheduleWithFixedDelay(() => { + runVmLoaderJob() + runVmCleanerJob(cleanerJobConfig) + }, 1000, context.wasmCacheTtl, TimeUnit.MILLISECONDS)) + } + + def stopF(): Future[Unit] = Future(stop()) + + def stop(): Unit = { + Option(schedRef.get()).foreach(_.cancel(false)) + } + + def runVmLoaderJob(): Future[Unit] = { + for { + inlineSources <- ic.inlineWasmSources() + pluginSources <- ic.wasmConfigs().map(_.map(_.source)) + } yield { + val sources = (pluginSources ++ inlineSources).distinct + sources.foreach { source => + val now = System.currentTimeMillis() + ic.wasmScriptCache.get(source.cacheKey) match { + case None => source.getWasm() + case Some(CacheableWasmScript.CachedWasmScript(_, createAt)) if (createAt + ic.wasmCacheTtl) < now => + source.getWasm() + case Some(CacheableWasmScript.CachedWasmScript(_, createAt)) + if (createAt + ic.wasmCacheTtl) > now && (createAt + ic.wasmCacheTtl + 1000) < now => + source.getWasm() + case _ => () + } + } + } + } + + def runVmCleanerJob(config: JsObject): Future[Unit] = { + val globalNotUsedDuration = config.select("not-used-duration").asOpt[Long].map(v => v.millis).getOrElse(5.minutes) + io.otoroshi.wasm4s.impl.WasmVmPoolImpl.allInstances().foreach { case (key, pool) => + if (pool.inUseVms.isEmpty && pool.availableVms.isEmpty) { + ic.logger.warn(s"will destroy 1 wasm vms pool") + pool.destroyCurrentVms() + pool.close() + io.otoroshi.wasm4s.impl.WasmVmPoolImpl.removePlugin(key) + } else { + val options = pool.wasmConfig().map(_.killOptions) + if (!options.exists(_.immortal)) { + val maxDur = options.map(_.maxUnusedDuration).getOrElse(globalNotUsedDuration) + val unusedVms = pool.availableVms.asScala.filter(_.hasNotBeenUsedInTheLast(maxDur)) + val tooMuchMemoryVms = (pool.availableVms.asScala ++ pool.inUseVms.asScala) + .filter(_.consumesMoreThanMemoryPercent(options.map(_.maxMemoryUsage).getOrElse(0.9))) + val tooSlowVms = (pool.availableVms.asScala ++ pool.inUseVms.asScala) + .filter(_.tooSlow(options.map(_.maxAvgCallDuration.toNanos).getOrElse(1.day.toNanos))) + val allVms = unusedVms ++ tooMuchMemoryVms ++ tooSlowVms + if (allVms.nonEmpty) { + ic.logger.warn(s"will destroy ${allVms.size} wasm vms") + if (unusedVms.nonEmpty) ic.logger.warn(s" - ${unusedVms.size} because unused for more than ${maxDur.toHours}") + if (tooMuchMemoryVms.nonEmpty) ic.logger.warn(s" - ${tooMuchMemoryVms.size} because of too much memory used") + if (tooSlowVms.nonEmpty) ic.logger.warn(s" - ${tooSlowVms.size} because of avg call duration too long") + } + allVms.foreach { vm => + if (vm.isBusy()) { + vm.destroyAtRelease() + } else { + vm.ignore() + vm.destroy() + } + } + } + } + } + ().vfuture + } +} diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/manager.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/manager.scala new file mode 100644 index 0000000..86befc7 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/manager.scala @@ -0,0 +1,43 @@ +package io.otoroshi.wasm4s.scaladsl + +import io.otoroshi.wasm4s.scaladsl.implicits._ +import play.api.libs.json._ + +import scala.util.{Failure, Success, Try} + +case class WasmManagerSettings( + url: String = "http://localhost:5001", + clientId: String = "admin-api-apikey-id", + clientSecret: String = "admin-api-apikey-secret", + pluginsFilter: Option[String] = Some("*"), + tokenSecret: Option[String] = Some("secret") +) { + def json: JsValue = WasmManagerSettings.format.writes(this) +} + +object WasmManagerSettings { + val format = new Format[WasmManagerSettings] { + override def writes(o: WasmManagerSettings): JsValue = + Json.obj( + "url" -> o.url, + "clientId" -> o.clientId, + "clientSecret" -> o.clientSecret, + "pluginsFilter" -> o.pluginsFilter.map(JsString).getOrElse(JsNull).as[JsValue], + "tokenSecret" -> o.tokenSecret.map(JsString).getOrElse(JsNull).as[JsValue] + ) + + override def reads(json: JsValue): JsResult[WasmManagerSettings] = + Try { + WasmManagerSettings( + url = (json \ "url").asOpt[String].getOrElse("http://localhost:5001"), + clientId = (json \ "clientId").asOpt[String].getOrElse("admin-api-apikey-id"), + clientSecret = (json \ "clientSecret").asOpt[String].getOrElse("admin-api-apikey-secret"), + pluginsFilter = (json \ "pluginsFilter").asOpt[String].getOrElse("*").some, + tokenSecret = (json \ "tokenSecret").asOpt[String].getOrElse("secret").some, + ) + } match { + case Failure(e) => JsError(e.getMessage) + case Success(ac) => JsSuccess(ac) + } + } +} \ No newline at end of file diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/opa.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/opa.scala new file mode 100644 index 0000000..4e1eaf8 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/opa.scala @@ -0,0 +1,25 @@ +package io.otoroshi.wasm4s.scaladsl.opa + +import io.otoroshi.wasm4s.scaladsl.WasmConfiguration +import org.extism.sdk.wasmotoroshi.WasmOtoroshiLinearMemory + +import java.util.concurrent.atomic.AtomicReference + +object LinearMemories { + + private val memories: AtomicReference[Seq[WasmOtoroshiLinearMemory]] = + new AtomicReference[Seq[WasmOtoroshiLinearMemory]](Seq.empty[WasmOtoroshiLinearMemory]) + + def getMemories(config: WasmConfiguration): Array[WasmOtoroshiLinearMemory] = { + if (config.opa) { + if (memories.get.isEmpty) { + memories.set( + io.otoroshi.wasm4s.impl.OPA.getLinearMemories() + ) + } + memories.get().toArray + } else { + Array.empty + } + } +} diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/security.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/security.scala new file mode 100644 index 0000000..4af73ee --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/security.scala @@ -0,0 +1,124 @@ +package io.otoroshi.wasm4s.scaladsl.security + +import play.api.libs.json._ +import play.api.libs.ws.{DefaultWSProxyServer, WSProxyServer} + +import scala.util.{Failure, Success, Try} + +object WSProxyServerJson { + def maybeProxyToJson(p: Option[WSProxyServer]): JsValue = + p match { + case Some(proxy) => proxyToJson(proxy) + case None => JsNull + } + def proxyToJson(p: WSProxyServer): JsValue = + Json.obj( + "host" -> p.host, // host: String + "port" -> p.port, // port: Int + "protocol" -> p.protocol.map(JsString.apply).getOrElse(JsNull).as[JsValue], // protocol: Option[String] + "principal" -> p.principal.map(JsString.apply).getOrElse(JsNull).as[JsValue], // principal: Option[String] + "password" -> p.password.map(JsString.apply).getOrElse(JsNull).as[JsValue], // password: Option[String] + "ntlmDomain" -> p.ntlmDomain.map(JsString.apply).getOrElse(JsNull).as[JsValue], // ntlmDomain: Option[String] + "encoding" -> p.encoding.map(JsString.apply).getOrElse(JsNull).as[JsValue], // encoding: Option[String] + "nonProxyHosts" -> p.nonProxyHosts + .map(nph => JsArray(nph.map(JsString.apply))) + .getOrElse(JsNull) + .as[JsValue] // nonProxyHosts: Option[Seq[String]] + ) + def proxyFromJson(json: JsValue): Option[WSProxyServer] = { + val maybeHost = (json \ "host").asOpt[String].filterNot(_.trim.isEmpty) + val maybePort = (json \ "port").asOpt[Int] + (maybeHost, maybePort) match { + case (Some(host), Some(port)) => { + Some(DefaultWSProxyServer(host, port)) + .map { proxy => + (json \ "protocol") + .asOpt[String] + .filterNot(_.trim.isEmpty) + .map(v => proxy.copy(protocol = Some(v))) + .getOrElse(proxy) + } + .map { proxy => + (json \ "principal") + .asOpt[String] + .filterNot(_.trim.isEmpty) + .map(v => proxy.copy(principal = Some(v))) + .getOrElse(proxy) + } + .map { proxy => + (json \ "password") + .asOpt[String] + .filterNot(_.trim.isEmpty) + .map(v => proxy.copy(password = Some(v))) + .getOrElse(proxy) + } + .map { proxy => + (json \ "ntlmDomain") + .asOpt[String] + .filterNot(_.trim.isEmpty) + .map(v => proxy.copy(ntlmDomain = Some(v))) + .getOrElse(proxy) + } + .map { proxy => + (json \ "encoding") + .asOpt[String] + .filterNot(_.trim.isEmpty) + .map(v => proxy.copy(encoding = Some(v))) + .getOrElse(proxy) + } + .map { proxy => + (json \ "nonProxyHosts").asOpt[Seq[String]].map(v => proxy.copy(nonProxyHosts = Some(v))).getOrElse(proxy) + } + } + case _ => None + } + } +} + +case class TlsConfig( + certs: Seq[String] = Seq.empty, + trustedCerts: Seq[String] = Seq.empty, + enabled: Boolean = false, + loose: Boolean = false, + trustAll: Boolean = false + ) { + def json: JsValue = TlsConfig.format.writes(this) +} + +object TlsConfig { + val default = TlsConfig() + val format = new Format[TlsConfig] { + override def reads(json: JsValue): JsResult[TlsConfig] = { + Try { + TlsConfig( + certs = (json \ "certs") + .asOpt[Seq[String]] + .orElse((json \ "certId").asOpt[String].map(v => Seq(v))) + .orElse((json \ "cert_id").asOpt[String].map(v => Seq(v))) + .map(_.filter(_.trim.nonEmpty)) + .getOrElse(Seq.empty), + trustedCerts = (json \ "trusted_certs") + .asOpt[Seq[String]] + .map(_.filter(_.trim.nonEmpty)) + .getOrElse(Seq.empty), + enabled = (json \ "enabled").asOpt[Boolean].getOrElse(false), + loose = (json \ "loose").asOpt[Boolean].getOrElse(false), + trustAll = (json \ "trust_all").asOpt[Boolean].getOrElse(false) + ) + } match { + case Failure(e) => JsError(e.getMessage()) + case Success(v) => JsSuccess(v) + } + } + + override def writes(o: TlsConfig): JsValue = { + Json.obj( + "certs" -> JsArray(o.certs.map(JsString.apply)), + "trusted_certs" -> JsArray(o.trustedCerts.map(JsString.apply)), + "enabled" -> o.enabled, + "loose" -> o.loose, + "trust_all" -> o.trustAll + ) + } + } +} \ No newline at end of file diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/syntax.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/syntax.scala new file mode 100644 index 0000000..93e78e2 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/syntax.scala @@ -0,0 +1,386 @@ +package io.otoroshi.wasm4s.scaladsl + +import akka.NotUsed +import akka.http.scaladsl.util.FastFuture +import akka.stream.scaladsl.Source +import akka.util.ByteString +import org.apache.commons.codec.binary.{Base64, Hex} +import play.api.Logger +import play.api.libs.json._ + +import java.nio.charset.StandardCharsets +import java.security.MessageDigest +import scala.collection.TraversableOnce +import scala.collection.concurrent.TrieMap +import scala.concurrent.duration.FiniteDuration +import scala.concurrent.{Await, ExecutionContext, Future, Promise} +import scala.util.{Failure, Success, Try} + +private[wasm4s] object implicits { + + private[wasm4s] implicit class BetterSyntax[A](private val obj: A) extends AnyVal { + def seq: Seq[A] = Seq(obj) + + def set: Set[A] = Set(obj) + + def list: List[A] = List(obj) + + def some: Option[A] = Some(obj) + + def none: Option[A] = None + + def option: Option[A] = Some(obj) + + def left[B]: Either[A, B] = Left(obj) + + def right[B]: Either[B, A] = Right(obj) + + @inline + def vfuture: Future[A] = { + // Future.successful(obj) + FastFuture.successful(obj) + } + + @inline + def stdFuture: Future[A] = Future.successful(obj) + + @inline + def future: Future[A] = FastFuture.successful(obj) + + def asFuture: Future[A] = FastFuture.successful(obj) + + def toFuture: Future[A] = FastFuture.successful(obj) + + def somef: Future[Option[A]] = FastFuture.successful(Some(obj)) + + def leftf[B]: Future[Either[A, B]] = FastFuture.successful(Left(obj)) + + def rightf[B]: Future[Either[B, A]] = FastFuture.successful(Right(obj)) + + def debug(f: A => Any): A = { + f(obj) + obj + } + + def debugPrintln: A = { + println(obj) + obj + } + + def debugPrintlnWithPrefix(prefix: String): A = { + println(prefix + " - " + obj) + obj + } + + def debugLogger(logger: Logger): A = { + if (logger.isDebugEnabled) logger.debug(s"$obj") + obj + } + + def applyOn[B](f: A => B): B = f(obj) + + def applyOnIf(predicate: => Boolean)(f: A => A): A = if (predicate) f(obj) else obj + + def applyOnWithOpt[B](opt: => Option[B])(f: (A, B) => A): A = if (opt.isDefined) f(obj, opt.get) else obj + + def applyOnWithPredicate(predicate: A => Boolean)(f: A => A): A = if (predicate(obj)) f(obj) else obj + + def seffectOn(f: A => Unit): A = { + f(obj) + obj + } + + def seffectOnIf(predicate: => Boolean)(f: A => Unit): A = { + if (predicate) { + f(obj) + obj + } else obj + } + + def seffectOnWithPredicate(predicate: A => Boolean)(f: A => Unit): A = { + if (predicate(obj)) { + f(obj) + obj + } else obj + } + + def singleSource: Source[A, NotUsed] = Source.single(obj) + } + + private[wasm4s] implicit class BetterString(private val obj: String) extends AnyVal { + + def byteString: ByteString = ByteString(obj) + + def bytes: Array[Byte] = obj.getBytes(StandardCharsets.UTF_8) + + def json: JsValue = JsString(obj) + + def parseJson: JsValue = Json.parse(obj) + + def encodeBase64: String = Base64.encodeBase64String(obj.getBytes(StandardCharsets.UTF_8)) + + def base64: String = Base64.encodeBase64String(obj.getBytes(StandardCharsets.UTF_8)) + + def base64UrlSafe: String = Base64.encodeBase64URLSafeString(obj.getBytes(StandardCharsets.UTF_8)) + + def fromBase64: String = new String(Base64.decodeBase64(obj), StandardCharsets.UTF_8) + + def decodeBase64: String = new String(Base64.decodeBase64(obj), StandardCharsets.UTF_8) + + def sha256: String = + Hex.encodeHexString(MessageDigest.getInstance("SHA-256").digest(obj.getBytes(StandardCharsets.UTF_8))) + + def sha512: String = + Hex.encodeHexString(MessageDigest.getInstance("SHA-512").digest(obj.getBytes(StandardCharsets.UTF_8))) + + def chunks(size: Int): Source[String, NotUsed] = Source(obj.grouped(size).toList) + + def camelToSnake: String = { + obj.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase + // obj.replaceAll("([A-Z]+)([A-Z][a-z])", "$1_$2").replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase + } + } + + private[wasm4s] implicit class BetterByteString(private val obj: ByteString) extends AnyVal { + + def chunks(size: Int): Source[ByteString, NotUsed] = Source(obj.grouped(size).toList) + + def sha256: String = Hex.encodeHexString(MessageDigest.getInstance("SHA-256").digest(obj.toArray)) + + def sha512: String = Hex.encodeHexString(MessageDigest.getInstance("SHA-512").digest(obj.toArray)) + } + + private[wasm4s] implicit class BetterBoolean(private val obj: Boolean) extends AnyVal { + def json: JsValue = JsBoolean(obj) + } + + private[wasm4s] implicit class BetterDouble(private val obj: Double) extends AnyVal { + def json: JsValue = JsNumber(obj) + } + + private[wasm4s] implicit class BetterInt(private val obj: Int) extends AnyVal { + def json: JsValue = JsNumber(obj) + + def bytes: Array[Byte] = { + Array[Byte]( + ((obj >> 24) & 0xff).asInstanceOf[Byte], + ((obj >> 16) & 0xff).asInstanceOf[Byte], + ((obj >> 8) & 0xff).asInstanceOf[Byte], + ((obj >> 0) & 0xff).asInstanceOf[Byte] + ) + } + } + + private[wasm4s] implicit class BetterLong(private val obj: Long) extends AnyVal { + def json: JsValue = JsNumber(obj) + + def bytes: Array[Byte] = { + Array[Byte]( + ((obj >> 56) & 0xff).asInstanceOf[Byte], + ((obj >> 48) & 0xff).asInstanceOf[Byte], + ((obj >> 40) & 0xff).asInstanceOf[Byte], + ((obj >> 32) & 0xff).asInstanceOf[Byte], + ((obj >> 24) & 0xff).asInstanceOf[Byte], + ((obj >> 16) & 0xff).asInstanceOf[Byte], + ((obj >> 8) & 0xff).asInstanceOf[Byte], + ((obj >> 0) & 0xff).asInstanceOf[Byte] + ) + } + } + + private[wasm4s] implicit class BetterJsValue(private val obj: JsValue) extends AnyVal { + + def stringify: String = Json.stringify(obj) + + def prettify: String = Json.prettyPrint(obj) + + def select(name: String): JsLookupResult = obj \ name + + def select(index: Int): JsLookupResult = obj \ index + + def at(path: String): JsLookupResult = { + val parts = path.split("\\.").toSeq + parts.foldLeft(Option(obj)) { + case (Some(source: JsObject), part) => (source \ part).asOpt[JsValue] + case (Some(source: JsArray), part) => (source \ part.toInt).asOpt[JsValue] + case (Some(value), part) => None + case (None, _) => None + } match { + case None => JsUndefined(s"path '${path}' does not exists") + case Some(value) => JsDefined(value) + } + } + + def atPointer(path: String): JsLookupResult = { + val parts = path.split("/").toSeq.filterNot(_.trim.isEmpty) + parts.foldLeft(Option(obj)) { + case (Some(source: JsObject), part) => (source \ part).asOpt[JsValue] + case (Some(source: JsArray), part) => (source \ part.toInt).asOpt[JsValue] + case (Some(value), part) => None + case (None, _) => None + } match { + case None => JsUndefined(s"path '${path}' does not exists") + case Some(value) => JsDefined(value) + } + } + } + + private[wasm4s] implicit class BetterJsValueOption(private val obj: Option[JsValue]) extends AnyVal { + def orJsNull: JsValue = obj.getOrElse(JsNull) + } + + private[wasm4s] implicit class BetterJsLookupResult(private val obj: JsLookupResult) extends AnyVal { + def select(name: String): JsLookupResult = obj \ name + + def select(index: Int): JsLookupResult = obj \ index + + def strConvert(): Option[String] = { + obj.asOpt[JsValue].getOrElse(JsNull) match { + case JsNull => "null".some + case JsNumber(v) => v.toString().some + case JsString(v) => v.some + case JsBoolean(v) => v.toString.some + case o@JsObject(_) => o.stringify.some + case a@JsArray(_) => a.stringify.some + case _ => None + } + } + } + + private[wasm4s] implicit class BetterJsReadable(private val obj: JsReadable) extends AnyVal { + def asString: String = obj.as[String] + + def asInt: Int = obj.as[Int] + + def asDouble: Double = obj.as[Double] + + def asLong: Long = obj.as[Long] + + def asBoolean: Boolean = obj.as[Boolean] + + def asObject: JsObject = obj.as[JsObject] + + def asArray: JsArray = obj.as[JsArray] + + def asValue: JsValue = obj.as[JsValue] + + def asOptString: Option[String] = obj.asOpt[String] + + def asOptBoolean: Option[Boolean] = obj.asOpt[Boolean] + + def asOptInt: Option[Int] = obj.asOpt[Int] + + def asOptLong: Option[Long] = obj.asOpt[Long] + } + + private[wasm4s] implicit class BetterFuture[A](private val obj: Future[A]) extends AnyVal { + + def await(atMost: FiniteDuration): A = Await.result(obj, atMost) + + def fleft[B](implicit ec: ExecutionContext): Future[Either[A, B]] = obj.map(v => Left(v)) + + def fright[B](implicit ec: ExecutionContext): Future[Either[B, A]] = obj.map(v => Right(v)) + + def asLeft[R](implicit executor: ExecutionContext): Future[Either[A, R]] = obj.map(a => Left[A, R](a)) + + def asRight[R](implicit executor: ExecutionContext): Future[Either[R, A]] = obj.map(a => Right[R, A](a)) + + def fold[U](pf: PartialFunction[Try[A], U])(implicit executor: ExecutionContext): Future[U] = { + val promise = Promise[U] + obj.andThen { + case underlying: Try[A] => { + try { + promise.trySuccess(pf(underlying)) + } catch { + case e: Throwable => promise.tryFailure(e) + } + } + } + promise.future + } + + def foldM[U](pf: PartialFunction[Try[A], Future[U]])(implicit executor: ExecutionContext): Future[U] = { + val promise = Promise[U] + obj.andThen { + case underlying: Try[A] => { + try { + pf(underlying).andThen { + case Success(v) => promise.trySuccess(v) + case Failure(e) => promise.tryFailure(e) + } + } catch { + case e: Throwable => promise.tryFailure(e) + } + } + } + promise.future + } + } + + private[wasm4s] implicit class BetterMapOfStringAndB[B](val theMap: Map[String, B]) extends AnyVal { + def addAll(other: Map[String, B]): Map[String, B] = theMap.++(other) + + def put(key: String, value: B): Map[String, B] = theMap.+((key, value)) + + def put(tuple: (String, B)): Map[String, B] = theMap.+(tuple) + + def remove(key: String): Map[String, B] = theMap.-(key) + + def removeIgnoreCase(key: String): Map[String, B] = theMap.-(key).-(key.toLowerCase()) + + def containsIgnoreCase(key: String): Boolean = theMap.contains(key) || theMap.contains(key.toLowerCase()) + + def getIgnoreCase(key: String): Option[B] = theMap.get(key).orElse(theMap.get(key.toLowerCase())) + + def removeAndPutIgnoreCase(tuple: (String, B)): Map[String, B] = removeIgnoreCase(tuple._1).put(tuple) + } + + private[wasm4s] implicit class BetterTrieMapOfStringAndB[B](val theMap: TrieMap[String, B]) extends AnyVal { + def add(tuple: (String, B)): TrieMap[String, B] = theMap.+=(tuple) + + def addAll(all: TraversableOnce[(String, B)]): TrieMap[String, B] = theMap.++=(all) + + def rem(key: String): TrieMap[String, B] = theMap.-=(key) + + def remIgnoreCase(key: String): TrieMap[String, B] = theMap.-=(key).-=(key.toLowerCase()) + + def remAll(keys: TraversableOnce[String]): TrieMap[String, B] = theMap.--=(keys) + + def remAllIgnoreCase(keys: TraversableOnce[String]): TrieMap[String, B] = + theMap.--=(keys).--=(keys.map(_.toLowerCase())) + + def containsIgnoreCase(key: String): Boolean = theMap.contains(key) || theMap.contains(key.toLowerCase()) + + def getIgnoreCase(key: String): Option[B] = theMap.get(key).orElse(theMap.get(key.toLowerCase())) + + def remAndAddIgnoreCase(tuple: (String, B)): TrieMap[String, B] = remIgnoreCase(tuple._1).add(tuple) + + def getOrUpdate(k: String)(op: => B): B = theMap.getOrElseUpdate(k, op) + } + + private[wasm4s] implicit class BetterSeqOfA[A](val seq: Seq[A]) extends AnyVal { + def avgBy(f: A => Int): Double = { + if (seq.isEmpty) 0.0 + else { + val sum = seq.map(f).foldLeft(0) { case (a, b) => + a + b + } + sum / seq.size + } + } + + def findFirstSome[B](f: A => Option[B]): Option[B] = { + if (seq.isEmpty) { + None + } else { + for (a <- seq) { + val res = f(a) + if (res.isDefined) { + return res + } + } + None + } + } + } +} \ No newline at end of file diff --git a/src/main/scala/io/otoroshi/wasm4s/scaladsl/wasm.scala b/src/main/scala/io/otoroshi/wasm4s/scaladsl/wasm.scala new file mode 100644 index 0000000..9f0d905 --- /dev/null +++ b/src/main/scala/io/otoroshi/wasm4s/scaladsl/wasm.scala @@ -0,0 +1,570 @@ +package io.otoroshi.wasm4s.scaladsl + +import akka.util.ByteString +import io.otoroshi.wasm4s.impl.OPAWasmVm +import io.otoroshi.wasm4s.scaladsl.implicits._ +import io.otoroshi.wasm4s.scaladsl.security._ +import org.extism.sdk.wasmotoroshi._ +import play.api.libs.json._ + +import java.nio.file.{Files, Paths} +import java.util.concurrent.atomic.AtomicReference +import scala.collection.concurrent.TrieMap +import scala.concurrent._ +import scala.concurrent.duration._ +import scala.util._ + +trait WasmVm { + + // def reset(): Unit + + // def destroy(): Unit + + // def isBusy(): Boolean + + // def destroyAtRelease(): Unit + + def calls: Int + + def current: Int + + def index: Int + + def getOpaPointers(): Option[OPAWasmVm] + + def release(): Unit + + // def lastUsedAt(): Long + + def hasNotBeenUsedInTheLast(duration: FiniteDuration): Boolean + + def consumesMoreThanMemoryPercent(percent: Double): Boolean + + def tooSlow(max: Long): Boolean + + def hasBeenUsedInTheLast(duration: FiniteDuration): Boolean + + // def ignore(): Unit + + def initialized(): Boolean + + def initialize(f: => Any): Unit + + def finitialize[A](f: => Future[A]): Future[Unit] + + def call(parameters: WasmFunctionParameters, context: Option[WasmVmData]): Future[Either[JsValue, (String, ResultsWrapper)]] + + def callWithNoParams(functionName: String, result: Int, input: Option[String] = None, parameters: Option[WasmOtoroshiParameters] = None, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, Unit]] = { + call(WasmFunctionParameters.NoParams(functionName, result, input, parameters), context).map { + case Left(e) => Left(e) + case Right(_) => Right(()) + } + } + + def callWithNoResult(functionName: String, params: WasmOtoroshiParameters, input: Option[String] = None, resultSize: Option[Int] = None, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, Unit]] = { + call(WasmFunctionParameters.NoResult(functionName, params, input, resultSize), context).map { + case Left(e) => Left(e) + case Right(_) => Right(()) + } + } + + def callExtismFunction(functionName: String, in: String, parameters: Option[WasmOtoroshiParameters] = None, resultSize: Option[Int] = None, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, String]] = { + call(WasmFunctionParameters.ExtismFuntionCall(functionName, in, parameters, resultSize), context).map { + case Left(e) => Left(e) + case Right((str, _)) => Right(str) + } + } + + def callWithParamsAndResult(functionName: String, params: WasmOtoroshiParameters, result: Int, input: Option[String] = None, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, ResultsWrapper]] = { + call(WasmFunctionParameters.BothParamsResults(functionName, params, result, input), context).map { + case Left(e) => Left(e) + case Right((_, wrap)) => Right(wrap) + } + } + + def callOpa(functionName: String, in: String, context: Option[WasmVmData] = None)(implicit ec: ExecutionContext): Future[Either[JsValue, (String, ResultsWrapper)]] + + def ensureOpaInitializedAsync(in: Option[String] = None)(implicit ec: ExecutionContext): Future[WasmVm] + + def ensureOpaInitialized(in: Option[String] = None)(implicit ec: ExecutionContext): WasmVm +} + +object WasmVmPool { + def forConfiguration(config: WasmConfiguration, maxCallsBetweenUpdates: Int = 100000)(implicit ic: WasmIntegrationContext): WasmVmPool = io.otoroshi.wasm4s.impl.WasmVmPoolImpl.forConfig(config, maxCallsBetweenUpdates) + def forConfigurationWithId(stableId: => String, config: => WasmConfiguration, maxCallsBetweenUpdates: Int = 100000)(implicit ic: WasmIntegrationContext): WasmVmPool = { + new io.otoroshi.wasm4s.impl.WasmVmPoolImpl(stableId, config.some, maxCallsBetweenUpdates, ic) + } + def apply(stableId: => String, optConfig: => Option[WasmConfiguration], maxCallsBetweenUpdates: Int = 100000, ic: WasmIntegrationContext): WasmVmPool = { + new io.otoroshi.wasm4s.impl.WasmVmPoolImpl(stableId, optConfig, maxCallsBetweenUpdates, ic) + } +} + +trait WasmVmPool { + // get a pooled vm when one available. + // Do not forget to release it after usage + def getPooledVm(options: WasmVmInitOptions = WasmVmInitOptions.empty()): Future[WasmVm] + + // borrow a vm for sync operations + def withPooledVm[A](options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => A): Future[A] + + // borrow a vm for async operations + def withPooledVmF[A](options: WasmVmInitOptions = WasmVmInitOptions.empty())(f: WasmVm => Future[A]): Future[A] +} + +case class WasmDataRights(read: Boolean = false, write: Boolean = false) + +object WasmDataRights { + def fmt = + new Format[WasmDataRights] { + override def writes(o: WasmDataRights) = + Json.obj( + "read" -> o.read, + "write" -> o.write + ) + + override def reads(json: JsValue) = + Try { + JsSuccess( + WasmDataRights( + read = (json \ "read").asOpt[Boolean].getOrElse(false), + write = (json \ "write").asOpt[Boolean].getOrElse(false) + ) + ) + } recover { case e => + JsError(e.getMessage) + } get + } +} + +sealed trait WasmSourceKind { + def name: String + def json: JsValue = JsString(name) + def getWasm(path: String, opts: JsValue)(implicit ic: WasmIntegrationContext, ec: ExecutionContext): Future[Either[JsValue, ByteString]] + def getConfig(path: String, opts: JsValue)(implicit ic: WasmIntegrationContext, ec: ExecutionContext): Future[Option[WasmConfiguration]] = + None.vfuture +} + +object WasmSourceKind { + case object Unknown extends WasmSourceKind { + def name: String = "Unknown" + def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + Left(Json.obj("error" -> "unknown source")).vfuture + } + } + case object Base64 extends WasmSourceKind { + def name: String = "Base64" + def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSourceKind Base64] fetching wasm from base64") + ByteString(path.replace("base64://", "")).decodeBase64.right.future + } + } + case object Http extends WasmSourceKind { + def name: String = "Http" + def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + val method = opts.select("method").asOpt[String].getOrElse("GET") + val headers = opts.select("headers").asOpt[Map[String, String]].getOrElse(Map.empty) + val timeout = opts.select("timeout").asOpt[Long].getOrElse(10000L).millis + val followRedirect = opts.select("followRedirect").asOpt[Boolean].getOrElse(true) + val proxy = opts.select("proxy").asOpt[JsObject].flatMap(v => WSProxyServerJson.proxyFromJson(v)) + val tlsConfig: Option[TlsConfig] = + opts.select("tls").asOpt(TlsConfig.format).orElse(opts.select("tls").asOpt(TlsConfig.format)) + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSourceKind Http] fetching wasm from source at ${method} ${path}") + ic.url(path, tlsConfig) + .withMethod(method) + .withFollowRedirects(followRedirect) + .withHttpHeaders(headers.toSeq: _*) + .withRequestTimeout(timeout) + .applyOnWithOpt(proxy) { case (req, proxy) => + req.withProxyServer(proxy) + } + .execute() + .map { resp => + if (resp.status == 200) { + val body = resp.bodyAsBytes + Right(body) + } else { + val body: String = resp.body + if (ic.logger.isErrorEnabled) ic.logger.error(s"[WasmSourceKind Http] error fetching wasm from source at ${method} ${path}: ${resp.status} - ${resp.headers} - ${resp.body}") + Left( + Json.obj( + "error" -> "bad response", + "status" -> resp.status, + "headers" -> resp.headers.mapValues(_.last), + "body" -> body + ) + ) + } + } + .recover { + case e => Left(Json.obj( + "error" -> s"error while fetching plugin from http at '${method} ${path}': ${e.getMessage}", + "message" -> e.getMessage + )) + } + } + } + case object WasmManager extends WasmSourceKind { + def name: String = "WasmManager" + def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + ic.wasmManagerSettings.flatMap { + case Some(settings @ WasmManagerSettings(url, clientId, clientSecret, kind, tokenSecret)) => { + val apikey = ApikeyHelper + .generate(settings) + val wasmoUrl = s"$url/wasm/$path" + val followRedirect = opts.select("follow_redirect").asOpt[Boolean].getOrElse(true) + val timeout = opts.select("timeout").asOpt[Long].map(_.millis).getOrElse(5.seconds) + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSourceKind Wasmo] fetching wasm from source at GET ${wasmoUrl}") + ic.url(wasmoUrl) + .withFollowRedirects(followRedirect) + .withRequestTimeout(timeout) + .withHttpHeaders( + "Accept" -> "application/json", + "Otoroshi-User" -> apikey, + "kind" -> kind.getOrElse("*") + ) + .get() + .flatMap { resp => + if (resp.status == 200) { + Right(resp.bodyAsBytes).vfuture + } else { + if (ic.logger.isErrorEnabled) ic.logger.error(s"[WasmSourceKind Wasmo] error fetching wasm from source at GET ${wasmoUrl}: ${resp.status} - ${resp.headers} - ${resp.body}") + val body = resp.body + Left(Json.obj( + "error" -> "bad wasmo response", + "status" -> resp.status, + "headers" -> resp.headers.mapValues(_.last), + "body" -> body + )).vfuture + } + } + .recover { + case e => Left(Json.obj( + "error" -> s"error while fetching plugin from wasmo at '${path}': ${e.getMessage}", + "message" -> e.getMessage + )) + } + } + case _ => + Left(Json.obj("error" -> "missing wasm manager url")).vfuture + } + } + } + case object Local extends WasmSourceKind { + def name: String = "Local" + override def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSourceKind Local] fetching wasm from local config: ${path}") + ic.wasmConfig(path) flatMap { + case None => Left(Json.obj("error" -> "resource not found")).vfuture + case Some(config) => config.source.getWasm() + } + } + override def getConfig(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Option[WasmConfiguration]] = { + ic.wasmConfig(path) + } + } + case object File extends WasmSourceKind { + def name: String = "File" + def getWasm(path: String, opts: JsValue)(implicit + ic: WasmIntegrationContext, + ec: ExecutionContext + ): Future[Either[JsValue, ByteString]] = { + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSourceKind File] fetching wasm from file: ${path}") + Right(ByteString(Files.readAllBytes(Paths.get(path.replace("file://", ""))))).vfuture + } + } + + def apply(value: String): WasmSourceKind = value.toLowerCase match { + case "base64" => Base64 + case "http" => Http + case "wasmmanager" => WasmManager + case "wasmo" => WasmManager + case "local" => Local + case "file" => File + case _ => Unknown + } +} + +case class WasmSource(kind: WasmSourceKind, path: String, opts: JsValue = Json.obj()) { + def json: JsValue = WasmSource.format.writes(this) + def cacheKey = s"${kind.name.toLowerCase}://${path}" + def getConfig()(implicit ic: WasmIntegrationContext, ec: ExecutionContext): Future[Option[WasmConfiguration]] = kind.getConfig(path, opts) + def isCached()(implicit ic: WasmIntegrationContext): Boolean = { + val cache = ic.wasmScriptCache + cache.get(cacheKey) match { + case Some(CacheableWasmScript.CachedWasmScript(_, _)) => true + case Some(CacheableWasmScript.FetchingCachedWasmScript(_, _)) => true + case _ => false + } + } + def getWasm()(implicit ic: WasmIntegrationContext, ec: ExecutionContext): Future[Either[JsValue, ByteString]] = try { + val cache = ic.wasmScriptCache + cache.synchronized { + def fetchAndAddToCache(maybeAlready: Option[ByteString]): Future[Either[JsValue, ByteString]] = { + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] actual wasm fetch at ${path}") + val promise = Promise[Either[JsValue, ByteString]]() + maybeAlready match { + case None => cache.put(cacheKey, CacheableWasmScript.FetchingWasmScript(promise.future)) + case Some(s) => cache.put(cacheKey, CacheableWasmScript.FetchingCachedWasmScript(promise.future, s)) + } + kind.getWasm(path, opts).map { + case Left(err) => + if (ic.logger.isErrorEnabled) ic.logger.error(s"[WasmSource] error while wasm fetch at ${path}: ${err}") + maybeAlready match { + case None => cache.remove(cacheKey) + case Some(s) => + // put if back and wait for better times ??? + if (ic.logger.isWarnEnabled) ic.logger.warn(s"[WasmSource] using old version of ${path} because of fetch error: ${err}") + cache.put(cacheKey, CacheableWasmScript.CachedWasmScript(s, System.currentTimeMillis())) + } + promise.trySuccess(err.left) + err.left + case Right(bs) => { + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] success while wasm fetch at ${path}") + cache.put(cacheKey, CacheableWasmScript.CachedWasmScript(bs, System.currentTimeMillis())) + promise.trySuccess(bs.right) + bs.right + } + } + .recover { + case e => + val err = Json.obj("error" -> s"error while getting wasm from source: ${e.getMessage}") + maybeAlready match { + case None => cache.remove(cacheKey) + case Some(s) => + // put if back and wait ??? + if (ic.logger.isWarnEnabled) ic.logger.warn(s"[WasmSource] using old version of ${path} because of recover error: ${err}") + cache.put(cacheKey, CacheableWasmScript.CachedWasmScript(s, System.currentTimeMillis())) + } + promise.trySuccess(err.left) + err.left + } + } + + cache.get(cacheKey) match { + case None => + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] getWasm nothing in cache for ${path}") + fetchAndAddToCache(None) + case Some(CacheableWasmScript.FetchingWasmScript(fu)) => + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] getWasm fetching for ${path}") + fu + case Some(CacheableWasmScript.FetchingCachedWasmScript(_, script)) => + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] getWasm fetching already cached for ${path}") + script.right.future + case Some(CacheableWasmScript.CachedWasmScript(script, createAt)) + if createAt + ic.wasmCacheTtl < System.currentTimeMillis => + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] getWasm expired cache for ${path} - ${createAt} - ${ic.wasmCacheTtl} - ${createAt + ic.wasmCacheTtl} - ${System.currentTimeMillis}") + fetchAndAddToCache(script.some) + script.right.vfuture + case Some(CacheableWasmScript.CachedWasmScript(script, _)) => + if (ic.logger.isDebugEnabled) ic.logger.debug(s"[WasmSource] getWasm cached for ${path}") + script.right.vfuture + } + } + } catch { + case e: Throwable => + e.printStackTrace() + Future.failed(e) + } +} + +object WasmSource { + val format = new Format[WasmSource] { + override def writes(o: WasmSource): JsValue = Json.obj( + "kind" -> o.kind.json, + "path" -> o.path, + "opts" -> o.opts + ) + override def reads(json: JsValue): JsResult[WasmSource] = Try { + WasmSource( + kind = json.select("kind").asOpt[String].map(WasmSourceKind.apply).getOrElse(WasmSourceKind.Unknown), + path = json.select("path").asString, + opts = json.select("opts").asOpt[JsValue].getOrElse(Json.obj()) + ) + } match { + case Success(s) => JsSuccess(s) + case Failure(e) => JsError(e.getMessage) + } + } +} + +sealed trait WasmVmLifetime { + def name: String + def json: JsValue = JsString(name) +} + +object WasmVmLifetime { + + case object Invocation extends WasmVmLifetime { def name: String = "Invocation" } + case object Request extends WasmVmLifetime { def name: String = "Request" } + case object Forever extends WasmVmLifetime { def name: String = "Forever" } + + def parse(str: String): Option[WasmVmLifetime] = str.toLowerCase() match { + case "invocation" => Invocation.some + case "request" => Request.some + case "forever" => Forever.some + case _ => None + } +} + +trait WasmConfiguration { + def source: WasmSource + def memoryPages: Int + def functionName: Option[String] + def config: Map[String, String] + def allowedHosts: Seq[String] + def allowedPaths: Map[String, String] + def wasi: Boolean + def opa: Boolean + def instances: Int + def killOptions: WasmVmKillOptions + def json: JsValue + def pool(maxCallsBetweenUpdates: Int = 100000)(implicit ic: WasmIntegrationContext): WasmVmPool = io.otoroshi.wasm4s.impl.WasmVmPoolImpl.forConfig(this, maxCallsBetweenUpdates) +} + +object BasicWasmConfiguration { + def fromSource(source: WasmSource): BasicWasmConfiguration = { + BasicWasmConfiguration(source) + } + def fromWasiSource(source: WasmSource): BasicWasmConfiguration = { + BasicWasmConfiguration(source = source, wasi = true) + } + def fromOpaSource(source: WasmSource): BasicWasmConfiguration = { + BasicWasmConfiguration(source = source, opa = true) + } +} + +case class BasicWasmConfiguration( + source: WasmSource, + memoryPages: Int = 4, + functionName: Option[String] = None, + config: Map[String, String] = Map.empty, + allowedHosts: Seq[String] = Seq.empty, + allowedPaths: Map[String, String] = Map.empty, + wasi: Boolean = false, + opa: Boolean = false, + instances: Int = 1, + killOptions: WasmVmKillOptions = WasmVmKillOptions.default, +) extends WasmConfiguration { + def json: JsValue = Json.obj( + "source" -> source.json, + "memory_pages" -> memoryPages, + "function_name" -> functionName, + "config" -> config, + "allowed_hosts" -> allowedHosts, + "allowed_paths" -> allowedPaths, + "wasi" -> wasi, + "opa" -> opa, + "instances" -> instances, + "kill_options" -> killOptions.json + ) +} + +object InMemoryWasmConfigurationStore { + def apply[A <: WasmConfiguration](tuples: (String, A)*): InMemoryWasmConfigurationStore[A] = { + val map = new TrieMap[String, A]() + map.addAll(tuples) + new InMemoryWasmConfigurationStore(map) + } +} + +class InMemoryWasmConfigurationStore[A <: WasmConfiguration](store: TrieMap[String, A]) { + def wasmConfiguration(key: String): Option[A] = store.get(key) + def wasmConfigurationUnsafe(key: String): A = store.apply(key) + def wasmConfigurations(): Seq[A] = store.values.toSeq + def removeWasmConfiguration(key: String): Option[A] = store.remove(key) + def putWasmConfiguration(key: String, value: A): Option[A] = store.put(key, value) +} + +object ResultsWrapper { + def apply(results: WasmOtoroshiResults): ResultsWrapper = new ResultsWrapper(results, None) + def apply(results: WasmOtoroshiResults, plugin: WasmOtoroshiInstance): ResultsWrapper = + new ResultsWrapper(results, Some(plugin)) +} + +case class ResultsWrapper(results: WasmOtoroshiResults, pluginOpt: Option[WasmOtoroshiInstance]) { + def free(): Unit = try { + if (results.getLength > 0) { + results.close() + } + } catch { + case t: Throwable => + t.printStackTrace() + () + } +} + +sealed trait CacheableWasmScript + +object CacheableWasmScript { + case class CachedWasmScript(script: ByteString, createAt: Long) extends CacheableWasmScript + case class FetchingWasmScript(f: Future[Either[JsValue, ByteString]]) extends CacheableWasmScript + case class FetchingCachedWasmScript(f: Future[Either[JsValue, ByteString]], script: ByteString) extends CacheableWasmScript +} + +case class WasmVmInitOptions( + importDefaultHostFunctions: Boolean = true, + resetMemory: Boolean = true, + addHostFunctions: (AtomicReference[WasmVmData]) => Seq[WasmOtoroshiHostFunction[_ <: WasmOtoroshiHostUserData]] = _ => + Seq.empty + ) + +object WasmVmInitOptions { + def empty(): WasmVmInitOptions = WasmVmInitOptions( + importDefaultHostFunctions = true, + resetMemory = true, + addHostFunctions = _ => Seq.empty + ) +} + +case class WasmVmKillOptions( + immortal: Boolean = false, + maxCalls: Int = Int.MaxValue, + maxMemoryUsage: Double = 0.0, + maxAvgCallDuration: FiniteDuration = 0.nano, + maxUnusedDuration: FiniteDuration = 5.minutes + ) { + def json: JsValue = WasmVmKillOptions.format.writes(this) +} + +object WasmVmKillOptions { + val default = WasmVmKillOptions() + val format = new Format[WasmVmKillOptions] { + override def writes(o: WasmVmKillOptions): JsValue = Json.obj( + "immortal" -> o.immortal, + "max_calls" -> o.maxCalls, + "max_memory_usage" -> o.maxMemoryUsage, + "max_avg_call_duration" -> o.maxAvgCallDuration.toMillis, + "max_unused_duration" -> o.maxUnusedDuration.toMillis + ) + override def reads(json: JsValue): JsResult[WasmVmKillOptions] = Try { + WasmVmKillOptions( + immortal = json.select("immortal").asOpt[Boolean].getOrElse(false), + maxCalls = json.select("max_calls").asOpt[Int].getOrElse(Int.MaxValue), + maxMemoryUsage = json.select("max_memory_usage").asOpt[Double].getOrElse(0.0), + maxAvgCallDuration = json.select("max_avg_call_duration").asOpt[Long].map(_.millis).getOrElse(0.nano), + maxUnusedDuration = json.select("max_unused_duration").asOpt[Long].map(_.millis).getOrElse(5.minutes) + ) + } match { + case Failure(e) => JsError(e.getMessage) + case Success(e) => JsSuccess(e) + } + } +} diff --git a/src/test/resources/basic.wasm b/src/test/resources/basic.wasm new file mode 100644 index 0000000000000000000000000000000000000000..889cc374020e94078f8bef4ac3c46020fa1054cd GIT binary patch literal 907906 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 z�^FeVnNE!Ayj~GYwj%CE=ZtmAd@OnnD5wLZQS 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%0AcD>M=gGSa3|(Zz1@ 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

sD?cM*$>aVJ_UtRV29nHKr@KayJ^pl1rxV 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 IlS+sGKa$k&lmGw# literal 0 HcmV?d00001 diff --git a/src/test/resources/opa.wasm b/src/test/resources/opa.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cc8d70af137714a4732d5e1bea2be2b48fbc1626 GIT binary patch literal 116672 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�a!c9e@ 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 literal 0 HcmV?d00001 diff --git a/src/test/scala/io/otoroshi/wasm4s/test/WasmSpec.scala b/src/test/scala/io/otoroshi/wasm4s/test/WasmSpec.scala new file mode 100644 index 0000000..344df07 --- /dev/null +++ b/src/test/scala/io/otoroshi/wasm4s/test/WasmSpec.scala @@ -0,0 +1,101 @@ +package io.otoroshi.wasm4s.test + +import io.otoroshi.wasm4s.scaladsl._ +import io.otoroshi.wasm4s.scaladsl.implicits._ +import play.api.libs.json.Json + +import scala.concurrent.Await +import scala.concurrent.duration.DurationInt + +class WasmSpec extends munit.FunSuite { + + val wasmStore = InMemoryWasmConfigurationStore( + "basic" -> BasicWasmConfiguration.fromWasiSource(WasmSource(WasmSourceKind.File, "./src/test/resources/basic.wasm")), + "opa" -> BasicWasmConfiguration.fromOpaSource(WasmSource(WasmSourceKind.File, "./src/test/resources/opa.wasm")), + ) + val wasmIntegration = WasmIntegration(BasicWasmIntegrationContextWithNoHttpClient("test-wasm4s", wasmStore)) + wasmIntegration.runVmLoaderJob() + + test("basic setup with manual release should work") { + + import wasmIntegration.executionContext + + val fu = wasmIntegration.wasmVmById("basic").flatMap { + case Some((vm, _)) => { + vm.callExtismFunction( + "execute", + Json.obj("message" -> "coucou").stringify + ).map { + case Left(error) => println(s"error: ${error.prettify}") + case Right(out) => { + assertEquals(out, "{\"input\":{\"message\":\"coucou\"},\"message\":\"yo\"}") + println(s"output: ${out}") + } + } + .andThen { + case _ => vm.release() + } + } + case _ => + println("vm not found !") + ().vfuture + } + Await.result(fu, 10.seconds) + } + + test("basic setup with auto release should work") { + + import wasmIntegration.executionContext + + val fu = wasmIntegration.withPooledVm(wasmStore.wasmConfigurationUnsafe("basic")) { vm => + vm.callExtismFunction( + "execute", + Json.obj("message" -> "coucou").stringify + ).map { + case Left(error) => println(s"error: ${error.prettify}") + case Right(out) => { + assertEquals(out, "{\"input\":{\"message\":\"coucou\"},\"message\":\"yo\"}") + println(s"output: ${out}") + } + } + } + + Await.result(fu, 10.seconds) + } + + test("opa manual setup with auto release should work") { + + import wasmIntegration.executionContext + + val callCtx = Json.obj("request" -> Json.obj("headers" -> Json.obj("foo" -> "bar"))).stringify + val fu = wasmIntegration.withPooledVm(wasmStore.wasmConfigurationUnsafe("opa")) { vm => + vm.ensureOpaInitialized(callCtx.some).call( + WasmFunctionParameters.OPACall("execute", vm.getOpaPointers(), callCtx), None + ).map { + case Left(error) => println(s"error: ${error.prettify}") + case Right((out, _)) => { + println(s"opa output: ${out}") + } + } + } + + Await.result(fu, 10.seconds) + } + + test("opa auto setup with auto release should work") { + + import wasmIntegration.executionContext + + val callCtx = Json.obj("request" -> Json.obj("headers" -> Json.obj("foo" -> "bar"))).stringify + val fu = wasmIntegration.withPooledVm(wasmStore.wasmConfigurationUnsafe("opa")) { vm => + vm.callOpa("execute", callCtx).map { + case Left(error) => println(s"error: ${error.prettify}") + case Right((out, wrapper)) => { + println(s"opa output: ${out}") + } + } + } + + Await.result(fu, 10.seconds) + } +} diff --git a/update-extism.sh b/update-extism.sh new file mode 100755 index 0000000..71599eb --- /dev/null +++ b/update-extism.sh @@ -0,0 +1,43 @@ +# EXTISM_REPO=extism +EXTISM_REPO=MAIF + +EXTISM_VERSION=$(curl https://api.github.com/repos/${EXTISM_REPO}/extism/releases/latest | jq -r '.name') + +echo "latest extism version is: ${EXTISM_VERSION}" + +rm -rfv ./src/main/resources/native +rm -rfv ./src/main/resources/darwin-* +rm -rfv ./src/main/resources/linux-* + +mkdir ./src/main/resources/native + +curl -L -o "./src/main/resources/native/libextism-aarch64-apple-darwin-${EXTISM_VERSION}.tar.gz" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/libextism-aarch64-apple-darwin-${EXTISM_VERSION}.tar.gz" +curl -L -o "./src/main/resources/native/libextism-aarch64-apple-darwin-${EXTISM_VERSION}.tar.gz" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/libextism-aarch64-apple-darwin-${EXTISM_VERSION}.tar.gz" +curl -L -o "./src/main/resources/native/libextism-x86_64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/libextism-x86_64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" +curl -L -o "./src/main/resources/native/libextism-aarch64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/libextism-aarch64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" +curl -L -o "./src/main/resources/native/libextism-x86_64-apple-darwin-${EXTISM_VERSION}.tar.gz" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/libextism-x86_64-apple-darwin-${EXTISM_VERSION}.tar.gz" +curl -L -o "./lib/extism-${EXTISM_VERSION}.jar" "https://github.com/${EXTISM_REPO}/extism/releases/download/${EXTISM_VERSION}/extism-0.4.0.jar" + +mkdir ./src/main/resources/darwin-aarch64 +mkdir ./src/main/resources/darwin-x86-64 +mkdir ./src/main/resources/linux-aarch64 +mkdir ./src/main/resources/linux-x86-64 + +tar -xvf "./src/main/resources/native/libextism-aarch64-apple-darwin-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ +mv ./src/main/resources/native/libextism.dylib ./src/main/resources/darwin-aarch64/libextism.dylib +tar -xvf "./src/main/resources/native/libextism-x86_64-apple-darwin-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ +mv ./src/main/resources/native/libextism.dylib ./src/main/resources/darwin-x86-64/libextism.dylib + +tar -xvf "./src/main/resources/native/libextism-aarch64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ +mv ./src/main/resources/native/libextism.so ./src/main/resources/linux-aarch64/libextism.so +tar -xvf "./src/main/resources/native/libextism-x86_64-unknown-linux-gnu-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ +mv ./src/main/resources/native/libextism.so ./src/main/resources/linux-x86-64/libextism.so +rm -rfv ./src/main/resources/native + + +# curl -L -o "./src/main/resources/native/libextism-aarch64-unknown-linux-musl-${EXTISM_VERSION}.tar.gz" "https://github.com/extism/extism/releases/download/${EXTISM_VERSION}/libextism-aarch64-unknown-linux-musl-${EXTISM_VERSION}.tar.gz" +# tar -xvf "./src/main/resources/native/libextism-aarch64-unknown-linux-musl-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ +# curl -L -o "./src/main/resources/native/libextism-x86_64-pc-windows-gnu-${EXTISM_VERSION}.tar.gz" "https://github.com/extism/extism/releases/download/${EXTISM_VERSION}/libextism-x86_64-pc-windows-gnu-${EXTISM_VERSION}.tar.gz" +# curl -L -o "./src/main/resources/native/libextism-x86_64-pc-windows-msvc-${EXTISM_VERSION}.tar.gz" "https://github.com/extism/extism/releases/download/${EXTISM_VERSION}/libextism-x86_64-pc-windows-msvc-${EXTISM_VERSION}.tar.gz" +# mv ./src/main/resources/native/libextism.so ./src/main/resources/native/libextism-aarch64-unknown-linux-musl.so +# tar -xvf "./src/main/resources/native/libextism-x86_64-pc-windows-gnu-${EXTISM_VERSION}.tar.gz" --directory ./src/main/resources/native/ \ No newline at end of file