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.

Dimension Type Description
id string Unique project ID
projectName string Local project name (from desktop)
gitRemoteUrl string Git remote URL
detectedProjectType string Detected type (typescript, python, etc.)
sourceType string How project was added
Dimension Type Description
provider string Source provider (github, gitlab, etc.)
externalId string Provider’s ID
name string Repository name
fullName string Full name (org/repo)
owner string Repository owner
url string Repository URL
apiUrl string API URL
defaultBranch string Default branch
isPrivate string Private repository flag
Dimension Type Description
syncIssues string Sync issues enabled
syncPullRequests string Sync PRs enabled
syncDeployments string Sync deployments enabled
lastSyncedAt time Last sync timestamp
connectedAt time Connection timestamp
Dimension Type Description
createdAt time Record creation time
updatedAt time Last update time
Measure Description
count Total projects

The Projects cube connects to:

Join Relationship Description
Teams belongsToMany Teams assigned to project
TeamProjects hasMany Junction table entries
Issues hasMany Issues in project
PullRequests hasMany PRs in project
Deployments hasMany Deployments from project
DiscoveryFlow hasMany Discovery flow facts
DeliveryFlow hasMany Delivery flow facts
DeploymentFlow hasMany Deployment 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.

Dimension Type Description
id string Unique team ID
name string Team name
slug string URL-safe team identifier
description string Team description
privacy string Privacy setting (secret, closed)
Dimension Type Description
githubTeamId number GitHub team ID
githubOrgLogin string GitHub organization login
githubOrgName string GitHub organization name
avatarUrl string Team avatar URL
Dimension Type Description
createdAt time Record creation time
githubCreatedAt time GitHub team creation time
lastSyncedAt time Last sync timestamp
Measure Description
count Total teams

The Teams cube connects to many other cubes for filtering:

Join Relationship Description
Projects belongsToMany Projects assigned to team
TeamMembers hasMany Team membership entries
TeamProjects hasMany Team-project assignments
Issues belongsToMany Issues via projects
PullRequests belongsToMany PRs via projects
Deployments belongsToMany Deployments via projects
SurveyResponses belongsToMany Surveys via members
DiscoveryFlow belongsToMany Discovery via projects
DeliveryFlow belongsToMany Delivery via projects
DeploymentFlow belongsToMany Deployments 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.

Dimension Type Description
id string Unique user ID
name string Display name
username string Username
email string Email address
Dimension Type Description
githubId number GitHub user ID
avatarUrl string Profile avatar URL
Dimension Type Description
createdAt time Account creation time
firstSessionUploadedAt time First session upload
Measure Description
count Total users
Join Relationship Description
Teams belongsToMany Teams user belongs to
TeamMembers hasMany Team 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