@joshuanode/n8n-nodes-cipp 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -0
- package/dist/credentials/CippApi.credentials.d.ts +10 -0
- package/dist/credentials/CippApi.credentials.d.ts.map +1 -0
- package/dist/credentials/CippApi.credentials.js +58 -0
- package/dist/credentials/CippApi.credentials.js.map +1 -0
- package/dist/credentials/cipp.svg +4 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/Cipp/Cipp.node.d.ts +11 -0
- package/dist/nodes/Cipp/Cipp.node.d.ts.map +1 -0
- package/dist/nodes/Cipp/Cipp.node.js +949 -0
- package/dist/nodes/Cipp/Cipp.node.js.map +1 -0
- package/dist/nodes/Cipp/GenericFunctions.d.ts +23 -0
- package/dist/nodes/Cipp/GenericFunctions.d.ts.map +1 -0
- package/dist/nodes/Cipp/GenericFunctions.js +181 -0
- package/dist/nodes/Cipp/GenericFunctions.js.map +1 -0
- package/dist/nodes/Cipp/cipp.svg +4 -0
- package/dist/nodes/Cipp/descriptions/AlertDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/AlertDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/AlertDescription.js +251 -0
- package/dist/nodes/Cipp/descriptions/AlertDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/ApplicationDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/ApplicationDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/ApplicationDescription.js +458 -0
- package/dist/nodes/Cipp/descriptions/ApplicationDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/CippDescription.d.ts +8 -0
- package/dist/nodes/Cipp/descriptions/CippDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/CippDescription.js +534 -0
- package/dist/nodes/Cipp/descriptions/CippDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/DeviceDescription.d.ts +6 -0
- package/dist/nodes/Cipp/descriptions/DeviceDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/DeviceDescription.js +374 -0
- package/dist/nodes/Cipp/descriptions/DeviceDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/GroupDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/GroupDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/GroupDescription.js +315 -0
- package/dist/nodes/Cipp/descriptions/GroupDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/MailboxDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/MailboxDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/MailboxDescription.js +175 -0
- package/dist/nodes/Cipp/descriptions/MailboxDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/TeamDescription.d.ts +6 -0
- package/dist/nodes/Cipp/descriptions/TeamDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/TeamDescription.js +509 -0
- package/dist/nodes/Cipp/descriptions/TeamDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/TenantDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/TenantDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/TenantDescription.js +102 -0
- package/dist/nodes/Cipp/descriptions/TenantDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/UserDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/UserDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/UserDescription.js +374 -0
- package/dist/nodes/Cipp/descriptions/UserDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/index.d.ts +3 -0
- package/dist/nodes/Cipp/descriptions/index.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/index.js +43 -0
- package/dist/nodes/Cipp/descriptions/index.js.map +1 -0
- package/dist/nodes/Cipp/types.d.ts +142 -0
- package/dist/nodes/Cipp/types.d.ts.map +1 -0
- package/dist/nodes/Cipp/types.js +3 -0
- package/dist/nodes/Cipp/types.js.map +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# n8n-nodes-cipp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@joshuanode/n8n-nodes-cipp)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
n8n community node for [CIPP.app](https://cipp.app) - Comprehensive Microsoft 365 multi-tenant management.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> ⚠️ **Beta Notice**: This node is currently in beta and may not be fully functional yet. Some operations may be incomplete or require adjustments. Use in production at your own risk.
|
|
12
|
+
>
|
|
13
|
+
> 🤝 **Contributions Welcome!** We welcome bug reports, feature requests, and pull requests. If you encounter issues or have improvements, please open an issue or PR on GitHub.
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
This node provides full integration with the CIPP API, enabling automation of:
|
|
18
|
+
|
|
19
|
+
- **Identity Management** - Users, groups, MFA, devices
|
|
20
|
+
- **Tenant Administration** - Alerts, licenses, standards
|
|
21
|
+
- **Intune** - Applications, Autopilot, device actions
|
|
22
|
+
- **Teams & SharePoint** - Teams, sites, voice numbers
|
|
23
|
+
- **Security & Compliance** - Defender alerts, incidents
|
|
24
|
+
- **Tools** - Breach search, Graph API requests
|
|
25
|
+
- **CIPP System** - Scheduled jobs, backups
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
### n8n (Self-hosted)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install @joshuanode/n8n-nodes-cipp
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or add to your n8n Docker container:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# In your Dockerfile
|
|
39
|
+
RUN npm install -g @joshuanode/n8n-nodes-cipp
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### n8n Cloud
|
|
43
|
+
|
|
44
|
+
Community nodes can be installed via **Settings → Community Nodes → Install**.
|
|
45
|
+
|
|
46
|
+
## Credentials Setup
|
|
47
|
+
|
|
48
|
+
1. **Create an Azure AD App Registration** for CIPP API access
|
|
49
|
+
2. Configure the following in n8n:
|
|
50
|
+
- **CIPP Instance URL**: Your CIPP deployment URL (e.g., `https://cipp.yourdomain.com`)
|
|
51
|
+
- **Azure AD Tenant ID**: The tenant where your CIPP app registration lives
|
|
52
|
+
- **Application (Client) ID**: From your Azure AD app registration
|
|
53
|
+
- **Client Secret**: Generated from your app registration
|
|
54
|
+
|
|
55
|
+
For detailed authentication setup, see the [CIPP API Documentation](https://docs.cipp.app/api-documentation/setup-and-authentication).
|
|
56
|
+
|
|
57
|
+
## Resources & Operations
|
|
58
|
+
|
|
59
|
+
| Resource | Operations |
|
|
60
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
61
|
+
| **Tenant** | Get Many, Clear Cache |
|
|
62
|
+
| **User** | Add, Disable, Enable, Reset Password, Reset MFA, Revoke Sessions, Remove, Create TAP, Set Per-User MFA, Send MFA Push, Clear Immutable ID, Offboard |
|
|
63
|
+
| **Group** | Add, Edit Members, Delete, Hide from GAL, Set Delivery Management, Get Many |
|
|
64
|
+
| **Device** | Get Many, Manage, Execute Action, Get Recovery Key, Get LAPS Password |
|
|
65
|
+
| **Autopilot** | Get Many, Assign, Remove, Sync, Get Configurations |
|
|
66
|
+
| **Mailbox** | Convert, Enable Archive, Set Out of Office, Set Email Forwarding |
|
|
67
|
+
| **Alert** | Add, Get Many, Get Security Alerts, Get Security Incidents, Set Alert Status, Set Incident Status |
|
|
68
|
+
| **Application** | Get Many, Assign, Remove, Add WinGet/Store/Chocolatey/MSP/Office Apps |
|
|
69
|
+
| **Team** | Add, Get Many, Get Sites, Get Activity, Manage Site Members/Permissions |
|
|
70
|
+
| **Voice** | Get Phone Numbers, Get Locations, Assign/Unassign Numbers |
|
|
71
|
+
| **Scheduled Item** | Add, Get Many, Remove |
|
|
72
|
+
| **Backup** | Get Many, Run, Restore, Set Auto-Backup |
|
|
73
|
+
| **Tools** | Breach Search (Account/Tenant), Graph Request |
|
|
74
|
+
|
|
75
|
+
## Example Usage
|
|
76
|
+
|
|
77
|
+
### List All Tenants
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Resource: Tenant
|
|
81
|
+
Operation: Get Many
|
|
82
|
+
Return All: true
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Create a New User
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Resource: User
|
|
89
|
+
Operation: Add
|
|
90
|
+
Tenant: Select from dropdown
|
|
91
|
+
First Name: John
|
|
92
|
+
Last Name: Doe
|
|
93
|
+
Domain: contoso.com
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Execute Device Action
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Resource: Device
|
|
100
|
+
Operation: Execute Action
|
|
101
|
+
Tenant: Select from dropdown
|
|
102
|
+
Device ID: <device-guid>
|
|
103
|
+
Action: SyncDevice
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Custom Graph Request
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Resource: Tools
|
|
110
|
+
Operation: Graph Request
|
|
111
|
+
Tenant: Select from dropdown
|
|
112
|
+
Endpoint: users
|
|
113
|
+
$select: id,displayName,userPrincipalName
|
|
114
|
+
$filter: startsWith(displayName,'John')
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Development
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Install dependencies
|
|
121
|
+
npm install
|
|
122
|
+
|
|
123
|
+
# Build
|
|
124
|
+
npm run build
|
|
125
|
+
|
|
126
|
+
# Lint
|
|
127
|
+
npm run lint
|
|
128
|
+
|
|
129
|
+
# Link for local testing
|
|
130
|
+
npm link
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Links
|
|
134
|
+
|
|
135
|
+
- [CIPP.app](https://cipp.app)
|
|
136
|
+
- [CIPP Documentation](https://docs.cipp.app)
|
|
137
|
+
- [CIPP API Endpoints](https://docs.cipp.app/api-documentation/endpoints/)
|
|
138
|
+
- [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
|
|
139
|
+
|
|
140
|
+
## License
|
|
141
|
+
|
|
142
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class CippApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
icon: Icon;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=CippApi.credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CippApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/CippApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,IAAI,EACJ,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,OAAQ,YAAW,eAAe;IAC9C,IAAI,SAAa;IACjB,WAAW,SAAc;IACzB,IAAI,EAAE,IAAI,CAAmB;IAC7B,gBAAgB,SAAsE;IAEtF,UAAU,EAAE,eAAe,EAAE,CAqC3B;IAIF,IAAI,EAAE,sBAAsB,CAM1B;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CippApi = void 0;
|
|
4
|
+
class CippApi {
|
|
5
|
+
name = 'cippApi';
|
|
6
|
+
displayName = 'CIPP API';
|
|
7
|
+
icon = 'file:cipp.svg';
|
|
8
|
+
documentationUrl = 'https://docs.cipp.app/api-documentation/setup-and-authentication';
|
|
9
|
+
properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'CIPP Instance URL',
|
|
12
|
+
name: 'baseUrl',
|
|
13
|
+
type: 'string',
|
|
14
|
+
default: '',
|
|
15
|
+
required: true,
|
|
16
|
+
placeholder: 'https://cipp.yourdomain.com',
|
|
17
|
+
description: 'The base URL of your CIPP deployment',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'Azure AD Tenant ID',
|
|
21
|
+
name: 'tenantId',
|
|
22
|
+
type: 'string',
|
|
23
|
+
default: '',
|
|
24
|
+
required: true,
|
|
25
|
+
placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
|
|
26
|
+
description: 'Your Azure AD Tenant ID (where the CIPP app registration lives)',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Application (Client) ID',
|
|
30
|
+
name: 'clientId',
|
|
31
|
+
type: 'string',
|
|
32
|
+
default: '',
|
|
33
|
+
required: true,
|
|
34
|
+
placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
|
|
35
|
+
description: 'The Application (Client) ID from Azure AD App Registration',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
displayName: 'Client Secret',
|
|
39
|
+
name: 'clientSecret',
|
|
40
|
+
type: 'string',
|
|
41
|
+
typeOptions: { password: true },
|
|
42
|
+
default: '',
|
|
43
|
+
required: true,
|
|
44
|
+
description: 'The Client Secret from Azure AD App Registration',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
// Custom pre-request auth - the node handles OAuth token acquisition
|
|
48
|
+
// This test validates by attempting a simple API call
|
|
49
|
+
test = {
|
|
50
|
+
request: {
|
|
51
|
+
method: 'GET',
|
|
52
|
+
url: '={{$credentials.baseUrl.replace(/\\/$/, "")}}/api/ListTenants',
|
|
53
|
+
skipSslCertificateValidation: false,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.CippApi = CippApi;
|
|
58
|
+
//# sourceMappingURL=CippApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CippApi.credentials.js","sourceRoot":"","sources":["../../credentials/CippApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,OAAO;IACnB,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,UAAU,CAAC;IACzB,IAAI,GAAS,eAAe,CAAC;IAC7B,gBAAgB,GAAG,kEAAkE,CAAC;IAEtF,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,sCAAsC;SACnD;QACD;YACC,WAAW,EAAE,oBAAoB;YACjC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sCAAsC;YACnD,WAAW,EAAE,iEAAiE;SAC9E;QACD;YACC,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sCAAsC;YACnD,WAAW,EAAE,4DAA4D;SACzE;QACD;YACC,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC/B,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kDAAkD;SAC/D;KACD,CAAC;IAEF,qEAAqE;IACrE,sDAAsD;IACtD,IAAI,GAA2B;QAC9B,OAAO,EAAE;YACR,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,+DAA+D;YACpE,4BAA4B,EAAE,KAAK;SACnC;KACD,CAAC;CACF;AAtDD,0BAsDC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./nodes/Cipp/Cipp.node"), exports);
|
|
18
|
+
__exportStar(require("./credentials/CippApi.credentials"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,oEAAkD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodeListSearchResult, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Cipp implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
listSearch: {
|
|
6
|
+
tenantSearch(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Cipp.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cipp.node.d.ts","sourceRoot":"","sources":["../../../nodes/Cipp/Cipp.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAUtB,qBAAa,IAAK,YAAW,SAAS;IACrC,WAAW,EAAE,oBAAoB,CAkG/B;IAEF,OAAO;;+BAGE,qBAAqB,WAClB,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;;MAqBjC;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA2rCvE"}
|