You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f6fb26a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: msp-onboarding/README.md
+15-5Lines changed: 15 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,10 @@
1
1
# MSP onboarding workflow
2
2
3
-
Automate the two most common MSP onboarding workflows using MSP API Credentials:
3
+
Automate the three most common MSP onboarding workflows using MSP API Credentials:
4
4
5
5
-**Create tenants**: Create new MSP tenants and provision a Central service in each.
6
6
-**Assign devices to tenants**: Assign MSP-owned devices in an existing tenant's Central application and attach the subscription each device needs.
7
+
-**Add devices to inventory**: Add new devices (serial number and MAC address) to the MSP workspace inventory.
7
8
8
9
Devices and tenants details can be entered individually or uploaded in bulk via CSVs. It ships in two forms: a **guided web workflow** and a **Python CLI** (`onboarding.py`) for scripted, manifest-driven runs.
9
10
@@ -15,8 +16,9 @@ Devices and tenants details can be entered individually or uploaded in bulk via
15
16
## Features
16
17
17
18
-**Create tenants**: create one or more new MSP tenants and provision a Central service in each, in the region you choose.
19
+
-**Add devices to inventory**: add devices to the MSP workspace by serial number and MAC address, in batches of five, with per-device results; devices already in inventory are reported rather than re-added.
18
20
-**Assign devices to tenants**: for each MSP-owned device, pick the tenant, the Central application within it, and the subscription to attach, the workflow submits the device assignment and the seat assignment together.
19
-
-**CSV upload**: bulk-load tenants to create, or devices with their tenant and subscription mapping, from a CSV file. Rows are validated and errors are reported per row before anything is submitted.
21
+
-**CSV upload**: bulk-load tenants to create, devices to add, or devices with their tenant and subscription mapping, from a CSV file. Rows are validated and errors are reported per row before anything is submitted.
20
22
-**Bulk seat assignment**: apply one subscription key to every eligible device of a type, with the key's expiry shown first.
21
23
-**Demo mode**: a deterministic catalog for exploring both journeys without credentials.
22
24
@@ -82,12 +84,20 @@ All calls go to the GreenLake Platform (GLP) API. Read calls run during discover
| 1 | GLP |`GET`|`devices/v1/devices`| Checks which serials are already in the MSP inventory |
98
+
| 2 | GLP |`POST`|`devices/v1/devices`| Adds devices to the MSP inventory (batches of five) |
99
+
| 3 | GLP |`GET`|`devices/v1/async-operations/{transaction_id}`| Polls each add to completion |
100
+
91
101
## Prerequisites
92
102
93
103
-[uv](https://docs.astral.sh/uv/getting-started/installation/) — the workflow requires Python 3.10+, which uv installs on demand
@@ -106,7 +116,6 @@ All calls go to the GreenLake Platform (GLP) API. Read calls run during discover
106
116
107
117
```bash
108
118
uv venv --python 3.12
109
-
source .venv/bin/activate
110
119
uv pip install -r requirements.txt
111
120
```
112
121
@@ -147,7 +156,7 @@ uv run python server.py
147
156
A run walks through:
148
157
149
158
1.**Sign in** — live credentials, or demo mode
150
-
2.**Choose a journey** — onboard new tenants, or add devices to existing tenants
159
+
2.**Choose a journey** — onboard new tenants, add devices to inventory, or add devices to existing tenants
151
160
3.**Setup, Devices, Review** — pick tenants and services, map every device to a tenant and subscription key, then review the read-only preflight
152
161
4.**Confirm once** — the job starts, and the Review screen switches to live per-device and per-tenant results
153
162
5.**Stop safely if needed** — the in-flight batch finishes, the rest is skipped, nothing is rolled back
@@ -183,6 +192,7 @@ The web workflow surfaces the plan and the run in one place:
183
192
-**Setup stage**: tenant picker with per-tenant service and region discovery; tenants without an eligible service are set aside with the reason shown.
184
193
-**Devices stage**: dense inventory table with CSV import, per-device or bulk subscription mapping, and seat capacity and expiry checks.
185
194
-**Preflight review**: every tenant, device, and seat assignment with its validation result, plus an impact ledger of what will and will not run.
195
+
-**Inventory add**: editable serial and MAC grid with CSV import, row-level validation, preflight, then per-device results.
186
196
-**Live run**: the same review switches to per-device status chips (Writing, Complete, Already satisfied, Failed) and per-tenant progress as the job runs.
0 commit comments