Skip to main content

Architecture & Data Flow

This page gives a security or IT reviewer a single-page orientation to the components that make up Boxcurve Unity and to the trust boundary around them. It is intended to be read before the more detailed Data Residency & Tenant Isolation, Identity & Access Control, and Integrations & Connections documents, which it cross-references rather than duplicates.

Boxcurve Unity is a Power Platform application. It comprises a Power Apps application, a Microsoft Dataverse data store, and a set of Power Automate flows. All three run inside the customer's own Microsoft 365 tenant. The application's data is held only in the customer's Dataverse environment. There is no separate Boxcurve-hosted store of application data.

Trust boundary at a glance

The diagram below shows the components inside the customer's tenant, the in-tenant Microsoft services the application connects to, and the only three channels that leave the tenant boundary.

+===========================================================================+
| CUSTOMER'S MICROSOFT 365 TENANT (trust boundary) |
| |
| +-------------------+ +----------------------------+ |
| | Power Apps | uses | Power Automate flows | |
| | application |------->| (orchestration / sync / | |
| | (Boxcurve Unity) | | notifications / admin) | |
| +---------+---------+ +-------------+--------------+ |
| | | |
| | reads / writes | reads / writes |
| v v |
| +----------------------------------------------+ |
| | Microsoft Dataverse | |
| | (the application's data: | |
| | projects, tasks, accountability map, | |
| | stakeholders, change history, settings) | |
| +----------------------------------------------+ |
| |
| In-tenant Microsoft services the application connects to: |
| +-----------+ +-----------+ +-----------+ +------------+ +-----------+ |
| | Outlook | | Teams | | Planner | | OneDrive | | Office365 | |
| | | | | | | | for Bus. | | Groups / | |
| | | | | | | | | | Users | |
| +-----------+ +-----------+ +-----------+ +------------+ +-----------+ |
| +-------------------------------+ |
| | Azure DevOps | (reached via the Microsoft |
| | (via Microsoft connector) | Azure DevOps connector) |
| +-------------------------------+ |
| |
+=============================|======|======|===============================+
| | |
(1) licensing check | | | (3) task-pack retrieval
tenant ID + | | | (Boxcurve-hosted,
licence / | | | read-only)
notification | | |
metadata | | |
(fail-open) | | |
v | v
+--------------+ | +------------------+
| Boxcurve | | | Boxcurve task |
| licensing | | | pack repository |
| endpoint | | +------------------+
+--------------+ |
v
(2) monday.com import
(OPTIONAL, customer-
configured; pulls boards
/ tasks into Unity)
+------------------+
| monday.com |
+------------------+

Everything above the boundary line runs inside the customer's tenant. The three numbered channels are the only flows that cross the boundary, and they are described in full below.

Components

ComponentRoleWhere it runs
Boxcurve Unity appThe user interface: building and maintaining the accountability map, managing tasks, stakeholders, projects and settingsCustomer's Microsoft 365 tenant (Power Apps)
Microsoft DataverseThe application's data store: projects, tasks, accountability assignments, stakeholders, change history, comments, notifications, settings and error logsCustomer's Microsoft 365 tenant (Dataverse environment)
Power Automate flowsOrchestration behind the app: project lifecycle administration, role and membership management, change-history logging, notifications, import/export, and synchronisation to Planner and Azure DevOpsCustomer's Microsoft 365 tenant (Power Automate)

In-tenant Microsoft services used

These Microsoft services are reached through Microsoft connectors and operate within the customer's own tenant. The application uses them; it does not administer them.

ServiceHow Boxcurve Unity uses it
Office 365 OutlookSends task-assignment and related notifications by email; delivers exported task files
Microsoft TeamsSends task-assignment notifications
Microsoft PlannerMirrors tasks to a Planner plan and keeps task status in step
OneDrive for BusinessReceives exported task files (CSV export)
Office 365 Groups / UsersResolves group membership that drives application roles, and looks up user details
Azure DevOpsMirrors tasks to a DevOps board and keeps status in step, reached via the Microsoft Azure DevOps connector

Data flows

FlowDirectionWhat is exchangedBoundary
App ↔ DataverseRead / writeThe application's records (projects, tasks, accountability map, stakeholders, change history, settings)Inside tenant
Flows ↔ DataverseRead / writeThe same application records, on behalf of orchestration and administrationInside tenant
Notifications → Outlook / TeamsOutbound, in-tenantAssignment and activity notifications to the assigned peopleInside tenant
Task sync → PlannerOutbound, in-tenantTask title and status mirrored to a Planner planInside tenant
Task sync → Azure DevOpsOutbound, in-tenantTask details and status mirrored to a DevOps board (via the Microsoft connector)Inside tenant
Task export → OneDriveOutbound, in-tenantExported task data as a fileInside tenant
Membership / user lookup → Office 365 Groups / UsersIn-tenantGroup membership and user details used to derive rolesInside tenant
(1) Licensing check → Boxcurve licensing endpointOutbound, crosses boundaryThe tenant identifier, the environment identifier, and licence/plan and notification metadata. No accountability, task, or stakeholder data is sent. Designed to fail open: if the check cannot be reached, the application continuesOutside tenant
(2) monday.com import (optional)Outbound, crosses boundaryOnly if the customer configures it: a request to monday.com to retrieve the customer's own boards and tasks for import into UnityOutside tenant
(3) Task-pack retrievalOutbound, crosses boundaryA read-only request to Boxcurve's task pack repository to retrieve pre-built task packsOutside tenant

Channels that cross the tenant boundary

These are the only channels by which traffic leaves the customer's tenant. There is no other external or non-Microsoft transmission in the application.

  1. Boxcurve licensing check. The application calls a Boxcurve-operated licensing endpoint to confirm the tenant's licence and retrieve any licence-related notifications. The request carries the tenant identifier, the environment identifier, and licence/plan and notification metadata only. It does not transmit accountability, task, project, or stakeholder data. The check is designed to fail open, so a licensing endpoint that cannot be reached does not block the application.
  2. monday.com import (optional, customer-configured). This channel exists only if the customer chooses to configure it. When enabled, Boxcurve Unity calls monday.com to retrieve the customer's own boards and tasks for import. If it is not configured, no traffic flows to monday.com.
  3. Task-pack retrieval. Boxcurve Unity retrieves pre-built task packs from Boxcurve's task pack repository by means of a read-only request.

Azure DevOps is not an additional external channel in this context. It is reached through the Microsoft Azure DevOps connector and is treated as an in-tenant Microsoft service for the purposes of this orientation.

Identity

Boxcurve Unity uses the customer's own Microsoft Entra identity. Users sign in with their existing organisational accounts, and the application derives each user's role from Microsoft 365 security-group and Teams membership in the customer's tenant. Boxcurve Unity issues no separate credentials. For identity behaviour generally, refer to Microsoft's documentation: https://learn.microsoft.com/entra/

Where to read more

  • Data Residency & Tenant Isolation, where the application's data resides, what leaves the tenant, and platform isolation and encryption behaviour.
  • Identity & Access Control, sign-in, roles, and how access is governed.
  • Integrations & Connections, the full detail of each connection, including the optional monday.com import and the Planner and Azure DevOps synchronisation.