Data Stores - OfficeDev/microsoft-teams-apps-employeetraining GitHub Wiki

The app uses the following data store:

All these resources are created in your Azure subscription. None are hosted directly by Microsoft.

  • Azure Table Storage

    • [EventEntity] to store event related details.
    • [Categories] to store categories created by L&D team.
    • [UserConfiguration] to store user's bot details for sending notifications.
    • [LnDTeamConfiguration] to store details of L&D teams where bot is installed.
  • Azure Blob Storage

    • Storage for images uploaded while creating event.

Storage account tables

1. EventEntity

The table has following rows:

Attribute Comment
PartitionKey Team Id of team which has created the event.
RowKey Unique identifier (GUID) for each event (Event Id).
Timestamp Date and time stamp when the entity row is modified.
EventName Name of event.
Description Description of event.
ImageUrl URL of image uploaded on Azure Blob.
StartDate Start date of event.
StartTime Start time of event.
EndDate End date of event.
EndTime End time of event.
EventType Type of event: In person, Live event or Teams meeting.
Location Location of event. Will be null for Teams meeting and Live event.
MeetingLink Link of Teams/Outlook meeting created for event.
MaximumNumberOfParticipants Maximum number of participants who can register for an event.
CategoryId Id of category assigned selected for event.
CategoryName Name of category assigned selected for event.
Audience Type of audience for event. It can be either Public or Private.
IsAutoRegister True if users needs to be auto registered for event.
Status Current status of event. It can be Draft, Active or Completed.
MandatoryAttendees Semicolon separated AAD user ID of mandatory users.
OptionalAttendees Semicolon separated AAD user ID of optional users.
RegisteredAttendees Semicolon separated AAD user ID of registered users.
CreatedBy AAD Id of user who has created event.
CreatedOn DateTime of event creation.
UpdatedBy AAD Id of user who has updated event recently.
UpdatedOn DateTime of recent event modification.

2. Categories

The table has following rows:

Attribute Comment
PartitionKey Team Id of team which has created the 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.
CategoryDescription Description of the category.
CreatedByUserId User AAD object id who created the category.
ModifiedByUserId User AAD object id who modified the category.
CreatedOn DateTime at which category is created.
ModifiedOn DateTime of recent event modification.

3. UserConfiguration

The table has following rows:

Attribute Comment
PartitionKey User’s AAD Id.
RowKey User’s AAD Id.
ConversationId Bot’s conversation Id.
ServiceUrl Service URL for sending notification.
BotInstalledOn DateTime of bot installation.

4. LnDTeamConfiguration

The table has following rows:

Attribute Comment
PartitionKey Team Id where bot is installed.
RowKey Team Id where bot is installed.
BotInstalledOn DateTime when bot is installed in Team.