The Teamwork Graph API is coming soon. The relationship types documented here are indicative of what will be available in the Graph via the Teamwork Graph API. Please note that relationships, their properties, and functionality may change before and during the Early Access Program.
Interested in early access? Express your interest in joining the EAP
The ProjectAssociatedVulnerability relationship represents the link between a Jira project and an external vulnerability within the Teamwork Graph. It allows you to:
Relationship type: Canonical
| From object type | To object type | 
|---|---|
| Jira project - ati:cloud:jira:project | External vulnerability - ati:cloud:jira:vulnerability | 
We recommend using parameterized Cypher queries rather than placing parameters directly in the query string. This helps improve performance.
1 2query ProjectAssociatedVulnerability_CypherQuery($cypherQuery: String!, $params: JSON!) { graphStore @optIn(to: ["GraphStore", "GraphStoreCypherQueryV2"]) { cypherQueryV2(query: $cypherQuery, params: $params) { edges { node { columns { key value {. on GraphStoreCypherQueryV2NodeList { nodes { data {. on DevOpsSecurityVulnerabilityDetails { id }. on ExternalVulnerability { id } } } }. on GraphStoreCypherQueryV2AriNode { data {. on DevOpsSecurityVulnerabilityDetails { id }. on ExternalVulnerability { id } } }. on GraphStoreCypherQueryV2BooleanObject { bool_val: value }. on GraphStoreCypherQueryV2IntObject { int_val: value }. on GraphStoreCypherQueryV2FloatObject { float_val: value }. on GraphStoreCypherQueryV2StringObject { str_val: value } } } } } } } }
1 2{ "cypherQuery": "MATCH (project:JiraProject {ari: $id})-[:project_associated_vulnerability]->(vulnerability:GraphVulnerability) RETURN vulnerability", "params": { "id": "$id" } }
1 2query ProjectAssociatedVulnerability_CypherQuery($cypherQuery: String!, $params: JSON!) { graphStore @optIn(to: ["GraphStore", "GraphStoreCypherQueryV2"]) { cypherQueryV2(query: $cypherQuery, params: $params) { edges { node { columns { key value {. on GraphStoreCypherQueryV2NodeList { nodes { data {. on JiraProject { id } } } }. on GraphStoreCypherQueryV2AriNode { data {. on JiraProject { id } } }. on GraphStoreCypherQueryV2BooleanObject { bool_val: value }. on GraphStoreCypherQueryV2IntObject { int_val: value }. on GraphStoreCypherQueryV2FloatObject { float_val: value }. on GraphStoreCypherQueryV2StringObject { str_val: value } } } } } } } }
1 2{ "cypherQuery": "MATCH (project:JiraProject)-[:project_associated_vulnerability]->(vulnerability:GraphVulnerability {ari: $id}) RETURN project", "params": { "id": "$id" } }
This materialization rule automatically creates project_associated_vulnerability relationships by traversing from Jira projects through their security containers to find associated vulnerabilities.
1 2// Materialization Rule: security-container-associates-project-to-vulnerability MATCH (project:JiraProject {ari: $id}) MATCH (project)-[rel0:project_associated_to_security_container]->(container:GraphSecurityContainer) MATCH (container)-[rel1:security_container_associated_to_vulnerability]->(vulnerability:GraphVulnerability) RETURN vulnerability AS ret, MAX(rel1.lastUpdated) AS lastUpdated
| Name | Type | Description | 
|---|---|---|
| status | VulnerabilityStatus ( Enum) | Current status of the vulnerability. | 
| severity | VulnerabilitySeverity ( Enum) | Severity level of the vulnerability. | 
| type | VulnerabilityType ( Enum) | Type or category of the vulnerability. | 
| container | Container ( Message) | Container information where the vulnerability was found. | 
| Name | Type | Description | 
|---|---|---|
| containerAri | Ari ( Message) | ARI of the security container where this vulnerability was discovered. | 
When filtering by ARI in GraphQL, it will behave as a String rather than a message as shown below.
| Name | Type | Description | 
|---|---|---|
| value | String | The ARI string value identifying the container or resource. | 
| Name | Internal Name | Index | Description | 
|---|---|---|---|
| not-set | STATUS_NOT_SET | 0 | No status has been set for this vulnerability. | 
| unknown | STATUS_UNKNOWN | 170 | Vulnerability status cannot be determined. | 
| closed | STATUS_CLOSED | 180 | Vulnerability has been resolved and closed. | 
| ignored | STATUS_IGNORED | 190 | Vulnerability has been acknowledged but intentionally ignored. | 
| open | STATUS_OPEN | 200 | Vulnerability is active and requires attention. | 
| Name | Internal Name | Index | Description | 
|---|---|---|---|
| not-set | SEVERITY_NOT_SET | 0 | No severity level has been assigned to this vulnerability. | 
| unknown | SEVERITY_UNKNOWN | 150 | Vulnerability severity cannot be determined. | 
| low | SEVERITY_LOW | 160 | Low severity vulnerability with minimal security impact. | 
| medium | SEVERITY_MEDIUM | 170 | Medium severity vulnerability with moderate security impact. | 
| high | SEVERITY_HIGH | 190 | High severity vulnerability with significant security impact. | 
| critical | SEVERITY_CRITICAL | 200 | Critical severity vulnerability requiring immediate attention. | 
| Name | Internal Name | Index | Description | 
|---|---|---|---|
| not-set | TYPE_NOT_SET | 0 | No vulnerability type has been set. | 
| dast | TYPE_DAST | 100 | Dynamic Application Security Testing vulnerability. | 
| sast | TYPE_SAST | 110 | Static Application Security Testing vulnerability. | 
| sca | TYPE_SCA | 120 | Software Composition Analysis vulnerability found in dependencies. | 
| unknown | TYPE_UNKNOWN | 130 | Vulnerability type cannot be determined. | 
Rate this page: