Overview, Product Features, Architecture Diagram, Prerequisites and a List of Captured Data
Table of Contents
3. Architecture - Event Receiver Service
Overview
edison365projects DataStore is a SaaS solution hosted in Microsoftβs Azure. The application is built and fully maintained by the edison365 team with updates regularly being rolled out that include new features / service improvements.
DataStore enables your organisation to have a SQL Reporting database that contains your key Project Online data including Project Site data. Having the data in a SQL database gives
great flexibility for enhanced reporting and system integrations.
Data gets updated in the SQL database in near real time but is a queue based system so it is not instant.
Product Features at a Glance
- SaaS based product in hosted in Azure
- Queue based sync system
- Driven from Project Online PWA events
- Key Project Online data
- SharePoint List data from Project Sites
- Snapshot / history tables
- Bulk / on demand Sync
- Scheduled Sync
- Email alerts
- SQL database maintenance
- Sync History via the UI
- Configured via an intuitive UI
- 1 Database per PWA instance
Architecture - Event Receiver Service
Back to Top
Architecture - DataStore
Back to TopPrerequisite Requirements
- Azure SQL Cloud database - https://docs.microsoft.com/en-us/azure/sql-database/sql-database-get-started
- At least S2 tier or equivalent tier
- Blank Database
- We recommend restricting the IPs and whitelisting the application IPs, please find these here.
- Alternatively it is possible to enabling the 'Allow Access to Azure Services' option within the Azure SQL firewall.
- SQL username and password with full control over the target database:
-
- Ideally the Azure SQL Server Admin account or an account with at least db_manager role for the initial deployment
- Post deployment, the account requires db_owner access to the database
- Ensure the backup / restore options are understood: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-business-continuity
- Enable auto tuning: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-automatic-tuning
- Consider enabling Auditing: https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-auditing-portal
- Consider enabling Threat Detection: https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-threat-detection-portal
- Project Online PWA instance
- PWA user account with site collection Admin access and full PWA Admin access
- Access to Project Online SharePoint App Catalogue site
- The DataStore .app files from edison365 / your edison365 partner
- Ensure that custom app authentication is enabled on the SharePoint Online tenant, to enable it run the following SharePoint PowerShell command:
- set-spotenant -DisableCustomAppAuthentication $false
- Details on the set-SpoTenant cmdlets here: https://docs.microsoft.com/en-us/powershell/module/sharepoint-online/set-spotenant?view=sharepoint-ps
Data Captured - Project
Setting | Source (PWA) | PWA Reporting Event Entities (created, deleted, updated) |
Assignments |
_api/ProjectData/Assignments | Project |
Assignment Timephased Data | _api/ProjectData/TaskTimephasedDataSet | Project |
Assignment Baselines | _api/ProjectData/AssignmentBaselines | Project |
Assignment Baseline Timephased Data | _api/ProjectData/AssignmentBaselineTimephasedDataSet | Project |
Engagements | _api/ProjectData/Engagements | Project |
Engagements Comments | _api/ProjectData/EngagementsComments | Project |
Engagements Timephased Data |
_api/ProjectData/EngagementsTimephasedDataSet | Project |
Projects | _api/ProjectData/Projects | Project |
Project Baselines | _api/ProjectData/ProjectBaselines | Project |
Project Multiline HTML Values (Global Setting) |
_api/ProjectServer/Projects | Project |
Resource Demand Timephased Data | _api/ProjectData/ResourceDemandTimephasedDataSet | Project |
Tasks | _api/ProjectData/Tasks | Project |
Task Baselines | _api/ProjectData/TaskBaselines | Project |
Task Baseline Timephased Data | _api/ProjectData/TaskBaselineTimephasedDataSet | Project |
Task Notes | _api/ProjectServer/Projects | Project |
Task Timephased Data | _api/ProjectData/TaskTimephasedDataSet | Project |
Resources | _api/ProjectData/Resources | Resource |
Resource Timephased Data | _api/ProjectData/ResourceTimephasedDataSet | Resource |
Timesheets | _api/ProjectData/Timesheets | Timesheet |
Timesheet Lines | _api/ProjectData/TimesheetLines | Timesheet |
Timesheet Line Actual Data | _api/ProjectData/TimesheetLineActualDataSet | Timesheet |
Timesheet Periods | _api/ProjectData/TimesheetPeriods | Timesheet Periods |
Time Set Data (Fiscal Periods) | _api/ProjectData/TimeSet | Fiscal Periods |
Data Captured - SharePoint
SharePoint lists can be synchronised to the DataStore database. Lists from the root PWA site collection and from Project Sites for Projects in PWA or other site collections on the tenant. The following SharePoint events are used:
Events | Use |
ItemAdded, ItemUpdated, ItemDeleted | Used to sync the list item data |
ListAdded, ListDeleted | Used when a list is added or deleted |
WebProvisioned, WebDeleted | Used when a sub site is added or deleted |