Skip to content

Entity Reference Cubes

These cubes represent the core organizational structure of your GuideMode deployment. They primarily serve as dimension tables for filtering and grouping data in other cubes, but also provide basic count metrics.

Source Table: projects Description: Project information including local projects detected by the desktop app and connected repositories from GitHub/GitLab.

DimensionTypeDescription
idstringUnique project ID
projectNamestringLocal project name (from desktop)
gitRemoteUrlstringGit remote URL
detectedProjectTypestringDetected type (typescript, python, etc.)
sourceTypestringHow project was added
DimensionTypeDescription
providerstringSource provider (github, gitlab, etc.)
externalIdstringProvider’s ID
namestringRepository name
fullNamestringFull name (org/repo)
ownerstringRepository owner
urlstringRepository URL
apiUrlstringAPI URL
defaultBranchstringDefault branch
isPrivatestringPrivate repository flag
DimensionTypeDescription
syncIssuesstringSync issues enabled
syncPullRequestsstringSync PRs enabled
syncDeploymentsstringSync deployments enabled
lastSyncedAttimeLast sync timestamp
connectedAttimeConnection timestamp
DimensionTypeDescription
createdAttimeRecord creation time
updatedAttimeLast update time
MeasureDescription
countTotal projects

The Projects cube connects to:

JoinRelationshipDescription
TeamsbelongsToManyTeams assigned to project
TeamProjectshasManyJunction table entries
IssueshasManyIssues in project
PullRequestshasManyPRs in project
DeploymentshasManyDeployments from project
DiscoveryFlowhasManyDiscovery flow facts
DeliveryFlowhasManyDelivery flow facts
DeploymentFlowhasManyDeployment flow facts
  • Project Inventory: List all connected projects
  • Sync Status: Monitor sync settings and timing
  • Provider Distribution: Count projects by provider
  • Type Analysis: Group projects by detected type

Source Table: teams Description: Team structure information, including GitHub team integration details.

DimensionTypeDescription
idstringUnique team ID
namestringTeam name
slugstringURL-safe team identifier
descriptionstringTeam description
privacystringPrivacy setting (secret, closed)
DimensionTypeDescription
githubTeamIdnumberGitHub team ID
githubOrgLoginstringGitHub organization login
githubOrgNamestringGitHub organization name
avatarUrlstringTeam avatar URL
DimensionTypeDescription
createdAttimeRecord creation time
githubCreatedAttimeGitHub team creation time
lastSyncedAttimeLast sync timestamp
MeasureDescription
countTotal teams

The Teams cube connects to many other cubes for filtering:

JoinRelationshipDescription
ProjectsbelongsToManyProjects assigned to team
TeamMembershasManyTeam membership entries
TeamProjectshasManyTeam-project assignments
IssuesbelongsToManyIssues via projects
PullRequestsbelongsToManyPRs via projects
DeploymentsbelongsToManyDeployments via projects
SurveyResponsesbelongsToManySurveys via members
DiscoveryFlowbelongsToManyDiscovery via projects
DeliveryFlowbelongsToManyDelivery via projects
DeploymentFlowbelongsToManyDeployments via projects
  • Team Directory: List all teams
  • GitHub Sync Status: Monitor team synchronization
  • Cross-Cube Filtering: Filter any cube by team

Teams is the most commonly used filter dimension:

// Filter any cube by team
filters: [
{ member: "Teams.id", operator: "equals", values: ["team-uuid"] }
]
// Or by team name
filters: [
{ member: "Teams.name", operator: "equals", values: ["Engineering"] }
]

Source Table: users Description: User information for all users in your organization, filtered by tenant membership.

DimensionTypeDescription
idstringUnique user ID
namestringDisplay name
usernamestringUsername
emailstringEmail address
DimensionTypeDescription
githubIdnumberGitHub user ID
avatarUrlstringProfile avatar URL
DimensionTypeDescription
createdAttimeAccount creation time
firstSessionUploadedAttimeFirst session upload
MeasureDescription
countTotal users
JoinRelationshipDescription
TeamsbelongsToManyTeams user belongs to
TeamMembershasManyTeam membership entries

The Users cube automatically filters to users in the current tenant via the tenant_users junction table. You’ll only see users who are members of your organization.

  • User Directory: List organization members
  • Onboarding Tracking: Monitor first session uploads
  • Activity Analysis: Track user activity via sessions
  • Cross-Cube Filtering: Filter by user in other cubes

Most cubes support team filtering via joins:

// Sessions by team
{
measures: ["Sessions.count"],
dimensions: ["Teams.name"],
filters: [{ member: "Teams.id", operator: "equals", values: ["team-1"] }]
}
// Issues by project
{
measures: ["Issues.count", "Issues.openCount"],
dimensions: ["Projects.name"],
filters: [{ member: "Projects.id", operator: "equals", values: ["proj-1"] }]
}
// Assessments by user
{
measures: ["Assessments.count", "Assessments.thumbsUpPercentage"],
dimensions: ["Users.name"],
filters: [{ member: "Users.id", operator: "equals", values: ["user-1"] }]
}
// PRs by team and project
{
measures: ["PullRequests.count", "PullRequests.medianCycleTimeDays"],
dimensions: ["Teams.name", "Projects.name"],
filters: [
{ member: "Teams.name", operator: "equals", values: ["Frontend"] },
{ member: "Projects.provider", operator: "equals", values: ["github"] }
]
}
Organization (Tenant)
├── Teams
│ ├── TeamMembers → Users
│ └── TeamProjects → Projects
├── Users
│ └── TeamMembers → Teams
└── Projects
└── TeamProjects → Teams