Developer
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Last updated Oct 29, 2025

User owns component

The UserOwnsComponent relationship represents the link between an Identity user and a Compass component within the Teamwork Graph. It allows you to:

  • Identify who owns to specific Compass components
  • Find all Compass components owned by a user
  • Traverse and analyze user-component relationships

Relationship type: Canonical

From object typeTo object type
Identity user - ati:cloud:identity:userCompass component - ati:cloud:compass:component

Cypher

We recommend using parameterized Cypher queries rather than placing parameters directly in the query string. This helps improve performance.

Forward query

GraphQL
1
2
query UserOwnsComponent_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 CompassComponent {
           id
          }
         }
        }
       }. on GraphStoreCypherQueryV2AriNode {
        data {. on CompassComponent {
          id
         }
        }
       }. on GraphStoreCypherQueryV2BooleanObject {
        bool_val: value
       }. on GraphStoreCypherQueryV2IntObject {
        int_val: value
       }. on GraphStoreCypherQueryV2FloatObject {
        float_val: value
       }. on GraphStoreCypherQueryV2StringObject {
        str_val: value
       }
      }
     }
    }
   }
  }
 }
}
Params
1
2
{
 "cypherQuery": "MATCH (user:IdentityUser {ari: $id})-[:user_owns_component]->(component:CompassComponent) RETURN component",
 "params": {
  "id": "$id"
 }
}

Inverse query

GraphQL
1
2
query UserOwnsComponent_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 AtlassianAccountUser {
           id
          }. on CustomerUser {
           id
          }. on AppUser {
           id
          }
         }
        }
       }. on GraphStoreCypherQueryV2AriNode {
        data {. on AtlassianAccountUser {
          id
         }. on CustomerUser {
          id
         }. on AppUser {
          id
         }
        }
       }. on GraphStoreCypherQueryV2BooleanObject {
        bool_val: value
       }. on GraphStoreCypherQueryV2IntObject {
        int_val: value
       }. on GraphStoreCypherQueryV2FloatObject {
        float_val: value
       }. on GraphStoreCypherQueryV2StringObject {
        str_val: value
       }
      }
     }
    }
   }
  }
 }
}
Params
1
2
{
 "cypherQuery": "MATCH (user:IdentityUser)-[:user_owns_component]->(component:CompassComponent {ari: $id}) RETURN user",
 "params": {
  "id": "$id"
 }
}

Materialization via Cypher Experimental

This materialization rule automatically creates user_owns_component relationships by traversing from Identity users through their teams to find Compass components that those teams own.

Cypher
1
2
// Materialization Rule: team-associates-user-to-component
MATCH (user:IdentityUser {ari: $id})
MATCH (user)-[rel0:user_is_in_team]->(team:IdentityTeam)
MATCH (team)-[rel1:team_owns_component]->(component:CompassComponent)
RETURN component AS ret, MAX(rel1.lastUpdated) AS lastUpdated

Rate this page: