Data stores - OfficeDev/microsoft-teams-apps-groupconnect GitHub Wiki
The app uses the following data stores:
- Azure Storage Account
- Application Insights
All these resources are created in your Azure subscription. None are hosted directly by Microsoft.
Azure Table Storage
Teams Data
This table stores the corresponding team information for a employee group which is registered in the app.
Value | Description |
---|---|
PartitionKey | Constant value as 'Team Data'. |
RowKey | The team Id in teams. |
Timestamp | The latest DateTime record. |
Name | The team's name. |
ServiceUrl | The service URL that can be used to fetch the team's roster. |
TeamId | The team Id in teams. |
TenantId | The teams's tenant identifier. |
Users Collection
This table stores all the users information who have installed the personal app.
Value | Description |
---|---|
PartitionKey | Constant value as 'User Data'. |
RowKey | The user's azure active directory object identifier. |
Timestamp | The latest DateTime record. |
AadId | The user's azure active directory object identifier. |
ConversationId | The conversation identifier for the chat between the user and the bot. |
ServiceUrl | The user's service URL that can be used to notify the user. |
TenantId | The user's tenant identifier. |
UserId | The user's Id in teams. |
AppConfig Collection
The App Config Collection stores the user app Id, service URL and QnA Maker knowledgebase id.
Value | Description |
---|---|
PartitionKey | Constant value as 'Settings'. |
RowKey | Constants as "ServiceUrl" or "UserAppId". "ServiceUrl" - The value stored is service URL. "UserAppId" - The value stored is user app Id. “knowledgeBaseId” – The FAQ knowledge base Id. |
Timestamp | The latest DateTime record. |
Value | Value stored based on row key |
Notification Data
The Notification Collection stores the notification data.
Value | Description |
---|---|
PartitionKey | Constants as "DraftNotifications" or "SendingNotifications" or "SentNotifications" or "GlobalSendingNotificationData". "DraftNotifications" - The notification is stored in this partition when it is in draft state. "SendingNotifications" - This partition stores the notification entry that is used for sending the notification and serialized JSON content. "SentNotifications" - The notification is moved to this partition when it is sent to the recipient. "GlobalSendingNotificationData" - This partition stores the Retry Delay time when the system is being throttled. |
RowKey | The notification unique identifier. |
Timestamp | The latest DateTime record. |
Id | The notification identifier. |
Title | The title text of notification's content. |
ImageLink | The image link of notification's content. |
Summary | The summary text of notification's content. |
Author | The author text of the notification's content. |
ButtonLink | The button link of the notification's content. |
ButtonTitle | The button title of the notification's content. |
TotalMessageCount | The total number of messages to send. |
Succeeded | The number of recipients who have received the notification succesfully. |
Failed | The number of recipients who failed to receive the notification succesfully. |
AllUsers | Indicating if the notification should be sent to all known users. |
TeamsInString | The list of team identifiers. |
RostersInString | The list of roster identifiers. |
GroupsInString | The list of group identifiers. |
IsCompleted | [Deprecated] Indicating if the notification sending process is completed. |
IsDraft | Indicating if the notifcation is a draft. |
IsPreparingToSend | [Deprecated] Indicating if the notification is in the "preparing to send" state. |
Unknown | The number of recipients who have an unknown status. |
Content | The content of the notification in serialized JSON form. |
NotificationId | The notification identifier. |
RecipientNotFound | The number of not found recipients. |
CreatedBy | The user that created the notification. |
CreatedDate | The DateTime when notification was created. |
SendingStartDate | The DateTime when the notification sending was started. |
SentDate | The DateTime when the notification's sending was completed. |
WarningMessage | The warning message for the notification if there was a warning given when preparing and sending notification. |
ErrorMessage | The error message for the notification if there was a failure in preparing and sending notification. |
Status | The notification status. |
SentNotification Data
The SentNotification collection stores the sent notification data.
Value | Description |
---|---|
PartitionKey | The notification unique identifier. |
RowKey | The user's identifier. |
Timestamp | The latest DateTime record. |
ConversationId | The conversation identifier for the recipient. |
IsStatusCodeFromCreateConversation | Indicating if the status code is from the create conversation call. |
NumberOfFunctionAttemptsToSend | The number of times an Azure Function instance attempted to send the notification to the recipient. |
RecipientId | The recipients unique identifier. |
RecipientType | Indicating which type of recipient the notification was sent. |
SentDate | The DateTime when the notification's sending was completed. |
ServiceUrl | The service URL of the recipient. |
StatusCode | The status code for the notification received by the bot. |
TenantId | The tenant identifier of the recipient. |
TotalNumberOfSendThrottles | The total number of throttle responses the bot received when trying to send the notification to the recipient. |
UserId | The user identifier of the recipient. |
Export Data
The Export Collection stores the export data.
Value | Description |
---|---|
PartitionKey | The user's azure active directory identifier. |
RowKey | The notification identifier. |
Timestamp | The latest DateTime record. |
SendDate | The export send date. |
Status | The file export status. |
Employee Resource Group
This table stores the information for the Employee Resource Groups created by end-users.
Value | Description |
---|---|
Partition Key (Group) | This represents the partition key of the azure storage table - Type of the group either External or Teams. |
RowKey | Represents the unique group id of each row. |
Timestamp | The latest DateTime record. |
GroupId | Same as Row key. |
GroupName | Represents the employee resource group name or team name. |
GroupDescription | Represents the employee resource group description or team description. |
GroupType | Represents group type enum i.e. Teams=0 and Others=1. |
GroupLink | Represents the external link or team link. |
ImageLink | Represents the image link. |
TeamId | Represents the unique Microsoft Team id (19:xxx) |
Tags | List of tags in JSON format. |
Location | Represents the location of the user. |
IncludeInSearchResults | True if search wants to be enabled not false. Only search enabled groups are available to all end users. |
ApprovalStatus | Admin team member can Approve/Reject any ERG request to make it searchable. InProgress=0, Approve =1, Rejected=2. |
MatchingFrequency | Pair up matching frequency for each team. It can be updated/modified by Admin team or respective team owners Weekly = 0, Monthly = 1. |
IsProfileMatchingEnabled | Represent whether pair-up profile matching is enabled or not for a given Team. |
CreatedOn | Contains the date time of Group creation. |
CreatedByObjectId | The AAD Object Id of user who created group |
UpdatedOn | Last date time on which group was updated. |
UpdatedByObjectId | The AAD Object Id of user who recently updated the group details. |
TeamUserPairUpMapping data
The table stores all the pair up mapping between users and Teams.
Value | Description |
---|---|
PartitionKey | User object identifier. |
RowKey | TeamID is the unique identifier related to the specific team of which the user is a part of. |
Timestamp | The latest DateTime record. |
TeamId | TeamID is the unique identifier related to the specific team of which the user is a part of (same as row key). |
IsPaused | Flag set by the user to be picked for next pair up matching for that team. |
UserId | This is the unique identifier of a user (same as partition key). |
Feedback
The table stores the feedback provided by end users
Value | Description |
---|---|
PartitionKey | User object identifier |
RowKey | Unique GUID generated for each feedback |
Timestamp | The latest DateTime record. |
Feedback | Feedback text provided by user up to 500 characters |
FeedbackId | Unique GUID generated for each feedback (same as row key) |
SubmittedOn | TimeStamp on which record is saved |