diff --git a/app/org/thp/cortex/models/Migration.scala b/app/org/thp/cortex/models/Migration.scala index b6edb65de..ac363dc61 100644 --- a/app/org/thp/cortex/models/Migration.scala +++ b/app/org/thp/cortex/models/Migration.scala @@ -44,6 +44,8 @@ class Migration @Inject() ( renameAttribute("job", "workerName", "analyzerName"), addAttribute("job", "type" → JsString(WorkerType.analyzer.toString)), + addAttribute("report", "operations" → JsString("[]")), + renameEntity("analyzer", "worker"), renameAttribute("worker", "workerDefinitionId", "analyzerDefinitionId"), addAttribute("worker", "type" → JsString(WorkerType.analyzer.toString)), diff --git a/app/org/thp/cortex/services/JobSrv.scala b/app/org/thp/cortex/services/JobSrv.scala index ea3e4529e..f70c8d714 100644 --- a/app/org/thp/cortex/services/JobSrv.scala +++ b/app/org/thp/cortex/services/JobSrv.scala @@ -172,6 +172,7 @@ class JobSrv( val tlp = (attributes \ "tlp").asOpt[Long].getOrElse(2L) val message = (attributes \ "message").asOpt[String].getOrElse("") val parameters = (attributes \ "parameters").asOpt[JsObject].getOrElse(JsObject.empty) + val label = (attributes \ "label").asOpt[String] val force = fields.getBoolean("force").getOrElse(false) withGood(dataType, dataFiv) { case (dt, Right(fiv)) ⇒ dt → attachmentSrv.save(fiv).map(Right.apply) @@ -179,7 +180,7 @@ class JobSrv( } .fold( typeDataAttachment ⇒ typeDataAttachment._2.flatMap( - da ⇒ create(worker, typeDataAttachment._1, da, tlp, message, parameters, force)), + da ⇒ create(worker, typeDataAttachment._1, da, tlp, message, parameters, label, force)), errors ⇒ { val attributeError = AttributeCheckingError("job", errors) logger.error("legacy job create fails", attributeError) @@ -243,13 +244,13 @@ class JobSrv( case (dt, Left(data)) ⇒ dt → Future.successful(Left(data)) } .fold( - typeDataAttachment ⇒ typeDataAttachment._2.flatMap(da ⇒ create(worker, typeDataAttachment._1, da, tlp, message, parameters, force)), + typeDataAttachment ⇒ typeDataAttachment._2.flatMap(da ⇒ create(worker, typeDataAttachment._1, da, tlp, message, parameters, fields.getString("label"), force)), errors ⇒ Future.failed(AttributeCheckingError("job", errors))) } } } - def create(worker: Worker, dataType: String, dataAttachment: Either[String, Attachment], tlp: Long, message: String, parameters: JsObject, force: Boolean)(implicit authContext: AuthContext): Future[Job] = { + def create(worker: Worker, dataType: String, dataAttachment: Either[String, Attachment], tlp: Long, message: String, parameters: JsObject, label: Option[String], force: Boolean)(implicit authContext: AuthContext): Future[Job] = { val previousJob = if (force) Future.successful(None) else findSimilarJob(worker, dataType, dataAttachment, tlp, parameters) previousJob.flatMap { @@ -267,6 +268,7 @@ class JobSrv( "message" → message, "parameters" → parameters.toString, "type" → worker.tpe())) + .set("label", label.map(JsString.apply)) val fieldWithData = dataAttachment match { case Left(data) ⇒ fields.set("data", data) case Right(attachment) ⇒ fields.set("attachment", AttachmentInputValue(attachment)) diff --git a/app/org/thp/cortex/services/MispSrv.scala b/app/org/thp/cortex/services/MispSrv.scala index d69464a2e..8034cb449 100644 --- a/app/org/thp/cortex/services/MispSrv.scala +++ b/app/org/thp/cortex/services/MispSrv.scala @@ -63,7 +63,7 @@ class MispSrv @Inject() ( for { analyzer ← workerSrv.get(module) - job ← jobSrv.create(analyzer, mispType2dataType(mispType), artifact, 0, "", JsObject.empty, force = false) + job ← jobSrv.create(analyzer, mispType2dataType(mispType), artifact, 0, "", JsObject.empty, None, force = false) _ ← auditActor.ask(Register(job.id, duration))(Timeout(duration)) updatedJob ← jobSrv.getForUser(authContext.userId, job.id) mispOutput ← toMispOutput(authContext.userId, updatedJob) diff --git a/www/src/app/pages/jobs/components/jobs.list.html b/www/src/app/pages/jobs/components/jobs.list.html index e26419b14..a1db8d1fa 100644 --- a/www/src/app/pages/jobs/components/jobs.list.html +++ b/www/src/app/pages/jobs/components/jobs.list.html @@ -31,7 +31,7 @@

[{{job.dataType}}] {{(isFile ? job.attachment.name : job.data) | fang | limitTo:200}} - {{job.data.label || 'No Label'}} + {{job.label || 'No Label'}}