OfficeArchitect.Web
OfficeArchitect.Web
is the data access endpoint for all OfficeArchitect client applications.
Areas
The sharepoint and Visio api are sectioned into their own areas, located in the Areas
folder.
Controllers
Contains the controllers for the OA web, including api controllers and content controllers.
Hubs
Contains the signalR hubs. See Tasks section for more details.
Tasks
Contains the tasks. Most (if not all) of the asynchronous tasks doable in OA web are actually off-loaded to a task queue.
Which is registered as a IHostedService
. The tasks themselves then use the signalR hubs (via a hub context) to notify
the client of changes.
Notes
App configuration
In Startup.cs
, it is important that the OA custom redirect runs before the auth middleware
// removed
.UseOARedirect()
.UseAuthentication()
// removed
This is because we are using the root /
as the callback path (which should ideally be changed).
If auth runs before, infinite loop will occur.
Publishing
EnableDefaultContentItems
has been disabled on this project. This is because, at the moment, we have a rather
non-standard usage of various different files, further more they are littered about everywhere (e.g. we have razor files
in the App
folder). The default .net core publish mechanism - which has EnableDefaultContentItems
set to true -
doesn't work well with this.
So for the moment, it has been disabled, and anything we want to be put in the publish folder should be explicitly
specified in the Publish
item group block.
Default behaviour can be found here.
Connecting a project to an Azure DevOps package registry
Install the Azure DevOps authentication tool using the following command:
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
Authenticate with the registry feed:
vsts-npm-auth -config .npmrc
More information can be found here