71 lines
1.1 KiB
Markdown
71 lines
1.1 KiB
Markdown
|
# Legend
|
||
|
-> outbound edges
|
||
|
<- inbound edges
|
||
|
|
||
|
# Layer
|
||
|
|
||
|
Key: "layer:" + Hash(id)
|
||
|
|
||
|
-> is = "layer"
|
||
|
-> id
|
||
|
-> parent (my ancestor is)
|
||
|
|
||
|
-> os
|
||
|
-> adds*
|
||
|
-> removes*
|
||
|
-> engineVersion
|
||
|
|
||
|
<- parent* (is ancestor of)
|
||
|
|
||
|
# Package
|
||
|
|
||
|
Key: "package:" + Hash(os + ":" + name + ":" + version)
|
||
|
|
||
|
-> is = "package"
|
||
|
-> os
|
||
|
-> name
|
||
|
-> version
|
||
|
-> nextVersion
|
||
|
|
||
|
<- nextVersion
|
||
|
<- adds*
|
||
|
<- removes*
|
||
|
<- fixed_in*
|
||
|
|
||
|
Packages are organized in linked lists : there is one linked list for one os/name couple. Each linked list has a tail and a head with special versions.
|
||
|
|
||
|
# Vulnerability
|
||
|
|
||
|
Key: "vulnerability:" + Hash(name)
|
||
|
|
||
|
-> is = "vulnerability"
|
||
|
-> name
|
||
|
-> priority
|
||
|
-> link
|
||
|
-> fixed_in*
|
||
|
|
||
|
# Notification
|
||
|
|
||
|
Key: "notification:" + random uuid
|
||
|
|
||
|
-> is = "notification"
|
||
|
-> type
|
||
|
-> data
|
||
|
-> isSent
|
||
|
|
||
|
# Flag
|
||
|
|
||
|
Key: "flag:" + name
|
||
|
|
||
|
-> value
|
||
|
|
||
|
# Lock
|
||
|
|
||
|
Key: name
|
||
|
|
||
|
-> locked = "locked"
|
||
|
-> locked_until (timestamp)
|
||
|
-> locked_by
|
||
|
|
||
|
A lock can be used to lock a specific graph node by using the node Key as the lock name.
|