Skip to content
Octo × 365 Automation PT Request an assessment

Octo for SharePoint, OneDrive, Teams and Power Automate

Every site has an owner. The one who decides who gets in is you.

In Microsoft 365, sites, libraries, files and permissions go through Microsoft Graph. Octo inventories the tenant read-only, points out anonymous links and broken inheritance, proposes the minimum permission for each app, measures the network folder before migrating and treats Power Automate flows as reviewable code. Consent, access, personal data and publishing stay with the administrator and with each site's owner.

Map of a fictional tenant: in the center, Octo reading through Graph; around it, two sites, a Teams team and people's OneDrives; the Finance site has a folder with broken inheritance, the Projects site has an anonymous link in amber and an external guest, and an integration app reaches only the Finance site with Sites.Selected Octo Graph · read /sites/financeiro Documents Invoices RH/ broken inheritance integration app: write /sites/projetos Documents anonymous link · 1 external guest · 2 inherits from site Quality Team General channel team site: Inbox Published no alerts OneDrive · per person delta per drive deltaLink saved org-wide link · 7 1,250 RU/min respected
Illustration: map of a tenant's sites, libraries and permissions; fictional data.
SharePoint throttling, per app1,250RU per minute in the tier of up to 1,000 licenses
SharePoint file limit250 GBand a decoded path of up to 400 characters
OneNote without app-only sinceMar 31, 2025delegated permission only
Sources24listed at the end of the page
01

What Octo does with Microsoft 365.

Six possible deliverables, drawn from the research. All of them start by reading, all of them request the smallest permission that does the job, and all of them go to review by whoever administers the tenant and whoever owns the content.

Inventory of sites and permissions

Lists the sites with getAllSites, each one's libraries, and walks each drive with delta and Prefer: hierarchicalsharing, reading permissions only at the inheritance roots.

Deliverable: spreadsheets of sites, libraries, permissions and alerts

Minimum permission per app

Replaces the Sites.ReadWrite.All requested "for testing" with Sites.Selected with a read or write role on the site that matters, and records how to revoke it.

Deliverable: a justified consent request and a rollback script

Migration pre-scan

Measures the network folder before the window: paths over 400 characters with the target prefix, files over 250 GB, suspicious names, duplicates by SHA-256, folders with personal data.

Deliverable: a CSV manifest for the data owner to approve

Upload by upload session

Only what was approved goes, with createUploadSession, conflictBehavior set to fail, 10 MiB fragments and respect for Retry-After.

Deliverable: result per file and a list of discrepancies

Flows as code

Exports the solution with pac solution export, unpacks it and reviews each flow's JSON by diff; imports with a settings file per environment.

Deliverable: versioned flows and promotion with approval

What was left behind

Finds scripts that still depend on SharePoint Add-ins and ACS, retired on Apr 2, 2026, and OneNote integrations that relied on app permissions.

Deliverable: list of what stopped or will stop, with the new path
02

Eight arms, a checked tenant.

