Pulzen Data Schemas
Pulzen collects, processes, and stores structured data from various development platforms to provide advanced analytics, metrics, and insights for engineering teams. Our platform integrates with Version Control Systems (GitHub, GitLab, Bitbucket, Azure DevOps), Project Management Tools (Jira, Azure DevOps), Collaboration Platforms (Microsoft Teams), and AI Development Tools (GitHub Copilot) to create a comprehensive view of your development ecosystem.
The following schemas represent the core entities and data models that power our platform's dashboards, reports, and AI-driven features. Each section contains normalized and unified data structures that enable cross-platform analytics, historical analysis, and team productivity insights regardless of the source platform or tool.
VCS Schemas (Version Control Systems)
The following schemas represent the main entities that Pulzen fetches from different Version Control Systems (VCS) such as GitHub, GitLab, Bitbucket, and Azure DevOps. For each entity, we extract and normalize the relevant data from the provider's API and store it in our database. This data forms the foundation for all analytics, metrics, and visualizations in Pulzen. The schemas below show exactly what information is persisted for each type of object—commits, pull requests, workflows, reviews, deploys, releases, repositories, users, and teams. By unifying and structuring this data, Pulzen enables cross-platform insights, historical analysis, and a single source of truth for your software development activity.
Commits
{
"_id": "string",
"url": "string",
"message": "string",
"createdAt": {
"$date": "datetime"
},
"stats": {
"additions": "number",
"deletions": "number"
},
"repositoryId": "string",
"repositoryName": "string",
"provider": "string",
"pullRequests": ["string"],
"authorUser": {
"$ref": "string",
"$id": "string"
},
"branches": ["string"],
"teams": ["string"],
"authorUsername": "string",
"authorEmail": "string",
"pullRequestId": "string"
}
Field descriptions
_id: Unique commit IDurl: Commit URL in the provider (GitHub, etc.)message: Commit messagecreatedAt: Creation datestats.additions: Lines addedstats.deletions: Lines deletedrepositoryId: Repository IDrepositoryName: Repository nameprovider: Provider (e.g., GITHUB)pullRequests: Related pull request IDsauthorUser: Reference to the author userbranches: Affected branchesteams: Related teamsauthorUsername: Author usernameauthorEmail: Author emailpullRequestId: Associated pull request ID
Pull Requests
{
"_id": "string",
"number": "number",
"url": "string",
"state": "string",
"title": "string",
"user": {
"$ref": "string",
"$id": "string"
},
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"closedAt": { "$date": "datetime" },
"mergedAt": { "$date": "datetime" },
"additions": "number",
"deletions": "number",
"changedFiles": "number",
"repositoryId": "string",
"repositoryName": "string",
"approverUser": "string",
"mergedBy": "string",
"provider": "string",
"fromBranch": "string",
"toBranch": "string",
"teams": ["string"],
"username": "string",
"userEmail": "string"
}
Field descriptions
_id: Unique pull request IDnumber: Pull request numberurl: Pull request URLstate: State (e.g., MERGED)title: Pull request titleuser: Reference to the author usercreatedAt,updatedAt,closedAt,mergedAt: Relevant datesadditions: Lines addeddeletions: Lines deletedchangedFiles: Changed filesrepositoryId: Repository IDrepositoryName: Repository nameapproverUser: Approver usermergedBy: User who mergedprovider: Provider (e.g., GITHUB)fromBranch,toBranch: Source and target branchesteams: Related teamsusername: Author usernameuserEmail: Author email
Workflows
{
"_id": "string",
"name": "string",
"headBranch": "string",
"path": "string",
"displayTitle": "string",
"runNumber": "number",
"event": "string",
"status": "string",
"conclusion": "string",
"workflowId": "string",
"htmlUrl": "string",
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"pullRequests": [
{ "number": "number" }
],
"actor": {
"login": "string",
"email": "string"
},
"triggeringActor": {
"login": "string",
"email": "string"
},
"runAttempt": "number",
"repositoryName": "string",
"repositoryId": "string",
"mergeBy": "string",
"provider": "string",
"pullrequestIds": ["string"],
"teams": ["string"]
}
Field descriptions
_id: Unique workflow IDname: Workflow nameheadBranch: Main branchpath: Workflow file pathdisplayTitle: Displayed titlerunNumber: Run numberevent: Triggering eventstatus: Status (e.g., COMPLETED)conclusion: Result (e.g., SUCCESS)workflowId: Workflow IDhtmlUrl: Workflow URL in GitHubcreatedAt,updatedAt: Relevant datespullRequests: Related pull requests (number)actor: User who runs the workflowtriggeringActor: User who triggers the workflowrunAttempt: Run attemptrepositoryName: Repository namerepositoryId: Repository IDmergeBy: User who mergedprovider: Provider (e.g., GITHUB)pullrequestIds: Related pull request IDsteams: Related teams
Reviews
{
"_id": "string",
"user": {
"$ref": "string",
"$id": "string"
},
"body": "string",
"submittedAt": { "$date": "datetime" },
"createdAt": { "$date": "datetime" },
"closedAt": { "$date": "datetime" },
"state": "string",
"pullRequestId": "string",
"provider": "string",
"prOwnerUsername": "string",
"prOwnerEmail": "string",
"teams": ["string"],
"repositoryId": "string",
"repositoryName": "string"
}
Field descriptions
_id: Unique review IDuser: Reference to the user who made the reviewbody: Review body (comment, markdown, etc.)submittedAt: Review submission datecreatedAt: Creation dateclosedAt: Closing datestate: Review state (e.g., COMMENTED)pullRequestId: Reviewed pull request IDprovider: Provider (e.g., GITHUB)prOwnerUsername: Pull request owner usernameprOwnerEmail: Pull request owner emailteams: Related teamsrepositoryId: Repository IDrepositoryName: Repository name
Deploys
{
"_id": "string",
"url": "string",
"sha": "string",
"originalEnvironment": "string",
"environment": "string",
"creator": {
"$ref": "string",
"$id": "string"
},
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"repositoryId": "string",
"repositoryName": "string",
"provider": "string",
"username": "string",
"userEmail": "string",
"teams": ["string"]
}
Field descriptions
_id: Unique deploy IDurl: Deploy URL in the providersha: SHA of the deployed commitoriginalEnvironment: Original environmentenvironment: Deployment environmentcreator: Reference to the user who performed the deploycreatedAt: Creation dateupdatedAt: Update daterepositoryId: Repository IDrepositoryName: Repository nameprovider: Provider (e.g., GITHUB)username: User who performed the deployuserEmail: User emailteams: Related teams
Releases
{
"_id": "string",
"name": "string",
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"publishedAt": { "$date": "datetime" },
"databaseId": { "$numberLong": "string" },
"isDraft": "boolean",
"isLatest": "boolean",
"isPrerelease": "boolean",
"tagName": "string",
"url": "string",
"author": "string",
"tagPrefix": "string",
"tagCommit": "string",
"commits": ["string"],
"repositoryId": "string",
"repositoryName": "string",
"provider": "string",
"teams": ["string"],
"authorEmail": "string"
}
Field descriptions
_id: Unique release IDname: Release name (e.g., v1.7.7)createdAt,updatedAt,publishedAt: Relevant datesdatabaseId: Database IDisDraft: If it is a draftisLatest: If it is the latest releaseisPrerelease: If it is a prereleasetagName: Tag nameurl: Release URL in the providerauthor: Release authortagPrefix: Tag prefixtagCommit: Main commit of the releasecommits: List of included commitsrepositoryId: Repository IDrepositoryName: Repository nameprovider: Provider (e.g., GITHUB)teams: Related teamsauthorEmail: Author email
Repositories
{
"_id": "string",
"name": "string",
"url": "string",
"owner": "string",
"language": "string",
"size": "number",
"defaultBranch": "string",
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"pushedAt": { "$date": "datetime" },
"teams": [
{
"name": "string",
"active": "boolean"
}
],
"provider": "string",
"users": [
{
"$ref": "string",
"$id": "string"
}
]
}
Field descriptions
_id: Unique repository IDname: Repository nameurl: Repository URLowner: Repository ownerlanguage: Main programming languagesize: Repository size (in KB)defaultBranch: Default branch referencecreatedAt: Creation dateupdatedAt: Last update datepushedAt: Last push dateteams: List of teams with access to the repository (name, active)provider: Provider (e.g., GITHUB)users: List of user references (object with$refand$id)
GitHub Copilot
The following schemas represent the main entities that Pulzen fetches from GitHub Copilot to provide AI-powered development analytics and productivity insights. This data enables code completion analysis, chat interaction tracking, and AI-assisted development metrics to understand how teams leverage GitHub Copilot for enhanced productivity.
Copilot Metrics
{
"_id": "string",
"date": {
"$date": "datetime"
},
"totalActiveUsers": "number",
"totalEngagedUsers": "number",
"copilotIdeCodeCompletions": {
"totalEngagedUsers": "number",
"languages": [
{
"name": "string",
"totalEngagedUsers": "number"
}
],
"editors": [
{
"name": "string",
"totalEngagedUsers": "number",
"models": [
{
"name": "string",
"isCustomModel": "boolean",
"totalEngagedUsers": "number",
"languages": [
{
"name": "string",
"totalEngagedUsers": "number",
"totalCodeSuggestions": "number",
"totalCodeAcceptances": "number",
"totalCodeLinesSuggested": "number",
"totalCodeLinesAccepted": "number"
}
]
}
]
}
]
},
"copilotDotcomChat": {
"totalEngagedUsers": "number",
"models": [
{
"name": "string",
"isCustomModel": "boolean",
"totalEngagedUsers": "number",
"totalChats": "number"
}
]
},
"copilotDotcomPullRequests": {
"totalEngagedUsers": "number",
"repositories": [
{
"name": "string",
"totalengagedusers": "number",
"models": [
{
"name": "string",
"isCustomModel": "boolean",
"totalPrSummariesCreated": "number",
"totalEngagedUsers": "number"
}
]
}
]
},
"copilotIdeChat": {
"totalEngagedUsers": "number",
"editors": [
{
"name": "string",
"totalEngagedUsers": "number",
"models": [
{
"name": "string",
"isCustomModel": "boolean",
"totalEngagedUsers": "number",
"totalChats": "number",
"totalChatInsertionEvents": "number",
"totalChatCopyEvents": "number"
}
]
}
]
},
"enterprise": "string",
"_class": "string"
}
Field descriptions
_id: Unique metric identifier (date-enterprise format)date: Date of the metrics collectiontotalActiveUsers: Total number of active userstotalEngagedUsers: Total number of engaged userscopilotIdeCodeCompletions: Code completion metrics from IDEtotalEngagedUsers: Number of users engaged with code completionslanguages: List of programming languages with engagement metricseditors: List of code editors with detailed metricsname: Editor name (e.g., vscode, JetBrains)totalEngagedUsers: Number of users engaged with this editormodels: AI models used for completionsname: Model nameisCustomModel: Whether it's a custom modeltotalEngagedUsers: Users engaged with this modellanguages: Language-specific metrics for this modelname: Programming language nametotalEngagedUsers: Users engaged with this languagetotalCodeSuggestions: Total code suggestions providedtotalCodeAcceptances: Total code suggestions acceptedtotalCodeLinesSuggested: Total lines of code suggestedtotalCodeLinesAccepted: Total lines of code accepted
copilotDotcomChat: Chat metrics from GitHub.comtotalEngagedUsers: Number of users engaged with chatmodels: AI models used for chatname: Model nameisCustomModel: Whether it's a custom modeltotalEngagedUsers: Users engaged with this modeltotalChats: Total number of chat sessions
copilotDotcomPullRequests: Pull request metrics from GitHub.comtotalEngagedUsers: Number of users engaged with PR featuresrepositories: Repository-specific metricsname: Repository nametotalengagedusers: Number of users engaged with this repositorymodels: AI models used for PR featuresname: Model nameisCustomModel: Whether it's a custom modeltotalPrSummariesCreated: Total PR summaries createdtotalEngagedUsers: Users engaged with this model
copilotIdeChat: Chat metrics from IDEtotalEngagedUsers: Number of users engaged with IDE chateditors: Editor-specific chat metricsname: Editor nametotalEngagedUsers: Users engaged with chat in this editormodels: AI models used for IDE chatname: Model nameisCustomModel: Whether it's a custom modeltotalEngagedUsers: Users engaged with this modeltotalChats: Total chat sessionstotalChatInsertionEvents: Total code insertions from chattotalChatCopyEvents: Total code copy events from chat
enterprise: Enterprise organization name_class: Java class name for MongoDB mapping
Copilot Seat
{
"_id": "string",
"login": "string",
"userId": {
"$numberLong": "string"
},
"type": "string",
"siteAdmin": "boolean",
"createdAt": "string",
"updatedAt": "string",
"activityAt": {
"$date": "datetime"
},
"activityEditor": "string",
"enterprise": "string",
"userMail": "string",
"_class": "string"
}
Field descriptions
_id: Unique seat identifier (login-timestamp-enterprise format)login: GitHub usernameuserId: GitHub user ID (stored as numberLong)type: User type (e.g., User)siteAdmin: Whether the user is a site administratorcreatedAt: User account creation dateupdatedAt: Last user account update dateactivityAt: Timestamp of the last Copilot activityactivityEditor: Editor used for Copilot activity (e.g., vscode with version and copilot-chat version)enterprise: Enterprise organization nameuserMail: User email address (may be empty)_class: Java class name for MongoDB mapping
Issue Tracker (Project Management Tools)
The following schemas represent the main entities that Pulzen fetches from different Issue Tracking and Project Management tools such as Jira and Azure DevOps (Beta). For each entity, we extract and normalize the relevant data from the provider's API and store it in our database. This data enables project tracking, issue management analytics, and workflow insights across different project management platforms.
Projects
{
"_id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"provider": "string",
"teams": ["string"]
}
Field descriptions
_id: Unique project IDname: Project namekey: Project key (short identifier, e.g., GROOW)projectTypeKey: Type of project (e.g., software)provider: Provider (e.g., JIRA)teams: List of teams associated with the project
Sprints
{
"_id": "string",
"name": "string",
"state": "string",
"boardId": "string",
"goal": "string",
"startDate": { "$date": "datetime" },
"endDate": { "$date": "datetime" },
"provider": "string",
"project": "string"
}
Field descriptions
_id: Unique sprint IDname: Sprint namestate: Sprint state (e.g., active, closed)boardId: Associated board IDgoal: Sprint goal/objectivestartDate: Sprint start dateendDate: Sprint end dateprovider: Provider (e.g., JIRA)project: Project name
Issues
{
"_id": "string",
"name": "string",
"description": "string",
"status": "string",
"assignedUser": {
"name": "string",
"email": "string"
},
"createdBy": {
"name": "string",
"email": "string"
},
"createdAt": { "$date": "datetime" },
"updatedAt": { "$date": "datetime" },
"project": "string",
"sprintId": ["string"],
"priority": "string",
"commentsCount": "number",
"type": "string",
"stateChangedDate": { "$date": "datetime" },
"reporter": {
"name": "string",
"email": "string"
},
"watchCount": "number",
"watchers": [
{
"name": "string",
"email": "string"
}
],
"provider": "string",
"key": "string",
"storyPointsEstimate": "number",
"timeTracking": {}
}
Field descriptions
_id: Unique issue IDname: Issue title/summarydescription: Detailed issue descriptionstatus: Current issue status (e.g., Completed)assignedUser: User assigned to the issue (name, email)createdBy: User who created the issue (name, email)createdAt: Issue creation dateupdatedAt: Last update dateproject: Project namesprintId: Associated sprint IDspriority: Issue priority (e.g., Medium)commentsCount: Number of commentstype: Issue type (e.g., Bug)stateChangedDate: Last state change datereporter: User who reported the issue (name, email)watchCount: Number of watcherswatchers: List of users watching the issueprovider: Provider (e.g., JIRA)key: Issue key (e.g., PULZEN-167)storyPointsEstimate: Estimated story pointstimeTracking: Time tracking information
Collaboration & Communication
The following schemas represent the main entities that Pulzen fetches from different Collaboration and Communication platforms such as Microsoft Teams. This data provides insights into user activity, communication patterns, and meeting engagement, helping to understand team dynamics and productivity within these tools.
MS Teams Activities
{
"_id": "string",
"email": "string",
"activityDay": "string",
"dayOfWeek": "string",
"day": "number",
"monthOfYear": "string",
"month": "number",
"year": "number",
"isLicensed": "string",
"teamChatMessageCount": "number",
"privateChatMessageCount": "number",
"postMessages": "number",
"replyMessages": "number",
"urgentMessages": "number",
"callCount": "number",
"meetingCount": "number",
"audioDurationInSeconds": "number",
"videoDurationInSeconds": "number",
"screenShareDurationInSeconds": "number"
}
Field descriptions
_id: Unique identifier for the activity record (email_date)email: User's email addressactivityDay: The specific date of the activity (YYYY-MM-DD format)dayOfWeek: Day of the week for the activityday: Day of the month for the activitymonthOfYear: Month name for the activitymonth: Month number for the activityyear: Year for the activityisLicensed: Indicates if the user is licensed for the service (e.g., "Yes")teamChatMessageCount: Number of messages sent in team chatsprivateChatMessageCount: Number of messages sent in private chatspostMessages: Number of new posts createdreplyMessages: Number of replies to messagesurgentMessages: Number of urgent messages sentcallCount: Number of calls made or receivedmeetingCount: Number of meetings attendedaudioDurationInSeconds: Total duration of audio calls in secondsvideoDurationInSeconds: Total duration of video calls in secondsscreenShareDurationInSeconds: Total duration of screen sharing in seconds
Cross
The following schemas represent cross-platform entities that are shared across different tools and platforms in Pulzen. These entities provide unified user and team management, enabling consistent identity mapping and cross-tool analytics regardless of the source platform.
Users
{
"_id": "string",
"id": "string",
"name": "string",
"email": "string",
"teams": [
{
"name": "string",
"active": "boolean"
}
],
"provider": "string"
}
Field descriptions
_id: Unique user IDid: User ID (may be the same as_id)name: Usernameemail: User emailteams: List of teams the user belongs to (name, active)provider: Provider (e.g., GITHUB)
Teams
{
"_id": "string",
"name": "string",
"description": "string",
"privacy": "string",
"url": "string",
"createdAt": { "$date": "datetime" },
"provider": "string"
}
Field descriptions
_id: Unique team IDname: Team namedescription: Team descriptionprivacy: Privacy level (e.g., VISIBLE)url: Team URL in the providercreatedAt: Creation dateprovider: Provider (e.g., GITHUB)
Logs
{
"_id": {
"$oid": "string"
},
"clientId": "string",
"provider": "string",
"internalProcess": "string",
"level": "string",
"classAffected": "string",
"methodAffected": "string",
"customMessage": "string",
"variablesAndValues": "string",
"register": {
"$date": "datetime"
},
"entity": "string",
"_class": "string"
}
Field descriptions
_id: Unique log identifier (ObjectId)clientId: Client identifier (usually empty)provider: Data provider (e.g., GITHUB)internalProcess: Internal process name (e.g., INITIAL_LOAD)level: Log level (e.g., LOW, MEDIUM, HIGH)classAffected: Java class affected by the operationmethodAffected: Method name affected by the operationcustomMessage: Custom log message with contextvariablesAndValues: Additional variables and their values (usually empty)register: Timestamp when the log was createdentity: Entity type being processed (e.g., COMMIT, PULL_REQUEST)_class: Java class name for MongoDB mapping