Export & import¶
Flat-file tooling for onboarding and inventory: write the tenant out as CSV/JSON,
and create teams from a spreadsheet. For heavy, resumable team archiving (with
messages, tabs, apps and files), use ../migration/ instead.
Everything here writes to the temp directory by default; pass --output to
choose a directory (the examples never write into the repository).
for team in client.teams.get_all().select(["id", "displayName"]).execute_query():
print(team.id, team.display_name)
Scripts¶
| Script | What it does |
|---|---|
inventory.py |
Export tenant inventory to CSV + JSON (with membership counts) |
memberships.py |
One row per member: team,displayName,email,roles |
provision.py |
Bulk-provision teams from CSV via create_and_wait |
Common commands¶
python inventory.py --output /tmp/teams_inventory
python memberships.py --output /tmp/teams_memberships.csv
# Preview, then create
python provision.py --file teams.csv --dry-run
python provision.py --file teams.csv
Input CSV for provision.py:
name,description,template
Finance,"Budgeting and reporting",standard
Marketing,"Campaign workspace",standard
For concurrent provisioning of a large batch, use
../../patterns/async/provision_teams_async.py.
Permissions (application)¶
| Operation | Permissions |
|---|---|
| Inventory | Team.ReadBasic.All, TeamMember.Read.All, Directory.Read.All |
| Memberships | TeamMember.Read.All |
| Provision | Group.ReadWrite.All, Team.Create |