Data stores - OfficeDev/microsoft-teams-apps-greatideas GitHub Wiki
The app uses the following data stores:
All these resources are created in your Azure subscription. None are hosted directly by Microsoft.
- Azure Storage Account
- [CategoryEntity] to store category created by authors.
- [TeamCategoryEntity] to store team categories details.
- [TeamEntity] to store team related data.
- [TeamIdeaEntity] to store team idea details.
- [TeamPreferenceEntity] to store preference details for different teams to send digest notification Monthly/Weekly.
- [TeamTagEntity] to store tag details.
- [UserVoteEntity] to store user like/vote details.
Storage account tables
1. CategoryEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | A constant value "Category". |
| RowKey | Unique identifier(GUID) for each category [CategoryId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| CategoryId | Unique identifier(GUID) for each category. |
| CategoryName | Name of the category [Max characters: 150]. |
| CategoryDescription | Description of the category [Max characters: 300]. |
| CreatedByUserId | User aad object id who created the category. |
| ModifiedByUserId | User aad object id who modified the category. |
| CreatedOn | UTC Date and time at which category is created. |
2. TeamCategoryEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | A constant value "TeamCategoryEntity". |
| RowKey | Unique value for each team where categories are configured [TeamId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| TeamId | Unique value for each team where categories are configured. |
| Categories | Semicolon separated category ids selected by user. |
| CreatedDate | UTC Date and time at which team category is created. |
| CreatedByName | User name who configured categories in team. |
| UserAadId | User aad object id who created the team category. |
3. TeamEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | Team id where application is installed [TeamId]. |
| RowKey | Team id where application is installed [TeamId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| BotInstalledOn | UTC date and time when the application is installed. |
| ServiceUrl | Service endpoint where operations concerning the referenced conversation. |
4. TeamIdeaEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | A constant value "TeamIdeaEntity". |
| RowKey | Unique identifier(GUID) for each created idea. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| IdeaId | Unique identifier(GUID) for each created idea. |
| Title | Title of the idea [Max characters: 200] |
| Description | User entered post description value [Max characters: 500]. |
| Category | User selected idea category value. |
| CategoryId | User selected idea category id. |
| Tags | Semicolon separated tags entered by user. |
| CreatedDate | UTC date and time when the idea is submitted/created. |
| CreatedByName | Author name who created idea. |
| UpdatedDate | UTC date and time when the idea is updated. |
| CreatedByObjectId | User aad object id of the author who created the idea. |
| CreatedByUserPrincipleName | User principle name(email id) of author who created the idea. |
| TotalVotes | Total number of likes received for a idea from users. |
| DocumentLinks | Supporting document links for idea in json format. |
| ApproverOrRejecterUserId | User aad object id of user who has approved or rejected the idea. |
| Status | Status of idea. Integer value. 0 = Pending / 1 = Approved / 2 = Rejected. |
| Feedback | Feedback comment if admin has rejected idea request. |
5. TeamPreferenceEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | A constant value "TeamPreferenceEntity". |
| RowKey | Unique value for each team where preference has configured [TeamId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| TeamId | Unique value for each team where preference has configured. |
| DigestFrequency | User selected value for digest frequency i.e. Monthly/Weekly. |
| Tags | Semicolon separated tags selected by user. |
| Categories | Semicolon separated tags selected by user. |
| CreatedDate | UTC date and time when entry is created. |
| UpdatedDate | UTC date and time when entry is created. |
| PreferenceId | Unique identifier(GUID) for each Team preference. |
| UpdatedByName | User name who updated the configured preference. |
| UpdatedByObjectId | User aad object id of user who updated the configured preference. |
6. TeamTagEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | A constant value "TeamTagEntity". |
| RowKey | Unique value for each team where tags has configured [TeamId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| TeamId | Unique value for each team where tags has configured. |
| Tags | Semicolon separated tags selected by user. |
| CreatedDate | UTC date and time when entry is created. |
| CreatedByName | User name who configured tags in team. |
| UserAadId | User aad object id of user who configured the tags in team. |
7. UserVoteEntity The table has following rows:
| Attribute | Comment |
|---|---|
| PartitionKey | User aad object id of the user [UserId]. |
| RowKey | Unique identifier(GUID) for each created post [PostId]. |
| TimeStamp | Timestamp of actual record insertion (Done by Azure). |
| UserId | User aad object id of the user. |
| PostId | Unique identifier(GUID) for each created post. |