# hoop5networks/cipp-api architecture

> Architecture diagram of the GitHub repository hoop5networks/cipp-api, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hoop5networks/cipp-api
- Repository: https://github.com/hoop5networks/cipp-api

## Overview

CIPP is a multi-tenant Microsoft 365 management platform for MSPs, implemented primarily as PowerShell Azure Functions. Its apparent user workflow is to submit an HTTP operation, have the service execute tenant administration or reporting work, and return results; background activity, orchestration, and timer entry points support asynchronous and scheduled work. The tree also shows alerting, standards, extensions, and database/cache capabilities. The README is empty and sampled source is limited to three C# helpers, so feature links beyond those helpers are shown as unverified rather than asserted as observed calls.

Main entry points: [`Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers`](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity%20Triggers) (Activity Functions), [`Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions`](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPHTTP/Public/Entrypoints/HTTP%20Functions) (HTTP Functions), [`CIPPOrchestrator`](https://github.com/hoop5networks/cipp-api/tree/master/CIPPOrchestrator) (Durable Orchestrator), [`Shared/CIPPSharp/CIPPRestClient.cs`](https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CIPPRestClient.cs) (REST Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_http["HTTP Functions"]
  node_httptrigger["HTTP Trigger"]
end

subgraph group_jobs["Background Work"]
  node_orchestrator["Durable Orchestrator"]
  node_activity["Activity Functions"]
  node_queue["Queue Trigger"]
  node_timer["Timer Functions"]
end

subgraph group_domain["Tenant Management"]
  node_tenantops["Tenant Operations"]
  node_alerts["Alerts"]
  node_standards["Standards"]
end

subgraph group_integrations["Integrations"]
  node_extensions["Service Extensions"]
end

subgraph group_runtime["Shared Runtime"]
  node_database["Database Access"]
  node_rest["REST Client<br/>[CIPPRestClient.cs]"]
  node_testcache[("Test Data Cache")]
  node_json["JSON Converter"]
end

node_operator(("MSP Operator"))
node_microsoft{{"Microsoft 365"}}

node_operator -.->|"submits request"| node_httptrigger
node_httptrigger -.->|"dispatches to"| node_http
node_http -.->|"handles operation"| node_tenantops
node_tenantops -.->|"makes REST calls"| node_rest
node_rest -.->|"sends requests"| node_microsoft
node_tenantops -.->|"reads or writes"| node_database
node_http -.->|"starts work"| node_orchestrator
node_orchestrator -.->|"dispatches activities"| node_activity
node_queue -.->|"dispatches work"| node_activity
node_timer -.->|"starts scheduled work"| node_orchestrator
node_activity -.->|"updates data"| node_database
node_activity -.->|"makes REST calls"| node_rest
node_alerts -.->|"runs alert work"| node_activity
node_standards -.->|"runs standards work"| node_activity
node_extensions -.->|"integrates services"| node_microsoft

click node_http "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPHTTP/Public/Entrypoints/HTTP%20Functions"
click node_httptrigger "https://github.com/hoop5networks/cipp-api/tree/master/CIPPHttpTrigger"
click node_orchestrator "https://github.com/hoop5networks/cipp-api/tree/master/CIPPOrchestrator"
click node_activity "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity%20Triggers"
click node_queue "https://github.com/hoop5networks/cipp-api/tree/master/CIPPQueueTrigger"
click node_timer "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPCore/Public/Entrypoints/Timer%20Functions"
click node_tenantops "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPHTTP/Public/Entrypoints/HTTP%20Functions"
click node_alerts "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPAlerts/Public/Alerts"
click node_standards "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPStandards/Public/Standards"
click node_database "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPDB/Public"
click node_rest "https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CIPPRestClient.cs"
click node_testcache "https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CIPPTestDataCache.cs"
click node_json "https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CippJsonConverter.cs"
click node_extensions "https://github.com/hoop5networks/cipp-api/tree/master/Modules/CippExtensions/Public"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_http,node_httptrigger toneBlue
class node_orchestrator,node_activity,node_queue,node_timer toneAmber
class node_tenantops,node_alerts,node_standards toneMint
class node_extensions toneRose
class node_database,node_rest,node_testcache,node_json,node_operator,node_microsoft toneIndigo
```

## Components

### HTTP API

- [HTTP Functions](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPHTTP/Public/Entrypoints/HTTP%20Functions): `Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions`
- [HTTP Trigger](https://github.com/hoop5networks/cipp-api/tree/master/CIPPHttpTrigger): `CIPPHttpTrigger`

### Background Work

- [Durable Orchestrator](https://github.com/hoop5networks/cipp-api/tree/master/CIPPOrchestrator): `CIPPOrchestrator`
- [Activity Functions](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity%20Triggers): `Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers`
- [Queue Trigger](https://github.com/hoop5networks/cipp-api/tree/master/CIPPQueueTrigger): `CIPPQueueTrigger`
- [Timer Functions](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPCore/Public/Entrypoints/Timer%20Functions): `Modules/CIPPCore/Public/Entrypoints/Timer Functions`

### Tenant Management

- [Tenant Operations](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPHTTP/Public/Entrypoints/HTTP%20Functions): `Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions`
- [Alerts](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPAlerts/Public/Alerts): `Modules/CIPPAlerts/Public/Alerts`
- [Standards](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPStandards/Public/Standards): `Modules/CIPPStandards/Public/Standards`

### Integrations

- [Service Extensions](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CippExtensions/Public): `Modules/CippExtensions/Public`

### Shared Runtime

- [Database Access](https://github.com/hoop5networks/cipp-api/tree/master/Modules/CIPPDB/Public): `Modules/CIPPDB/Public`
- [REST Client](https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CIPPRestClient.cs): `Shared/CIPPSharp/CIPPRestClient.cs`
- [Test Data Cache](https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CIPPTestDataCache.cs): `Shared/CIPPSharp/CIPPTestDataCache.cs`
- [JSON Converter](https://github.com/hoop5networks/cipp-api/blob/master/Shared/CIPPSharp/CippJsonConverter.cs): `Shared/CIPPSharp/CippJsonConverter.cs`

### Other components

- **MSP Operator**
- **Microsoft 365**

## Connections

- MSP Operator → HTTP Trigger: submits request
- HTTP Trigger → HTTP Functions: dispatches to
- HTTP Functions → Tenant Operations: handles operation
- Tenant Operations → REST Client: makes REST calls
- REST Client → Microsoft 365: sends requests
- Tenant Operations → Database Access: reads or writes
- HTTP Functions → Durable Orchestrator: starts work
- Durable Orchestrator → Activity Functions: dispatches activities
- Queue Trigger → Activity Functions: dispatches work
- Timer Functions → Durable Orchestrator: starts scheduled work
- Activity Functions → Database Access: updates data
- Activity Functions → REST Client: makes REST calls
- Alerts → Activity Functions: runs alert work
- Standards → Activity Functions: runs standards work
- Service Extensions → Microsoft 365: integrates services