The same Octo cycle, applied to Microsoft 365. Each arm has a narrow role; the ones who consent, grant access and answer for the data are people.

  1. Discovery

    Surveys what already exists

    Sites, libraries, teams, flows, registered apps and what still depends on Add-ins and ACS.

  2. Data

    Maps the content

    Libraries, columns, versions, volume and what becomes metadata in the migration.

  3. Security

    Looks after access

    Minimum permission per app, anonymous links, external guests and folders with personal data (LGPD, Brazil's data protection law) flagged.

  4. Architecture

    Chooses the path

    Graph directly, PnP PowerShell, Migration Manager or a Power Platform solution, depending on the task and the volume.

  5. Development

    Writes the script

    Inventory, pre-scan and upload with throttling respected and the source of each syntax noted.

  6. Review

    Checks by content

    Permission listed on the site, size at the target, a diff of the flow's JSON before importing.

  7. Release

    Prepares, doesn't apply on its own

    Package and script ready; applying to the tenant is done with a person's approval.

  8. Documentation

    Records what applies in your tenant

    Inventory, permissions granted, who approved, the migration manifest and how to roll back.

Octo does not consent to permissions, does not keep app certificates or secrets, does not open or close access on its own and does not answer for the data stored in the tenant.

03

Every task, its own path.

The criteria Octo uses to choose, with the call and the documented least-privilege permission.

TaskPathNotes
List all sitesGET /sites/getAllSitesApp only, Sites.Read.All
Scan files and changesGET /drives/{id}/root/deltaFiles.Read.All; save the deltaLink
Find only permission rootsPrefer: hierarchicalsharingA permission operation costs 5 RU
Read an item's permissionsGET .../items/{id}/permissionsDirect in grantedToV2, by link in grantedToIdentitiesV2; the permission root comes from delta
Grant access to a single siteSites.Selected + POST /sites/{id}/permissionsWriting requires Sites.FullControl.All; in a delegated session, a SharePoint admin who is a site member
Revoke that accessDELETE /sites/{id}/permissions/{id}Or revoke the consent
Upload a large filecreateUploadSession + PUTMultiples of 320 KiB, under 60 MiB
Combine callsPOST /$batchUp to 20; throttling counts each one
Migrate a network shareMigration ManagerAgents, CSV, files up to 250 GB
Export and promote flowspac solution export / importImports the managed zip, with --settings-file per environment
Message in a Teams channelPOST /teams/{id}/channels/{id}/messagesDelegated; app only for migration
OneNote notebooks/me/onenote/...Delegated only since Mar 31, 2025
04

From clicks in the admin center to a tenant with a record.

Three steps. Each one only makes sense after the previous one has shown results on your team.

A proposal, not a promise

1 Today

Inventory and alerts

Octo shows what is in the tenant and where access is too open, without writing anything.

  • Spreadsheet of sites and libraries
  • Permissions at the inheritance roots
  • List of links and guests for the owners
Gain: knowing the size of the problem before touching anything
2 Next

Minimum permission and measured migration

Apps start seeing only the site they need; migrations start with a pre-scan and a manifest.

  • Sites.Selected instead of .All
  • Manifest approved line by line
  • Upload with a check
Gain: less open access and no surprises in the window
3 Later

Flows and permissions with history

Flows under version control, promotion by solution and a record of each access granted.

  • Diff before importing
  • Who approved each access
  • Rollback ready
Gain: changes with a before, an after and proof
05

Confirmed by a source.

Every point below has a source published by Microsoft (Learn and Support), by the package's official repository (PyPI, NuGet, PowerShell Gallery) or in Brazilian federal law. The examples are scripts to follow, not runs. The sources are in the next section.

4

points with a published source, each with its reference shown alongside.

ConfirmedSite-by-site access
Sites.Selected starts with no access; the permission is written on the site with POST /sites/{id}/permissions and the roles read, write, owner or fullcontrol. On a list, item or file, it breaks inheritance. In a delegated session, whoever writes must be a SharePoint Administrator or higher and a member of the target site; the method only creates app permissions.Source: Microsoft Learn, selected permissions and creating a site permission
ConfirmedThrottling in resource units
1,250 RU per minute and 1,200,000 per day per app, in the tier of up to 1,000 licenses; a permission operation costs 5 RU; no RateLimit headers.Source: Microsoft Learn, SharePoint Online throttling
ConfirmedMigration limits
Files up to 250 GB, decoded paths up to 400 characters, 5,000 unique permissions recommended per list, sync recommended up to 300,000 files.Source: SharePoint Online service description
ConfirmedOneNote delegated only
The OneNote API stopped accepting app-only authentication on Mar 31, 2025.Source: Microsoft Learn, integrating with OneNote
06

What Octo does, and what stays with you.

Octo prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.

Octo prepares

Surveys, organizes and produces the files: documents, spreadsheets, presentations, schedules, inventories and check reports, on file and through the APIs, without sending or publishing anything.

Deliverable: material ready to check

Your team checks

Whoever is accountable for the document, the spreadsheet or the schedule checks what Octo delivered before approving. If something doesn't add up, it goes back to Octo with the correction.

Step: checked by the person accountable

Who signs and approves

Octo does not sign, approve or send. The document owner reviews and signs; the project manager approves the baseline; the Microsoft 365 administrator grants consent for permissions; the data protection officer approves anything that goes out with personal data.

Approval: document owner and 365 administrator
07

Sources.

Official documentation for Microsoft Graph, SharePoint Online, Entra ID and Power Platform, and the PnP PowerShell documentation, consulted on Oct 31, 2026.

Your Microsoft 365, inventoried and with minimum access.

The assessment starts with an inventory of sites and permissions, read-only. You get the list of what is too open, what will stop working and the questions only your team can answer, and you decide with that in hand.