Skip to content

Commit

Permalink
#1731 Update database schema
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Jan 5, 2021
1 parent 8a376e5 commit 21bba42
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions thehive/app/org/thp/thehive/models/TheHiveSchemaDefinition.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import org.thp.scalligraph.janus.JanusDatabase
import org.thp.scalligraph.models._
import org.thp.scalligraph.traversal.Graph
import org.thp.scalligraph.traversal.TraversalOps._
import org.thp.thehive.services.LocalUserSrv
import play.api.Logger

import scala.collection.JavaConverters._
Expand Down Expand Up @@ -83,11 +84,57 @@ class TheHiveSchemaDefinition @Inject() extends Schema with UpdatableSchema {
.iterate()
Success(())
}
//=====[release 4.0.2]=====
.addProperty[Boolean]("ShareTask", "actionRequired")
.updateGraph("Add actionRequire property", "Share") { traversal =>
traversal.outE[ShareTask].raw.property("actionRequired", false).iterate()
Success(())
}
//=====[release 4.0.3]=====
.addProperty[String]("Alert", "organisationId")
.updateGraph("Add organisation data in alerts", "Alert") { traversal =>
traversal
.project(_.by.by(_.out("AlertOrganisation")._id))
.toIterator
.foreach {
case (vertex, organisationId) =>
vertex.property("organisationId", organisationId.value)
}
Success(())
}
.addProperty[Seq[String]]("Case", "organisationIds")
.updateGraph("Add organisation data in cases", "Case") { traversal =>
traversal
.project(_.by.by(_.in("ShareCase").in("OrganisationShare")._id.fold))
.toIterator
.foreach {
case (vertex, organisationIds) =>
organisationIds.foreach(id => vertex.property(Cardinality.list, "organisationIds", id.value))
}
Success(())
}
.addProperty[Seq[String]]("Observable", "organisationIds")
.updateGraph("Add organisation data in observables", "Observable") { traversal =>
traversal
.project(
_.by
.by(
_.coalesceIdent(
_.optional(_.in("ReportObservable").in("ObservableJob")).in("ShareObservable").in("OrganisationShare"),
_.in("AlertObservable").out("AlertOrganisation")
)
._id
.fold
)
)
.toIterator
.foreach {
case (vertex, organisationIds) =>
organisationIds.foreach(id => vertex.property(Cardinality.list, "organisationIds", id.value))
}
Success(())
}
.rebuildIndexes

val reflectionClasses = new Reflections(
new ConfigurationBuilder()
Expand Down Expand Up @@ -116,4 +163,6 @@ class TheHiveSchemaDefinition @Inject() extends Schema with UpdatableSchema {
}.flatten

override def init(db: Database)(implicit graph: Graph, authContext: AuthContext): Try[Unit] = Success(())

override val authContext: AuthContext = LocalUserSrv.getSystemAuthContext
}

0 comments on commit 21bba42

Please sign in to comment.