Skip to content

Commit 5bca6e5

Browse files
fix #2179
1 parent b901d21 commit 5bca6e5

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

otoroshi/app/next/workflow/extension.scala

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class WorkflowAdminExtension(val env: Env) extends AdminExtension {
130130
implicit val ec = env.otoroshiExecutionContext
131131
implicit val ev = env
132132
for {
133-
configs <- datastores.workflowsDatastore.findAll()
133+
configs <- datastores.workflowsDatastore.findAllAndFillSecrets()
134134
} yield {
135135
states.updateWorkflows(configs)
136136
()
@@ -185,12 +185,16 @@ class WorkflowAdminExtension(val env: Env) extends AdminExtension {
185185
case None => Results.Ok(Json.obj("done" -> false, "error" -> "no body")).vfuture
186186
case Some(bodySource) =>
187187
bodySource.runFold(ByteString.empty)(_ ++ _).flatMap { bodyRaw =>
188-
val payload = bodyRaw.utf8String.parseJson
189-
val input = payload.select("input").asString.parseJson.asObject
190-
val workflow = payload.select("workflow").asObject
191-
val node = Node.from(workflow)
192-
engine.run(node, input).map { res =>
193-
Results.Ok(res.json)
188+
val payload_raw = bodyRaw.utf8String
189+
val secretFillFuture = if (payload_raw.contains("${vault://")) env.vaults.fillSecretsAsync("workflow-test", payload_raw) else payload_raw.vfuture
190+
secretFillFuture.flatMap { payload_filled =>
191+
val payload = payload_filled.parseJson
192+
val input = payload.select("input").asString.parseJson.asObject
193+
val workflow = payload.select("workflow").asObject
194+
val node = Node.from(workflow)
195+
engine.run(node, input).map { res =>
196+
Results.Ok(res.json)
197+
}
194198
}
195199
}
196200
}).recover {

0 commit comments

Comments
 (0)